synapse-orch-ai 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +501 -0
- package/backend/core/__init__.py +0 -0
- package/backend/core/agent_logger.py +195 -0
- package/backend/core/builder_tools.py +1482 -0
- package/backend/core/compaction.py +188 -0
- package/backend/core/config.py +89 -0
- package/backend/core/json_store.py +50 -0
- package/backend/core/llm_providers.py +2088 -0
- package/backend/core/mcp_client.py +548 -0
- package/backend/core/mcp_oauth_state.py +37 -0
- package/backend/core/memory.py +714 -0
- package/backend/core/messaging/__init__.py +5 -0
- package/backend/core/messaging/adapters/__init__.py +1 -0
- package/backend/core/messaging/adapters/discord.py +112 -0
- package/backend/core/messaging/adapters/slack.py +123 -0
- package/backend/core/messaging/adapters/teams.py +102 -0
- package/backend/core/messaging/adapters/telegram.py +118 -0
- package/backend/core/messaging/adapters/whatsapp.py +216 -0
- package/backend/core/messaging/base.py +209 -0
- package/backend/core/messaging/manager.py +291 -0
- package/backend/core/messaging/markdown.py +171 -0
- package/backend/core/messaging/store.py +95 -0
- package/backend/core/models.py +154 -0
- package/backend/core/models_orchestration.py +123 -0
- package/backend/core/models_schedule.py +56 -0
- package/backend/core/native_builder/__init__.py +60 -0
- package/backend/core/native_builder/agents/agent_creator.json +20 -0
- package/backend/core/native_builder/agents/orchestrator_builder.json +15 -0
- package/backend/core/native_builder/agents/requirements_analyst.json +21 -0
- package/backend/core/native_builder/agents/saver_create.json +28 -0
- package/backend/core/native_builder/agents/saver_update.json +29 -0
- package/backend/core/native_builder/orchestration.json +515 -0
- package/backend/core/native_builder/seed.py +135 -0
- package/backend/core/orchestration/__init__.py +5 -0
- package/backend/core/orchestration/context.py +630 -0
- package/backend/core/orchestration/engine.py +489 -0
- package/backend/core/orchestration/logger.py +278 -0
- package/backend/core/orchestration/state.py +79 -0
- package/backend/core/orchestration/steps.py +1017 -0
- package/backend/core/orchestration/summarizer.py +106 -0
- package/backend/core/personal_details.py +60 -0
- package/backend/core/profiling.py +160 -0
- package/backend/core/react_engine.py +1017 -0
- package/backend/core/routes/__init__.py +4 -0
- package/backend/core/routes/agents.py +303 -0
- package/backend/core/routes/auth.py +38 -0
- package/backend/core/routes/builder.py +491 -0
- package/backend/core/routes/chat.py +151 -0
- package/backend/core/routes/data.py +800 -0
- package/backend/core/routes/db_configs.py +105 -0
- package/backend/core/routes/import_export.py +370 -0
- package/backend/core/routes/logs.py +93 -0
- package/backend/core/routes/messaging.py +204 -0
- package/backend/core/routes/n8n.py +95 -0
- package/backend/core/routes/orchestrations.py +364 -0
- package/backend/core/routes/profiling.py +83 -0
- package/backend/core/routes/repos.py +212 -0
- package/backend/core/routes/schedules.py +158 -0
- package/backend/core/routes/sessions.py +48 -0
- package/backend/core/routes/settings.py +362 -0
- package/backend/core/routes/tools.py +416 -0
- package/backend/core/routes/usage.py +63 -0
- package/backend/core/routes/vault.py +254 -0
- package/backend/core/schedule_logger.py +226 -0
- package/backend/core/scheduler.py +376 -0
- package/backend/core/server.py +658 -0
- package/backend/core/session.py +206 -0
- package/backend/core/tools.py +344 -0
- package/backend/core/usage_tracker.py +417 -0
- package/backend/core/vault.py +265 -0
- package/backend/main.py +26 -0
- package/backend/requirements.txt +24 -0
- package/backend/services/__init__.py +0 -0
- package/backend/services/code_indexer.py +488 -0
- package/backend/services/google.py +343 -0
- package/backend/services/synthetic_data.py +140 -0
- package/backend/tools/__init__.py +0 -0
- package/backend/tools/bash.py +244 -0
- package/backend/tools/code_indexer.py +110 -0
- package/backend/tools/code_search.py +537 -0
- package/backend/tools/collect_data.py +134 -0
- package/backend/tools/pdf_parser.py +103 -0
- package/backend/tools/personal_details.py +52 -0
- package/backend/tools/sandbox.Dockerfile +24 -0
- package/backend/tools/sandbox.py +586 -0
- package/backend/tools/sql_agent.py +221 -0
- package/backend/tools/time.py +283 -0
- package/backend/tools/web_scraper.py +765 -0
- package/backend/tools/xlsx_parser.py +79 -0
- package/bin/synapse +16 -0
- package/bin/synapse.bat +36 -0
- package/bin/synapse.js +247 -0
- package/frontend-build/.next/BUILD_ID +1 -0
- package/frontend-build/.next/app-path-routes-manifest.json +22 -0
- package/frontend-build/.next/build-manifest.json +21 -0
- package/frontend-build/.next/package.json +1 -0
- package/frontend-build/.next/prerender-manifest.json +114 -0
- package/frontend-build/.next/required-server-files.json +352 -0
- package/frontend-build/.next/routes-manifest.json +194 -0
- package/frontend-build/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/_global-error/page/build-manifest.json +17 -0
- package/frontend-build/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/frontend-build/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/frontend-build/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/_global-error/page.js +9 -0
- package/frontend-build/.next/server/app/_global-error/page.js.map +5 -0
- package/frontend-build/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/frontend-build/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/_global-error.html +1 -0
- package/frontend-build/.next/server/app/_global-error.meta +15 -0
- package/frontend-build/.next/server/app/_global-error.rsc +14 -0
- package/frontend-build/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
- package/frontend-build/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
- package/frontend-build/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
- package/frontend-build/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
- package/frontend-build/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/frontend-build/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/_not-found/page/build-manifest.json +17 -0
- package/frontend-build/.next/server/app/_not-found/page/next-font-manifest.json +14 -0
- package/frontend-build/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/frontend-build/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/_not-found/page.js +13 -0
- package/frontend-build/.next/server/app/_not-found/page.js.map +5 -0
- package/frontend-build/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/frontend-build/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/_not-found.html +1 -0
- package/frontend-build/.next/server/app/_not-found.meta +16 -0
- package/frontend-build/.next/server/app/_not-found.rsc +18 -0
- package/frontend-build/.next/server/app/_not-found.segments/_full.segment.rsc +18 -0
- package/frontend-build/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/frontend-build/.next/server/app/_not-found.segments/_index.segment.rsc +7 -0
- package/frontend-build/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
- package/frontend-build/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
- package/frontend-build/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -0
- package/frontend-build/.next/server/app/api/agent-types/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/agent-types/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/agent-types/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/agent-types/route.js +6 -0
- package/frontend-build/.next/server/app/api/agent-types/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/agent-types/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/agent-types/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/agents/generate-prompt/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/agents/generate-prompt/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/agents/generate-prompt/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/agents/generate-prompt/route.js +6 -0
- package/frontend-build/.next/server/app/api/agents/generate-prompt/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/agents/generate-prompt/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/agents/generate-prompt/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/builder/chat/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/builder/chat/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/builder/chat/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/builder/chat/route.js +6 -0
- package/frontend-build/.next/server/app/api/builder/chat/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/builder/chat/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/builder/chat/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/builder/resume/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/builder/resume/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/builder/resume/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/builder/resume/route.js +6 -0
- package/frontend-build/.next/server/app/api/builder/resume/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/builder/resume/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/builder/resume/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/chat/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/chat/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/chat/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/chat/route.js +6 -0
- package/frontend-build/.next/server/app/api/chat/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/chat/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/chat/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/chat/stream/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/chat/stream/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/chat/stream/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/chat/stream/route.js +6 -0
- package/frontend-build/.next/server/app/api/chat/stream/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/chat/stream/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/chat/stream/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route.js +6 -0
- package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/logs/[type]/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/logs/[type]/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/logs/[type]/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/logs/[type]/route.js +6 -0
- package/frontend-build/.next/server/app/api/logs/[type]/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/logs/[type]/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/logs/[type]/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/models/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/models/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/models/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/models/route.js +6 -0
- package/frontend-build/.next/server/app/api/models/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/models/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/models/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route.js +6 -0
- package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route.js +6 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route.js +6 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route.js +6 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route.js +6 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/api/schedules/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/api/schedules/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/api/schedules/route/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/api/schedules/route.js +6 -0
- package/frontend-build/.next/server/app/api/schedules/route.js.map +5 -0
- package/frontend-build/.next/server/app/api/schedules/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/api/schedules/route_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/icon.svg/route/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/icon.svg/route/build-manifest.json +9 -0
- package/frontend-build/.next/server/app/icon.svg/route.js +6 -0
- package/frontend-build/.next/server/app/icon.svg/route.js.map +5 -0
- package/frontend-build/.next/server/app/icon.svg/route.js.nft.json +1 -0
- package/frontend-build/.next/server/app/icon.svg.body +4 -0
- package/frontend-build/.next/server/app/icon.svg.meta +1 -0
- package/frontend-build/.next/server/app/index.html +1 -0
- package/frontend-build/.next/server/app/index.meta +14 -0
- package/frontend-build/.next/server/app/index.rsc +25 -0
- package/frontend-build/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -0
- package/frontend-build/.next/server/app/index.segments/_full.segment.rsc +25 -0
- package/frontend-build/.next/server/app/index.segments/_head.segment.rsc +6 -0
- package/frontend-build/.next/server/app/index.segments/_index.segment.rsc +7 -0
- package/frontend-build/.next/server/app/index.segments/_tree.segment.rsc +8 -0
- package/frontend-build/.next/server/app/page/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/page/build-manifest.json +17 -0
- package/frontend-build/.next/server/app/page/next-font-manifest.json +14 -0
- package/frontend-build/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/frontend-build/.next/server/app/page/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/page.js +14 -0
- package/frontend-build/.next/server/app/page.js.map +5 -0
- package/frontend-build/.next/server/app/page.js.nft.json +1 -0
- package/frontend-build/.next/server/app/page_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app/settings/[tab]/page/app-paths-manifest.json +3 -0
- package/frontend-build/.next/server/app/settings/[tab]/page/build-manifest.json +17 -0
- package/frontend-build/.next/server/app/settings/[tab]/page/next-font-manifest.json +14 -0
- package/frontend-build/.next/server/app/settings/[tab]/page/react-loadable-manifest.json +1 -0
- package/frontend-build/.next/server/app/settings/[tab]/page/server-reference-manifest.json +4 -0
- package/frontend-build/.next/server/app/settings/[tab]/page.js +16 -0
- package/frontend-build/.next/server/app/settings/[tab]/page.js.map +5 -0
- package/frontend-build/.next/server/app/settings/[tab]/page.js.nft.json +1 -0
- package/frontend-build/.next/server/app/settings/[tab]/page_client-reference-manifest.js +3 -0
- package/frontend-build/.next/server/app-paths-manifest.json +22 -0
- package/frontend-build/.next/server/chunks/0zjb_server_app_api_orchestrations_runs_[run_id]_human-input_route_actions_0oj9y8~.js +3 -0
- package/frontend-build/.next/server/chunks/0zjb_server_app_api_orchestrations_runs_[run_id]_resume_route_actions_0cdumha.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__00sljji._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__02je2si._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__03e7r3a._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__053~3b.._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0afb7iz._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0bc5iuk._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0bygctj._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0c7o1w_._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0cy6bl4._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0dmb8p1._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0gx4j6x._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0h2-vsq._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0j8-xkl._.js +13 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0kkdqe3._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0n1p1jk._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__0xccig4._.js +3 -0
- package/frontend-build/.next/server/chunks/[root-of-the-server]__13dxl3m._.js +3 -0
- package/frontend-build/.next/server/chunks/[turbopack]_runtime.js +903 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_agent-types_route_actions_11dsnho.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_agents_generate-prompt_route_actions_0sqc90~.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_builder_chat_route_actions_0mserwk.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_builder_resume_route_actions_10w~8ke.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_chat_route_actions_0tmcf6..js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_chat_stream_route_actions_0ef7us3.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_logs_[type]_[run_id]_route_actions_061uvw9.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_logs_[type]_route_actions_0jpmtla.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_models_route_actions_0vfccm4.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_orchestrations_[orch_id]_run_route_actions_019s..3.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_schedules_[schedule_id]_route_actions_0vtfp83.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_schedules_[schedule_id]_run_route_actions_04d41xi.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_api_schedules_route_actions_129kjsa.js +3 -0
- package/frontend-build/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_0-0ehc~.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__08gf6t7._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__09z7o2x._.js +19 -0
- package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0fql_-o._.js +33 -0
- package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0hfoz0-._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0p3x1m7._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0rj.gz.._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0ssmzpx._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0uo38ip._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__10unlca._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__10xgshr._.js +33 -0
- package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__12b-xga._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
- package/frontend-build/.next/server/chunks/ssr/_0ayz11y._.js +4 -0
- package/frontend-build/.next/server/chunks/ssr/_0df15zg._.js +48 -0
- package/frontend-build/.next/server/chunks/ssr/_0yv_lu6._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/_next-internal_server_app_settings_[tab]_page_actions_0ltd7re.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_09w7yel._.js +33 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_0_ce7g1._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_0y8evf1._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_0zhhlrq._.js +6 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_1041ur2._.js +6 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_0ag5..o._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_loader-circle_0hcf_w-.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_0xdsm99._.js +6 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js +3 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08ib7il.js +4 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0k.0n04.js +4 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rc3ul_.js +4 -0
- package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_13pf1l2.js +4 -0
- package/frontend-build/.next/server/chunks/ssr/src_app_page_tsx_0ss2.w7._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/src_app_settings_layout_tsx_0j6i0d.._.js +3 -0
- package/frontend-build/.next/server/chunks/ssr/src_app_settings_loading_tsx_0.wko.c._.js +3 -0
- package/frontend-build/.next/server/functions-config-manifest.json +29 -0
- package/frontend-build/.next/server/middleware-build-manifest.js +21 -0
- package/frontend-build/.next/server/middleware-manifest.json +6 -0
- package/frontend-build/.next/server/next-font-manifest.js +1 -0
- package/frontend-build/.next/server/next-font-manifest.json +28 -0
- package/frontend-build/.next/server/pages/404.html +1 -0
- package/frontend-build/.next/server/pages/500.html +1 -0
- package/frontend-build/.next/server/pages-manifest.json +4 -0
- package/frontend-build/.next/server/prefetch-hints.json +1 -0
- package/frontend-build/.next/server/server-reference-manifest.js +1 -0
- package/frontend-build/.next/server/server-reference-manifest.json +5 -0
- package/frontend-build/.next/static/2m6rYBnEW4xy8D-1wzwqJ/_buildManifest.js +18 -0
- package/frontend-build/.next/static/2m6rYBnEW4xy8D-1wzwqJ/_clientMiddlewareManifest.js +1 -0
- package/frontend-build/.next/static/2m6rYBnEW4xy8D-1wzwqJ/_ssgManifest.js +1 -0
- package/frontend-build/.next/static/chunks/02i7dfk78~t~2.js +4 -0
- package/frontend-build/.next/static/chunks/03~yq9q893hmn.js +1 -0
- package/frontend-build/.next/static/chunks/04v~lhs2c9fvw.js +1 -0
- package/frontend-build/.next/static/chunks/05dz57h.5fg3-.js +2 -0
- package/frontend-build/.next/static/chunks/078eei4f0ilb1.js +1 -0
- package/frontend-build/.next/static/chunks/0h4a4y-~puu.x.js +1 -0
- package/frontend-build/.next/static/chunks/0ipoy_nm8gvxg.js +1 -0
- package/frontend-build/.next/static/chunks/0j29xn-eqm8iz.css +5 -0
- package/frontend-build/.next/static/chunks/0js-43escs3uy.js +1 -0
- package/frontend-build/.next/static/chunks/0jvmviuftg5e2.css +1 -0
- package/frontend-build/.next/static/chunks/0mim5z5~_34t1.js +31 -0
- package/frontend-build/.next/static/chunks/0n_h7vo0a.b~e.js +46 -0
- package/frontend-build/.next/static/chunks/0obt-c9w~4_5f.js +1 -0
- package/frontend-build/.next/static/chunks/0uuygh822k98..css +1 -0
- package/frontend-build/.next/static/chunks/0v9xc_wrxht3o.js +1 -0
- package/frontend-build/.next/static/chunks/0vn.s1wic2p_8.js +1 -0
- package/frontend-build/.next/static/chunks/0x6cedgvid-.9.js +2 -0
- package/frontend-build/.next/static/chunks/11evimknhsnll.js +1 -0
- package/frontend-build/.next/static/chunks/127bqzm7d2i2u.js +1 -0
- package/frontend-build/.next/static/chunks/turbopack-1606efl0p3-k2.js +1 -0
- package/frontend-build/.next/static/media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.woff2 +0 -0
- package/frontend-build/.next/static/media/13bf9871fe164e7f-s.0s19wthhh_6~m.woff2 +0 -0
- package/frontend-build/.next/static/media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2 +0 -0
- package/frontend-build/.next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 +0 -0
- package/frontend-build/.next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 +0 -0
- package/frontend-build/.next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 +0 -0
- package/frontend-build/.next/static/media/3fe682a82f50d426-s.09q3q1i5159bl.woff2 +0 -0
- package/frontend-build/.next/static/media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2 +0 -0
- package/frontend-build/.next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 +0 -0
- package/frontend-build/.next/static/media/57215795b8570f5c-s.0vwgtotjdgnhr.woff2 +0 -0
- package/frontend-build/.next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2 +0 -0
- package/frontend-build/.next/static/media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2 +0 -0
- package/frontend-build/.next/static/media/71b036adf157cdcf-s.03nf~dfjdkf~..woff2 +0 -0
- package/frontend-build/.next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2 +0 -0
- package/frontend-build/.next/static/media/7fea77d1d19108bf-s.0xyeb7czu1stb.woff2 +0 -0
- package/frontend-build/.next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 +0 -0
- package/frontend-build/.next/static/media/89b21bb081cb7469-s.0gfhww.tctz1o.woff2 +0 -0
- package/frontend-build/.next/static/media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2 +0 -0
- package/frontend-build/.next/static/media/90c51ce8fb754fe8-s.00z~hoalba5dm.woff2 +0 -0
- package/frontend-build/.next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 +0 -0
- package/frontend-build/.next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 +0 -0
- package/frontend-build/.next/static/media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2 +0 -0
- package/frontend-build/.next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2 +0 -0
- package/frontend-build/.next/static/media/cc545e633e20c56d-s.0dza.stei.9v7.woff2 +0 -0
- package/frontend-build/.next/static/media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.woff2 +0 -0
- package/frontend-build/.next/static/media/icon.08txep8y1sjlr.svg +4 -0
- package/frontend-build/node_modules/@img/colour/color.cjs +1594 -0
- package/frontend-build/node_modules/@img/colour/index.cjs +1 -0
- package/frontend-build/node_modules/@img/colour/package.json +45 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/README.md +46 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +1 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/package.json +42 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/versions.json +30 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
- package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
- package/frontend-build/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/frontend-build/node_modules/@img/sharp-linux-x64/package.json +46 -0
- package/frontend-build/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/frontend-build/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
- package/frontend-build/node_modules/@next/env/dist/index.js +1 -0
- package/frontend-build/node_modules/@next/env/package.json +36 -0
- package/frontend-build/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
- package/frontend-build/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
- package/frontend-build/node_modules/@swc/helpers/package.json +471 -0
- package/frontend-build/node_modules/client-only/index.js +0 -0
- package/frontend-build/node_modules/client-only/package.json +19 -0
- package/frontend-build/node_modules/detect-libc/lib/detect-libc.js +313 -0
- package/frontend-build/node_modules/detect-libc/lib/elf.js +39 -0
- package/frontend-build/node_modules/detect-libc/lib/filesystem.js +51 -0
- package/frontend-build/node_modules/detect-libc/lib/process.js +24 -0
- package/frontend-build/node_modules/detect-libc/package.json +44 -0
- package/frontend-build/node_modules/next/dist/build/adapter/setup-node-env.external.js +15 -0
- package/frontend-build/node_modules/next/dist/build/define-env.js +255 -0
- package/frontend-build/node_modules/next/dist/build/duration-to-string.js +99 -0
- package/frontend-build/node_modules/next/dist/build/get-supported-browsers.js +38 -0
- package/frontend-build/node_modules/next/dist/build/next-config-ts/require-hook.js +85 -0
- package/frontend-build/node_modules/next/dist/build/next-config-ts/transpile-config.js +251 -0
- package/frontend-build/node_modules/next/dist/build/output/format.js +84 -0
- package/frontend-build/node_modules/next/dist/build/output/log.js +135 -0
- package/frontend-build/node_modules/next/dist/build/segment-config/app/app-segment-config.js +162 -0
- package/frontend-build/node_modules/next/dist/build/segment-config/app/app-segments.js +137 -0
- package/frontend-build/node_modules/next/dist/build/segment-config/app/collect-root-param-keys.js +52 -0
- package/frontend-build/node_modules/next/dist/build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree.js +137 -0
- package/frontend-build/node_modules/next/dist/build/static-paths/app.js +735 -0
- package/frontend-build/node_modules/next/dist/build/static-paths/pages.js +169 -0
- package/frontend-build/node_modules/next/dist/build/static-paths/utils.js +119 -0
- package/frontend-build/node_modules/next/dist/build/swc/helpers.js +15 -0
- package/frontend-build/node_modules/next/dist/build/swc/index.js +1348 -0
- package/frontend-build/node_modules/next/dist/build/swc/install-bindings.js +30 -0
- package/frontend-build/node_modules/next/dist/build/swc/jest-transformer.js +76 -0
- package/frontend-build/node_modules/next/dist/build/swc/loaderWorkerPool.js +40 -0
- package/frontend-build/node_modules/next/dist/build/swc/options.js +403 -0
- package/frontend-build/node_modules/next/dist/build/swc/types.js +6 -0
- package/frontend-build/node_modules/next/dist/build/utils.js +1215 -0
- package/frontend-build/node_modules/next/dist/cli/next-test.js +170 -0
- package/frontend-build/node_modules/next/dist/client/add-base-path.js +24 -0
- package/frontend-build/node_modules/next/dist/client/app-call-server.js +34 -0
- package/frontend-build/node_modules/next/dist/client/app-find-source-map-url.js +39 -0
- package/frontend-build/node_modules/next/dist/client/assign-location.js +29 -0
- package/frontend-build/node_modules/next/dist/client/components/app-router-announcer.js +78 -0
- package/frontend-build/node_modules/next/dist/client/components/app-router-headers.js +138 -0
- package/frontend-build/node_modules/next/dist/client/components/app-router-instance.js +397 -0
- package/frontend-build/node_modules/next/dist/client/components/app-router-utils.js +62 -0
- package/frontend-build/node_modules/next/dist/client/components/app-router.js +514 -0
- package/frontend-build/node_modules/next/dist/client/components/builtin/default.js +35 -0
- package/frontend-build/node_modules/next/dist/client/components/builtin/error-styles.js +165 -0
- package/frontend-build/node_modules/next/dist/client/components/builtin/global-error.js +100 -0
- package/frontend-build/node_modules/next/dist/client/components/dev-root-http-access-fallback-boundary.js +52 -0
- package/frontend-build/node_modules/next/dist/client/components/error-boundary.js +144 -0
- package/frontend-build/node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js +86 -0
- package/frontend-build/node_modules/next/dist/client/components/errors/root-error-boundary.js +41 -0
- package/frontend-build/node_modules/next/dist/client/components/forbidden.js +48 -0
- package/frontend-build/node_modules/next/dist/client/components/handle-isr-error.js +30 -0
- package/frontend-build/node_modules/next/dist/client/components/hooks-server-context.js +42 -0
- package/frontend-build/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js +125 -0
- package/frontend-build/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js +72 -0
- package/frontend-build/node_modules/next/dist/client/components/is-next-router-error.js +23 -0
- package/frontend-build/node_modules/next/dist/client/components/links.js +299 -0
- package/frontend-build/node_modules/next/dist/client/components/match-segments.js +32 -0
- package/frontend-build/node_modules/next/dist/client/components/nav-failure-handler.js +61 -0
- package/frontend-build/node_modules/next/dist/client/components/navigation-devtools.js +126 -0
- package/frontend-build/node_modules/next/dist/client/components/navigation-untracked.js +67 -0
- package/frontend-build/node_modules/next/dist/client/components/navigation.js +225 -0
- package/frontend-build/node_modules/next/dist/client/components/navigation.react-server.js +75 -0
- package/frontend-build/node_modules/next/dist/client/components/not-found.js +42 -0
- package/frontend-build/node_modules/next/dist/client/components/readonly-url-search-params.js +41 -0
- package/frontend-build/node_modules/next/dist/client/components/redirect-boundary.js +107 -0
- package/frontend-build/node_modules/next/dist/client/components/redirect-error.js +43 -0
- package/frontend-build/node_modules/next/dist/client/components/redirect-status-code.js +24 -0
- package/frontend-build/node_modules/next/dist/client/components/redirect.js +91 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +201 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js +21 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +153 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js +32 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +457 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +59 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +1341 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/committed-state.js +49 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +63 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js +38 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +23 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +56 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +83 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +62 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +320 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +58 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +70 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/router-reducer.js +66 -0
- package/frontend-build/node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +60 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/bfcache.js +128 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/cache-key.js +28 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/cache-map.js +305 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/cache.js +1933 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/lru.js +152 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +194 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/navigation.js +597 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +543 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/prefetch.js +31 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/scheduler.js +1249 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/types.js +69 -0
- package/frontend-build/node_modules/next/dist/client/components/segment-cache/vary-path.js +278 -0
- package/frontend-build/node_modules/next/dist/client/components/static-generation-bailout.js +42 -0
- package/frontend-build/node_modules/next/dist/client/components/unauthorized.js +49 -0
- package/frontend-build/node_modules/next/dist/client/components/unrecognized-action-error.js +39 -0
- package/frontend-build/node_modules/next/dist/client/components/unresolved-thenable.js +23 -0
- package/frontend-build/node_modules/next/dist/client/components/unstable-rethrow.browser.js +28 -0
- package/frontend-build/node_modules/next/dist/client/components/unstable-rethrow.js +25 -0
- package/frontend-build/node_modules/next/dist/client/components/unstable-rethrow.server.js +32 -0
- package/frontend-build/node_modules/next/dist/client/components/use-action-queue.js +148 -0
- package/frontend-build/node_modules/next/dist/client/dev/debug-channel.js +72 -0
- package/frontend-build/node_modules/next/dist/client/flight-data-helpers.js +232 -0
- package/frontend-build/node_modules/next/dist/client/has-base-path.js +23 -0
- package/frontend-build/node_modules/next/dist/client/lib/console.js +177 -0
- package/frontend-build/node_modules/next/dist/client/lib/javascript-url.js +32 -0
- package/frontend-build/node_modules/next/dist/client/navigation-build-id.js +53 -0
- package/frontend-build/node_modules/next/dist/client/normalize-trailing-slash.js +36 -0
- package/frontend-build/node_modules/next/dist/client/remove-base-path.js +32 -0
- package/frontend-build/node_modules/next/dist/client/route-params.js +230 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js +339 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/cookies/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/ponyfill/index.js +46 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/ponyfill/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/abort-controller.js.text.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/console.js.text.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/events.js.text.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/index.js +5 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/load.js +18713 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/stream.js +44 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/timers.js.text.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/url.js.text.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@hapi/accept/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@hapi/accept/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@napi-rs/triples/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@napi-rs/triples/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@opentelemetry/api/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/@opentelemetry/api/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/async-retry/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/async-retry/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/async-sema/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/async-sema/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/busboy/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/busboy/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/bytes/index.js +8 -0
- package/frontend-build/node_modules/next/dist/compiled/bytes/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/ci-info/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/ci-info/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/commander/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/commander/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/comment-json/index.js +7 -0
- package/frontend-build/node_modules/next/dist/compiled/comment-json/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/compression/index.js +58 -0
- package/frontend-build/node_modules/next/dist/compiled/compression/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/conf/index.js +15 -0
- package/frontend-build/node_modules/next/dist/compiled/conf/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/content-disposition/index.js +6 -0
- package/frontend-build/node_modules/next/dist/compiled/content-disposition/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/cookie/index.js +7 -0
- package/frontend-build/node_modules/next/dist/compiled/cookie/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/cross-spawn/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/cross-spawn/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/debug/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/debug/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/edge-runtime/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/edge-runtime/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/find-up/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/find-up/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/fresh/index.js +8 -0
- package/frontend-build/node_modules/next/dist/compiled/fresh/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/http-proxy/index.js +34 -0
- package/frontend-build/node_modules/next/dist/compiled/http-proxy/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/image-detector/detector.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/image-size/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/image-size/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/ipaddr.js/ipaddr.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/ipaddr.js/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/is-animated/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/is-animated/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/is-docker/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/is-docker/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/is-wsl/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/is-wsl/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/jsonwebtoken/index.js +11 -0
- package/frontend-build/node_modules/next/dist/compiled/jsonwebtoken/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/nanoid/index.cjs +1 -0
- package/frontend-build/node_modules/next/dist/compiled/nanoid/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +54 -0
- package/frontend-build/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +54 -0
- package/frontend-build/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +6 -0
- package/frontend-build/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +20 -0
- package/frontend-build/node_modules/next/dist/compiled/p-limit/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/p-limit/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/p-queue/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/p-queue/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/path-browserify/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/path-browserify/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/path-to-regexp/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/path-to-regexp/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/picomatch/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/picomatch/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js +133 -0
- package/frontend-build/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js +130 -0
- package/frontend-build/node_modules/next/dist/compiled/react-is/index.js +7 -0
- package/frontend-build/node_modules/next/dist/compiled/react-is/package.json +26 -0
- package/frontend-build/node_modules/next/dist/compiled/regenerator-runtime/package.json +19 -0
- package/frontend-build/node_modules/next/dist/compiled/regenerator-runtime/runtime.js +729 -0
- package/frontend-build/node_modules/next/dist/compiled/semver/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/semver/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/send/index.js +70 -0
- package/frontend-build/node_modules/next/dist/compiled/send/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/source-map/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/source-map/source-map.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/stacktrace-parser/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/string-hash/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/string-hash/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/strip-ansi/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/strip-ansi/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/superstruct/index.cjs +1 -0
- package/frontend-build/node_modules/next/dist/compiled/superstruct/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/tar/index.min.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/tar/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/text-table/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/text-table/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/watchpack/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/watchpack/watchpack.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/ws/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/ws/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/zod/index.cjs +1 -0
- package/frontend-build/node_modules/next/dist/compiled/zod/package.json +1 -0
- package/frontend-build/node_modules/next/dist/compiled/zod-validation-error/index.js +1 -0
- package/frontend-build/node_modules/next/dist/compiled/zod-validation-error/package.json +1 -0
- package/frontend-build/node_modules/next/dist/experimental/testmode/context.js +57 -0
- package/frontend-build/node_modules/next/dist/experimental/testmode/fetch.js +142 -0
- package/frontend-build/node_modules/next/dist/experimental/testmode/httpget.js +26 -0
- package/frontend-build/node_modules/next/dist/experimental/testmode/server-edge.js +32 -0
- package/frontend-build/node_modules/next/dist/experimental/testmode/server.js +62 -0
- package/frontend-build/node_modules/next/dist/export/helpers/create-incremental-cache.js +61 -0
- package/frontend-build/node_modules/next/dist/lib/batcher.js +65 -0
- package/frontend-build/node_modules/next/dist/lib/build-custom-route.js +46 -0
- package/frontend-build/node_modules/next/dist/lib/bundler.js +97 -0
- package/frontend-build/node_modules/next/dist/lib/client-and-server-references.js +54 -0
- package/frontend-build/node_modules/next/dist/lib/coalesced-function.js +39 -0
- package/frontend-build/node_modules/next/dist/lib/compile-error.js +14 -0
- package/frontend-build/node_modules/next/dist/lib/constants.js +420 -0
- package/frontend-build/node_modules/next/dist/lib/create-client-router-filter.js +67 -0
- package/frontend-build/node_modules/next/dist/lib/default-transpiled-packages.json +1 -0
- package/frontend-build/node_modules/next/dist/lib/detached-promise.js +32 -0
- package/frontend-build/node_modules/next/dist/lib/detect-typo.js +51 -0
- package/frontend-build/node_modules/next/dist/lib/download-swc.js +183 -0
- package/frontend-build/node_modules/next/dist/lib/error-telemetry-utils.js +42 -0
- package/frontend-build/node_modules/next/dist/lib/fallback.js +100 -0
- package/frontend-build/node_modules/next/dist/lib/fatal-error.js +14 -0
- package/frontend-build/node_modules/next/dist/lib/file-exists.js +53 -0
- package/frontend-build/node_modules/next/dist/lib/find-config.js +102 -0
- package/frontend-build/node_modules/next/dist/lib/find-pages-dir.js +65 -0
- package/frontend-build/node_modules/next/dist/lib/find-root.js +126 -0
- package/frontend-build/node_modules/next/dist/lib/format-cli-help-output.js +84 -0
- package/frontend-build/node_modules/next/dist/lib/format-dynamic-import-path.js +24 -0
- package/frontend-build/node_modules/next/dist/lib/format-server-error.js +75 -0
- package/frontend-build/node_modules/next/dist/lib/framework/boundary-components.js +62 -0
- package/frontend-build/node_modules/next/dist/lib/framework/boundary-constants.js +36 -0
- package/frontend-build/node_modules/next/dist/lib/fs/rename.js +87 -0
- package/frontend-build/node_modules/next/dist/lib/fs/write-atomic.js +28 -0
- package/frontend-build/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +52 -0
- package/frontend-build/node_modules/next/dist/lib/get-files-in-dir.js +33 -0
- package/frontend-build/node_modules/next/dist/lib/get-network-host.js +44 -0
- package/frontend-build/node_modules/next/dist/lib/get-package-version.js +118 -0
- package/frontend-build/node_modules/next/dist/lib/get-project-dir.js +51 -0
- package/frontend-build/node_modules/next/dist/lib/has-necessary-dependencies.js +49 -0
- package/frontend-build/node_modules/next/dist/lib/helpers/get-cache-directory.js +66 -0
- package/frontend-build/node_modules/next/dist/lib/helpers/get-npx-command.js +29 -0
- package/frontend-build/node_modules/next/dist/lib/helpers/get-online.js +50 -0
- package/frontend-build/node_modules/next/dist/lib/helpers/get-pkg-manager.js +63 -0
- package/frontend-build/node_modules/next/dist/lib/helpers/get-registry.js +45 -0
- package/frontend-build/node_modules/next/dist/lib/helpers/get-reserved-port.js +116 -0
- package/frontend-build/node_modules/next/dist/lib/helpers/install.js +83 -0
- package/frontend-build/node_modules/next/dist/lib/import-next-warning.js +50 -0
- package/frontend-build/node_modules/next/dist/lib/inline-static-env.js +112 -0
- package/frontend-build/node_modules/next/dist/lib/install-dependencies.js +40 -0
- package/frontend-build/node_modules/next/dist/lib/interop-default.js +16 -0
- package/frontend-build/node_modules/next/dist/lib/is-api-route.js +15 -0
- package/frontend-build/node_modules/next/dist/lib/is-app-page-route.js +15 -0
- package/frontend-build/node_modules/next/dist/lib/is-app-route-route.js +15 -0
- package/frontend-build/node_modules/next/dist/lib/is-edge-runtime.js +16 -0
- package/frontend-build/node_modules/next/dist/lib/is-error.js +78 -0
- package/frontend-build/node_modules/next/dist/lib/is-interception-route-rewrite.js +18 -0
- package/frontend-build/node_modules/next/dist/lib/is-internal-component.js +36 -0
- package/frontend-build/node_modules/next/dist/lib/is-serializable-props.js +106 -0
- package/frontend-build/node_modules/next/dist/lib/known-edge-safe-packages.json +1 -0
- package/frontend-build/node_modules/next/dist/lib/load-custom-routes.js +594 -0
- package/frontend-build/node_modules/next/dist/lib/memory/gc-observer.js +53 -0
- package/frontend-build/node_modules/next/dist/lib/memory/shutdown.js +29 -0
- package/frontend-build/node_modules/next/dist/lib/memory/startup.js +47 -0
- package/frontend-build/node_modules/next/dist/lib/memory/trace.js +109 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/constants.js +40 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/default-metadata.js +82 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/generate/icon-mark.js +22 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/generate/utils.js +52 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/get-metadata-route.js +123 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/is-metadata-route.js +221 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/metadata-context.js +18 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/metadata.js +1686 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/resolve-metadata.js +884 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js +232 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js +56 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js +199 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/resolvers/resolve-title.js +40 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/resolvers/resolve-url.js +135 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/types/alternative-urls-types.js +7 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/types/extra-types.js +9 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/types/icons.js +6 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/types/manifest-types.js +6 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/types/metadata-interface.js +18 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/types/metadata-types.js +10 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/types/opengraph-types.js +6 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/types/resolvers.js +6 -0
- package/frontend-build/node_modules/next/dist/lib/metadata/types/twitter-types.js +7 -0
- package/frontend-build/node_modules/next/dist/lib/mime-type.js +20 -0
- package/frontend-build/node_modules/next/dist/lib/mkcert.js +204 -0
- package/frontend-build/node_modules/next/dist/lib/multi-file-writer.js +75 -0
- package/frontend-build/node_modules/next/dist/lib/needs-experimental-react.js +16 -0
- package/frontend-build/node_modules/next/dist/lib/non-nullable.js +15 -0
- package/frontend-build/node_modules/next/dist/lib/normalize-path.js +21 -0
- package/frontend-build/node_modules/next/dist/lib/oxford-comma-list.js +15 -0
- package/frontend-build/node_modules/next/dist/lib/page-types.js +18 -0
- package/frontend-build/node_modules/next/dist/lib/patch-incorrect-lockfile.js +185 -0
- package/frontend-build/node_modules/next/dist/lib/pick.js +19 -0
- package/frontend-build/node_modules/next/dist/lib/picocolors.js +177 -0
- package/frontend-build/node_modules/next/dist/lib/pretty-bytes.js +74 -0
- package/frontend-build/node_modules/next/dist/lib/realpath.js +20 -0
- package/frontend-build/node_modules/next/dist/lib/recursive-copy.js +76 -0
- package/frontend-build/node_modules/next/dist/lib/recursive-delete.js +137 -0
- package/frontend-build/node_modules/next/dist/lib/recursive-readdir.js +124 -0
- package/frontend-build/node_modules/next/dist/lib/redirect-status.js +46 -0
- package/frontend-build/node_modules/next/dist/lib/require-instrumentation-client.js +26 -0
- package/frontend-build/node_modules/next/dist/lib/resolve-build-paths.js +154 -0
- package/frontend-build/node_modules/next/dist/lib/resolve-from.js +65 -0
- package/frontend-build/node_modules/next/dist/lib/route-pattern-normalizer.js +107 -0
- package/frontend-build/node_modules/next/dist/lib/scheduler.js +64 -0
- package/frontend-build/node_modules/next/dist/lib/semver-noop.js +18 -0
- package/frontend-build/node_modules/next/dist/lib/server-external-packages.jsonc +103 -0
- package/frontend-build/node_modules/next/dist/lib/setup-exception-listeners.js +11 -0
- package/frontend-build/node_modules/next/dist/lib/static-env.js +92 -0
- package/frontend-build/node_modules/next/dist/lib/try-to-parse-path.js +67 -0
- package/frontend-build/node_modules/next/dist/lib/turbopack-warning.js +185 -0
- package/frontend-build/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +243 -0
- package/frontend-build/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +153 -0
- package/frontend-build/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js +52 -0
- package/frontend-build/node_modules/next/dist/lib/typescript/missingDependencyError.js +27 -0
- package/frontend-build/node_modules/next/dist/lib/typescript/runTypeCheck.js +149 -0
- package/frontend-build/node_modules/next/dist/lib/typescript/type-paths.js +51 -0
- package/frontend-build/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +75 -0
- package/frontend-build/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +395 -0
- package/frontend-build/node_modules/next/dist/lib/url.js +75 -0
- package/frontend-build/node_modules/next/dist/lib/verify-partytown-setup.js +115 -0
- package/frontend-build/node_modules/next/dist/lib/verify-root-layout.js +165 -0
- package/frontend-build/node_modules/next/dist/lib/verify-typescript-setup.js +228 -0
- package/frontend-build/node_modules/next/dist/lib/wait.js +19 -0
- package/frontend-build/node_modules/next/dist/lib/with-promise-cache.js +24 -0
- package/frontend-build/node_modules/next/dist/lib/worker.js +234 -0
- package/frontend-build/node_modules/next/dist/server/ReactDOMServerPages.js +16 -0
- package/frontend-build/node_modules/next/dist/server/accept-header.js +132 -0
- package/frontend-build/node_modules/next/dist/server/after/after-context.js +140 -0
- package/frontend-build/node_modules/next/dist/server/after/after.js +26 -0
- package/frontend-build/node_modules/next/dist/server/after/awaiter.js +74 -0
- package/frontend-build/node_modules/next/dist/server/after/builtin-request-context.js +38 -0
- package/frontend-build/node_modules/next/dist/server/after/index.js +21 -0
- package/frontend-build/node_modules/next/dist/server/after/run-with-after.js +35 -0
- package/frontend-build/node_modules/next/dist/server/api-utils/get-cookie-parser.js +22 -0
- package/frontend-build/node_modules/next/dist/server/api-utils/index.js +201 -0
- package/frontend-build/node_modules/next/dist/server/api-utils/node/api-resolver.js +395 -0
- package/frontend-build/node_modules/next/dist/server/api-utils/node/parse-body.js +79 -0
- package/frontend-build/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js +86 -0
- package/frontend-build/node_modules/next/dist/server/api-utils/web.js +17 -0
- package/frontend-build/node_modules/next/dist/server/app-render/action-async-storage-instance.js +14 -0
- package/frontend-build/node_modules/next/dist/server/app-render/action-async-storage.external.js +13 -0
- package/frontend-build/node_modules/next/dist/server/app-render/action-handler.js +1020 -0
- package/frontend-build/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js +14 -0
- package/frontend-build/node_modules/next/dist/server/app-render/after-task-async-storage.external.js +13 -0
- package/frontend-build/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +167 -0
- package/frontend-build/node_modules/next/dist/server/app-render/app-render-render-utils.js +76 -0
- package/frontend-build/node_modules/next/dist/server/app-render/app-render-scheduling.js +188 -0
- package/frontend-build/node_modules/next/dist/server/app-render/app-render.js +4469 -0
- package/frontend-build/node_modules/next/dist/server/app-render/async-local-storage.js +76 -0
- package/frontend-build/node_modules/next/dist/server/app-render/cache-signal.js +181 -0
- package/frontend-build/node_modules/next/dist/server/app-render/collect-segment-data.js +600 -0
- package/frontend-build/node_modules/next/dist/server/app-render/console-async-storage-instance.js +14 -0
- package/frontend-build/node_modules/next/dist/server/app-render/console-async-storage.external.js +13 -0
- package/frontend-build/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +33 -0
- package/frontend-build/node_modules/next/dist/server/app-render/create-component-tree.js +840 -0
- package/frontend-build/node_modules/next/dist/server/app-render/create-error-handler.js +189 -0
- package/frontend-build/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +102 -0
- package/frontend-build/node_modules/next/dist/server/app-render/csrf-protection.js +86 -0
- package/frontend-build/node_modules/next/dist/server/app-render/debug-channel-server.js +30 -0
- package/frontend-build/node_modules/next/dist/server/app-render/debug-channel-server.web.js +71 -0
- package/frontend-build/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js +14 -0
- package/frontend-build/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js +13 -0
- package/frontend-build/node_modules/next/dist/server/app-render/dynamic-rendering.js +1144 -0
- package/frontend-build/node_modules/next/dist/server/app-render/encryption-utils-server.js +114 -0
- package/frontend-build/node_modules/next/dist/server/app-render/encryption-utils.js +93 -0
- package/frontend-build/node_modules/next/dist/server/app-render/encryption.js +259 -0
- package/frontend-build/node_modules/next/dist/server/app-render/entry-base.js +256 -0
- package/frontend-build/node_modules/next/dist/server/app-render/flight-render-result.js +28 -0
- package/frontend-build/node_modules/next/dist/server/app-render/get-asset-query-string.js +29 -0
- package/frontend-build/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js +49 -0
- package/frontend-build/node_modules/next/dist/server/app-render/get-layer-assets.js +65 -0
- package/frontend-build/node_modules/next/dist/server/app-render/get-preloadable-fonts.js +39 -0
- package/frontend-build/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +44 -0
- package/frontend-build/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js +25 -0
- package/frontend-build/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js +19 -0
- package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js +13 -0
- package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/boundary-impl.js +103 -0
- package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js +18 -0
- package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/instant-config.js +181 -0
- package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/instant-samples-client.js +128 -0
- package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js +432 -0
- package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js +33 -0
- package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/instant-validation.js +713 -0
- package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js +96 -0
- package/frontend-build/node_modules/next/dist/server/app-render/interop-default.js +17 -0
- package/frontend-build/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js +92 -0
- package/frontend-build/node_modules/next/dist/server/app-render/manifests-singleton.js +264 -0
- package/frontend-build/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +28 -0
- package/frontend-build/node_modules/next/dist/server/app-render/module-loading/track-dynamic-import.js +57 -0
- package/frontend-build/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js +32 -0
- package/frontend-build/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +66 -0
- package/frontend-build/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js +49 -0
- package/frontend-build/node_modules/next/dist/server/app-render/postponed-state.js +157 -0
- package/frontend-build/node_modules/next/dist/server/app-render/prospective-render-utils.js +74 -0
- package/frontend-build/node_modules/next/dist/server/app-render/react-large-shell-error.js +17 -0
- package/frontend-build/node_modules/next/dist/server/app-render/react-server.node.js +39 -0
- package/frontend-build/node_modules/next/dist/server/app-render/render-css-resource.js +52 -0
- package/frontend-build/node_modules/next/dist/server/app-render/required-scripts.js +76 -0
- package/frontend-build/node_modules/next/dist/server/app-render/rsc/postpone.js +18 -0
- package/frontend-build/node_modules/next/dist/server/app-render/rsc/preloads.js +74 -0
- package/frontend-build/node_modules/next/dist/server/app-render/rsc/taint.js +79 -0
- package/frontend-build/node_modules/next/dist/server/app-render/segment-explorer-path.js +128 -0
- package/frontend-build/node_modules/next/dist/server/app-render/server-inserted-html.js +77 -0
- package/frontend-build/node_modules/next/dist/server/app-render/staged-rendering.js +343 -0
- package/frontend-build/node_modules/next/dist/server/app-render/stale-time.js +111 -0
- package/frontend-build/node_modules/next/dist/server/app-render/stream-ops.js +106 -0
- package/frontend-build/node_modules/next/dist/server/app-render/stream-ops.web.js +163 -0
- package/frontend-build/node_modules/next/dist/server/app-render/strip-flight-headers.js +18 -0
- package/frontend-build/node_modules/next/dist/server/app-render/types.js +65 -0
- package/frontend-build/node_modules/next/dist/server/app-render/use-flight-response.js +214 -0
- package/frontend-build/node_modules/next/dist/server/app-render/vary-params.js +336 -0
- package/frontend-build/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +232 -0
- package/frontend-build/node_modules/next/dist/server/app-render/work-async-storage-instance.js +14 -0
- package/frontend-build/node_modules/next/dist/server/app-render/work-async-storage.external.js +13 -0
- package/frontend-build/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js +14 -0
- package/frontend-build/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +280 -0
- package/frontend-build/node_modules/next/dist/server/async-storage/draft-mode-provider.js +62 -0
- package/frontend-build/node_modules/next/dist/server/async-storage/request-store.js +144 -0
- package/frontend-build/node_modules/next/dist/server/async-storage/with-store.js +6 -0
- package/frontend-build/node_modules/next/dist/server/async-storage/work-store.js +91 -0
- package/frontend-build/node_modules/next/dist/server/base-http/helpers.js +36 -0
- package/frontend-build/node_modules/next/dist/server/base-http/index.js +54 -0
- package/frontend-build/node_modules/next/dist/server/base-http/node.js +147 -0
- package/frontend-build/node_modules/next/dist/server/base-http/web.js +124 -0
- package/frontend-build/node_modules/next/dist/server/base-server.js +1874 -0
- package/frontend-build/node_modules/next/dist/server/body-streams.js +114 -0
- package/frontend-build/node_modules/next/dist/server/cache-dir.js +26 -0
- package/frontend-build/node_modules/next/dist/server/capsize-font-metrics.json +181516 -0
- package/frontend-build/node_modules/next/dist/server/ci-info.js +41 -0
- package/frontend-build/node_modules/next/dist/server/client-component-renderer-logger.js +70 -0
- package/frontend-build/node_modules/next/dist/server/config-schema.js +718 -0
- package/frontend-build/node_modules/next/dist/server/config-shared.js +369 -0
- package/frontend-build/node_modules/next/dist/server/config-utils.js +185 -0
- package/frontend-build/node_modules/next/dist/server/config.js +1545 -0
- package/frontend-build/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js +96 -0
- package/frontend-build/node_modules/next/dist/server/crypto-utils.js +70 -0
- package/frontend-build/node_modules/next/dist/server/dev/browser-logs/file-logger.js +186 -0
- package/frontend-build/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +558 -0
- package/frontend-build/node_modules/next/dist/server/dev/browser-logs/source-map.js +222 -0
- package/frontend-build/node_modules/next/dist/server/dev/debug-channel.js +87 -0
- package/frontend-build/node_modules/next/dist/server/dev/dev-indicator-server-state.js +15 -0
- package/frontend-build/node_modules/next/dist/server/dev/get-source-map-from-file.js +100 -0
- package/frontend-build/node_modules/next/dist/server/dev/hot-middleware.js +274 -0
- package/frontend-build/node_modules/next/dist/server/dev/hot-reloader-rspack.js +171 -0
- package/frontend-build/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js +56 -0
- package/frontend-build/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1480 -0
- package/frontend-build/node_modules/next/dist/server/dev/hot-reloader-types.js +58 -0
- package/frontend-build/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1386 -0
- package/frontend-build/node_modules/next/dist/server/dev/log-requests.js +149 -0
- package/frontend-build/node_modules/next/dist/server/dev/messages.js +74 -0
- package/frontend-build/node_modules/next/dist/server/dev/middleware-turbopack.js +403 -0
- package/frontend-build/node_modules/next/dist/server/dev/middleware-webpack.js +483 -0
- package/frontend-build/node_modules/next/dist/server/dev/node-stack-frames.js +72 -0
- package/frontend-build/node_modules/next/dist/server/dev/on-demand-entry-handler.js +773 -0
- package/frontend-build/node_modules/next/dist/server/dev/parse-version-info.js +108 -0
- package/frontend-build/node_modules/next/dist/server/dev/require-cache.js +79 -0
- package/frontend-build/node_modules/next/dist/server/dev/serialized-errors.js +67 -0
- package/frontend-build/node_modules/next/dist/server/dev/server-action-logger.js +37 -0
- package/frontend-build/node_modules/next/dist/server/dev/static-paths-worker.js +104 -0
- package/frontend-build/node_modules/next/dist/server/dev/turbopack-utils.js +687 -0
- package/frontend-build/node_modules/next/dist/server/dynamic-rendering-utils.js +108 -0
- package/frontend-build/node_modules/next/dist/server/font-utils.js +43 -0
- package/frontend-build/node_modules/next/dist/server/get-app-route-from-entrypoint.js +30 -0
- package/frontend-build/node_modules/next/dist/server/get-page-files.js +23 -0
- package/frontend-build/node_modules/next/dist/server/get-route-from-entrypoint.js +35 -0
- package/frontend-build/node_modules/next/dist/server/htmlescape.js +37 -0
- package/frontend-build/node_modules/next/dist/server/image-optimizer.js +1220 -0
- package/frontend-build/node_modules/next/dist/server/instrumentation/types.js +6 -0
- package/frontend-build/node_modules/next/dist/server/instrumentation/utils.js +21 -0
- package/frontend-build/node_modules/next/dist/server/internal-utils.js +39 -0
- package/frontend-build/node_modules/next/dist/server/is-private-ip.js +36 -0
- package/frontend-build/node_modules/next/dist/server/lib/app-dir-module.js +59 -0
- package/frontend-build/node_modules/next/dist/server/lib/app-info-log.js +132 -0
- package/frontend-build/node_modules/next/dist/server/lib/async-callback-set.js +29 -0
- package/frontend-build/node_modules/next/dist/server/lib/cache-control.js +22 -0
- package/frontend-build/node_modules/next/dist/server/lib/cache-handlers/default.external.js +18 -0
- package/frontend-build/node_modules/next/dist/server/lib/cache-handlers/default.js +160 -0
- package/frontend-build/node_modules/next/dist/server/lib/cache-handlers/types.js +8 -0
- package/frontend-build/node_modules/next/dist/server/lib/chrome-devtools-workspace.js +116 -0
- package/frontend-build/node_modules/next/dist/server/lib/clone-response.js +77 -0
- package/frontend-build/node_modules/next/dist/server/lib/cpu-profile.js +59 -0
- package/frontend-build/node_modules/next/dist/server/lib/decode-query-path-parameter.js +26 -0
- package/frontend-build/node_modules/next/dist/server/lib/dedupe-fetch.js +163 -0
- package/frontend-build/node_modules/next/dist/server/lib/dev-bundler-service.js +95 -0
- package/frontend-build/node_modules/next/dist/server/lib/disk-lru-cache.external.js +57 -0
- package/frontend-build/node_modules/next/dist/server/lib/etag.js +56 -0
- package/frontend-build/node_modules/next/dist/server/lib/experimental/create-env-definitions.js +48 -0
- package/frontend-build/node_modules/next/dist/server/lib/experimental/ppr.js +47 -0
- package/frontend-build/node_modules/next/dist/server/lib/find-page-file.js +147 -0
- package/frontend-build/node_modules/next/dist/server/lib/fix-mojibake.js +25 -0
- package/frontend-build/node_modules/next/dist/server/lib/format-hostname.js +16 -0
- package/frontend-build/node_modules/next/dist/server/lib/i18n-provider.js +129 -0
- package/frontend-build/node_modules/next/dist/server/lib/implicit-tags.js +77 -0
- package/frontend-build/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +335 -0
- package/frontend-build/node_modules/next/dist/server/lib/incremental-cache/index.js +501 -0
- package/frontend-build/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +57 -0
- package/frontend-build/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +73 -0
- package/frontend-build/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js +55 -0
- package/frontend-build/node_modules/next/dist/server/lib/install-code-frame.js +22 -0
- package/frontend-build/node_modules/next/dist/server/lib/is-ipv6.js +41 -0
- package/frontend-build/node_modules/next/dist/server/lib/lazy-result.js +46 -0
- package/frontend-build/node_modules/next/dist/server/lib/lru-cache.js +191 -0
- package/frontend-build/node_modules/next/dist/server/lib/match-next-data-pathname.js +18 -0
- package/frontend-build/node_modules/next/dist/server/lib/mock-request.js +416 -0
- package/frontend-build/node_modules/next/dist/server/lib/module-loader/module-loader.js +8 -0
- package/frontend-build/node_modules/next/dist/server/lib/module-loader/node-module-loader.js +25 -0
- package/frontend-build/node_modules/next/dist/server/lib/module-loader/route-module-loader.js +26 -0
- package/frontend-build/node_modules/next/dist/server/lib/node-fs-methods.js +28 -0
- package/frontend-build/node_modules/next/dist/server/lib/parse-stack.js +46 -0
- package/frontend-build/node_modules/next/dist/server/lib/patch-fetch.js +978 -0
- package/frontend-build/node_modules/next/dist/server/lib/patch-set-header.js +38 -0
- package/frontend-build/node_modules/next/dist/server/lib/postponed-request-body.js +64 -0
- package/frontend-build/node_modules/next/dist/server/lib/render-server.js +155 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-server.js +696 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js +110 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/build-data-route.js +48 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.js +50 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js +211 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/decode-path-params.js +42 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/filesystem.js +591 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js +89 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +96 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/is-postpone.js +16 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/proxy-request.js +118 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +629 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +286 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/router-server-context.js +26 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/typegen.js +858 -0
- package/frontend-build/node_modules/next/dist/server/lib/router-utils/types.js +6 -0
- package/frontend-build/node_modules/next/dist/server/lib/server-action-request-meta.js +53 -0
- package/frontend-build/node_modules/next/dist/server/lib/server-ipc/utils.js +81 -0
- package/frontend-build/node_modules/next/dist/server/lib/source-maps.js +196 -0
- package/frontend-build/node_modules/next/dist/server/lib/start-server.js +494 -0
- package/frontend-build/node_modules/next/dist/server/lib/streaming-metadata.js +38 -0
- package/frontend-build/node_modules/next/dist/server/lib/to-route.js +37 -0
- package/frontend-build/node_modules/next/dist/server/lib/trace/constants.js +203 -0
- package/frontend-build/node_modules/next/dist/server/lib/trace/tracer.js +280 -0
- package/frontend-build/node_modules/next/dist/server/lib/trace/utils.js +16 -0
- package/frontend-build/node_modules/next/dist/server/lib/types.js +6 -0
- package/frontend-build/node_modules/next/dist/server/lib/utils.js +278 -0
- package/frontend-build/node_modules/next/dist/server/lib/worker-utils.js +36 -0
- package/frontend-build/node_modules/next/dist/server/load-components.js +179 -0
- package/frontend-build/node_modules/next/dist/server/load-default-error-components.js +41 -0
- package/frontend-build/node_modules/next/dist/server/load-manifest.external.js +117 -0
- package/frontend-build/node_modules/next/dist/server/match-bundle.js +25 -0
- package/frontend-build/node_modules/next/dist/server/mcp/get-mcp-middleware.js +49 -0
- package/frontend-build/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js +41 -0
- package/frontend-build/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js +82 -0
- package/frontend-build/node_modules/next/dist/server/mcp/tools/get-errors.js +114 -0
- package/frontend-build/node_modules/next/dist/server/mcp/tools/get-logs.js +67 -0
- package/frontend-build/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +188 -0
- package/frontend-build/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +59 -0
- package/frontend-build/node_modules/next/dist/server/mcp/tools/get-routes.js +136 -0
- package/frontend-build/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +121 -0
- package/frontend-build/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js +31 -0
- package/frontend-build/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js +90 -0
- package/frontend-build/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +137 -0
- package/frontend-build/node_modules/next/dist/server/next-server.js +1429 -0
- package/frontend-build/node_modules/next/dist/server/next-typescript.js +13 -0
- package/frontend-build/node_modules/next/dist/server/next.js +455 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-baseline.js +25 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +301 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/console-exit.js +49 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/console-file.js +56 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/date.js +52 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/error-inspect.js +8 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +577 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js +33 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/io-utils.js +195 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +103 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js +91 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/random.js +28 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js +508 -0
- package/frontend-build/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +45 -0
- package/frontend-build/node_modules/next/dist/server/node-environment.js +19 -0
- package/frontend-build/node_modules/next/dist/server/node-polyfill-crypto.js +21 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js +33 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js +54 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js +22 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js +40 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js +55 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/built/app/index.js +42 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/built/pages/index.js +44 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js +55 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js +22 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js +19 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js +19 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/locale-route-normalizer.js +26 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/normalizer.js +6 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/normalizers.js +23 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/prefixing-normalizer.js +26 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/request/base-path.js +25 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/request/next-data.js +38 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/request/pathname-normalizer.js +6 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/request/prefix.js +39 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/request/rsc.js +19 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +33 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/request/suffix.js +27 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/underscore-normalizer.js +17 -0
- package/frontend-build/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js +17 -0
- package/frontend-build/node_modules/next/dist/server/og/image-response.js +53 -0
- package/frontend-build/node_modules/next/dist/server/patch-error-inspect.js +453 -0
- package/frontend-build/node_modules/next/dist/server/pipe-readable.js +140 -0
- package/frontend-build/node_modules/next/dist/server/post-process.js +39 -0
- package/frontend-build/node_modules/next/dist/server/render-result.js +204 -0
- package/frontend-build/node_modules/next/dist/server/render.js +1141 -0
- package/frontend-build/node_modules/next/dist/server/request/connection.js +133 -0
- package/frontend-build/node_modules/next/dist/server/request/cookies.js +235 -0
- package/frontend-build/node_modules/next/dist/server/request/draft-mode.js +230 -0
- package/frontend-build/node_modules/next/dist/server/request/fallback-params.js +69 -0
- package/frontend-build/node_modules/next/dist/server/request/headers.js +229 -0
- package/frontend-build/node_modules/next/dist/server/request/params.js +527 -0
- package/frontend-build/node_modules/next/dist/server/request/pathname.js +119 -0
- package/frontend-build/node_modules/next/dist/server/request/root-params.js +194 -0
- package/frontend-build/node_modules/next/dist/server/request/search-params.js +526 -0
- package/frontend-build/node_modules/next/dist/server/request/utils.js +51 -0
- package/frontend-build/node_modules/next/dist/server/request-meta.js +55 -0
- package/frontend-build/node_modules/next/dist/server/require-hook.js +82 -0
- package/frontend-build/node_modules/next/dist/server/require.js +109 -0
- package/frontend-build/node_modules/next/dist/server/response-cache/index.js +311 -0
- package/frontend-build/node_modules/next/dist/server/response-cache/types.js +41 -0
- package/frontend-build/node_modules/next/dist/server/response-cache/utils.js +104 -0
- package/frontend-build/node_modules/next/dist/server/response-cache/web.js +101 -0
- package/frontend-build/node_modules/next/dist/server/resume-data-cache/cache-store.js +96 -0
- package/frontend-build/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +124 -0
- package/frontend-build/node_modules/next/dist/server/revalidation-utils.js +157 -0
- package/frontend-build/node_modules/next/dist/server/route-definitions/app-page-route-definition.js +16 -0
- package/frontend-build/node_modules/next/dist/server/route-definitions/app-route-route-definition.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-definitions/locale-route-definition.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-definitions/pages-api-route-definition.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-definitions/pages-route-definition.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-definitions/route-definition.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-kind.js +32 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js +239 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js +120 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +55 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js +43 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +91 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js +112 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js +77 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js +77 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js +28 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js +106 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js +42 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/file-reader.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js +30 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/manifest-loader.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js +34 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js +20 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js +21 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js +55 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js +64 -0
- package/frontend-build/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js +18 -0
- package/frontend-build/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js +15 -0
- package/frontend-build/node_modules/next/dist/server/route-matchers/locale-route-matcher.js +68 -0
- package/frontend-build/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js +30 -0
- package/frontend-build/node_modules/next/dist/server/route-matchers/pages-route-matcher.js +30 -0
- package/frontend-build/node_modules/next/dist/server/route-matchers/route-matcher.js +54 -0
- package/frontend-build/node_modules/next/dist/server/route-matches/app-page-route-match.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-matches/app-route-route-match.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-matches/locale-route-match.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-matches/pages-api-route-match.js +16 -0
- package/frontend-build/node_modules/next/dist/server/route-matches/pages-route-match.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-matches/route-match.js +6 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +51 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/module.compiled.js +36 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/module.js +162 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/module.render.js +24 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js +25 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js +87 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js +140 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-compiler-runtime.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-server.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-static.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js +125 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-compiler-runtime.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom-server.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-route/helpers/auto-implement-methods.js +85 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-route/helpers/clean-url.js +24 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-route/helpers/get-pathname-from-absolute-path.js +29 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-route/helpers/is-static-gen-enabled.js +15 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-route/helpers/parsed-url-query-to-params.js +20 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-route/module.compiled.js +36 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-route/module.js +914 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/app-route/shared-modules.js +56 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/checks.js +45 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/builtin/_error.js +100 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/module.compiled.js +20 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/module.js +92 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/module.render.js +24 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/pages-handler.js +545 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js +102 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js +4 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages-api/module.compiled.js +20 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/pages-api/module.js +58 -0
- package/frontend-build/node_modules/next/dist/server/route-modules/route-module.js +650 -0
- package/frontend-build/node_modules/next/dist/server/runtime-reacts.external.js +46 -0
- package/frontend-build/node_modules/next/dist/server/send-payload.js +88 -0
- package/frontend-build/node_modules/next/dist/server/send-response.js +70 -0
- package/frontend-build/node_modules/next/dist/server/serve-static.js +66 -0
- package/frontend-build/node_modules/next/dist/server/server-route-utils.js +30 -0
- package/frontend-build/node_modules/next/dist/server/server-utils.js +323 -0
- package/frontend-build/node_modules/next/dist/server/setup-http-agent-env.js +31 -0
- package/frontend-build/node_modules/next/dist/server/stream-utils/encoded-tags.js +122 -0
- package/frontend-build/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +918 -0
- package/frontend-build/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +74 -0
- package/frontend-build/node_modules/next/dist/server/typescript/constant.js +98 -0
- package/frontend-build/node_modules/next/dist/server/typescript/index.js +199 -0
- package/frontend-build/node_modules/next/dist/server/typescript/rules/client-boundary.js +97 -0
- package/frontend-build/node_modules/next/dist/server/typescript/rules/config.js +512 -0
- package/frontend-build/node_modules/next/dist/server/typescript/rules/entry.js +149 -0
- package/frontend-build/node_modules/next/dist/server/typescript/rules/error.js +38 -0
- package/frontend-build/node_modules/next/dist/server/typescript/rules/metadata.js +234 -0
- package/frontend-build/node_modules/next/dist/server/typescript/rules/server-boundary.js +115 -0
- package/frontend-build/node_modules/next/dist/server/typescript/rules/server.js +79 -0
- package/frontend-build/node_modules/next/dist/server/typescript/utils.js +212 -0
- package/frontend-build/node_modules/next/dist/server/use-cache/cache-life.js +163 -0
- package/frontend-build/node_modules/next/dist/server/use-cache/cache-tag.js +52 -0
- package/frontend-build/node_modules/next/dist/server/use-cache/constants.js +28 -0
- package/frontend-build/node_modules/next/dist/server/use-cache/handlers.js +121 -0
- package/frontend-build/node_modules/next/dist/server/use-cache/use-cache-errors.js +36 -0
- package/frontend-build/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1588 -0
- package/frontend-build/node_modules/next/dist/server/utils.js +73 -0
- package/frontend-build/node_modules/next/dist/server/web/adapter.js +392 -0
- package/frontend-build/node_modules/next/dist/server/web/edge-route-module-wrapper.js +123 -0
- package/frontend-build/node_modules/next/dist/server/web/error.js +54 -0
- package/frontend-build/node_modules/next/dist/server/web/exports/index.js +56 -0
- package/frontend-build/node_modules/next/dist/server/web/get-edge-preview-props.js +23 -0
- package/frontend-build/node_modules/next/dist/server/web/globals.js +128 -0
- package/frontend-build/node_modules/next/dist/server/web/http.js +39 -0
- package/frontend-build/node_modules/next/dist/server/web/internal-edge-wait-until.js +64 -0
- package/frontend-build/node_modules/next/dist/server/web/next-url.js +199 -0
- package/frontend-build/node_modules/next/dist/server/web/sandbox/context.js +462 -0
- package/frontend-build/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js +35 -0
- package/frontend-build/node_modules/next/dist/server/web/sandbox/index.js +28 -0
- package/frontend-build/node_modules/next/dist/server/web/sandbox/resource-managers.js +88 -0
- package/frontend-build/node_modules/next/dist/server/web/sandbox/sandbox.js +137 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +192 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js +142 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js +30 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js +211 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/cookies.js +29 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/fetch-event.js +98 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/image-response.js +22 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/request.js +99 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/response.js +136 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/revalidate.js +214 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +289 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/unstable-no-store.js +51 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/url-pattern.js +14 -0
- package/frontend-build/node_modules/next/dist/server/web/spec-extension/user-agent.js +46 -0
- package/frontend-build/node_modules/next/dist/server/web/types.js +6 -0
- package/frontend-build/node_modules/next/dist/server/web/utils.js +151 -0
- package/frontend-build/node_modules/next/dist/server/web/web-on-close.js +87 -0
- package/frontend-build/node_modules/next/dist/shared/lib/action-revalidation-kind.js +31 -0
- package/frontend-build/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js +50 -0
- package/frontend-build/node_modules/next/dist/shared/lib/app-router-types.js +46 -0
- package/frontend-build/node_modules/next/dist/shared/lib/constants.js +448 -0
- package/frontend-build/node_modules/next/dist/shared/lib/deep-freeze.js +30 -0
- package/frontend-build/node_modules/next/dist/shared/lib/deployment-id.js +63 -0
- package/frontend-build/node_modules/next/dist/shared/lib/dset.js +34 -0
- package/frontend-build/node_modules/next/dist/shared/lib/encode-uri-path.js +15 -0
- package/frontend-build/node_modules/next/dist/shared/lib/entry-constants.js +36 -0
- package/frontend-build/node_modules/next/dist/shared/lib/error-source.js +36 -0
- package/frontend-build/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +39 -0
- package/frontend-build/node_modules/next/dist/shared/lib/errors/code-frame.js +20 -0
- package/frontend-build/node_modules/next/dist/shared/lib/errors/constants.js +19 -0
- package/frontend-build/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js +24 -0
- package/frontend-build/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js +20 -0
- package/frontend-build/node_modules/next/dist/shared/lib/escape-regexp.js +22 -0
- package/frontend-build/node_modules/next/dist/shared/lib/get-hostname.js +23 -0
- package/frontend-build/node_modules/next/dist/shared/lib/hash.js +42 -0
- package/frontend-build/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js +18 -0
- package/frontend-build/node_modules/next/dist/shared/lib/head.js +163 -0
- package/frontend-build/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js +60 -0
- package/frontend-build/node_modules/next/dist/shared/lib/html-context.shared-runtime.js +40 -0
- package/frontend-build/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js +25 -0
- package/frontend-build/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js +59 -0
- package/frontend-build/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js +54 -0
- package/frontend-build/node_modules/next/dist/shared/lib/image-blur-svg.js +22 -0
- package/frontend-build/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js +19 -0
- package/frontend-build/node_modules/next/dist/shared/lib/image-config.js +77 -0
- package/frontend-build/node_modules/next/dist/shared/lib/invariant-error.js +18 -0
- package/frontend-build/node_modules/next/dist/shared/lib/is-plain-object.js +42 -0
- package/frontend-build/node_modules/next/dist/shared/lib/is-thenable.js +20 -0
- package/frontend-build/node_modules/next/dist/shared/lib/isomorphic/path.js +14 -0
- package/frontend-build/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js +37 -0
- package/frontend-build/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js +19 -0
- package/frontend-build/node_modules/next/dist/shared/lib/loadable.shared-runtime.js +246 -0
- package/frontend-build/node_modules/next/dist/shared/lib/match-local-pattern.js +46 -0
- package/frontend-build/node_modules/next/dist/shared/lib/match-remote-pattern.js +63 -0
- package/frontend-build/node_modules/next/dist/shared/lib/modern-browserslist-target.js +15 -0
- package/frontend-build/node_modules/next/dist/shared/lib/no-fallback-error.external.js +18 -0
- package/frontend-build/node_modules/next/dist/shared/lib/normalized-asset-prefix.js +28 -0
- package/frontend-build/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js +26 -0
- package/frontend-build/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js +18 -0
- package/frontend-build/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js +18 -0
- package/frontend-build/node_modules/next/dist/shared/lib/page-path/get-page-paths.js +40 -0
- package/frontend-build/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js +23 -0
- package/frontend-build/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js +26 -0
- package/frontend-build/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js +19 -0
- package/frontend-build/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js +20 -0
- package/frontend-build/node_modules/next/dist/shared/lib/promise-with-resolvers.js +26 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/adapters.js +136 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/routes/app.js +122 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/add-locale.js +28 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js +20 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js +20 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/app-paths.js +62 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js +17 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js +24 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +16 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js +27 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/format-url.js +111 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +174 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js +52 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js +25 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js +90 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/html-bots.js +17 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/index.js +30 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/interception-prefix-from-param-type.js +33 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/interception-routes.js +108 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/is-bot.js +57 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js +26 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js +31 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +30 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/parse-path.js +33 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +43 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/parse-url.js +38 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js +20 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/path-match.js +49 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +292 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/querystring.js +79 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/relativize-url.js +40 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js +39 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js +21 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/resolve-param-value.js +116 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js +113 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/route-matcher.js +45 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/route-regex.js +256 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js +244 -0
- package/frontend-build/node_modules/next/dist/shared/lib/router-context.shared-runtime.js +18 -0
- package/frontend-build/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js +99 -0
- package/frontend-build/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js +32 -0
- package/frontend-build/node_modules/next/dist/shared/lib/segment.js +102 -0
- package/frontend-build/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js +35 -0
- package/frontend-build/node_modules/next/dist/shared/lib/server-reference-info.js +56 -0
- package/frontend-build/node_modules/next/dist/shared/lib/side-effect.js +63 -0
- package/frontend-build/node_modules/next/dist/shared/lib/size-limit.js +40 -0
- package/frontend-build/node_modules/next/dist/shared/lib/turbopack/internal-error.js +53 -0
- package/frontend-build/node_modules/next/dist/shared/lib/utils/reflect-utils.js +69 -0
- package/frontend-build/node_modules/next/dist/shared/lib/utils/warn-once.js +22 -0
- package/frontend-build/node_modules/next/dist/shared/lib/utils.js +207 -0
- package/frontend-build/node_modules/next/dist/shared/lib/zod.js +101 -0
- package/frontend-build/node_modules/next/dist/telemetry/anonymous-meta.js +89 -0
- package/frontend-build/node_modules/next/dist/telemetry/detached-flush.js +56 -0
- package/frontend-build/node_modules/next/dist/telemetry/events/build.js +174 -0
- package/frontend-build/node_modules/next/dist/telemetry/events/index.js +41 -0
- package/frontend-build/node_modules/next/dist/telemetry/events/plugins.js +51 -0
- package/frontend-build/node_modules/next/dist/telemetry/events/swc-load-failure.js +55 -0
- package/frontend-build/node_modules/next/dist/telemetry/events/version.js +66 -0
- package/frontend-build/node_modules/next/dist/telemetry/flush-telemetry.js +19 -0
- package/frontend-build/node_modules/next/dist/telemetry/post-telemetry-payload.js +48 -0
- package/frontend-build/node_modules/next/dist/telemetry/project-id.js +48 -0
- package/frontend-build/node_modules/next/dist/telemetry/storage.js +301 -0
- package/frontend-build/node_modules/next/dist/trace/index.js +58 -0
- package/frontend-build/node_modules/next/dist/trace/report/index.js +37 -0
- package/frontend-build/node_modules/next/dist/trace/report/to-json-build.js +40 -0
- package/frontend-build/node_modules/next/dist/trace/report/to-json.js +165 -0
- package/frontend-build/node_modules/next/dist/trace/report/to-telemetry.js +36 -0
- package/frontend-build/node_modules/next/dist/trace/shared.js +39 -0
- package/frontend-build/node_modules/next/dist/trace/trace.js +211 -0
- package/frontend-build/node_modules/next/package.json +378 -0
- package/frontend-build/node_modules/react/cjs/react-compiler-runtime.production.js +16 -0
- package/frontend-build/node_modules/react/cjs/react-jsx-dev-runtime.production.js +14 -0
- package/frontend-build/node_modules/react/cjs/react-jsx-runtime.production.js +34 -0
- package/frontend-build/node_modules/react/cjs/react.development.js +1284 -0
- package/frontend-build/node_modules/react/cjs/react.production.js +542 -0
- package/frontend-build/node_modules/react/compiler-runtime.js +14 -0
- package/frontend-build/node_modules/react/index.js +7 -0
- package/frontend-build/node_modules/react/jsx-dev-runtime.js +7 -0
- package/frontend-build/node_modules/react/jsx-runtime.js +7 -0
- package/frontend-build/node_modules/react/package.json +51 -0
- package/frontend-build/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +6603 -0
- package/frontend-build/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +6692 -0
- package/frontend-build/node_modules/react-dom/cjs/react-dom-server.browser.production.js +7410 -0
- package/frontend-build/node_modules/react-dom/cjs/react-dom-server.edge.production.js +7512 -0
- package/frontend-build/node_modules/react-dom/cjs/react-dom-server.node.production.js +7707 -0
- package/frontend-build/node_modules/react-dom/cjs/react-dom.production.js +210 -0
- package/frontend-build/node_modules/react-dom/index.js +38 -0
- package/frontend-build/node_modules/react-dom/package.json +117 -0
- package/frontend-build/node_modules/react-dom/server.browser.js +16 -0
- package/frontend-build/node_modules/react-dom/server.edge.js +17 -0
- package/frontend-build/node_modules/react-dom/server.node.js +18 -0
- package/frontend-build/node_modules/react-dom/static.node.js +14 -0
- package/frontend-build/node_modules/sharp/lib/channel.js +177 -0
- package/frontend-build/node_modules/sharp/lib/colour.js +195 -0
- package/frontend-build/node_modules/sharp/lib/composite.js +212 -0
- package/frontend-build/node_modules/sharp/lib/constructor.js +499 -0
- package/frontend-build/node_modules/sharp/lib/index.js +16 -0
- package/frontend-build/node_modules/sharp/lib/input.js +809 -0
- package/frontend-build/node_modules/sharp/lib/is.js +143 -0
- package/frontend-build/node_modules/sharp/lib/libvips.js +207 -0
- package/frontend-build/node_modules/sharp/lib/operation.js +1016 -0
- package/frontend-build/node_modules/sharp/lib/output.js +1666 -0
- package/frontend-build/node_modules/sharp/lib/resize.js +595 -0
- package/frontend-build/node_modules/sharp/lib/sharp.js +121 -0
- package/frontend-build/node_modules/sharp/lib/utility.js +291 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/classes/comparator.js +143 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/classes/range.js +557 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/classes/semver.js +333 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/functions/cmp.js +54 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/functions/coerce.js +62 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/functions/compare.js +7 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/functions/eq.js +5 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/functions/gt.js +5 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/functions/gte.js +5 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/functions/lt.js +5 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/functions/lte.js +5 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/functions/neq.js +5 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/functions/parse.js +18 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/functions/satisfies.js +12 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/internal/constants.js +37 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/internal/debug.js +11 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/internal/identifiers.js +29 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/internal/lrucache.js +42 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/internal/parse-options.js +17 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/internal/re.js +223 -0
- package/frontend-build/node_modules/sharp/node_modules/semver/package.json +78 -0
- package/frontend-build/node_modules/sharp/package.json +202 -0
- package/frontend-build/node_modules/styled-jsx/dist/index/index.js +499 -0
- package/frontend-build/node_modules/styled-jsx/index.js +1 -0
- package/frontend-build/node_modules/styled-jsx/package.json +132 -0
- package/frontend-build/node_modules/styled-jsx/style.js +1 -0
- package/frontend-build/package.json +43 -0
- package/frontend-build/public/aws-bedrock-icon.svg +1 -0
- package/frontend-build/public/chatgpt-icon.svg +1 -0
- package/frontend-build/public/claude-ai-icon.svg +1 -0
- package/frontend-build/public/deepseek-logo-icon.svg +1 -0
- package/frontend-build/public/discord-round-color-icon.svg +1 -0
- package/frontend-build/public/file.svg +1 -0
- package/frontend-build/public/globe.svg +1 -0
- package/frontend-build/public/google-gemini-icon.svg +1 -0
- package/frontend-build/public/grok-icon.svg +1 -0
- package/frontend-build/public/next.svg +1 -0
- package/frontend-build/public/ollama-icon.svg +1 -0
- package/frontend-build/public/slack-icon.svg +6 -0
- package/frontend-build/public/teams.svg +2 -0
- package/frontend-build/public/telegram-icon.svg +1 -0
- package/frontend-build/public/vercel.svg +1 -0
- package/frontend-build/public/whatsapp-color-icon.svg +1 -0
- package/frontend-build/public/window.svg +1 -0
- package/frontend-build/server.js +38 -0
- package/package.json +34 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
module.exports=[47349,(a,b,c)=>{"use strict";var d=a.r(72131);d.useState,d.useEffect,d.useLayoutEffect,d.useDebugValue,c.useSyncExternalStore=void 0!==d.useSyncExternalStore?d.useSyncExternalStore:function(a,b){return b()}},87610,(a,b,c)=>{"use strict";b.exports=a.r(47349)},97514,(a,b,c)=>{"use strict";var d=a.r(72131),e=a.r(87610),f="function"==typeof Object.is?Object.is:function(a,b){return a===b&&(0!==a||1/a==1/b)||a!=a&&b!=b},g=e.useSyncExternalStore,h=d.useRef,i=d.useEffect,j=d.useMemo,k=d.useDebugValue;c.useSyncExternalStoreWithSelector=function(a,b,c,d,e){var l=h(null);if(null===l.current){var m={hasValue:!1,value:null};l.current=m}else m=l.current;var n=g(a,(l=j(function(){function a(a){if(!i){if(i=!0,g=a,a=d(a),void 0!==e&&m.hasValue){var b=m.value;if(e(b,a))return h=b}return h=a}if(b=h,f(g,a))return b;var c=d(a);return void 0!==e&&e(b,c)?(g=a,b):(g=a,h=c)}var g,h,i=!1,j=void 0===c?null:c;return[function(){return a(b())},null===j?void 0:function(){return a(j())}]},[b,c,d,e]))[0],l[1]);return i(function(){m.hasValue=!0,m.value=n},[n]),k(n),n}},64442,(a,b,c)=>{"use strict";b.exports=a.r(97514)},12145,a=>{"use strict";let b,c,d;var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=a.i(87924),w=a.i(72131),x=a.i(3314),y=a.i(17201),z=a.i(94392),A=a.i(35133),B=a.i(20494),C=a.i(57064),D=a.i(82434),E=a.i(79808),F=a.i(35125),G=a.i(34531),H=a.i(6807),I=a.i(51001),J=a.i(63588),K=a.i(41710),L=a.i(19256),M=a.i(33377),N=a.i(50944),O=a.i(14174),P=a.i(61222),Q=a.i(96221);function R({agentName:a,setAgentName:b,vaultEnabled:c,setVaultEnabled:d,vaultThreshold:e,setVaultThreshold:f,autoCompactEnabled:g,setAutoCompactEnabled:h,autoCompactThreshold:i,setAutoCompactThreshold:j,allowDbWrite:k,setAllowDbWrite:l,embedCode:m,setEmbedCode:n,bashAllowedDirs:o,setBashAllowedDirs:p,onSave:q,isSaving:r}){let[s,t]=(0,w.useState)(!1),[u,x]=(0,w.useState)(""),[y,z]=(0,w.useState)(String(e)),[A,B]=(0,w.useState)(String(i));(0,w.useEffect)(()=>{z(String(e))},[e]),(0,w.useEffect)(()=>{B(String(i))},[i]);let[C,D]=(0,w.useState)(null),[E,F]=(0,w.useState)({host:"localhost",port:"5432",username:"postgres",password:"",dbName:"synapse"}),[G,H]=(0,w.useState)(!1),[I,J]=(0,w.useState)(null),K=async()=>{t(!0),D(null),J(null);try{let a=await fetch("/api/settings/check-embed"),b=await a.json();b.all_ok?(n(!0),D(null)):b.psql_available?b.db_url_configured&&!b.db_connection_ok?D({issue:"existing_url_broken",detail:`${b.db_url_hint}: ${b.db_error||"connection failed"}`}):b.db_connection_ok&&!b.pgvector_available?D({issue:"no_pgvector"}):D({issue:"no_db"}):D({issue:"no_psql"})}catch(a){D({issue:"connection_error",detail:String(a)})}finally{t(!1)}},L=async()=>{if(m){n(!1),D(null);return}await K()},M=async()=>{H(!0),J(null);try{let a=await fetch("/api/settings/setup-embed",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({host:E.host,port:parseInt(E.port)||5432,username:E.username,password:E.password,db_name:E.dbName})});if(!a.ok){let b=await a.json();J(b.detail||"Setup failed");return}await K()}catch(a){J(String(a))}finally{H(!1)}};return(0,v.jsxs)("div",{className:"space-y-8",children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Global Agent Name"}),(0,v.jsx)("input",{type:"text",value:a,onChange:a=>b(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-sm focus:border-white focus:outline-none transition-colors text-white placeholder:text-zinc-700 font-medium",placeholder:"Enter Agent Name"}),(0,v.jsx)("p",{className:"text-xs text-zinc-600",children:"This name identifies your agent across the system."})]}),(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Large Response Handling"}),(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsx)("div",{children:(0,v.jsx)("p",{className:"text-xs text-zinc-600 mt-0.5",children:"When enabled, tool outputs exceeding the threshold are saved to a vault file instead of flooding the context."})}),(0,v.jsx)("button",{onClick:()=>d(!c),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none ${c?"bg-white":"bg-zinc-700"}`,children:(0,v.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full transition-transform ${c?"translate-x-6 bg-black":"translate-x-1 bg-zinc-400"}`})})]}),c&&(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Character Threshold"}),(0,v.jsxs)("p",{className:"text-xs text-zinc-500",children:["≈ ",(0,v.jsx)("span",{className:"text-zinc-300 font-semibold",children:Math.round(e/4).toLocaleString()})," tokens",(0,v.jsx)("span",{className:"text-zinc-600 ml-1",children:"(at ~4 chars / token)"})]}),(0,v.jsx)("input",{type:"number",value:y,onChange:a=>z(a.target.value),onBlur:()=>{let a=Math.max(1,parseInt(y)||1);f(a),z(String(a))},className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-sm focus:border-white focus:outline-none transition-colors text-white placeholder:text-zinc-700 font-medium",min:1}),(0,v.jsx)("p",{className:"text-xs text-zinc-600",children:"Responses longer than this many characters will be saved to a file."})]})]}),(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Auto Context Compaction"}),(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsx)("div",{children:(0,v.jsx)("p",{className:"text-xs text-zinc-600 mt-0.5",children:"When the accumulated context exceeds the threshold, the agent summarises everything so far to ~30% of its size and archives the original to the vault so nothing is lost."})}),(0,v.jsx)("button",{onClick:()=>h(!g),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none flex-shrink-0 ml-4 ${g?"bg-white":"bg-zinc-700"}`,children:(0,v.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full transition-transform ${g?"translate-x-6 bg-black":"translate-x-1 bg-zinc-400"}`})})]}),g&&(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Compaction Threshold (characters)"}),(0,v.jsxs)("p",{className:"text-xs text-zinc-500",children:["≈ ",(0,v.jsx)("span",{className:"text-zinc-300 font-semibold",children:Math.round(i/4).toLocaleString()})," tokens",(0,v.jsx)("span",{className:"text-zinc-600 ml-1",children:"(at ~4 chars / token)"})]}),(0,v.jsx)("input",{type:"number",value:A,onChange:a=>B(a.target.value),onBlur:()=>{let a=Math.max(1e4,parseInt(A)||1e4);j(a),B(String(a))},className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-sm focus:border-white focus:outline-none transition-colors text-white placeholder:text-zinc-700 font-medium",min:1e4}),(0,v.jsx)("p",{className:"text-xs text-zinc-600",children:"When context exceeds this, it is compacted using the current model. The full original is archived to the vault."})]})]}),(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Database Write Access"}),(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsx)("div",{children:(0,v.jsx)("p",{className:"text-xs text-zinc-600 mt-0.5",children:"When disabled (default), agents are strictly limited to SELECT/SHOW/DESCRIBE queries. When enabled, INSERT/UPDATE/DELETE and other write queries are allowed — but agents must always ask for confirmation before executing them."})}),(0,v.jsx)("button",{onClick:()=>l(!k),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none flex-shrink-0 ml-4 ${k?"bg-amber-500":"bg-zinc-700"}`,children:(0,v.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full transition-transform ${k?"translate-x-6 bg-black":"translate-x-1 bg-zinc-400"}`})})]}),k&&(0,v.jsxs)("div",{className:"p-3 bg-amber-500/10 border border-amber-500/20 text-amber-400 text-xs",children:[(0,v.jsx)("strong",{children:"Write mode active."})," Agents MUST ask for explicit user confirmation before running any INSERT, UPDATE, DELETE, DROP, or CREATE queries. This is enforced in the system prompt."]})]}),(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Code Repository Indexing"}),(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsx)("div",{children:(0,v.jsx)("p",{className:"text-xs text-zinc-600 mt-0.5",children:"When enabled, agents can semantically search your indexed code repositories using vector embeddings. Requires PostgreSQL with the pgvector extension."})}),(0,v.jsx)("button",{onClick:L,disabled:s,className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none flex-shrink-0 ml-4 ${m?"bg-white":"bg-zinc-700"} ${s?"opacity-50 cursor-not-allowed":""}`,children:(0,v.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full transition-transform ${m?"translate-x-6 bg-black":"translate-x-1 bg-zinc-400"}`})})]}),s&&(0,v.jsxs)("div",{className:"flex items-center gap-2 text-xs text-zinc-400",children:[(0,v.jsx)(Q.Loader2,{className:"w-3.5 h-3.5 animate-spin"}),"Checking PostgreSQL setup…"]}),C?.issue==="no_psql"&&(0,v.jsxs)("div",{className:"p-3 bg-amber-500/10 border border-amber-500/20 text-amber-400 text-xs space-y-2",children:[(0,v.jsxs)("p",{children:[(0,v.jsx)("strong",{children:"PostgreSQL not found."})," Install it to enable code indexing."]}),(0,v.jsxs)("ul",{className:"space-y-0.5 text-amber-300/80",children:[(0,v.jsxs)("li",{children:[(0,v.jsx)("strong",{children:"Ubuntu/Debian:"})," ",(0,v.jsx)("code",{className:"bg-black/30 px-1",children:"sudo apt install postgresql postgresql-contrib"})]}),(0,v.jsxs)("li",{children:[(0,v.jsx)("strong",{children:"macOS:"})," ",(0,v.jsx)("code",{className:"bg-black/30 px-1",children:"brew install postgresql"})]}),(0,v.jsxs)("li",{children:[(0,v.jsx)("strong",{children:"Windows:"})," Download from ",(0,v.jsx)("span",{className:"underline",children:"postgresql.org/download/windows"})]})]}),(0,v.jsxs)("p",{className:"text-amber-300/60",children:["After installing, also install pgvector: ",(0,v.jsx)("code",{className:"bg-black/30 px-1",children:"sudo apt install postgresql-pgvector"})," (Ubuntu) or ",(0,v.jsx)("code",{className:"bg-black/30 px-1",children:"brew install pgvector"})," (macOS)."]}),(0,v.jsx)("button",{onClick:K,className:"mt-1 px-3 py-1 text-xs font-bold bg-amber-500/20 hover:bg-amber-500/30 text-amber-300 border border-amber-500/30 transition-colors",children:"Check again"})]}),C?.issue==="existing_url_broken"&&(0,v.jsxs)("div",{className:"p-3 bg-zinc-800/60 border border-zinc-700 text-xs space-y-3",children:[(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("p",{className:"text-zinc-300 font-semibold",children:"Existing connection is failing"}),(0,v.jsx)("p",{className:"text-zinc-500 font-mono break-all",children:C.detail}),(0,v.jsx)("p",{className:"text-zinc-500",children:"Please provide new connection details to reconfigure."})]}),(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-zinc-500 uppercase tracking-wider text-[10px] font-bold",children:"Host"}),(0,v.jsx)("input",{type:"text",value:E.host,onChange:a=>F(b=>({...b,host:a.target.value})),className:"w-full bg-zinc-900 border border-zinc-700 p-2 text-white focus:border-white focus:outline-none font-mono text-xs"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-zinc-500 uppercase tracking-wider text-[10px] font-bold",children:"Port"}),(0,v.jsx)("input",{type:"text",value:E.port,onChange:a=>F(b=>({...b,port:a.target.value})),className:"w-full bg-zinc-900 border border-zinc-700 p-2 text-white focus:border-white focus:outline-none font-mono text-xs"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-zinc-500 uppercase tracking-wider text-[10px] font-bold",children:"Username"}),(0,v.jsx)("input",{type:"text",value:E.username,onChange:a=>F(b=>({...b,username:a.target.value})),className:"w-full bg-zinc-900 border border-zinc-700 p-2 text-white focus:border-white focus:outline-none font-mono text-xs",autoComplete:"off"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-zinc-500 uppercase tracking-wider text-[10px] font-bold",children:"Password"}),(0,v.jsx)("input",{type:"password",value:E.password,onChange:a=>F(b=>({...b,password:a.target.value})),className:"w-full bg-zinc-900 border border-zinc-700 p-2 text-white focus:border-white focus:outline-none font-mono text-xs",autoComplete:"new-password"})]}),(0,v.jsxs)("div",{className:"col-span-2 space-y-1",children:[(0,v.jsx)("label",{className:"text-zinc-500 uppercase tracking-wider text-[10px] font-bold",children:"Database Name"}),(0,v.jsx)("input",{type:"text",value:E.dbName,onChange:a=>F(b=>({...b,dbName:a.target.value})),className:"w-full bg-zinc-900 border border-zinc-700 p-2 text-white focus:border-white focus:outline-none font-mono text-xs"})]})]}),I&&(0,v.jsx)("p",{className:"text-red-400 font-mono text-[11px]",children:I}),(0,v.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[(0,v.jsxs)("button",{onClick:M,disabled:G,className:"flex items-center gap-1.5 px-4 py-2 text-xs font-bold bg-white text-black hover:bg-zinc-200 transition-all disabled:opacity-50 disabled:cursor-not-allowed",children:[G&&(0,v.jsx)(Q.Loader2,{className:"w-3 h-3 animate-spin"}),G?"Connecting…":"Save & Connect"]}),(0,v.jsx)("button",{onClick:()=>D(null),className:"px-3 py-2 text-xs text-zinc-500 hover:text-white transition-colors",children:"Cancel"})]})]}),C?.issue==="no_pgvector"&&(0,v.jsxs)("div",{className:"p-3 bg-amber-500/10 border border-amber-500/20 text-amber-400 text-xs space-y-2",children:[(0,v.jsxs)("p",{children:[(0,v.jsx)("strong",{children:"pgvector extension not installed."})," PostgreSQL is running but the vector extension is missing."]}),(0,v.jsx)("p",{children:"Connect to your database and run:"}),(0,v.jsx)("code",{className:"block bg-black/40 px-2 py-1.5 font-mono text-white/80",children:"CREATE EXTENSION vector;"}),(0,v.jsxs)("p",{className:"text-amber-300/60",children:["Or install the OS package first: ",(0,v.jsx)("code",{className:"bg-black/30 px-1",children:"sudo apt install postgresql-pgvector"})," (Ubuntu) / ",(0,v.jsx)("code",{className:"bg-black/30 px-1",children:"brew install pgvector"})," (macOS), then run the SQL above."]}),(0,v.jsx)("button",{onClick:K,className:"mt-1 px-3 py-1 text-xs font-bold bg-amber-500/20 hover:bg-amber-500/30 text-amber-300 border border-amber-500/30 transition-colors",children:"Check again"})]}),C?.issue==="no_db"&&(0,v.jsxs)("div",{className:"p-3 bg-zinc-800/60 border border-zinc-700 text-xs space-y-3",children:[(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("p",{className:"text-zinc-300 font-semibold",children:"Set up a PostgreSQL database for code indexing"}),(0,v.jsx)("p",{className:"text-zinc-500",children:"No database configured yet. Enter your PostgreSQL credentials and we'll create the database and enable pgvector."})]}),(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-zinc-500 uppercase tracking-wider text-[10px] font-bold",children:"Host"}),(0,v.jsx)("input",{type:"text",value:E.host,onChange:a=>F(b=>({...b,host:a.target.value})),className:"w-full bg-zinc-900 border border-zinc-700 p-2 text-white focus:border-white focus:outline-none font-mono text-xs"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-zinc-500 uppercase tracking-wider text-[10px] font-bold",children:"Port"}),(0,v.jsx)("input",{type:"text",value:E.port,onChange:a=>F(b=>({...b,port:a.target.value})),className:"w-full bg-zinc-900 border border-zinc-700 p-2 text-white focus:border-white focus:outline-none font-mono text-xs"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-zinc-500 uppercase tracking-wider text-[10px] font-bold",children:"Username"}),(0,v.jsx)("input",{type:"text",value:E.username,onChange:a=>F(b=>({...b,username:a.target.value})),className:"w-full bg-zinc-900 border border-zinc-700 p-2 text-white focus:border-white focus:outline-none font-mono text-xs",autoComplete:"off"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-zinc-500 uppercase tracking-wider text-[10px] font-bold",children:"Password"}),(0,v.jsx)("input",{type:"password",value:E.password,onChange:a=>F(b=>({...b,password:a.target.value})),className:"w-full bg-zinc-900 border border-zinc-700 p-2 text-white focus:border-white focus:outline-none font-mono text-xs",autoComplete:"new-password"})]}),(0,v.jsxs)("div",{className:"col-span-2 space-y-1",children:[(0,v.jsx)("label",{className:"text-zinc-500 uppercase tracking-wider text-[10px] font-bold",children:"Database Name"}),(0,v.jsx)("input",{type:"text",value:E.dbName,onChange:a=>F(b=>({...b,dbName:a.target.value})),className:"w-full bg-zinc-900 border border-zinc-700 p-2 text-white focus:border-white focus:outline-none font-mono text-xs"})]})]}),I&&(0,v.jsx)("p",{className:"text-red-400 font-mono text-[11px]",children:I}),(0,v.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[(0,v.jsxs)("button",{onClick:M,disabled:G,className:"flex items-center gap-1.5 px-4 py-2 text-xs font-bold bg-white text-black hover:bg-zinc-200 transition-all disabled:opacity-50 disabled:cursor-not-allowed",children:[G&&(0,v.jsx)(Q.Loader2,{className:"w-3 h-3 animate-spin"}),G?"Creating…":"Create Database"]}),(0,v.jsx)("button",{onClick:()=>D(null),className:"px-3 py-2 text-xs text-zinc-500 hover:text-white transition-colors",children:"Cancel"})]})]}),C?.issue==="connection_error"&&(0,v.jsxs)("div",{className:"p-3 bg-red-500/10 border border-red-500/20 text-red-400 text-xs space-y-2",children:[(0,v.jsxs)("p",{children:[(0,v.jsx)("strong",{children:"Check failed."})," ",C.detail]}),(0,v.jsx)("button",{onClick:K,className:"px-3 py-1 text-xs font-bold bg-red-500/20 hover:bg-red-500/30 text-red-300 border border-red-500/30 transition-colors",children:"Try again"})]})]}),(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Bash Command Directories"}),(0,v.jsx)("p",{className:"text-xs text-zinc-600",children:"Extra directories the bash tool can execute commands in. Linked repos and vault are always included automatically."}),o.length>0&&(0,v.jsx)("div",{className:"space-y-1",children:o.map((a,b)=>(0,v.jsxs)("div",{className:"flex items-center justify-between bg-zinc-900 border border-zinc-800 px-3 py-2",children:[(0,v.jsx)("span",{className:"text-xs font-mono text-zinc-300 truncate",children:a}),(0,v.jsx)("button",{onClick:()=>p(o.filter((a,c)=>c!==b)),className:"text-zinc-600 hover:text-red-400 transition-colors text-xs ml-2 flex-shrink-0",children:"Remove"})]},b))}),(0,v.jsxs)("div",{className:"flex gap-2",children:[(0,v.jsx)("input",{type:"text",value:u,onChange:a=>x(a.target.value),onKeyDown:a=>{"Enter"===a.key&&u.trim()&&(p([...o,u.trim()]),x(""))},placeholder:"/path/to/directory",className:"flex-1 bg-zinc-900 border border-zinc-800 p-2.5 text-sm focus:border-white focus:outline-none transition-colors text-white placeholder:text-zinc-700 font-mono"}),(0,v.jsx)("button",{onClick:()=>{u.trim()&&(p([...o,u.trim()]),x(""))},disabled:!u.trim(),className:"px-4 py-2.5 text-xs font-bold bg-zinc-800 hover:bg-zinc-700 text-white transition-colors disabled:opacity-40 disabled:cursor-not-allowed",children:"Add"})]})]}),(0,v.jsx)("div",{className:"pt-4 flex justify-end",children:(0,v.jsxs)("button",{onClick:q,disabled:r,className:"flex items-center gap-2 px-6 py-2.5 text-sm font-bold bg-white text-black hover:bg-zinc-200 transition-all shadow-lg disabled:opacity-50 disabled:cursor-not-allowed",children:[r&&(0,v.jsx)(Q.Loader2,{className:"w-4 h-4 animate-spin"}),r?"Saving…":"Save Changes"]})})]})}let S=({pdFirstName:a,setPdFirstName:b,pdLastName:c,setPdLastName:d,pdEmail:e,setPdEmail:f,pdPhone:g,setPdPhone:h,pdAddress1:i,setPdAddress1:j,pdAddress2:k,setPdAddress2:l,pdCity:m,setPdCity:n,pdState:o,setPdState:p,pdZipcode:q,setPdZipcode:r,onSave:s})=>(0,v.jsxs)("div",{className:"space-y-8",children:[(0,v.jsxs)("div",{className:"mb-4",children:[(0,v.jsxs)("h3",{className:"text-lg font-bold text-white flex items-center gap-2",children:[(0,v.jsx)(x.Shield,{className:"h-5 w-5"}),"Personal Details"]}),(0,v.jsx)("p",{className:"text-zinc-500 text-sm mt-1",children:"Saved details the agent can use when completing workflows."})]}),(0,v.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"First Name"}),(0,v.jsx)("input",{type:"text",value:a,onChange:a=>b(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors",placeholder:"First name"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Last Name"}),(0,v.jsx)("input",{type:"text",value:c,onChange:a=>d(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors",placeholder:"Last name"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Email"}),(0,v.jsx)("input",{type:"email",value:e,onChange:a=>f(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono",placeholder:"name@company.com"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Phone Number"}),(0,v.jsx)("input",{type:"tel",value:g,onChange:a=>h(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono",placeholder:"+1 555 555 5555"})]})]}),(0,v.jsxs)("div",{className:"border border-zinc-800 bg-zinc-900/20 p-6 space-y-6",children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("div",{className:"text-sm font-bold text-white",children:"Address"}),(0,v.jsx)("div",{className:"text-xs text-zinc-500",children:"Used when a workflow needs a billing or mailing address."})]}),(0,v.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Address 1"}),(0,v.jsx)("input",{type:"text",value:i,onChange:a=>j(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors",placeholder:"Street address"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Address 2"}),(0,v.jsx)("input",{type:"text",value:k,onChange:a=>l(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors",placeholder:"Apt, suite, unit"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"City"}),(0,v.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors",placeholder:"City"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"State"}),(0,v.jsx)("input",{type:"text",value:o,onChange:a=>p(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors",placeholder:"State"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Zipcode"}),(0,v.jsx)("input",{type:"text",value:q,onChange:a=>r(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono",placeholder:"Zipcode"})]})]})]}),(0,v.jsx)("div",{className:"pt-2 flex justify-end",children:(0,v.jsx)("button",{onClick:s,className:"px-6 py-2.5 text-sm font-bold bg-white text-black hover:bg-zinc-200 transition-all shadow-lg",children:"Save Changes"})})]});var T=a.i(81560),U=a.i(60137);let V=(0,U.default)("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"}]]),W=(0,U.default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),X=(0,U.default)("chart-no-axes-column",[["path",{d:"M5 21v-6",key:"1hz6c0"}],["path",{d:"M12 21V3",key:"1lcnhd"}],["path",{d:"M19 21V9",key:"unv183"}]]);var Y=a.i(10948);let Z=(0,U.default)("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"}]]),$=({isOpen:a,title:b,message:c,confirmText:d="Yes, Delete It",cancelText:e="Cancel",onConfirm:f,onClose:g})=>a?(0,v.jsx)("div",{className:"fixed inset-0 z-[60] flex items-center justify-center bg-black/80 backdrop-blur-sm p-4 animate-in fade-in duration-200 font-mono",children:(0,v.jsxs)("div",{className:"w-full max-w-sm border border-red-500/30 bg-black shadow-[0_0_50px_rgba(255,0,0,0.1)] p-6 relative overflow-hidden",children:[(0,v.jsx)("div",{className:"absolute top-0 inset-x-0 h-1 bg-gradient-to-r from-transparent via-red-500 to-transparent opacity-50"}),(0,v.jsxs)("h3",{className:"text-lg font-bold text-red-500 mb-4 flex items-center gap-2",children:[(0,v.jsx)(V,{className:"h-5 w-5"})," ",b.toUpperCase()]}),(0,v.jsx)("p",{className:"text-sm text-zinc-300 mb-8 leading-relaxed whitespace-pre-wrap",children:c}),(0,v.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,v.jsx)("button",{onClick:g,className:"px-4 py-2 text-xs font-medium border border-zinc-800 hover:bg-zinc-900 text-zinc-400 hover:text-white transition-colors",children:e}),(0,v.jsx)("button",{onClick:()=>{f(),g()},className:"px-4 py-2 text-xs bg-red-900/20 border border-red-900/50 text-red-500 hover:bg-red-900/40 hover:text-red-400 font-bold transition-colors",children:d})]})]})}):null,_=[{id:"chat_history",icon:J.MessageSquare,label:"Chat History",description:"All saved conversations across all sessions",detail:"All conversation messages and session state files"},{id:"orchestration_history",icon:Z,label:"Orchestration Run History",description:"Past orchestration run logs and checkpoints",detail:"All orchestration execution logs and run state files"},{id:"agent_logs",icon:D.Bot,label:"Agent Logs",description:"Per-run debug logs for individual agent executions",detail:"All agent run log files from chat and orchestration sources"},{id:"usage",icon:X,label:"Usage History",description:"Token usage and cost tracking records",detail:"All token/cost logs across all sessions"},{id:"repos",icon:Y.GitBranch,label:"Repositories",description:"All indexed code repositories and their vector indexes",detail:"All repo configurations and code search indexes"},{id:"db_configs",icon:F.Server,label:"Database Connections",description:"All saved database configurations",detail:"All DB connection strings and configuration data"}],aa={chat_history:!1,orchestration_history:!1,agent_logs:!1,usage:!1,repos:!1,db_configs:!1},ab=()=>{let[a,b]=(0,w.useState)(aa),[c,d]=(0,w.useState)(!1),[e,f]=(0,w.useState)(!1),[g,h]=(0,w.useState)(null),i=_.filter(b=>a[b.id]),j=i.length,k=async()=>{f(!0),h(null);try{let c=Object.keys(a).filter(b=>a[b]),d=await fetch("/api/memory/clear",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:c})});if(!d.ok){let a=await d.json().catch(()=>({}));throw Error(a.detail||"Failed to clear data")}let e=i.map(a=>a.label).join(", ");h({type:"success",text:`Successfully cleared: ${e}`}),b(aa)}catch(a){h({type:"error",text:a instanceof Error?a.message:"An error occurred"})}finally{f(!1)}},l=`The following data will be permanently deleted:
|
|
2
|
+
|
|
3
|
+
`+i.map(a=>`• ${a.label}: ${a.detail}`).join("\n")+`
|
|
4
|
+
|
|
5
|
+
This action cannot be undone.`;return(0,v.jsxs)("div",{className:"space-y-6",children:[(0,v.jsx)("div",{className:"flex items-center justify-between border-b border-zinc-800/50 pb-4",children:(0,v.jsxs)("div",{children:[(0,v.jsx)("h3",{className:"text-lg font-bold text-zinc-100 flex items-center gap-2",children:"Data Categories"}),(0,v.jsx)("p",{className:"text-zinc-500 text-sm mt-1",children:"Select the data pipelines you want to permanently clear."})]})}),(0,v.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:_.map(c=>{let d=c.icon,e=a[c.id];return(0,v.jsxs)("div",{onClick:()=>{var a;return a=c.id,void(b(b=>({...b,[a]:!b[a]})),h(null))},className:`flex items-start gap-4 p-4 border transition-all cursor-pointer group ${e?"bg-red-950/20 border-red-900/50":"bg-zinc-900/40 border-zinc-800/50 hover:border-zinc-700/50 hover:bg-zinc-900/80"}`,children:[(0,v.jsx)("div",{className:`mt-0.5 h-4 w-4 flex-shrink-0 flex items-center justify-center transition-colors border ${e?"bg-red-500 border-red-500":"bg-zinc-950 border-zinc-700 group-hover:border-zinc-500"}`,children:e&&(0,v.jsx)("svg",{className:"h-3 w-3 text-black",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,v.jsx)("polyline",{points:"2,6 5,9 10,3"})})}),(0,v.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,v.jsx)(d,{className:`h-4 w-4 flex-shrink-0 transition-colors ${e?"text-red-400":"text-zinc-500 group-hover:text-zinc-400"}`}),(0,v.jsx)("div",{className:`text-sm font-bold tracking-wide transition-colors ${e?"text-red-200":"text-zinc-200 group-hover:text-zinc-100"}`,children:c.label})]}),(0,v.jsx)("div",{className:`text-xs transition-colors mt-1.5 leading-relaxed ${e?"text-red-400/70":"text-zinc-500 group-hover:text-zinc-400"}`,children:c.description})]})]},c.id)})}),g&&(0,v.jsxs)("div",{className:`flex items-center gap-2 text-sm p-3 border ${"success"===g.type?"text-green-400 border-green-900/50 bg-green-950/10":"text-red-400 border-red-900/50 bg-red-950/10"}`,children:["success"===g.type?(0,v.jsx)(W,{className:"h-4 w-4 flex-shrink-0"}):(0,v.jsx)(V,{className:"h-4 w-4 flex-shrink-0"}),(0,v.jsx)("span",{children:g.text})]}),(0,v.jsx)("div",{className:"mt-8 pt-6 border-t border-zinc-800/50",children:(0,v.jsxs)("div",{className:"bg-transparent border border-red-900/30 p-5 md:p-6 flex flex-col md:flex-row md:items-center justify-between gap-4 md:gap-8 hover:border-red-900/50 transition-colors",children:[(0,v.jsxs)("div",{children:[(0,v.jsxs)("h3",{className:"text-sm uppercase tracking-wider font-bold text-red-500 flex items-center gap-2",children:[(0,v.jsx)(T.Trash2,{className:"h-4 w-4"})," Danger Zone"]}),(0,v.jsx)("p",{className:"text-xs text-red-400/70 mt-1.5 leading-relaxed",children:"Actions here are irreversible. Selecting items and clearing them will permanently wipe their corresponding data."})]}),(0,v.jsx)("button",{disabled:0===j||e,onClick:()=>d(!0),className:"flex-shrink-0 px-6 py-2.5 text-sm font-bold bg-red-950/40 border border-red-900/50 text-red-500 hover:bg-red-900/60 hover:text-red-400 hover:border-red-500/80 disabled:opacity-40 disabled:cursor-not-allowed transition-all",children:e?"Clearing...":0===j?"Clear Selected":`Clear Selected (${j})`})]})}),(0,v.jsx)($,{isOpen:c,title:"Confirm Data Deletion",message:l,confirmText:"Yes, Clear Selected",onConfirm:k,onClose:()=>d(!1)})]})};var ac=a.i(15618);let ad=(0,U.default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);var ae=a.i(5784),af=a.i(50522);let ag=(0,U.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var ah=a.i(8406);let ai=(0,U.default)("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"}]]),aj=(0,U.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var ak=a.i(52495);let al=(0,U.default)("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"}]]),am=(0,U.default)("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"}]]),an=(0,U.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);var ao=a.i(35112);let ap=(0,U.default)("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"}]]),aq=(0,U.default)("file-braces",[["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 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]),ar=(0,U.default)("text-align-start",[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 19H3",key:"z6ezky"}]]);function as({value:a,onChange:b,className:c,...d}){let e=(0,w.useRef)(null),[f,g]=(0,w.useState)(!1),[h,i]=(0,w.useState)(""),[j,k]=(0,w.useState)(-1),[l,m]=(0,w.useState)([]),[n,o]=(0,w.useState)(!1),[p,q]=(0,w.useState)(0),[r,s]=(0,w.useState)({bottom:0,left:0,width:0});(0,w.useEffect)(()=>{if(!f)return;let a=!1;return o(!0),fetch(`/api/vault/search?q=${encodeURIComponent(h)}`).then(a=>a.ok?a.json():{files:[]}).then(b=>{a||(m(Array.isArray(b.files)?b.files:[]),q(0),o(!1))}).catch(()=>{a||(m([]),o(!1))}),()=>{a=!0}},[f,h]);let t=(0,w.useCallback)(()=>{let a=e.current;if(!a)return;let b=a.getBoundingClientRect();s({bottom:window.innerHeight-b.top+4,left:b.left,width:b.width})},[]),u=(0,w.useCallback)(()=>{g(!1),i(""),k(-1),m([]),q(0)},[]),x=(0,w.useCallback)(c=>{let d=e.current;if(!d||j<0)return;let f=d.selectionStart??a.length,g=a.slice(0,j),h=a.slice(f),i=`@[${c.path}]`,k=g+i+h,l=j+i.length,m=Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype,"value")?.set;m&&(m.call(d,k),d.dispatchEvent(new Event("input",{bubbles:!0}))),b({target:d}),setTimeout(()=>{d.setSelectionRange(l,l),d.focus()},0),u()},[j,a,b,u]),y=(0,w.useCallback)(a=>{f?"ArrowDown"===a.key?(a.preventDefault(),q(a=>Math.min(a+1,l.length-1))):"ArrowUp"===a.key?(a.preventDefault(),q(a=>Math.max(a-1,0))):"Enter"===a.key||"Tab"===a.key?l.length>0?(a.preventDefault(),x(l[p])):u():"Escape"===a.key?(a.preventDefault(),u()):d.onKeyDown?.(a):d.onKeyDown?.(a)},[f,l,p,x,u,d]),z=(0,w.useCallback)(a=>{let c=a.target.value,d=a.target.selectionStart??c.length,e=c.slice(0,d).match(/@([^@[\]\n]*)$/);if(e){let a=e[1],b=d-a.length-1;g(!0),i(a),k(b),q(0),t()}else f&&u();b(a)},[f,b,u,t]);(0,w.useEffect)(()=>{if(!f)return;let a=a=>{let b=e.current;if(b&&!b.contains(a.target)){let b=document.getElementById("vault-mention-dropdown");b&&b.contains(a.target)||u()}};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[f,u]),(0,w.useEffect)(()=>{if(!f)return;let a=()=>t();return window.addEventListener("scroll",a,!0),window.addEventListener("resize",a),()=>{window.removeEventListener("scroll",a,!0),window.removeEventListener("resize",a)}},[f,t]);let A=f?(0,ao.createPortal)((0,v.jsxs)("div",{id:"vault-mention-dropdown",style:{bottom:r.bottom,left:r.left,width:Math.max(r.width,288)},className:"fixed z-[9999] bg-zinc-900 border border-zinc-700 shadow-2xl rounded overflow-hidden",children:[(0,v.jsxs)("div",{className:"px-3 py-1.5 text-[10px] text-zinc-500 border-b border-zinc-800 font-mono flex items-center gap-1.5",children:[(0,v.jsx)("span",{className:"text-emerald-400",children:"@"})," Vault file reference",h&&(0,v.jsxs)("span",{className:"text-zinc-600",children:["— “",h,"”"]})]}),n?(0,v.jsx)("div",{className:"px-3 py-3 text-xs text-zinc-500 text-center",children:"Searching…"}):0===l.length?(0,v.jsx)("div",{className:"px-3 py-3 text-xs text-zinc-600 text-center",children:"No vault files found"}):(0,v.jsx)("div",{className:"max-h-52 overflow-y-auto",children:l.map((a,b)=>(0,v.jsxs)("button",{type:"button",onMouseDown:b=>{b.preventDefault(),x(a)},className:`w-full flex items-center gap-2.5 px-3 py-2 text-left hover:bg-zinc-800 transition-colors ${b===p?"bg-zinc-800":""}`,children:[".json"===a.ext?(0,v.jsx)(aq,{className:"h-3.5 w-3.5 text-amber-400 flex-shrink-0"}):".txt"===a.ext?(0,v.jsx)(ar,{className:"h-3.5 w-3.5 text-zinc-400 flex-shrink-0"}):(0,v.jsx)(ap,{className:"h-3.5 w-3.5 text-blue-400 flex-shrink-0"}),(0,v.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,v.jsx)("div",{className:"text-xs font-medium text-zinc-200 truncate",children:a.name}),(0,v.jsx)("div",{className:"text-[10px] text-zinc-500 truncate font-mono",children:a.path})]}),(0,v.jsx)("span",{className:`text-[9px] px-1 py-0.5 rounded font-mono flex-shrink-0 ${".json"===a.ext?"bg-amber-900/40 text-amber-400":".txt"===a.ext?"bg-zinc-800 text-zinc-400":"bg-blue-900/40 text-blue-400"}`,children:a.ext.slice(1)})]},a.path))}),(0,v.jsx)("div",{className:"px-3 py-1.5 border-t border-zinc-800 text-[9px] text-zinc-600 font-mono",children:"↑↓ navigate · Enter/Tab select · Esc cancel"})]}),document.body):null;return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("textarea",{ref:e,value:a,onChange:z,onKeyDown:y,className:c,...d}),A]})}let at={all_types:["sequentialthinking","read_file","read_multiple_files","search_files","list_directory","get_file_info","grep","glob","read_file_by_lines"],code:["search_codebase"],orchestrator:[]};var au=a.i(9353);let av={success:"bg-green-500/10 border border-green-500/30 text-green-400",warning:"bg-yellow-500/10 border border-yellow-500/30 text-yellow-300",error:"bg-red-500/10 border border-red-500/30 text-red-400"},aw={success:al,warning:V,error:am},ax=({show:a,message:b,type:c="success"})=>{if(!a)return null;let d=aw[c];return(0,v.jsxs)("div",{className:`fixed top-6 left-1/2 -translate-x-1/2 z-[100] flex items-center gap-2.5 px-4 py-2.5 rounded shadow-2xl text-xs font-medium animate-in fade-in slide-in-from-top-4 duration-300 ${av[c]}`,children:[(0,v.jsx)(d,{className:"h-4 w-4 shrink-0"}),(0,v.jsx)("span",{children:b})]})},ay=({agents:a,selectedAgentId:b,setSelectedAgentId:c,draftAgent:d,setDraftAgent:e,availableCapabilities:f,loadingCapabilities:g=!1,customTools:h,onDeleteAgent:i,providers:j,defaultModel:k,loadingAgents:l=!1})=>{let m,n,o=(0,O.useDispatch)(),[p,q]=(0,w.useState)([]),[r,s]=(0,w.useState)([]),[t,u]=(0,w.useState)([]),[x,z]=(0,w.useState)(new Set),[A,B]=(0,w.useState)(""),[C,E]=(0,w.useState)(!1),[F,G]=(0,w.useState)(!1),[H,I]=(0,w.useState)("config"),[K,L]=(0,w.useState)([]),[M,N]=(0,w.useState)(!1),[R,S]=(0,w.useState)(null),T=(a,b)=>{S({show:!0,message:a,type:b}),setTimeout(()=>S(null),4e3)},U=async()=>{if(d){N(!0);try{let b=await fetch("/api/agents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)});if(b.ok){let f=await b.json();a.some(a=>a.id===d.id)?o((0,P.updateAgent)(f)):(o((0,P.addAgent)(f)),c(f.id),e(f)),T("Agent saved successfully","success")}else T("Failed to save agent","error")}catch{T("Error saving agent","error")}finally{N(!1)}}};(0,w.useEffect)(()=>{I("config"),L([])},[b]),(0,w.useEffect)(()=>{fetch("/api/repos").then(a=>a.json()).then(a=>q(a)).catch(a=>console.error("Failed to fetch repos",a)),fetch("/api/db-configs").then(a=>a.json()).then(a=>s(a)).catch(a=>console.error("Failed to fetch DB configs",a)),fetch("/api/agent-types").then(a=>a.json()).then(a=>u(a.types||[])).catch(a=>console.error("Failed to fetch agent types",a))},[]);let V=a=>{let b=a.tools.every(a=>d.tools.includes(a));if(d.tools.includes("all")){let c=f.flatMap(a=>a.tools);if(b){let b=c.filter(b=>!a.tools.includes(b));e({...d,tools:b})}else e({...d,tools:[...d.tools,...a.tools]})}else if(b){let b=d.tools.filter(b=>!a.tools.includes(b));e({...d,tools:b})}else{let b=[...d.tools,...a.tools.filter(a=>!d.tools.includes(a))];e({...d,tools:b})}},W=async()=>{if(A.trim()){E(!0);try{let a=d.type||"conversational",b=[...at.all_types||[],...at[a]||[]],c=[];for(let a of f)for(let e of a.toolDetails||a.tools.map(a=>({name:a,description:""})))(b.includes(e.name)||d.tools.includes("all")||d.tools.includes(e.name))&&c.push(e.description?`${e.name} - ${e.description}`:e.name);let g=await fetch("/api/agents/generate-prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:A,agent_type:a,tools:c,existing_prompt:d.system_prompt||""}),signal:AbortSignal.timeout(18e4)});if(!g.ok)throw Error("Failed to generate prompt");let h=await g.json();e({...d,system_prompt:h.system_prompt}),B("")}catch(a){console.error("Failed to generate prompt:",a)}finally{E(!1)}}};return(0,v.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-12 gap-10",children:[R&&(0,v.jsx)(ax,{show:R.show,message:R.message,type:R.type}),(0,v.jsxs)("div",{className:"md:col-span-4 border-r border-zinc-800 pr-4 flex flex-col max-h-[calc(100vh-180px)] sticky top-0 self-start",children:[(0,v.jsxs)("div",{className:"mb-4 flex justify-between items-center",children:[(0,v.jsx)("h3",{className:"text-sm font-bold text-zinc-400",children:"YOUR AGENTS"}),(0,v.jsx)("button",{onClick:()=>{let a={id:`agent_${Date.now()}`,name:"New Agent",description:"A custom agent.",system_prompt:"You are a helpful assistant.",tools:[],repos:[],type:"conversational",avatar:"default",max_turns:30};e(a),c(a.id)},className:"p-1.5 hover:bg-zinc-800 text-white transition-colors border border-dashed border-zinc-600 hover:border-white",title:"Create New Agent",children:(0,v.jsx)(ac.Plus,{className:"h-4 w-4"})})]}),(0,v.jsxs)("div",{className:"space-y-2 flex-1 overflow-y-auto modern-scrollbar",children:[l&&0===a.length&&(0,v.jsxs)("div",{className:"flex items-center gap-2 text-zinc-500 text-sm py-4",children:[(0,v.jsx)(Q.Loader2,{className:"w-4 h-4 animate-spin"}),"Loading agents…"]}),Array.isArray(a)&&a.map(a=>(0,v.jsxs)("div",{onClick:()=>{c(a.id),e({...a})},className:`p-3 border cursor-pointer transition-all group relative
|
|
6
|
+
${b===a.id?"bg-zinc-900 border-white shadow-lg":"bg-black border-zinc-800 hover:border-zinc-600"}`,children:[(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)("div",{className:`h-8 w-8 rounded-full flex items-center justify-center text-xs font-bold
|
|
7
|
+
${b===a.id?"bg-white text-black":"bg-zinc-800 text-zinc-400"}
|
|
8
|
+
`,children:a.name.substring(0,2).toUpperCase()}),(0,v.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,v.jsx)("div",{className:"text-xs font-bold text-white truncate",children:a.name}),(0,v.jsx)("div",{className:"text-[10px] text-zinc-500 truncate",children:a.description})]})]}),(0,v.jsx)("button",{onClick:b=>{b.stopPropagation(),i(a.id)},className:"absolute top-2 right-2 p-1 text-zinc-600 hover:text-red-500 opacity-0 group-hover:opacity-100 transition-opacity",children:(0,v.jsx)(y.Trash,{className:"h-3 w-3"})})]},a.id))]})]}),(0,v.jsx)("div",{className:"md:col-span-8 pl-4",children:d?(0,v.jsx)("div",{className:"space-y-6 h-full flex flex-col pb-4",children:"orchestrator"===d.type?(0,v.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[400px] gap-6 text-center",children:[(0,v.jsxs)("div",{className:"relative",children:[(0,v.jsx)("div",{className:"h-20 w-20 rounded-full bg-gradient-to-br from-purple-900/60 to-violet-900/40 border border-purple-700/50 flex items-center justify-center",children:(0,v.jsx)("svg",{className:"h-9 w-9 text-purple-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,v.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z"})})}),(0,v.jsx)("div",{className:"absolute -top-1 -right-1 h-5 w-5 rounded-full bg-purple-600 flex items-center justify-center",children:(0,v.jsx)(ag,{className:"h-2.5 w-2.5 text-white"})})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("h4",{className:"text-sm font-bold text-white",children:d.name}),(0,v.jsxs)("p",{className:"text-[11px] text-zinc-500 max-w-[280px] leading-relaxed",children:["This is an ",(0,v.jsx)("span",{className:"text-purple-400 font-semibold",children:"Orchestration Agent"}),". Its workflow, steps, and configuration are managed in the dedicated Orchestrations editor."]})]}),(0,v.jsxs)("div",{className:"px-5 py-3 border border-dashed border-purple-800/60 bg-purple-950/20 rounded text-[10px] text-purple-300 flex items-center gap-2",children:[(0,v.jsx)(ak.ExternalLink,{className:"h-3 w-3 flex-shrink-0"}),"Open the ",(0,v.jsx)("strong",{children:"Orchestrations"})," menu to edit this agent's workflow"]})]}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsxs)("h3",{className:"text-sm font-bold text-white flex items-center gap-2",children:[(0,v.jsx)("div",{className:"h-2 w-2 rounded-full bg-purple-500"}),a.some(a=>a.id===d.id)?`EDITING: ${d.name.toUpperCase()}`:"NEW AGENT"]}),"config"===H&&(0,v.jsx)("button",{onClick:U,disabled:M,className:"flex items-center gap-2 px-4 py-1.5 bg-white text-black text-xs font-bold hover:bg-zinc-200 disabled:opacity-60 disabled:cursor-not-allowed",children:M?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(Q.Loader2,{className:"h-3 w-3 animate-spin"})," SAVING…"]}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ad,{className:"h-3 w-3"})," SAVE AGENT"]})})]}),(0,v.jsx)("div",{className:"flex gap-0 border-b border-zinc-800",children:[{id:"config",label:"Configuration"},{id:"messaging",label:"Messaging Channels"}].map(a=>(0,v.jsx)("button",{onClick:()=>{I(a.id),"messaging"===a.id&&d.id&&fetch(`/api/messaging/channels?agent_id=${d.id}`).then(a=>a.ok?a.json():[]).then(a=>L(Array.isArray(a)?a:[])).catch(()=>L([]))},className:`px-4 py-2 text-xs font-bold transition-all border-b-2 -mb-px
|
|
9
|
+
${H===a.id?"text-white border-white":"text-zinc-500 border-transparent hover:text-zinc-300"}`,children:a.label},a.id))}),"config"===H&&(0,v.jsxs)("div",{className:"space-y-6 flex-1 flex flex-col min-h-0",children:[(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-6",children:[(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"Name"}),(0,v.jsx)("input",{type:"text",value:d.name,onChange:a=>e({...d,name:a.target.value}),className:"w-full bg-zinc-950 border border-zinc-800 p-3 text-xs text-white focus:border-white focus:outline-none"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"Description"}),(0,v.jsx)("input",{type:"text",value:d.description,onChange:a=>e({...d,description:a.target.value}),className:"w-full bg-zinc-950 border border-zinc-800 p-3 text-xs text-white focus:border-white focus:outline-none"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"Agent Type"}),(0,v.jsx)("select",{value:d.type||"conversational",onChange:a=>{let b=a.target.value,c=at[d.type]||[],f=d.tools.filter(a=>!c.includes(a));e({...d,type:b,tools:f,max_turns:d.max_turns??("code"===b?50:30)})},className:"w-full bg-zinc-950 border border-zinc-800 p-3 text-xs text-white focus:border-white focus:outline-none",children:t.map(a=>(0,v.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,v.jsx)("p",{className:"text-[9px] text-zinc-500 mt-1",children:t.find(a=>a.value===(d.type||"conversational"))?.description})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"Model"}),(0,v.jsxs)("select",{value:d.model||"",onChange:a=>e({...d,model:a.target.value||null}),className:"w-full bg-zinc-950 border border-zinc-800 p-3 text-xs text-white focus:border-white focus:outline-none",children:[(0,v.jsxs)("option",{value:"",children:["Use Default (",k||"not set",")"]}),j&&Object.entries(j).map(([a,b])=>{if(!b.available||0===b.models.length)return null;let c=a.charAt(0).toUpperCase()+a.slice(1);return(0,v.jsx)("optgroup",{label:c,children:b.models.map(a=>(0,v.jsx)("option",{value:a,children:a},a))},a)})]}),(0,v.jsx)("p",{className:"text-[9px] text-zinc-500 mt-1",children:"Override the default model for this agent. Leave empty to use the system default."})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"Max Turns"}),(0,v.jsx)("input",{type:"number",min:1,max:200,value:d.max_turns??("code"===d.type?50:30),onChange:a=>e({...d,max_turns:parseInt(a.target.value)||30}),className:"w-full bg-zinc-950 border border-zinc-800 p-3 text-xs text-white focus:border-white focus:outline-none"}),(0,v.jsx)("p",{className:"text-[9px] text-zinc-500 mt-1",children:"Max reasoning turns per request. Orchestration steps override this value."})]})]}),"code"===d.type&&(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"Linked Repositories"}),(0,v.jsxs)("div",{className:"bg-zinc-950 border border-zinc-800 p-3 flex flex-wrap gap-2 min-h-[50px]",children:[0===p.length&&(0,v.jsx)("span",{className:"text-xs text-zinc-500",children:"No repositories indexed yet."}),p.map(a=>{let b=d.repos?.includes(a.id);return(0,v.jsxs)("button",{onClick:()=>{let c=d.repos||[];b?e({...d,repos:c.filter(b=>b!==a.id)}):e({...d,repos:[...c,a.id]})},className:`px-3 py-1.5 text-xs font-bold border transition-colors ${b?"bg-white text-black border-white":"bg-zinc-900 border-zinc-800 text-zinc-400 hover:border-zinc-500"}`,children:[a.name," ",b&&"✓"]},a.id)})]}),(0,v.jsx)("p",{className:"text-[9px] text-zinc-500 mt-1",children:"Select indexed repositories for semantic code search access."})]}),"code"===d.type&&(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"Linked Databases"}),(0,v.jsxs)("div",{className:"bg-zinc-950 border border-zinc-800 p-3 flex flex-wrap gap-2 min-h-[50px]",children:[0===r.length&&(0,v.jsx)("span",{className:"text-xs text-zinc-500",children:"No databases configured yet."}),r.map(a=>{let b=d.db_configs?.includes(a.id);return(0,v.jsxs)("button",{onClick:()=>{let c=d.db_configs||[];b?e({...d,db_configs:c.filter(b=>b!==a.id)}):e({...d,db_configs:[...c,a.id]})},className:`px-3 py-1.5 text-xs font-bold border transition-colors ${b?"bg-white text-black border-white":"bg-zinc-900 border-zinc-800 text-zinc-400 hover:border-zinc-500"}`,children:[a.name," ",(0,v.jsx)("span",{className:"opacity-50",children:a.db_type})," ",b&&"✓"]},a.id)})]}),(0,v.jsx)("p",{className:"text-[9px] text-zinc-500 mt-1",children:"Select databases to inject schema context into the agent's system prompt."})]}),(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"Capabilities (Tools)"}),g?(0,v.jsx)("div",{className:"grid grid-cols-2 gap-4",children:Array.from({length:8}).map((a,b)=>(0,v.jsxs)("div",{className:"border border-zinc-800 bg-black p-4 space-y-2 animate-pulse",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)("div",{className:"w-3 h-3 rounded-sm bg-zinc-800"}),(0,v.jsx)("div",{className:"h-2.5 bg-zinc-800 rounded w-24"})]}),(0,v.jsx)("div",{className:"h-2 bg-zinc-800/70 rounded w-32 ml-5"})]},b))}):(m=d.type||"conversational",n=new Set([...at.all_types||[],...at[m]||[]]),(0,v.jsx)("div",{className:"grid grid-cols-2 gap-4",children:f.map(a=>{let b=a.toolDetails||a.tools.map(a=>({name:a,description:""})),c=b.length>1,g=x.has(a.id),h=a.tools.every(a=>n.has(a)),i=a.tools.filter(a=>h||d.tools.includes("all")||d.tools.includes(a)).length,j=i===a.tools.length,k=i>0&&!j;return(0,v.jsxs)("div",{className:`border transition-colors
|
|
10
|
+
${h?"bg-zinc-900/60 border-blue-900/40":j?"bg-zinc-900 border-zinc-600":k?"bg-zinc-900/50 border-zinc-700":"bg-black border-zinc-800 opacity-50"}`,children:[(0,v.jsxs)("div",{className:`p-4 flex items-center gap-2 transition-colors ${h?"cursor-default":"cursor-pointer hover:bg-zinc-800/30"}`,onClick:()=>{if(!h)if(c){var b;b=a.id,z(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})}else V(a)},children:[h?(0,v.jsx)(ag,{className:"w-3 h-3 text-blue-400 flex-shrink-0"}):(0,v.jsx)("div",{onClick:b=>{c&&(b.stopPropagation(),V(a))},className:`w-3 h-3 border flex-shrink-0 flex items-center justify-center cursor-pointer
|
|
11
|
+
${j?"bg-green-500 border-green-500":k?"bg-yellow-500 border-yellow-500":"border-zinc-600"}`,children:k&&(0,v.jsx)("div",{className:"w-1.5 h-0.5 bg-white"})}),(0,v.jsx)("span",{className:"text-xs font-bold text-white truncate flex-1",children:a.label}),h&&(0,v.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 bg-blue-900/50 text-blue-400 border border-blue-900 rounded",children:"DEFAULT"}),!h&&"custom"===a.toolType&&(0,v.jsx)("span",{className:"text-[9px] px-1 bg-zinc-800 text-zinc-400 rounded",children:"CUSTOM"}),!h&&"mcp"===a.toolType&&(0,v.jsx)("span",{className:"text-[9px] px-1 bg-blue-900/50 text-blue-400 border border-blue-900 rounded",children:"MCP"}),!h&&c&&(0,v.jsxs)("span",{className:"text-[9px] text-zinc-500",children:[i,"/",a.tools.length]}),!h&&c&&(g?(0,v.jsx)(ae.ChevronDown,{className:"h-3 w-3 text-zinc-500 flex-shrink-0"}):(0,v.jsx)(af.ChevronRight,{className:"h-3 w-3 text-zinc-500 flex-shrink-0"}))]}),!g&&(0,v.jsx)("div",{className:"px-4 pb-3 -mt-1",children:(0,v.jsx)("p",{className:"text-[9px] text-zinc-500 pl-5 line-clamp-2",children:h?`Included by default for ${m} agents`:a.description})}),g&&c&&!h&&(0,v.jsx)("div",{className:"border-t border-zinc-800 px-3 py-2 space-y-1 max-h-[200px] overflow-y-auto",children:b.map(a=>{let b=n.has(a.name),c=b||d.tools.includes("all")||d.tools.includes(a.name);return(0,v.jsxs)("div",{onClick:()=>!b&&((a,b)=>{if(d.tools.includes("all")){let b=f.flatMap(a=>a.tools).filter(b=>b!==a);e({...d,tools:b})}else if(d.tools.includes(a)){let b=d.tools.filter(b=>b!==a);e({...d,tools:b})}else e({...d,tools:[...d.tools,a]})})(a.name,0),className:`flex gap-2.5 py-1.5 px-2 rounded transition-colors ${b?"cursor-default opacity-60":"cursor-pointer hover:bg-zinc-800/40"}`,children:[b?(0,v.jsx)(ag,{className:"w-2.5 h-2.5 text-blue-400 flex-shrink-0 mt-[3px]"}):(0,v.jsx)("div",{className:`w-2.5 h-2.5 border flex-shrink-0 mt-[3px]
|
|
12
|
+
${c?"bg-green-500 border-green-500":"border-zinc-600"}`}),(0,v.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,v.jsx)("div",{className:"text-[10px] font-mono text-zinc-300",children:a.name}),a.description&&(0,v.jsx)("p",{className:"text-[9px] text-zinc-600 mt-0.5 leading-tight line-clamp-2",children:a.description})]})]},a.name)})})]},a.id)})}))]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsxs)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase flex items-center gap-1.5",children:[(0,v.jsx)(ah.Sparkles,{className:"h-3 w-3"})," AI Prompt Writer"]}),(0,v.jsxs)("div",{className:"flex gap-2",children:[(0,v.jsx)("input",{type:"text",value:A,onChange:a=>B(a.target.value),onKeyDown:a=>"Enter"===a.key&&!C&&W(),placeholder:"Describe what this agent should do... e.g. 'A customer support agent for a SaaS product'",className:"flex-1 bg-zinc-950 border border-zinc-800 px-3 py-2 text-xs text-white focus:border-purple-500 focus:outline-none placeholder:text-zinc-600"}),(0,v.jsx)("button",{onClick:W,disabled:C||!A.trim(),className:"px-4 py-2 bg-purple-600 hover:bg-purple-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white text-xs font-bold flex items-center gap-2 transition-colors",children:C?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(Q.Loader2,{className:"h-3 w-3 animate-spin"})," GENERATING..."]}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ah.Sparkles,{className:"h-3 w-3"})," GENERATE"]})})]}),(0,v.jsx)("p",{className:"text-[9px] text-zinc-600",children:"Describe the agent's purpose and the AI will generate a comprehensive system prompt. Tools and date/time context are auto-injected at runtime."})]}),(0,v.jsxs)("div",{className:"space-y-1 flex-1 flex flex-col min-h-0",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"System Prompt (The Brain)"}),(0,v.jsxs)("button",{onClick:()=>G(!F),className:"flex items-center gap-1.5 text-[10px] font-bold text-zinc-500 hover:text-white transition-colors px-2 py-1",children:[F?(0,v.jsx)(aj,{className:"h-3 w-3"}):(0,v.jsx)(ai,{className:"h-3 w-3"}),F?"EDIT":"PREVIEW"]})]}),F?(0,v.jsx)("div",{className:"w-full flex-1 min-h-[200px] max-h-[500px] overflow-y-auto bg-zinc-950 border border-zinc-800 p-4 text-sm text-zinc-300 leading-relaxed",children:(0,au.renderTextContent)(d.system_prompt||"*No system prompt yet.*")}):(0,v.jsx)(as,{value:d.system_prompt,onChange:a=>e({...d,system_prompt:a.target.value}),className:"w-full flex-1 min-h-[200px] bg-zinc-950 border border-zinc-800 p-3 text-xs font-mono text-zinc-300 focus:border-white focus:outline-none resize-none leading-relaxed",placeholder:"You are a helpful assistant. Type @ to reference a vault file..."})]})]})," ","messaging"===H&&(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsxs)("p",{className:"text-[10px] text-zinc-500",children:["Messaging channels bound to this agent. Configure them in full from ",(0,v.jsx)("strong",{className:"text-zinc-300",children:"Settings → Messaging"}),"."]}),0===K.length?(0,v.jsxs)("div",{className:"p-8 border border-dashed border-zinc-800 text-center text-zinc-600 space-y-3",children:[(0,v.jsx)(J.MessageSquare,{className:"h-8 w-8 mx-auto opacity-20"}),(0,v.jsx)("p",{className:"text-xs",children:"No messaging channels bound to this agent yet."}),(0,v.jsxs)("p",{className:"text-[10px]",children:["Go to ",(0,v.jsx)("strong",{className:"text-zinc-400",children:"Settings → Messaging"})," and select this agent when creating a channel."]})]}):(0,v.jsx)("div",{className:"space-y-2",children:K.map(a=>(0,v.jsxs)("div",{className:"flex items-center gap-3 p-3 border border-zinc-800 bg-zinc-950",children:[(0,v.jsx)("span",{className:"text-lg",children:{telegram:"✈️",discord:"🎮",slack:"💬",teams:"📘",whatsapp:"📱"}[a.platform]??"🤖"}),(0,v.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,v.jsx)("div",{className:"text-xs font-bold text-white",children:a.name}),(0,v.jsxs)("div",{className:"text-[10px] text-zinc-500 capitalize",children:[a.platform,a.multi_agent_mode?" · multi-agent":""]})]}),"running"===a.status?(0,v.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-green-400",children:[(0,v.jsx)(al,{className:"h-3 w-3"})," Running"]}):"error"===a.status?(0,v.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-red-400",children:[(0,v.jsx)(am,{className:"h-3 w-3"})," Error"]}):(0,v.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-zinc-500",children:[(0,v.jsx)(an,{className:"h-3 w-3"})," Stopped"]})]},a.id))})]})]})}):(0,v.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-zinc-600 space-y-4",children:[(0,v.jsx)(D.Bot,{className:"h-12 w-12 opacity-20"}),(0,v.jsx)("p",{className:"text-sm",children:"Select an agent to edit or create a new one."})]})})]})};var az=a.i(33508);let aA=(0,U.default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var aB=a.i(69520);let aC=(0,U.default)("container",[["path",{d:"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z",key:"1t2lqe"}],["path",{d:"M10 21.9V14L2.1 9.1",key:"o7czzq"}],["path",{d:"m10 14 11.9-6.9",key:"zm5e20"}],["path",{d:"M14 19.8v-8.1",key:"159ecu"}],["path",{d:"M18 17.5V9.4",key:"11uown"}]]),aD=(0,U.default)("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"}]]),aE=(0,U.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);var aF=a.i(80386);let aG=(0,U.default)("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"}]]),aH=[],aI=[],aJ="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(a=>a?parseInt(a,36):1);for(let a=0,b=0;a<aJ.length;a++)(a%2?aI:aH).push(b+=aJ[a]);function aK(a){return a>=127462&&a<=127487}function aL(a,b,c){if(b==a.length)return b;b&&aN(a.charCodeAt(b))&&aO(a.charCodeAt(b-1))&&b--;let d=aM(a,b);for(b+=aP(d);b<a.length;){let e=aM(a,b);if(8205==d||8205==e||c&&function(a){if(a<768)return!1;for(let b=0,c=aH.length;;){let d=b+c>>1;if(a<aH[d])c=d;else{if(!(a>=aI[d]))return!0;b=d+1}if(b==c)return!1}}(e))b+=aP(e),d=e;else if(aK(e)){let c=0,d=b-2;for(;d>=0&&aK(aM(a,d));)c++,d-=2;if(c%2==0)break;b+=2}else break}return b}function aM(a,b){let c=a.charCodeAt(b);if(!aO(c)||b+1==a.length)return c;let d=a.charCodeAt(b+1);return aN(d)?(c-55296<<10)+(d-56320)+65536:c}function aN(a){return a>=56320&&a<57344}function aO(a){return a>=55296&&a<56320}function aP(a){return a<65536?1:2}class aQ{lineAt(a){if(a<0||a>this.length)throw RangeError(`Invalid position ${a} in document of length ${this.length}`);return this.lineInner(a,!1,1,0)}line(a){if(a<1||a>this.lines)throw RangeError(`Invalid line number ${a} in ${this.lines}-line document`);return this.lineInner(a,!0,1,0)}replace(a,b,c){[a,b]=aY(this,a,b);let d=[];return this.decompose(0,a,d,2),c.length&&c.decompose(0,c.length,d,3),this.decompose(b,this.length,d,1),aS.from(d,this.length-(b-a)+c.length)}append(a){return this.replace(this.length,this.length,a)}slice(a,b=this.length){[a,b]=aY(this,a,b);let c=[];return this.decompose(a,b,c,0),aS.from(c,b-a)}eq(a){if(a==this)return!0;if(a.length!=this.length||a.lines!=this.lines)return!1;let b=this.scanIdentical(a,1),c=this.length-this.scanIdentical(a,-1),d=new aU(this),e=new aU(a);for(let a=b,f=b;;){if(d.next(a),e.next(a),a=0,d.lineBreak!=e.lineBreak||d.done!=e.done||d.value!=e.value)return!1;if(f+=d.value.length,d.done||f>=c)return!0}}iter(a=1){return new aU(this,a)}iterRange(a,b=this.length){return new aV(this,a,b)}iterLines(a,b){let c;if(null==a)c=this.iter();else{null==b&&(b=this.lines+1);let d=this.line(a).from;c=this.iterRange(d,Math.max(d,b==this.lines+1?this.length:b<=1?0:this.line(b-1).to))}return new aW(c)}toString(){return this.sliceString(0)}toJSON(){let a=[];return this.flatten(a),a}static of(a){if(0==a.length)throw RangeError("A document must have at least one line");return 1!=a.length||a[0]?a.length<=32?new aR(a):aS.from(aR.split(a,[])):aQ.empty}}class aR extends aQ{constructor(a,b=function(a){let b=-1;for(let c of a)b+=c.length+1;return b}(a)){super(),this.text=a,this.length=b}get lines(){return this.text.length}get children(){return null}lineInner(a,b,c,d){for(let e=0;;e++){let f=this.text[e],g=d+f.length;if((b?c:g)>=a)return new aX(d,g,c,f);d=g+1,c++}}decompose(a,b,c,d){var e;let f=a<=0&&b>=this.length?this:new aR((e=this.text,aT(e,[""],a,b)),Math.min(b,this.length)-Math.max(0,a));if(1&d){let a=c.pop(),b=aT(f.text,a.text.slice(),0,f.length);if(b.length<=32)c.push(new aR(b,a.length+f.length));else{let a=b.length>>1;c.push(new aR(b.slice(0,a)),new aR(b.slice(a)))}}else c.push(f)}replace(a,b,c){var d;if(!(c instanceof aR))return super.replace(a,b,c);[a,b]=aY(this,a,b);let e=aT(this.text,aT(c.text,(d=this.text,aT(d,[""],0,a))),b),f=this.length+c.length-(b-a);return e.length<=32?new aR(e,f):aS.from(aR.split(e,[]),f)}sliceString(a,b=this.length,c="\n"){[a,b]=aY(this,a,b);let d="";for(let e=0,f=0;e<=b&&f<this.text.length;f++){let g=this.text[f],h=e+g.length;e>a&&f&&(d+=c),a<h&&b>e&&(d+=g.slice(Math.max(0,a-e),b-e)),e=h+1}return d}flatten(a){for(let b of this.text)a.push(b)}scanIdentical(){return 0}static split(a,b){let c=[],d=-1;for(let e of a)c.push(e),d+=e.length+1,32==c.length&&(b.push(new aR(c,d)),c=[],d=-1);return d>-1&&b.push(new aR(c,d)),b}}class aS extends aQ{constructor(a,b){for(let c of(super(),this.children=a,this.length=b,this.lines=0,a))this.lines+=c.lines}lineInner(a,b,c,d){for(let e=0;;e++){let f=this.children[e],g=d+f.length,h=c+f.lines-1;if((b?h:g)>=a)return f.lineInner(a,b,c,d);d=g+1,c=h+1}}decompose(a,b,c,d){for(let e=0,f=0;f<=b&&e<this.children.length;e++){let g=this.children[e],h=f+g.length;if(a<=h&&b>=f){let e=d&(f<=a|2*(h>=b));f>=a&&h<=b&&!e?c.push(g):g.decompose(a-f,b-f,c,e)}f=h+1}}replace(a,b,c){if([a,b]=aY(this,a,b),c.lines<this.lines)for(let d=0,e=0;d<this.children.length;d++){let f=this.children[d],g=e+f.length;if(a>=e&&b<=g){let h=f.replace(a-e,b-e,c),i=this.lines-f.lines+h.lines;if(h.lines<i>>4&&h.lines>i>>6){let e=this.children.slice();return e[d]=h,new aS(e,this.length-(b-a)+c.length)}return super.replace(e,g,h)}e=g+1}return super.replace(a,b,c)}sliceString(a,b=this.length,c="\n"){[a,b]=aY(this,a,b);let d="";for(let e=0,f=0;e<this.children.length&&f<=b;e++){let g=this.children[e],h=f+g.length;f>a&&e&&(d+=c),a<h&&b>f&&(d+=g.sliceString(a-f,b-f,c)),f=h+1}return d}flatten(a){for(let b of this.children)b.flatten(a)}scanIdentical(a,b){if(!(a instanceof aS))return 0;let c=0,[d,e,f,g]=b>0?[0,0,this.children.length,a.children.length]:[this.children.length-1,a.children.length-1,-1,-1];for(;;d+=b,e+=b){if(d==f||e==g)return c;let h=this.children[d],i=a.children[e];if(h!=i)return c+h.scanIdentical(i,b);c+=h.length+1}}static from(a,b=a.reduce((a,b)=>a+b.length+1,-1)){let c=0;for(let b of a)c+=b.lines;if(c<32){let c=[];for(let b of a)b.flatten(c);return new aR(c,b)}let d=Math.max(32,c>>5),e=d<<1,f=d>>1,g=[],h=0,i=-1,j=[];function k(){0!=h&&(g.push(1==j.length?j[0]:aS.from(j,i)),i=-1,h=j.length=0)}for(let b of a)!function a(b){let c;if(b.lines>e&&b instanceof aS)for(let c of b.children)a(c);else b.lines>f&&(h>f||!h)?(k(),g.push(b)):b instanceof aR&&h&&(c=j[j.length-1])instanceof aR&&b.lines+c.lines<=32?(h+=b.lines,i+=b.length+1,j[j.length-1]=new aR(c.text.concat(b.text),c.length+1+b.length)):(h+b.lines>d&&k(),h+=b.lines,i+=b.length+1,j.push(b))}(b);return k(),1==g.length?g[0]:new aS(g,b)}}function aT(a,b,c=0,d=1e9){for(let e=0,f=0,g=!0;f<a.length&&e<=d;f++){let h=a[f],i=e+h.length;i>=c&&(i>d&&(h=h.slice(0,d-e)),e<c&&(h=h.slice(c-e)),g?(b[b.length-1]+=h,g=!1):b.push(h)),e=i+1}return b}aQ.empty=new aR([""],0);class aU{constructor(a,b=1){this.dir=b,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[a],this.offsets=[b>0?1:(a instanceof aR?a.text.length:a.children.length)<<1]}nextInner(a,b){for(this.done=this.lineBreak=!1;;){let c=this.nodes.length-1,d=this.nodes[c],e=this.offsets[c],f=e>>1,g=d instanceof aR?d.text.length:d.children.length;if(f==(b>0?g:0)){if(0==c)return this.done=!0,this.value="",this;b>0&&this.offsets[c-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&e)==(b>0?0:1)){if(this.offsets[c]+=b,0==a)return this.lineBreak=!0,this.value="\n",this;a--}else if(d instanceof aR){let e=d.text[f+(b<0?-1:0)];if(this.offsets[c]+=b,e.length>Math.max(0,a))return this.value=0==a?e:b>0?e.slice(a):e.slice(0,e.length-a),this;a-=e.length}else{let e=d.children[f+(b<0?-1:0)];a>e.length?(a-=e.length,this.offsets[c]+=b):(b<0&&this.offsets[c]--,this.nodes.push(e),this.offsets.push(b>0?1:(e instanceof aR?e.text.length:e.children.length)<<1))}}}next(a=0){return a<0&&(this.nextInner(-a,-this.dir),a=this.value.length),this.nextInner(a,this.dir)}}class aV{constructor(a,b,c){this.value="",this.done=!1,this.cursor=new aU(a,b>c?-1:1),this.pos=b>c?a.length:0,this.from=Math.min(b,c),this.to=Math.max(b,c)}nextInner(a,b){if(b<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;a+=Math.max(0,b<0?this.pos-this.to:this.from-this.pos);let c=b<0?this.pos-this.from:this.to-this.pos;a>c&&(a=c),c-=a;let{value:d}=this.cursor.next(a);return this.pos+=(d.length+a)*b,this.value=d.length<=c?d:b<0?d.slice(d.length-c):d.slice(0,c),this.done=!this.value,this}next(a=0){return a<0?a=Math.max(a,this.from-this.pos):a>0&&(a=Math.min(a,this.to-this.pos)),this.nextInner(a,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class aW{constructor(a){this.inner=a,this.afterBreak=!0,this.value="",this.done=!1}next(a=0){let{done:b,lineBreak:c,value:d}=this.inner.next(a);return b&&this.afterBreak?(this.value="",this.afterBreak=!1):b?(this.done=!0,this.value=""):c?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=d,this.afterBreak=!1),this}get lineBreak(){return!1}}"u">typeof Symbol&&(aQ.prototype[Symbol.iterator]=function(){return this.iter()},aU.prototype[Symbol.iterator]=aV.prototype[Symbol.iterator]=aW.prototype[Symbol.iterator]=function(){return this});class aX{constructor(a,b,c,d){this.from=a,this.to=b,this.number=c,this.text=d}get length(){return this.to-this.from}}function aY(a,b,c){return[b=Math.max(0,Math.min(a.length,b)),Math.max(b,Math.min(a.length,c))]}function aZ(a,b,c=!0,d=!0){return function(a,b,c=!0,d=!0){return(c?aL:function(a,b,c){for(;b>0;){let d=aL(a,b-2,c);if(d<b)return d;b--}return 0})(a,b,d)}(a,b,c,d)}function a$(a,b){let c=a.charCodeAt(b);if(!(c>=55296&&c<56320)||b+1==a.length)return c;let d=a.charCodeAt(b+1);return d>=56320&&d<57344?(c-55296<<10)+(d-56320)+65536:c}function a_(a){return a<=65535?String.fromCharCode(a):String.fromCharCode(((a-=65536)>>10)+55296,(1023&a)+56320)}function a0(a){return a<65536?1:2}let a1=/\r\n?|\n/;var a2=((pN=a2||(a2={}))[pN.Simple=0]="Simple",pN[pN.TrackDel=1]="TrackDel",pN[pN.TrackBefore=2]="TrackBefore",pN[pN.TrackAfter=3]="TrackAfter",pN);class a3{constructor(a){this.sections=a}get length(){let a=0;for(let b=0;b<this.sections.length;b+=2)a+=this.sections[b];return a}get newLength(){let a=0;for(let b=0;b<this.sections.length;b+=2){let c=this.sections[b+1];a+=c<0?this.sections[b]:c}return a}get empty(){return 0==this.sections.length||2==this.sections.length&&this.sections[1]<0}iterGaps(a){for(let b=0,c=0,d=0;b<this.sections.length;){let e=this.sections[b++],f=this.sections[b++];f<0?(a(c,d,e),d+=e):d+=f,c+=e}}iterChangedRanges(a,b=!1){a7(this,a,b)}get invertedDesc(){let a=[];for(let b=0;b<this.sections.length;){let c=this.sections[b++],d=this.sections[b++];d<0?a.push(c,d):a.push(d,c)}return new a3(a)}composeDesc(a){return this.empty?a:a.empty?this:a9(this,a)}mapDesc(a,b=!1){return a.empty?this:a8(this,a,b)}mapPos(a,b=-1,c=a2.Simple){let d=0,e=0;for(let f=0;f<this.sections.length;){let g=this.sections[f++],h=this.sections[f++],i=d+g;if(h<0){if(i>a)return e+(a-d);e+=g}else{if(c!=a2.Simple&&i>=a&&(c==a2.TrackDel&&d<a&&i>a||c==a2.TrackBefore&&d<a||c==a2.TrackAfter&&i>a))return null;if(i>a||i==a&&b<0&&!g)return a==d||b<0?e:e+h;e+=h}d=i}if(a>d)throw RangeError(`Position ${a} is out of range for changeset of length ${d}`);return e}touchesRange(a,b=a){for(let c=0,d=0;c<this.sections.length&&d<=b;){let e=this.sections[c++],f=this.sections[c++],g=d+e;if(f>=0&&d<=b&&g>=a)return!(d<a)||!(g>b)||"cover";d=g}return!1}toString(){let a="";for(let b=0;b<this.sections.length;){let c=this.sections[b++],d=this.sections[b++];a+=(a?" ":"")+c+(d>=0?":"+d:"")}return a}toJSON(){return this.sections}static fromJSON(a){if(!Array.isArray(a)||a.length%2||a.some(a=>"number"!=typeof a))throw RangeError("Invalid JSON representation of ChangeDesc");return new a3(a)}static create(a){return new a3(a)}}class a4 extends a3{constructor(a,b){super(a),this.inserted=b}apply(a){if(this.length!=a.length)throw RangeError("Applying change set to a document with the wrong length");return a7(this,(b,c,d,e,f)=>a=a.replace(d,d+(c-b),f),!1),a}mapDesc(a,b=!1){return a8(this,a,b,!0)}invert(a){let b=this.sections.slice(),c=[];for(let d=0,e=0;d<b.length;d+=2){let f=b[d],g=b[d+1];if(g>=0){b[d]=g,b[d+1]=f;let h=d>>1;for(;c.length<h;)c.push(aQ.empty);c.push(f?a.slice(e,e+f):aQ.empty)}e+=f}return new a4(b,c)}compose(a){return this.empty?a:a.empty?this:a9(this,a,!0)}map(a,b=!1){return a.empty?this:a8(this,a,b,!0)}iterChanges(a,b=!1){a7(this,a,b)}get desc(){return a3.create(this.sections)}filter(a){let b=[],c=[],d=[],e=new ba(this);a:for(let f=0,g=0;;){let h=f==a.length?1e9:a[f++];for(;g<h||g==h&&0==e.len;){if(e.done)break a;let a=Math.min(e.len,h-g);a5(d,a,-1);let f=-1==e.ins?-1:0==e.off?e.ins:0;a5(b,a,f),f>0&&a6(c,b,e.text),e.forward(a),g+=a}let i=a[f++];for(;g<i;){if(e.done)break a;let a=Math.min(e.len,i-g);a5(b,a,-1),a5(d,a,-1==e.ins?-1:0==e.off?e.ins:0),e.forward(a),g+=a}}return{changes:new a4(b,c),filtered:a3.create(d)}}toJSON(){let a=[];for(let b=0;b<this.sections.length;b+=2){let c=this.sections[b],d=this.sections[b+1];d<0?a.push(c):0==d?a.push([c]):a.push([c].concat(this.inserted[b>>1].toJSON()))}return a}static of(a,b,c){let d=[],e=[],f=0,g=null;function h(a=!1){if(!a&&!d.length)return;f<b&&a5(d,b-f,-1);let c=new a4(d,e);g=g?g.compose(c.map(g)):c,d=[],e=[],f=0}return!function a(i){if(Array.isArray(i))for(let b of i)a(b);else if(i instanceof a4){if(i.length!=b)throw RangeError(`Mismatched change set length (got ${i.length}, expected ${b})`);h(),g=g?g.compose(i.map(g)):i}else{let{from:a,to:g=a,insert:j}=i;if(a>g||a<0||g>b)throw RangeError(`Invalid change range ${a} to ${g} (in doc of length ${b})`);let k=j?"string"==typeof j?aQ.of(j.split(c||a1)):j:aQ.empty,l=k.length;if(a==g&&0==l)return;a<f&&h(),a>f&&a5(d,a-f,-1),a5(d,g-a,l),a6(e,d,k),f=g}}(a),h(!g),g}static empty(a){return new a4(a?[a,-1]:[],[])}static fromJSON(a){if(!Array.isArray(a))throw RangeError("Invalid JSON representation of ChangeSet");let b=[],c=[];for(let d=0;d<a.length;d++){let e=a[d];if("number"==typeof e)b.push(e,-1);else if(!Array.isArray(e)||"number"!=typeof e[0]||e.some((a,b)=>b&&"string"!=typeof a))throw RangeError("Invalid JSON representation of ChangeSet");else if(1==e.length)b.push(e[0],0);else{for(;c.length<d;)c.push(aQ.empty);c[d]=aQ.of(e.slice(1)),b.push(e[0],c[d].length)}}return new a4(b,c)}static createSet(a,b){return new a4(a,b)}}function a5(a,b,c,d=!1){if(0==b&&c<=0)return;let e=a.length-2;e>=0&&c<=0&&c==a[e+1]?a[e]+=b:e>=0&&0==b&&0==a[e]?a[e+1]+=c:d?(a[e]+=b,a[e+1]+=c):a.push(b,c)}function a6(a,b,c){if(0==c.length)return;let d=b.length-2>>1;if(d<a.length)a[a.length-1]=a[a.length-1].append(c);else{for(;a.length<d;)a.push(aQ.empty);a.push(c)}}function a7(a,b,c){let d=a.inserted;for(let e=0,f=0,g=0;g<a.sections.length;){let h=a.sections[g++],i=a.sections[g++];if(i<0)e+=h,f+=h;else{let j=e,k=f,l=aQ.empty;for(;j+=h,k+=i,i&&d&&(l=l.append(d[g-2>>1])),!c&&g!=a.sections.length&&!(a.sections[g+1]<0);)h=a.sections[g++],i=a.sections[g++];b(e,j,f,k,l),e=j,f=k}}}function a8(a,b,c,d=!1){let e=[],f=d?[]:null,g=new ba(a),h=new ba(b);for(let a=-1;;)if(g.done&&h.len||h.done&&g.len)throw Error("Mismatched change set lengths");else if(-1==g.ins&&-1==h.ins){let a=Math.min(g.len,h.len);a5(e,a,-1),g.forward(a),h.forward(a)}else if(h.ins>=0&&(g.ins<0||a==g.i||0==g.off&&(h.len<g.len||h.len==g.len&&!c))){let b=h.len;for(a5(e,h.ins,-1);b;){let c=Math.min(g.len,b);g.ins>=0&&a<g.i&&g.len<=c&&(a5(e,0,g.ins),f&&a6(f,e,g.text),a=g.i),g.forward(c),b-=c}h.next()}else if(g.ins>=0){let b=0,c=g.len;for(;c;)if(-1==h.ins){let a=Math.min(c,h.len);b+=a,c-=a,h.forward(a)}else if(0==h.ins&&h.len<c)c-=h.len,h.next();else break;a5(e,b,a<g.i?g.ins:0),f&&a<g.i&&a6(f,e,g.text),a=g.i,g.forward(g.len-c)}else if(g.done&&h.done)return f?a4.createSet(e,f):a3.create(e);else throw Error("Mismatched change set lengths")}function a9(a,b,c=!1){let d=[],e=c?[]:null,f=new ba(a),g=new ba(b);for(let a=!1;;)if(f.done&&g.done)return e?a4.createSet(d,e):a3.create(d);else if(0==f.ins)a5(d,f.len,0,a),f.next();else if(0!=g.len||g.done)if(f.done||g.done)throw Error("Mismatched change set lengths");else{let b=Math.min(f.len2,g.len),c=d.length;if(-1==f.ins){let c=-1==g.ins?-1:g.off?0:g.ins;a5(d,b,c,a),e&&c&&a6(e,d,g.text)}else -1==g.ins?(a5(d,f.off?0:f.len,b,a),e&&a6(e,d,f.textBit(b))):(a5(d,f.off?0:f.len,g.off?0:g.ins,a),e&&!g.off&&a6(e,d,g.text));a=(f.ins>b||g.ins>=0&&g.len>b)&&(a||d.length>c),f.forward2(b),g.forward(b)}else a5(d,0,g.ins,a),e&&a6(e,d,g.text),g.next()}class ba{constructor(a){this.set=a,this.i=0,this.next()}next(){let{sections:a}=this.set;this.i<a.length?(this.len=a[this.i++],this.ins=a[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return -2==this.ins}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:a}=this.set,b=this.i-2>>1;return b>=a.length?aQ.empty:a[b]}textBit(a){let{inserted:b}=this.set,c=this.i-2>>1;return c>=b.length&&!a?aQ.empty:b[c].slice(this.off,null==a?void 0:this.off+a)}forward(a){a==this.len?this.next():(this.len-=a,this.off+=a)}forward2(a){-1==this.ins?this.forward(a):a==this.ins?this.next():(this.ins-=a,this.off+=a)}}class bb{constructor(a,b,c){this.from=a,this.to=b,this.flags=c}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let a=7&this.flags;return 7==a?null:a}get goalColumn(){let a=this.flags>>6;return 0xffffff==a?void 0:a}map(a,b=-1){let c,d;return this.empty?c=d=a.mapPos(this.from,b):(c=a.mapPos(this.from,1),d=a.mapPos(this.to,-1)),c==this.from&&d==this.to?this:new bb(c,d,this.flags)}extend(a,b=a,c=0){if(a<=this.anchor&&b>=this.anchor)return bc.range(a,b,void 0,void 0,c);let d=Math.abs(a-this.anchor)>Math.abs(b-this.anchor)?a:b;return bc.range(this.anchor,d,void 0,void 0,c)}eq(a,b=!1){return this.anchor==a.anchor&&this.head==a.head&&this.goalColumn==a.goalColumn&&(!b||!this.empty||this.assoc==a.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(a){if(!a||"number"!=typeof a.anchor||"number"!=typeof a.head)throw RangeError("Invalid JSON representation for SelectionRange");return bc.range(a.anchor,a.head)}static create(a,b,c){return new bb(a,b,c)}}class bc{constructor(a,b){this.ranges=a,this.mainIndex=b}map(a,b=-1){return a.empty?this:bc.create(this.ranges.map(c=>c.map(a,b)),this.mainIndex)}eq(a,b=!1){if(this.ranges.length!=a.ranges.length||this.mainIndex!=a.mainIndex)return!1;for(let c=0;c<this.ranges.length;c++)if(!this.ranges[c].eq(a.ranges[c],b))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return 1==this.ranges.length?this:new bc([this.main],0)}addRange(a,b=!0){return bc.create([a].concat(this.ranges),b?0:this.mainIndex+1)}replaceRange(a,b=this.mainIndex){let c=this.ranges.slice();return c[b]=a,bc.create(c,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(a=>a.toJSON()),main:this.mainIndex}}static fromJSON(a){if(!a||!Array.isArray(a.ranges)||"number"!=typeof a.main||a.main>=a.ranges.length)throw RangeError("Invalid JSON representation for EditorSelection");return new bc(a.ranges.map(a=>bb.fromJSON(a)),a.main)}static single(a,b=a){return new bc([bc.range(a,b)],0)}static create(a,b=0){if(0==a.length)throw RangeError("A selection needs at least one range");for(let c=0,d=0;d<a.length;d++){let e=a[d];if(e.empty?e.from<=c:e.from<c)return bc.normalized(a.slice(),b);c=e.to}return new bc(a,b)}static cursor(a,b=0,c,d){return bb.create(a,a,(0==b?0:b<0?8:16)|(null==c?7:Math.min(6,c))|(null!=d?d:0xffffff)<<6)}static range(a,b,c,d,e){let f=(null!=c?c:0xffffff)<<6|(null==d?7:Math.min(6,d));return e||a==b||(e=b<a?1:-1),b<a?bb.create(b,a,48|f):bb.create(a,b,(e?e<0?8:16:0)|f)}static normalized(a,b=0){let c=a[b];a.sort((a,b)=>a.from-b.from),b=a.indexOf(c);for(let c=1;c<a.length;c++){let d=a[c],e=a[c-1];if(d.empty?d.from<=e.to:d.from<e.to){let f=e.from,g=Math.max(d.to,e.to);c<=b&&b--,a.splice(--c,2,d.anchor>d.head?bc.range(g,f):bc.range(f,g))}}return new bc(a,b)}}function bd(a,b){for(let c of a.ranges)if(c.to>b)throw RangeError("Selection points outside of document")}let be=0;class bf{constructor(a,b,c,d,e){this.combine=a,this.compareInput=b,this.compare=c,this.isStatic=d,this.id=be++,this.default=a([]),this.extensions="function"==typeof e?e(this):e}get reader(){return this}static define(a={}){return new bf(a.combine||(a=>a),a.compareInput||((a,b)=>a===b),a.compare||(!a.combine?bg:(a,b)=>a===b),!!a.static,a.enables)}of(a){return new bh([],this,0,a)}compute(a,b){if(this.isStatic)throw Error("Can't compute a static facet");return new bh(a,this,1,b)}computeN(a,b){if(this.isStatic)throw Error("Can't compute a static facet");return new bh(a,this,2,b)}from(a,b){return b||(b=a=>a),this.compute([a],c=>b(c.field(a)))}}function bg(a,b){return a==b||a.length==b.length&&a.every((a,c)=>a===b[c])}class bh{constructor(a,b,c,d){this.dependencies=a,this.facet=b,this.type=c,this.value=d,this.id=be++}dynamicSlot(a){var b;let c=this.value,d=this.facet.compareInput,e=this.id,f=a[e]>>1,g=2==this.type,h=!1,i=!1,j=[];for(let c of this.dependencies)"doc"==c?h=!0:"selection"==c?i=!0:((null!=(b=a[c.id])?b:1)&1)==0&&j.push(a[c.id]);return{create:a=>(a.values[f]=c(a),1),update(a,b){if(h&&b.docChanged||i&&(b.docChanged||b.selection)||bj(a,j)){let b=c(a);if(g?!bi(b,a.values[f],d):!d(b,a.values[f]))return a.values[f]=b,1}return 0},reconfigure:(a,b)=>{let h,i=b.config.address[e];if(null!=i){let e=bt(b,i);if(this.dependencies.every(c=>c instanceof bf?b.facet(c)===a.facet(c):!(c instanceof bl)||b.field(c,!1)==a.field(c,!1))||(g?bi(h=c(a),e,d):d(h=c(a),e)))return a.values[f]=e,0}else h=c(a);return a.values[f]=h,1}}}}function bi(a,b,c){if(a.length!=b.length)return!1;for(let d=0;d<a.length;d++)if(!c(a[d],b[d]))return!1;return!0}function bj(a,b){let c=!1;for(let d of b)1&bs(a,d)&&(c=!0);return c}let bk=bf.define({static:!0});class bl{constructor(a,b,c,d,e){this.id=a,this.createF=b,this.updateF=c,this.compareF=d,this.spec=e,this.provides=void 0}static define(a){let b=new bl(be++,a.create,a.update,a.compare||((a,b)=>a===b),a);return a.provide&&(b.provides=a.provide(b)),b}create(a){let b=a.facet(bk).find(a=>a.field==this);return((null==b?void 0:b.create)||this.createF)(a)}slot(a){let b=a[this.id]>>1;return{create:a=>(a.values[b]=this.create(a),1),update:(a,c)=>{let d=a.values[b],e=this.updateF(d,c);return this.compareF(d,e)?0:(a.values[b]=e,1)},reconfigure:(a,c)=>{let d=a.facet(bk),e=c.facet(bk),f;return(f=d.find(a=>a.field==this))&&f!=e.find(a=>a.field==this)?(a.values[b]=f.create(a),1):null!=c.config.address[this.id]?(a.values[b]=c.field(this),0):(a.values[b]=this.create(a),1)}}}init(a){return[this,bk.of({field:this,create:a})]}get extension(){return this}}function bm(a){return b=>new bo(b,a)}let bn={highest:bm(0),high:bm(1),default:bm(2),low:bm(3),lowest:bm(4)};class bo{constructor(a,b){this.inner=a,this.prec=b}}class bp{of(a){return new bq(this,a)}reconfigure(a){return bp.reconfigure.of({compartment:this,extension:a})}get(a){return a.config.compartments.get(this)}}class bq{constructor(a,b){this.compartment=a,this.inner=b}}class br{constructor(a,b,c,d,e,f){for(this.base=a,this.compartments=b,this.dynamicSlots=c,this.address=d,this.staticValues=e,this.facets=f,this.statusTemplate=[];this.statusTemplate.length<c.length;)this.statusTemplate.push(0)}staticFacet(a){let b=this.address[a.id];return null==b?a.default:this.staticValues[b>>1]}static resolve(a,b,c){var d,e,f;let g,h,i=[],j=Object.create(null),k=new Map;for(let c of(d=a,e=b,f=k,g=[[],[],[],[],[]],h=new Map,!function a(b,c){let d=h.get(b);if(null!=d){if(d<=c)return;let a=g[d].indexOf(b);a>-1&&g[d].splice(a,1),b instanceof bq&&f.delete(b.compartment)}if(h.set(b,c),Array.isArray(b))for(let d of b)a(d,c);else if(b instanceof bq){if(f.has(b.compartment))throw RangeError("Duplicate use of compartment in extensions");let d=e.get(b.compartment)||b.inner;f.set(b.compartment,d),a(d,c)}else if(b instanceof bo)a(b.inner,b.prec);else if(b instanceof bl)g[c].push(b),b.provides&&a(b.provides,c);else if(b instanceof bh)g[c].push(b),b.facet.extensions&&a(b.facet.extensions,2);else{let d=b.extension;if(!d)throw Error(`Unrecognized extension value in extension set (${b}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);a(d,c)}}(d,2),g.reduce((a,b)=>a.concat(b))))c instanceof bl?i.push(c):(j[c.facet.id]||(j[c.facet.id]=[])).push(c);let l=Object.create(null),m=[],n=[];for(let a of i)l[a.id]=n.length<<1,n.push(b=>a.slot(b));let o=null==c?void 0:c.config.facets;for(let a in j){let b=j[a],d=b[0].facet,e=o&&o[a]||[];if(b.every(a=>0==a.type))if(l[d.id]=m.length<<1|1,bg(e,b))m.push(c.facet(d));else{let a=d.combine(b.map(a=>a.value));m.push(c&&d.compare(a,c.facet(d))?c.facet(d):a)}else{for(let a of b)0==a.type?(l[a.id]=m.length<<1|1,m.push(a.value)):(l[a.id]=n.length<<1,n.push(b=>a.dynamicSlot(b)));l[d.id]=n.length<<1,n.push(a=>(function(a,b,c){let d=c.map(b=>a[b.id]),e=c.map(a=>a.type),f=d.filter(a=>!(1&a)),g=a[b.id]>>1;function h(a){let c=[];for(let b=0;b<d.length;b++){let f=bt(a,d[b]);if(2==e[b])for(let a of f)c.push(a);else c.push(f)}return b.combine(c)}return{create(a){for(let b of d)bs(a,b);return a.values[g]=h(a),1},update(a,c){if(!bj(a,f))return 0;let d=h(a);return b.compare(d,a.values[g])?0:(a.values[g]=d,1)},reconfigure(a,e){let f=bj(a,d),i=e.config.facets[b.id],j=e.facet(b);if(i&&!f&&bg(c,i))return a.values[g]=j,0;let k=h(a);return b.compare(k,j)?(a.values[g]=j,0):(a.values[g]=k,1)}}})(a,d,b))}}return new br(a,k,n.map(a=>a(l)),l,m,j)}}function bs(a,b){if(1&b)return 2;let c=b>>1,d=a.status[c];if(4==d)throw Error("Cyclic dependency between fields and/or facets");if(2&d)return d;a.status[c]=4;let e=a.computeSlot(a,a.config.dynamicSlots[c]);return a.status[c]=2|e}function bt(a,b){return 1&b?a.config.staticValues[b>>1]:a.values[b>>1]}let bu=bf.define(),bv=bf.define({combine:a=>a.some(a=>a),static:!0}),bw=bf.define({combine:a=>a.length?a[0]:void 0,static:!0}),bx=bf.define(),by=bf.define(),bz=bf.define(),bA=bf.define({combine:a=>!!a.length&&a[0]});class bB{constructor(a,b){this.type=a,this.value=b}static define(){return new bC}}class bC{of(a){return new bB(this,a)}}class bD{constructor(a){this.map=a}of(a){return new bE(this,a)}}class bE{constructor(a,b){this.type=a,this.value=b}map(a){let b=this.type.map(this.value,a);return void 0===b?void 0:b==this.value?this:new bE(this.type,b)}is(a){return this.type==a}static define(a={}){return new bD(a.map||(a=>a))}static mapEffects(a,b){if(!a.length)return a;let c=[];for(let d of a){let a=d.map(b);a&&c.push(a)}return c}}bE.reconfigure=bE.define(),bE.appendConfig=bE.define();class bF{constructor(a,b,c,d,e,f){this.startState=a,this.changes=b,this.selection=c,this.effects=d,this.annotations=e,this.scrollIntoView=f,this._doc=null,this._state=null,c&&bd(c,b.newLength),e.some(a=>a.type==bF.time)||(this.annotations=e.concat(bF.time.of(Date.now())))}static create(a,b,c,d,e,f){return new bF(a,b,c,d,e,f)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(a){for(let b of this.annotations)if(b.type==a)return b.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(a){let b=this.annotation(bF.userEvent);return!!(b&&(b==a||b.length>a.length&&b.slice(0,a.length)==a&&"."==b[a.length]))}}function bG(a,b,c){var d;let e,f,g;return c?(e=b.changes,f=a4.empty(b.changes.length),g=a.changes.compose(b.changes)):(e=b.changes.map(a.changes),f=a.changes.mapDesc(b.changes,!0),g=a.changes.compose(e)),{changes:g,selection:b.selection?b.selection.map(f):null==(d=a.selection)?void 0:d.map(e),effects:bE.mapEffects(a.effects,e).concat(bE.mapEffects(b.effects,f)),annotations:a.annotations.length?a.annotations.concat(b.annotations):b.annotations,scrollIntoView:a.scrollIntoView||b.scrollIntoView}}function bH(a,b,c){let d=b.selection,e=bJ(b.annotations);return b.userEvent&&(e=e.concat(bF.userEvent.of(b.userEvent))),{changes:b.changes instanceof a4?b.changes:a4.of(b.changes||[],c,a.facet(bw)),selection:d&&(d instanceof bc?d:bc.single(d.anchor,d.head)),effects:bJ(b.effects),annotations:e,scrollIntoView:!!b.scrollIntoView}}bF.time=bB.define(),bF.userEvent=bB.define(),bF.addToHistory=bB.define(),bF.remote=bB.define();let bI=[];function bJ(a){return null==a?bI:Array.isArray(a)?a:[a]}var bK=((pO=bK||(bK={}))[pO.Word=0]="Word",pO[pO.Space=1]="Space",pO[pO.Other=2]="Other",pO);let bL=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;try{b=RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(a){}class bM{constructor(a,b,c,d,e,f){this.config=a,this.doc=b,this.selection=c,this.values=d,this.status=a.statusTemplate.slice(),this.computeSlot=e,f&&(f._state=this);for(let a=0;a<this.config.dynamicSlots.length;a++)bs(this,a<<1);this.computeSlot=null}field(a,b=!0){let c=this.config.address[a.id];if(null==c){if(b)throw RangeError("Field is not present in this state");return}return bs(this,c),bt(this,c)}update(...a){return function a(b,c,d){let e=bH(b,c.length?c[0]:{},b.doc.length);c.length&&!1===c[0].filter&&(d=!1);for(let a=1;a<c.length;a++){!1===c[a].filter&&(d=!1);let f=!!c[a].sequential;e=bG(e,bH(b,c[a],f?e.changes.newLength:b.doc.length),f)}let f=bF.create(b,e.changes,e.selection,e.effects,e.annotations,e.scrollIntoView);return function(a){let b=a.startState,c=b.facet(bz),d=a;for(let e=c.length-1;e>=0;e--){let f=c[e](a);f&&Object.keys(f).length&&(d=bG(d,bH(b,f,a.changes.newLength),!0))}return d==a?a:bF.create(b,a.changes,a.selection,d.effects,d.annotations,d.scrollIntoView)}(d?function(b){let c=b.startState,d=!0;for(let a of c.facet(bx)){let c=a(b);if(!1===c){d=!1;break}Array.isArray(c)&&(d=!0===d?c:function(a,b){let c=[];for(let d=0,e=0;;){let f,g;if(d<a.length&&(e==b.length||b[e]>=a[d]))f=a[d++],g=a[d++];else{if(!(e<b.length))return c;f=b[e++],g=b[e++]}!c.length||c[c.length-1]<f?c.push(f,g):c[c.length-1]<g&&(c[c.length-1]=g)}}(d,c))}if(!0!==d){let a,e;if(!1===d)e=b.changes.invertedDesc,a=a4.empty(c.doc.length);else{let c=b.changes.filter(d);a=c.changes,e=c.filtered.mapDesc(c.changes).invertedDesc}b=bF.create(c,a,b.selection&&b.selection.map(e),bE.mapEffects(b.effects,e),b.annotations,b.scrollIntoView)}let e=c.facet(by);for(let d=e.length-1;d>=0;d--){let f=e[d](b);b=f instanceof bF?f:Array.isArray(f)&&1==f.length&&f[0]instanceof bF?f[0]:a(c,bJ(f),!1)}return b}(f):f)}(this,a,!0)}applyTransaction(a){let b,c=this.config,{base:d,compartments:e}=c;for(let b of a.effects)b.is(bp.reconfigure)?(c&&(e=new Map,c.compartments.forEach((a,b)=>e.set(b,a)),c=null),e.set(b.value.compartment,b.value.extension)):b.is(bE.reconfigure)?(c=null,d=b.value):b.is(bE.appendConfig)&&(c=null,d=bJ(d).concat(b.value));b=c?a.startState.values.slice():new bM(c=br.resolve(d,e,this),this.doc,this.selection,c.dynamicSlots.map(()=>null),(a,b)=>b.reconfigure(a,this),null).values;let f=a.startState.facet(bv)?a.newSelection:a.newSelection.asSingle();new bM(c,a.newDoc,f,b,(b,c)=>c.update(b,a),a)}replaceSelection(a){return"string"==typeof a&&(a=this.toText(a)),this.changeByRange(b=>({changes:{from:b.from,to:b.to,insert:a},range:bc.cursor(b.from+a.length)}))}changeByRange(a){let b=this.selection,c=a(b.ranges[0]),d=this.changes(c.changes),e=[c.range],f=bJ(c.effects);for(let c=1;c<b.ranges.length;c++){let g=a(b.ranges[c]),h=this.changes(g.changes),i=h.map(d);for(let a=0;a<c;a++)e[a]=e[a].map(i);let j=d.mapDesc(h,!0);e.push(g.range.map(j)),d=d.compose(i),f=bE.mapEffects(f,i).concat(bE.mapEffects(bJ(g.effects),j))}return{changes:d,selection:bc.create(e,b.mainIndex),effects:f}}changes(a=[]){return a instanceof a4?a:a4.of(a,this.doc.length,this.facet(bM.lineSeparator))}toText(a){return aQ.of(a.split(this.facet(bM.lineSeparator)||a1))}sliceDoc(a=0,b=this.doc.length){return this.doc.sliceString(a,b,this.lineBreak)}facet(a){let b=this.config.address[a.id];return null==b?a.default:(bs(this,b),bt(this,b))}toJSON(a){let b={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(a)for(let c in a){let d=a[c];d instanceof bl&&null!=this.config.address[d.id]&&(b[c]=d.spec.toJSON(this.field(a[c]),this))}return b}static fromJSON(a,b={},c){if(!a||"string"!=typeof a.doc)throw RangeError("Invalid JSON representation for EditorState");let d=[];if(c){for(let b in c)if(Object.prototype.hasOwnProperty.call(a,b)){let e=c[b],f=a[b];d.push(e.init(a=>e.spec.fromJSON(f,a)))}}return bM.create({doc:a.doc,selection:bc.fromJSON(a.selection),extensions:b.extensions?d.concat([b.extensions]):d})}static create(a={}){let b=br.resolve(a.extensions||[],new Map),c=a.doc instanceof aQ?a.doc:aQ.of((a.doc||"").split(b.staticFacet(bM.lineSeparator)||a1)),d=a.selection?a.selection instanceof bc?a.selection:bc.single(a.selection.anchor,a.selection.head):bc.single(0);return bd(d,c.length),b.staticFacet(bv)||(d=d.asSingle()),new bM(b,c,d,b.dynamicSlots.map(()=>null),(a,b)=>b.create(a),null)}get tabSize(){return this.facet(bM.tabSize)}get lineBreak(){return this.facet(bM.lineSeparator)||"\n"}get readOnly(){return this.facet(bA)}phrase(a,...b){for(let b of this.facet(bM.phrases))if(Object.prototype.hasOwnProperty.call(b,a)){a=b[a];break}return b.length&&(a=a.replace(/\$(\$|\d*)/g,(a,c)=>{if("$"==c)return"$";let d=+(c||1);return!d||d>b.length?a:b[d-1]})),a}languageDataAt(a,b,c=-1){let d=[];for(let e of this.facet(bu))for(let f of e(this,b,c))Object.prototype.hasOwnProperty.call(f,a)&&d.push(f[a]);return d}charCategorizer(a){var c;let d=this.languageDataAt("wordChars",a);return c=d.length?d[0]:"",a=>{if(!/\S/.test(a))return bK.Space;if(function(a){if(b)return b.test(a);for(let b=0;b<a.length;b++){let c=a[b];if(/\w/.test(c)||c>""&&(c.toUpperCase()!=c.toLowerCase()||bL.test(c)))return!0}return!1}(a))return bK.Word;for(let b=0;b<c.length;b++)if(a.indexOf(c[b])>-1)return bK.Word;return bK.Other}}wordAt(a){let{text:b,from:c,length:d}=this.doc.lineAt(a),e=this.charCategorizer(a),f=a-c,g=a-c;for(;f>0;){let a=aZ(b,f,!1);if(e(b.slice(a,f))!=bK.Word)break;f=a}for(;g<d;){let a=aZ(b,g);if(e(b.slice(g,a))!=bK.Word)break;g=a}return f==g?null:bc.range(f+c,g+c)}}function bN(a,b,c={}){let d={};for(let b of a)for(let a of Object.keys(b)){let e=b[a],f=d[a];if(void 0===f)d[a]=e;else if(f===e||void 0===e);else if(Object.hasOwnProperty.call(c,a))d[a]=c[a](f,e);else throw Error("Config merge conflict for field "+a)}for(let a in b)void 0===d[a]&&(d[a]=b[a]);return d}bM.allowMultipleSelections=bv,bM.tabSize=bf.define({combine:a=>a.length?a[0]:4}),bM.lineSeparator=bw,bM.readOnly=bA,bM.phrases=bf.define({compare(a,b){let c=Object.keys(a),d=Object.keys(b);return c.length==d.length&&c.every(c=>a[c]==b[c])}}),bM.languageData=bu,bM.changeFilter=bx,bM.transactionFilter=by,bM.transactionExtender=bz,bp.reconfigure=bE.define();class bO{eq(a){return this==a}range(a,b=a){return bQ.create(a,b,this)}}function bP(a,b){return a==b||a.constructor==b.constructor&&a.eq(b)}bO.prototype.startSide=bO.prototype.endSide=0,bO.prototype.point=!1,bO.prototype.mapMode=a2.TrackDel;class bQ{constructor(a,b,c){this.from=a,this.to=b,this.value=c}static create(a,b,c){return new bQ(a,b,c)}}function bR(a,b){return a.from-b.from||a.value.startSide-b.value.startSide}class bS{constructor(a,b,c,d){this.from=a,this.to=b,this.value=c,this.maxPoint=d}get length(){return this.to[this.to.length-1]}findIndex(a,b,c,d=0){let e=c?this.to:this.from;for(let f=d,g=e.length;;){if(f==g)return f;let d=f+g>>1,h=e[d]-a||(c?this.value[d].endSide:this.value[d].startSide)-b;if(d==f)return h>=0?f:g;h>=0?g=d:f=d+1}}between(a,b,c,d){for(let e=this.findIndex(b,-1e9,!0),f=this.findIndex(c,1e9,!1,e);e<f;e++)if(!1===d(this.from[e]+a,this.to[e]+a,this.value[e]))return!1}map(a,b){let c=[],d=[],e=[],f=-1,g=-1;for(let h=0;h<this.value.length;h++){let i=this.value[h],j=this.from[h]+a,k=this.to[h]+a,l,m;if(j==k){let a=b.mapPos(j,i.startSide,i.mapMode);if(null==a||(l=m=a,i.startSide!=i.endSide&&(m=b.mapPos(j,i.endSide))<l))continue}else if((l=b.mapPos(j,i.startSide))>(m=b.mapPos(k,i.endSide))||l==m&&i.startSide>0&&i.endSide<=0)continue;0>(m-l||i.endSide-i.startSide)||(f<0&&(f=l),i.point&&(g=Math.max(g,m-l)),c.push(i),d.push(l-f),e.push(m-f))}return{mapped:c.length?new bS(d,e,c,g):null,pos:f}}}class bT{constructor(a,b,c,d){this.chunkPos=a,this.chunk=b,this.nextLayer=c,this.maxPoint=d}static create(a,b,c,d){return new bT(a,b,c,d)}get length(){let a=this.chunk.length-1;return a<0?0:Math.max(this.chunkEnd(a),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let a=this.nextLayer.size;for(let b of this.chunk)a+=b.value.length;return a}chunkEnd(a){return this.chunkPos[a]+this.chunk[a].length}update(a){let{add:b=[],sort:c=!1,filterFrom:d=0,filterTo:e=this.length}=a,f=a.filter;if(0==b.length&&!f)return this;if(c&&(b=b.slice().sort(bR)),this.isEmpty)return b.length?bT.of(b):this;let g=new bW(this,null,-1).goto(0),h=0,i=[],j=new bU;for(;g.value||h<b.length;)if(h<b.length&&(g.from-b[h].from||g.startSide-b[h].value.startSide)>=0){let a=b[h++];j.addInner(a.from,a.to,a.value)||i.push(a)}else 1==g.rangeIndex&&g.chunkIndex<this.chunk.length&&(h==b.length||this.chunkEnd(g.chunkIndex)<b[h].from)&&(!f||d>this.chunkEnd(g.chunkIndex)||e<this.chunkPos[g.chunkIndex])&&j.addChunk(this.chunkPos[g.chunkIndex],this.chunk[g.chunkIndex])?g.nextChunk():((!f||d>g.to||e<g.from||f(g.from,g.to,g.value))&&!j.addInner(g.from,g.to,g.value)&&i.push(bQ.create(g.from,g.to,g.value)),g.next());return j.finishInner(this.nextLayer.isEmpty&&!i.length?bT.empty:this.nextLayer.update({add:i,filter:f,filterFrom:d,filterTo:e}))}map(a){if(a.empty||this.isEmpty)return this;let b=[],c=[],d=-1;for(let e=0;e<this.chunk.length;e++){let f=this.chunkPos[e],g=this.chunk[e],h=a.touchesRange(f,f+g.length);if(!1===h)d=Math.max(d,g.maxPoint),b.push(g),c.push(a.mapPos(f));else if(!0===h){let{mapped:e,pos:h}=g.map(f,a);e&&(d=Math.max(d,e.maxPoint),b.push(e),c.push(h))}}let e=this.nextLayer.map(a);return 0==b.length?e:new bT(c,b,e||bT.empty,d)}between(a,b,c){if(!this.isEmpty){for(let d=0;d<this.chunk.length;d++){let e=this.chunkPos[d],f=this.chunk[d];if(b>=e&&a<=e+f.length&&!1===f.between(e,a-e,b-e,c))return}this.nextLayer.between(a,b,c)}}iter(a=0){return bX.from([this]).goto(a)}get isEmpty(){return this.nextLayer==this}static iter(a,b=0){return bX.from(a).goto(b)}static compare(a,b,c,d,e=-1){let f=a.filter(a=>a.maxPoint>0||!a.isEmpty&&a.maxPoint>=e),g=b.filter(a=>a.maxPoint>0||!a.isEmpty&&a.maxPoint>=e),h=bV(f,g,c),i=new bZ(f,h,e),j=new bZ(g,h,e);c.iterGaps((a,b,c)=>b$(i,a,j,b,c,d)),c.empty&&0==c.length&&b$(i,0,j,0,0,d)}static eq(a,b,c=0,d){null==d&&(d=0x3b9ac9ff);let e=a.filter(a=>!a.isEmpty&&0>b.indexOf(a)),f=b.filter(b=>!b.isEmpty&&0>a.indexOf(b));if(e.length!=f.length)return!1;if(!e.length)return!0;let g=bV(e,f),h=new bZ(e,g,0).goto(c),i=new bZ(f,g,0).goto(c);for(;;){if(h.to!=i.to||!b_(h.active,i.active)||h.point&&(!i.point||!bP(h.point,i.point)))return!1;if(h.to>d)return!0;h.next(),i.next()}}static spans(a,b,c,d,e=-1){let f=new bZ(a,null,e).goto(b),g=b,h=f.openStart;for(;;){let a=Math.min(f.to,c);if(f.point){let c=f.activeForPoint(f.to),e=f.pointFrom<b?c.length+1:f.point.startSide<0?c.length:Math.min(c.length,h);d.point(g,a,f.point,c,e,f.pointRank),h=Math.min(f.openEnd(a),c.length)}else a>g&&(d.span(g,a,f.active,h),h=f.openEnd(a));if(f.to>c)return h+(f.point&&f.to>c?1:0);g=f.to,f.next()}}static of(a,b=!1){let c=new bU;for(let d of a instanceof bQ?[a]:b?function(a){if(a.length>1)for(let b=a[0],c=1;c<a.length;c++){let d=a[c];if(bR(b,d)>0)return a.slice().sort(bR);b=d}return a}(a):a)c.add(d.from,d.to,d.value);return c.finish()}static join(a){if(!a.length)return bT.empty;let b=a[a.length-1];for(let c=a.length-2;c>=0;c--)for(let d=a[c];d!=bT.empty;d=d.nextLayer)b=new bT(d.chunkPos,d.chunk,b,Math.max(d.maxPoint,b.maxPoint));return b}}bT.empty=new bT([],[],null,-1),bT.empty.nextLayer=bT.empty;class bU{finishChunk(a){this.chunks.push(new bS(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,a&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(a,b,c){this.addInner(a,b,c)||(this.nextLayer||(this.nextLayer=new bU)).add(a,b,c)}addInner(a,b,c){let d=a-this.lastTo||c.startSide-this.last.endSide;if(d<=0&&0>(a-this.lastFrom||c.startSide-this.last.startSide))throw Error("Ranges must be added sorted by `from` position and `startSide`");return!(d<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=a),this.from.push(a-this.chunkStart),this.to.push(b-this.chunkStart),this.last=c,this.lastFrom=a,this.lastTo=b,this.value.push(c),c.point&&(this.maxPoint=Math.max(this.maxPoint,b-a)),!0)}addChunk(a,b){if(0>(a-this.lastTo||b.value[0].startSide-this.last.endSide))return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,b.maxPoint),this.chunks.push(b),this.chunkPos.push(a);let c=b.value.length-1;return this.last=b.value[c],this.lastFrom=b.from[c]+a,this.lastTo=b.to[c]+a,!0}finish(){return this.finishInner(bT.empty)}finishInner(a){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return a;let b=bT.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(a):a,this.setMaxPoint);return this.from=null,b}}function bV(a,b,c){let d=new Map;for(let b of a)for(let a=0;a<b.chunk.length;a++)b.chunk[a].maxPoint<=0&&d.set(b.chunk[a],b.chunkPos[a]);let e=new Set;for(let a of b)for(let b=0;b<a.chunk.length;b++){let f=d.get(a.chunk[b]);null==f||(c?c.mapPos(f):f)!=a.chunkPos[b]||(null==c?void 0:c.touchesRange(f,f+a.chunk[b].length))||e.add(a.chunk[b])}return e}class bW{constructor(a,b,c,d=0){this.layer=a,this.skip=b,this.minPoint=c,this.rank=d}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(a,b=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(a,b,!1),this}gotoInner(a,b,c){for(;this.chunkIndex<this.layer.chunk.length;){let b=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(b)||this.layer.chunkEnd(this.chunkIndex)<a||b.maxPoint<this.minPoint))break;this.chunkIndex++,c=!1}if(this.chunkIndex<this.layer.chunk.length){let d=this.layer.chunk[this.chunkIndex].findIndex(a-this.layer.chunkPos[this.chunkIndex],b,!0);(!c||this.rangeIndex<d)&&this.setRangeIndex(d)}this.next()}forward(a,b){0>(this.to-a||this.endSide-b)&&this.gotoInner(a,b,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let a=this.layer.chunkPos[this.chunkIndex],b=this.layer.chunk[this.chunkIndex],c=a+b.from[this.rangeIndex];if(this.from=c,this.to=a+b.to[this.rangeIndex],this.value=b.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(a){if(a==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=a}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(a){return this.from-a.from||this.startSide-a.startSide||this.rank-a.rank||this.to-a.to||this.endSide-a.endSide}}class bX{constructor(a){this.heap=a}static from(a,b=null,c=-1){let d=[];for(let e=0;e<a.length;e++)for(let f=a[e];!f.isEmpty;f=f.nextLayer)f.maxPoint>=c&&d.push(new bW(f,b,c,e));return 1==d.length?d[0]:new bX(d)}get startSide(){return this.value?this.value.startSide:0}goto(a,b=-1e9){for(let c of this.heap)c.goto(a,b);for(let a=this.heap.length>>1;a>=0;a--)bY(this.heap,a);return this.next(),this}forward(a,b){for(let c of this.heap)c.forward(a,b);for(let a=this.heap.length>>1;a>=0;a--)bY(this.heap,a);0>(this.to-a||this.value.endSide-b)&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let a=this.heap[0];this.from=a.from,this.to=a.to,this.value=a.value,this.rank=a.rank,a.value&&a.next(),bY(this.heap,0)}}}function bY(a,b){for(let c=a[b];;){let d=(b<<1)+1;if(d>=a.length)break;let e=a[d];if(d+1<a.length&&e.compare(a[d+1])>=0&&(e=a[d+1],d++),0>c.compare(e))break;a[d]=c,a[b]=e,b=d}}class bZ{constructor(a,b,c){this.minPoint=c,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=bX.from(a,b,c)}goto(a,b=-1e9){return this.cursor.goto(a,b),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=a,this.endSide=b,this.openStart=-1,this.next(),this}forward(a,b){for(;this.minActive>-1&&0>(this.activeTo[this.minActive]-a||this.active[this.minActive].endSide-b);)this.removeActive(this.minActive);this.cursor.forward(a,b)}removeActive(a){b0(this.active,a),b0(this.activeTo,a),b0(this.activeRank,a),this.minActive=b2(this.active,this.activeTo)}addActive(a){let b=0,{value:c,to:d,rank:e}=this.cursor;for(;b<this.activeRank.length&&(e-this.activeRank[b]||d-this.activeTo[b])>0;)b++;b1(this.active,b,c),b1(this.activeTo,b,d),b1(this.activeRank,b,e),a&&b1(a,b,this.cursor.from),this.minActive=b2(this.active,this.activeTo)}next(){let a=this.to,b=this.point;this.point=null;let c=this.openStart<0?[]:null;for(;;){let d=this.minActive;if(d>-1&&0>(this.activeTo[d]-this.cursor.from||this.active[d].endSide-this.cursor.startSide)){if(this.activeTo[d]>a){this.to=this.activeTo[d],this.endSide=this.active[d].endSide;break}this.removeActive(d),c&&b0(c,d)}else if(this.cursor.value)if(this.cursor.from>a){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let a=this.cursor.value;if(a.point)if(b&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=a,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=a.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}else this.addActive(c),this.cursor.next()}else{this.to=this.endSide=1e9;break}}if(c){this.openStart=0;for(let b=c.length-1;b>=0&&c[b]<a;b--)this.openStart++}}activeForPoint(a){if(!this.active.length)return this.active;let b=[];for(let c=this.active.length-1;c>=0&&!(this.activeRank[c]<this.pointRank);c--)(this.activeTo[c]>a||this.activeTo[c]==a&&this.active[c].endSide>=this.point.endSide)&&b.push(this.active[c]);return b.reverse()}openEnd(a){let b=0;for(let c=this.activeTo.length-1;c>=0&&this.activeTo[c]>a;c--)b++;return b}}function b$(a,b,c,d,e,f){a.goto(b),c.goto(d);let g=d+e,h=d,i=d-b,j=!!f.boundChange;for(let b=!1;;){let d=a.to+i-c.to,e=d||a.endSide-c.endSide,k=e<0?a.to+i:c.to,l=Math.min(k,g);if(a.point||c.point?(a.point&&c.point&&bP(a.point,c.point)&&b_(a.activeForPoint(a.to),c.activeForPoint(c.to))||f.comparePoint(h,l,a.point,c.point),b=!1):(b&&f.boundChange(h),l>h&&!b_(a.active,c.active)&&f.compareRange(h,l,a.active,c.active),j&&l<g&&(d||a.openEnd(k)!=c.openEnd(k))&&(b=!0)),k>g)break;h=k,e<=0&&a.next(),e>=0&&c.next()}}function b_(a,b){if(a.length!=b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!=b[c]&&!bP(a[c],b[c]))return!1;return!0}function b0(a,b){for(let c=b,d=a.length-1;c<d;c++)a[c]=a[c+1];a.pop()}function b1(a,b,c){for(let c=a.length-1;c>=b;c--)a[c+1]=a[c];a[b]=c}function b2(a,b){let c=-1,d=1e9;for(let e=0;e<b.length;e++)0>(b[e]-d||a[e].endSide-a[c].endSide)&&(c=e,d=b[e]);return c}function b3(a,b,c=a.length){let d=0;for(let e=0;e<c&&e<a.length;)9==a.charCodeAt(e)?(d+=b-d%b,e++):(d++,e=aZ(a,e));return d}function b4(a,b,c,d){for(let d=0,e=0;;){if(e>=b)return d;if(d==a.length)break;e+=9==a.charCodeAt(d)?c-e%c:1,d=aZ(a,d)}return!0===d?-1:a.length}let b5="u"<typeof Symbol?"__ͼ":Symbol.for("ͼ"),b6="u"<typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),b7="u">typeof globalThis?globalThis:{};class b8{constructor(a,b){this.rules=[];let{finish:c}=b||{};function d(a){return/^@/.test(a)?[a]:a.split(/,\s*/)}for(let b in a)!function a(b,e,f,g){let h=[],i=/^@(\w+)\b/.exec(b[0]),j=i&&"keyframes"==i[1];if(i&&null==e)return f.push(b[0]+";");for(let c in e){let g=e[c];if(/&/.test(c))a(c.split(/,\s*/).map(a=>b.map(b=>a.replace(/&/,b))).reduce((a,b)=>a.concat(b)),g,f);else if(g&&"object"==typeof g){if(!i)throw RangeError("The value of a property ("+c+") should be a primitive value.");a(d(c),g,h,j)}else null!=g&&h.push(c.replace(/_.*/,"").replace(/[A-Z]/g,a=>"-"+a.toLowerCase())+": "+g+";")}(h.length||j)&&f.push((c&&!i&&!g?b.map(c):b).join(", ")+" {"+h.join(" ")+"}")}(d(b),a[b],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let a=b7[b5]||1;return b7[b5]=a+1,"ͼ"+a.toString(36)}static mount(a,b,c){let d=a[b6],e=c&&c.nonce;d?e&&d.setNonce(e):d=new ca(a,e),d.mount(Array.isArray(b)?b:[b],a)}}let b9=new Map;class ca{constructor(a,b){let c=a.ownerDocument||a,d=c.defaultView;if(!a.head&&a.adoptedStyleSheets&&d.CSSStyleSheet){let b=b9.get(c);if(b)return a[b6]=b;this.sheet=new d.CSSStyleSheet,b9.set(c,this)}else this.styleTag=c.createElement("style"),b&&this.styleTag.setAttribute("nonce",b);this.modules=[],a[b6]=this}mount(a,b){let c=this.sheet,d=0,e=0;for(let b=0;b<a.length;b++){let f=a[b],g=this.modules.indexOf(f);if(g<e&&g>-1&&(this.modules.splice(g,1),e--,g=-1),-1==g){if(this.modules.splice(e++,0,f),c)for(let a=0;a<f.rules.length;a++)c.insertRule(f.rules[a],d++)}else{for(;e<g;)d+=this.modules[e++].rules.length;d+=f.rules.length,e++}}if(c)0>b.adoptedStyleSheets.indexOf(this.sheet)&&(b.adoptedStyleSheets=[this.sheet,...b.adoptedStyleSheets]);else{let a="";for(let b=0;b<this.modules.length;b++)a+=this.modules[b].getRules()+"\n";this.styleTag.textContent=a;let c=b.head||b;this.styleTag.parentNode!=c&&c.insertBefore(this.styleTag,c.firstChild)}}setNonce(a){this.styleTag&&this.styleTag.getAttribute("nonce")!=a&&this.styleTag.setAttribute("nonce",a)}}for(var cb={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},cc={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},cd="u">typeof navigator&&/Mac/.test(navigator.platform),ce="u">typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),cf=0;cf<10;cf++)cb[48+cf]=cb[96+cf]=String(cf);for(var cf=1;cf<=24;cf++)cb[cf+111]="F"+cf;for(var cf=65;cf<=90;cf++)cb[cf]=String.fromCharCode(cf+32),cc[cf]=String.fromCharCode(cf);for(var cg in cb)cc.hasOwnProperty(cg)||(cc[cg]=cb[cg]);function ch(){var a=arguments[0];"string"==typeof a&&(a=document.createElement(a));var b=1,c=arguments[1];if(c&&"object"==typeof c&&null==c.nodeType&&!Array.isArray(c)){for(var d in c)if(Object.prototype.hasOwnProperty.call(c,d)){var e=c[d];"string"==typeof e?a.setAttribute(d,e):null!=e&&(a[d]=e)}b++}for(;b<arguments.length;b++)!function a(b,c){if("string"==typeof c)b.appendChild(document.createTextNode(c));else if(null==c);else if(null!=c.nodeType)b.appendChild(c);else if(Array.isArray(c))for(var d=0;d<c.length;d++)a(b,c[d]);else throw RangeError("Unsupported child node: "+c)}(a,arguments[b]);return a}let ci="u">typeof navigator?navigator:{userAgent:"",vendor:"",platform:""},cj="u">typeof document?document:{documentElement:{style:{}}},ck=/Edge\/(\d+)/.exec(ci.userAgent),cl=/MSIE \d/.test(ci.userAgent),cm=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(ci.userAgent),cn=!!(cl||cm||ck),co=!cn&&/gecko\/(\d+)/i.test(ci.userAgent),cp=!cn&&/Chrome\/(\d+)/.exec(ci.userAgent),cq="webkitFontSmoothing"in cj.documentElement.style,cr=!cn&&/Apple Computer/.test(ci.vendor),cs=cr&&(/Mobile\/\w+/.test(ci.userAgent)||ci.maxTouchPoints>2);var ct={mac:cs||/Mac/.test(ci.platform),windows:/Win/.test(ci.platform),linux:/Linux|X11/.test(ci.platform),ie:cn,ie_version:cl?cj.documentMode||6:cm?+cm[1]:ck?+ck[1]:0,gecko:co,gecko_version:co?+(/Firefox\/(\d+)/.exec(ci.userAgent)||[0,0])[1]:0,chrome:!!cp,chrome_version:cp?+cp[1]:0,ios:cs,android:/Android\b/.test(ci.userAgent),webkit:cq,webkit_version:cq?+(/\bAppleWebKit\/(\d+)/.exec(ci.userAgent)||[0,0])[1]:0,safari:cr,safari_version:cr?+(/\bVersion\/(\d+(\.\d+)?)/.exec(ci.userAgent)||[0,0])[1]:0,tabSize:null!=cj.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};function cu(a,b){for(let c in a)"class"==c&&b.class?b.class+=" "+a.class:"style"==c&&b.style?b.style+=";"+a.style:b[c]=a[c];return b}let cv=Object.create(null);function cw(a,b,c){if(a==b)return!0;a||(a=cv),b||(b=cv);let d=Object.keys(a),e=Object.keys(b);if(d.length-(c&&d.indexOf(c)>-1?1:0)!=e.length-(c&&e.indexOf(c)>-1?1:0))return!1;for(let f of d)if(f!=c&&(-1==e.indexOf(f)||a[f]!==b[f]))return!1;return!0}function cx(a,b,c){let d=!1;if(b)for(let e in b)c&&e in c||(d=!0,"style"==e?a.style.cssText="":a.removeAttribute(e));if(c)for(let e in c)b&&b[e]==c[e]||(d=!0,"style"==e?a.style.cssText=c[e]:a.setAttribute(e,c[e]));return d}class cy{eq(a){return!1}updateDOM(a,b,c){return!1}compare(a){return this==a||this.constructor==a.constructor&&this.eq(a)}get estimatedHeight(){return -1}get lineBreaks(){return 0}ignoreEvent(a){return!0}coordsAt(a,b,c){return null}get isHidden(){return!1}get editable(){return!1}destroy(a){}}var cz=((pP=cz||(cz={}))[pP.Text=0]="Text",pP[pP.WidgetBefore=1]="WidgetBefore",pP[pP.WidgetAfter=2]="WidgetAfter",pP[pP.WidgetRange=3]="WidgetRange",pP);class cA extends bO{constructor(a,b,c,d){super(),this.startSide=a,this.endSide=b,this.widget=c,this.spec=d}get heightRelevant(){return!1}static mark(a){return new cB(a)}static widget(a){let b=Math.max(-1e4,Math.min(1e4,a.side||0)),c=!!a.block;return b+=c&&!a.inlineOrder?b>0?3e8:-4e8:b>0?1e8:-1e8,new cD(a,b,b,c,a.widget||null,!1)}static replace(a){let b=!!a.block,c,d;if(a.isBlockGap)c=-5e8,d=4e8;else{let{start:e,end:f}=cE(a,b);c=(e?b?-3e8:-1:5e8)-1,d=(f?b?2e8:1:-6e8)+1}return new cD(a,c,d,b,a.widget||null,!0)}static line(a){return new cC(a)}static set(a,b=!1){return bT.of(a,b)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}cA.none=bT.empty;class cB extends cA{constructor(a){let{start:b,end:c}=cE(a);super(b?-1:5e8,c?1:-6e8,null,a),this.tagName=a.tagName||"span",this.attrs=a.class&&a.attributes?cu(a.attributes,{class:a.class}):a.class?{class:a.class}:a.attributes||cv}eq(a){return this==a||a instanceof cB&&this.tagName==a.tagName&&cw(this.attrs,a.attrs)}range(a,b=a){if(a>=b)throw RangeError("Mark decorations may not be empty");return super.range(a,b)}}cB.prototype.point=!1;class cC extends cA{constructor(a){super(-2e8,-2e8,null,a)}eq(a){return a instanceof cC&&this.spec.class==a.spec.class&&cw(this.spec.attributes,a.spec.attributes)}range(a,b=a){if(b!=a)throw RangeError("Line decoration ranges must be zero-length");return super.range(a,b)}}cC.prototype.mapMode=a2.TrackBefore,cC.prototype.point=!0;class cD extends cA{constructor(a,b,c,d,e,f){super(b,c,e,a),this.block=d,this.isReplace=f,this.mapMode=d?b<=0?a2.TrackBefore:a2.TrackAfter:a2.TrackDel}get type(){return this.startSide!=this.endSide?cz.WidgetRange:this.startSide<=0?cz.WidgetBefore:cz.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(a){var b,c;return a instanceof cD&&(b=this.widget,b==(c=a.widget)||!!(b&&c&&b.compare(c)))&&this.block==a.block&&this.startSide==a.startSide&&this.endSide==a.endSide}range(a,b=a){if(this.isReplace&&(a>b||a==b&&this.startSide>0&&this.endSide<=0))throw RangeError("Invalid range for replacement decoration");if(!this.isReplace&&b!=a)throw RangeError("Widget decorations can only have zero-length ranges");return super.range(a,b)}}function cE(a,b=!1){let{inclusiveStart:c,inclusiveEnd:d}=a;return null==c&&(c=a.inclusive),null==d&&(d=a.inclusive),{start:null!=c?c:b,end:null!=d?d:b}}function cF(a,b,c,d=0){let e=c.length-1;e>=0&&c[e]+d>=a?c[e]=Math.max(c[e],b):c.push(a,b)}cD.prototype.point=!0;class cG extends bO{constructor(a,b){super(),this.tagName=a,this.attributes=b}eq(a){return a==this||a instanceof cG&&this.tagName==a.tagName&&cw(this.attributes,a.attributes)}static create(a){return new cG(a.tagName,a.attributes||cv)}static set(a,b=!1){return bT.of(a,b)}}function cH(a){return(11==a.nodeType?a.getSelection?a:a.ownerDocument:a).getSelection()}function cI(a,b){return!!b&&(a==b||a.contains(1!=b.nodeType?b.parentNode:b))}function cJ(a,b){if(!b.anchorNode)return!1;try{return cI(a,b.anchorNode)}catch(a){return!1}}function cK(a){return 3==a.nodeType?cW(a,0,a.nodeValue.length).getClientRects():1==a.nodeType?a.getClientRects():[]}function cL(a,b,c,d){return!!c&&(cO(a,b,c,d,-1)||cO(a,b,c,d,1))}function cM(a){for(var b=0;;b++)if(!(a=a.previousSibling))return b}function cN(a){return 1==a.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(a.nodeName)}function cO(a,b,c,d,e){for(;;){if(a==c&&b==d)return!0;if(b==(e<0?0:cP(a))){if("DIV"==a.nodeName)return!1;let c=a.parentNode;if(!c||1!=c.nodeType)return!1;b=cM(a)+(e<0?0:1),a=c}else{if(1!=a.nodeType||1==(a=a.childNodes[b+(e<0?-1:0)]).nodeType&&"false"==a.contentEditable)return!1;b=e<0?cP(a):0}}}function cP(a){return 3==a.nodeType?a.nodeValue.length:a.childNodes.length}function cQ(a,b){let c=b?a.left:a.right;return{left:c,right:c,top:a.top,bottom:a.bottom}}function cR(a,b){let c=b.width/a.offsetWidth,d=b.height/a.offsetHeight;return(c>.995&&c<1.005||!isFinite(c)||1>Math.abs(b.width-a.offsetWidth))&&(c=1),(d>.995&&d<1.005||!isFinite(d)||1>Math.abs(b.height-a.offsetHeight))&&(d=1),{scaleX:c,scaleY:d}}function cS(a,b=!0){let c=a.ownerDocument,d=null,e=null;for(let f=a.parentNode;f;)if(f==c.body||(!b||d)&&e)break;else if(1==f.nodeType)!e&&f.scrollHeight>f.clientHeight&&(e=f),b&&!d&&f.scrollWidth>f.clientWidth&&(d=f),f=f.assignedSlot||f.parentNode;else if(11==f.nodeType)f=f.host;else break;return{x:d,y:e}}cG.prototype.startSide=cG.prototype.endSide=-1;class cT{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(a){return this.anchorNode==a.anchorNode&&this.anchorOffset==a.anchorOffset&&this.focusNode==a.focusNode&&this.focusOffset==a.focusOffset}setRange(a){let{anchorNode:b,focusNode:c}=a;this.set(b,Math.min(a.anchorOffset,b?cP(b):0),c,Math.min(a.focusOffset,c?cP(c):0))}set(a,b,c,d){this.anchorNode=a,this.anchorOffset=b,this.focusNode=c,this.focusOffset=d}}let cU=null;function cV(a){if(a.setActive)return a.setActive();if(cU)return a.focus(cU);let b=[];for(let c=a;c&&(b.push(c,c.scrollTop,c.scrollLeft),c!=c.ownerDocument);c=c.parentNode);if(a.focus(null==cU?{get preventScroll(){return cU={preventScroll:!0},!0}}:void 0),!cU){cU=!1;for(let a=0;a<b.length;){let c=b[a++],d=b[a++],e=b[a++];c.scrollTop!=d&&(c.scrollTop=d),c.scrollLeft!=e&&(c.scrollLeft=e)}}}function cW(a,b,d=b){let e=c||(c=document.createRange());return e.setEnd(a,d),e.setStart(a,b),e}function cX(a,b,c,d){let e={key:b,code:b,keyCode:c,which:c,cancelable:!0};d&&({altKey:e.altKey,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,metaKey:e.metaKey}=d);let f=new KeyboardEvent("keydown",e);f.synthetic=!0,a.dispatchEvent(f);let g=new KeyboardEvent("keyup",e);return g.synthetic=!0,a.dispatchEvent(g),f.defaultPrevented||g.defaultPrevented}function cY(a){return a instanceof Window?a.pageYOffset>Math.max(0,a.document.documentElement.scrollHeight-a.innerHeight-4):a.scrollTop>Math.max(1,a.scrollHeight-a.clientHeight-4)}function cZ(a,b){for(let c=a,d=b;;)if(3==c.nodeType&&d>0)return{node:c,offset:d};else if(1==c.nodeType&&d>0){if("false"==c.contentEditable)return null;d=cP(c=c.childNodes[d-1])}else{if(!c.parentNode||cN(c))return null;d=cM(c),c=c.parentNode}}function c$(a,b){for(let c=a,d=b;;)if(3==c.nodeType&&d<c.nodeValue.length)return{node:c,offset:d};else if(1==c.nodeType&&d<c.childNodes.length){if("false"==c.contentEditable)return null;c=c.childNodes[d],d=0}else{if(!c.parentNode||cN(c))return null;d=cM(c)+1,c=c.parentNode}}ct.safari&&ct.safari_version>=26&&(cU=!1);class c_{constructor(a,b,c=!0){this.node=a,this.offset=b,this.precise=c}static before(a,b){return new c_(a.parentNode,cM(a),b)}static after(a,b){return new c_(a.parentNode,cM(a)+1,b)}}var c0=((pQ=c0||(c0={}))[pQ.LTR=0]="LTR",pQ[pQ.RTL=1]="RTL",pQ);let c1=c0.LTR,c2=c0.RTL;function c3(a){let b=[];for(let c=0;c<a.length;c++)b.push(1<<a[c]);return b}let c4=c3("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),c5=c3("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),c6=Object.create(null),c7=[];for(let a of["()","[]","{}"]){let b=a.charCodeAt(0),c=a.charCodeAt(1);c6[b]=c,c6[c]=-b}function c8(a){return a<=247?c4[a]:1424<=a&&a<=1524?2:1536<=a&&a<=1785?c5[a-1536]:1774<=a&&a<=2220?4:8192<=a&&a<=8204?256:64336<=a&&a<=65023?4:1}let c9=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class da{get dir(){return this.level%2?c2:c1}constructor(a,b,c){this.from=a,this.to=b,this.level=c}side(a,b){return this.dir==b==a?this.to:this.from}forward(a,b){return a==(this.dir==b)}static find(a,b,c,d){let e=-1;for(let f=0;f<a.length;f++){let g=a[f];if(g.from<=b&&g.to>=b){if(g.level==c)return f;(e<0||(0!=d?d<0?g.from<b:g.to>b:a[e].level>g.level))&&(e=f)}}if(e<0)throw RangeError("Index out of range");return e}}let db=[];function dc(a){return[new da(0,a,0)]}let dd="",de=bf.define(),df=bf.define(),dg=bf.define(),dh=bf.define(),di=bf.define(),dj=bf.define(),dk=bf.define(),dl=bf.define(),dm=bf.define(),dn=bf.define({combine:a=>a.some(a=>a)}),dp=bf.define({combine:a=>a.some(a=>a)}),dq=bf.define();class dr{constructor(a,b,c,d,e,f=!1){this.range=a,this.y=b,this.x=c,this.yMargin=d,this.xMargin=e,this.isSnapshot=f}map(a){return a.empty?this:new dr(this.range.map(a),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(a){return this.range.to<=a.doc.length?this:new dr(bc.cursor(a.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}let ds=bE.define({map:(a,b)=>a.map(b)}),dt=bE.define();function du(a,b,c){let d=a.facet(dh);d.length?d[0](b):window.onerror&&window.onerror(String(b),c,void 0,void 0,b)||(c?console.error(c+":",b):console.error(b))}let dv=bf.define({combine:a=>!a.length||a[0]}),dw=0,dx=bf.define({combine:a=>a.filter((b,c)=>{for(let d=0;d<c;d++)if(a[d].plugin==b.plugin)return!1;return!0})});class dy{constructor(a,b,c,d,e){this.id=a,this.create=b,this.domEventHandlers=c,this.domEventObservers=d,this.baseExtensions=e(this),this.extension=this.baseExtensions.concat(dx.of({plugin:this,arg:void 0}))}of(a){return this.baseExtensions.concat(dx.of({plugin:this,arg:a}))}static define(a,b){let{eventHandlers:c,eventObservers:d,provide:e,decorations:f}=b||{};return new dy(dw++,a,c,d,a=>{let b=[];return f&&b.push(dC.of(b=>{let c=b.plugin(a);return c?f(c):cA.none})),e&&b.push(e(a)),b})}static fromClass(a,b){return dy.define((b,c)=>new a(b,c),b)}}class dz{constructor(a){this.spec=a,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(a){if(this.value){if(this.mustUpdate){let a=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(a)}catch(b){if(du(a.state,b,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(a){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(a,this.spec.arg)}catch(b){du(a.state,b,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(a){var b;if(null==(b=this.value)?void 0:b.destroy)try{this.value.destroy()}catch(b){du(a.state,b,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}let dA=bf.define(),dB=bf.define(),dC=bf.define(),dD=bf.define(),dE=bf.define(),dF=bf.define(),dG=bf.define();function dH(a,b){let c=a.state.facet(dG);if(!c.length)return c;let d=c.map(b=>b instanceof Function?b(a):b),e=[];return bT.spans(d,b.from,b.to,{point(){},span(a,c,d,f){let g=a-b.from,h=c-b.from,i=e;for(let a=d.length-1;a>=0;a--,f--){let c=d[a].spec.bidiIsolate,e;if(null==c&&(c=function(a,b,c){for(let d=b;d<c;d++){let b=c8(a.charCodeAt(d));if(1==b)break;if(2==b||4==b)return c2}return c1}(b.text,g,h)),f>0&&i.length&&(e=i[i.length-1]).to==g&&e.direction==c)e.to=h,i=e.inner;else{let a={from:g,to:h,direction:c,inner:[]};i.push(a),i=a.inner}}}}),e}let dI=bf.define();function dJ(a){let b=0,c=0,d=0,e=0;for(let f of a.state.facet(dI)){let g=f(a);g&&(null!=g.left&&(b=Math.max(b,g.left)),null!=g.right&&(c=Math.max(c,g.right)),null!=g.top&&(d=Math.max(d,g.top)),null!=g.bottom&&(e=Math.max(e,g.bottom)))}return{left:b,right:c,top:d,bottom:e}}let dK=bf.define();class dL{constructor(a,b,c,d){this.fromA=a,this.toA=b,this.fromB=c,this.toB=d}join(a){return new dL(Math.min(this.fromA,a.fromA),Math.max(this.toA,a.toA),Math.min(this.fromB,a.fromB),Math.max(this.toB,a.toB))}addToSet(a){let b=a.length,c=this;for(;b>0;b--){let d=a[b-1];if(!(d.fromA>c.toA)){if(d.toA<c.fromA)break;c=c.join(d),a.splice(b-1,1)}}return a.splice(b,0,c),a}static extendWithRanges(a,b){if(0==b.length)return a;let c=[];for(let d=0,e=0,f=0;;){let g=Math.min(d<a.length?a[d].fromB:1e9,e<b.length?b[e]:1e9);if(1e9==g)break;let h=g+f,i=g,j=h;for(;;)if(e<b.length&&b[e]<=i){let c=b[e+1];e+=2,i=Math.max(i,c);for(let b=d;b<a.length&&a[b].fromB<=i;b++)f=a[b].toA-a[b].toB;j=Math.max(j,c+f)}else if(d<a.length&&a[d].fromB<=i){let b=a[d++];i=Math.max(i,b.toB),j=Math.max(j,b.toA),f=b.toA-b.toB}else break;c.push(new dL(h,j,g,i))}return c}}class dM{constructor(a,b,c){for(let d of(this.view=a,this.state=b,this.transactions=c,this.flags=0,this.startState=a.state,this.changes=a4.empty(this.startState.doc.length),c))this.changes=this.changes.compose(d.changes);let d=[];this.changes.iterChangedRanges((a,b,c,e)=>d.push(new dL(a,b,c,e))),this.changedRanges=d}static create(a,b,c){return new dM(a,b,c)}get viewportChanged(){return(4&this.flags)>0}get viewportMoved(){return(8&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(18&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(a=>a.selection)}get empty(){return 0==this.flags&&0==this.transactions.length}}let dN=[];class dO{constructor(a,b,c=0){this.dom=a,this.length=b,this.flags=c,this.parent=null,a.cmTile=this}get breakAfter(){return 1&this.flags}get children(){return dN}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(a){if(this.flags|=2,4&this.flags){this.flags&=-5;let a=this.domAttrs;a&&function(a,b){for(let c=a.attributes.length-1;c>=0;c--){let d=a.attributes[c].name;null==b[d]&&a.removeAttribute(d)}for(let c in b){let d=b[c];"style"==c?a.style.cssText=d:a.getAttribute(c)!=d&&a.setAttribute(c,d)}}(this.dom,a)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(a){this.dom=a,a.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(a,b=this.posAtStart){let c=b;for(let b of this.children){if(b==a)return c;c+=b.length+b.breakAfter}throw RangeError("Invalid child in posBefore")}posAfter(a){return this.posBefore(a)+a.length}covers(a){return!0}coordsIn(a,b){return null}domPosFor(a,b){let c=cM(this.dom),d=this.length?a>0:b>0;return new c_(this.parent.dom,c+ +!!d,0==a||a==this.length)}markDirty(a){this.flags&=-3,a&&(this.flags|=4),this.parent&&2&this.parent.flags&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let a=this;a;a=a.parent)if(a instanceof dR)return a;return null}static get(a){return a.cmTile}}class dP extends dO{constructor(a){super(a,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(a){this.children.push(a),a.parent=this}sync(a){if(2&this.flags)return;super.sync(a);let b=this.dom,c=null,d,e=(null==a?void 0:a.node)==b?a:null,f=0;for(let g of this.children){if(g.sync(a),f+=g.length+g.breakAfter,d=c?c.nextSibling:b.firstChild,e&&d!=g.dom&&(e.written=!0),g.dom.parentNode==b)for(;d&&d!=g.dom;)d=dQ(d);else b.insertBefore(g.dom,d);c=g.dom}for(d=c?c.nextSibling:b.firstChild,e&&d&&(e.written=!0);d;)d=dQ(d);this.length=f}}function dQ(a){let b=a.nextSibling;return a.parentNode.removeChild(a),b}class dR extends dP{constructor(a,b){super(b),this.view=a}owns(a){for(;a;a=a.parent)if(a==this)return!0;return!1}isBlock(){return!0}nearest(a){for(;;){if(!a)return null;let b=dO.get(a);if(b&&this.owns(b))return b;a=a.parentNode}}blockTiles(a){for(let b=[],c=this,d=0,e=0;;)if(d==c.children.length){if(!b.length)return;(c=c.parent).breakAfter&&e++,d=b.pop()}else{let f=c.children[d++];if(f instanceof dS)b.push(d),c=f,d=0;else{let b=e+f.length,c=a(f,e);if(void 0!==c)return c;e=b+f.breakAfter}}}resolveBlock(a,b){let c,d=-1,e,f=-1;if(this.blockTiles((g,h)=>{let i=h+g.length;if(a>=h&&a<=i){if(g.isWidget()&&b>=-1&&b<=1){if(32&g.flags)return!0;16&g.flags&&(c=void 0)}(h<a||a==i&&(b<-1?g.length:g.covers(1)))&&(!c||!g.isWidget()&&c.isWidget())&&(c=g,d=a-h),(i>a||a==h&&(b>1?g.length:g.covers(-1)))&&(!e||!g.isWidget()&&e.isWidget())&&(e=g,f=a-h)}}),!c&&!e)throw Error("No tile at position "+a);return c&&b<0||!e?{tile:c,offset:d}:{tile:e,offset:f}}}class dS extends dP{constructor(a,b){super(a),this.wrapper=b}isBlock(){return!0}covers(a){return!!this.children.length&&(a<0?this.children[0].covers(-1):this.lastChild.covers(1))}get domAttrs(){return this.wrapper.attributes}static of(a,b){let c=new dS(b||document.createElement(a.tagName),a);return b||(c.flags|=4),c}}class dT extends dP{constructor(a,b){super(a),this.attrs=b}isLine(){return!0}static start(a,b,c){let d=new dT(b||document.createElement("div"),a);return b&&c||(d.flags|=4),d}get domAttrs(){return this.attrs}resolveInline(a,b,c){let d=null,e=-1,f=null,g=-1;!function a(h,i){for(let j=0,k=0;j<h.children.length&&k<=i;j++){let l=h.children[j],m=k+l.length;m>=i&&(l.isComposite()?a(l,i-k):(!f||f.isHidden&&(b>0||c&&function(a,b){let c=a.coordsIn(0,1),d=b.coordsIn(0,1);return c&&d&&d.top<c.bottom}(f,l)))&&(m>i||32&l.flags)?(f=l,g=i-k):(k<i||16&l.flags&&!l.isHidden)&&(d=l,e=i-k)),k=m}}(this,a);let h=(b<0?d:f)||d||f;return h?{tile:h,offset:h==d?e:g}:null}coordsIn(a,b){let c=this.resolveInline(a,b,!0);return c?c.tile.coordsIn(Math.max(0,c.offset),b):function(a){let b=a.dom.lastChild;if(!b)return a.dom.getBoundingClientRect();let c=cK(b);return c[c.length-1]||null}(this)}domIn(a,b){let c=this.resolveInline(a,b);if(c){let{tile:a,offset:d}=c;if(this.dom.contains(a.dom))return a.isText()?new c_(a.dom,Math.min(a.dom.nodeValue.length,d)):a.domPosFor(d,16&a.flags?1:32&a.flags?-1:b);let e=c.tile.parent,f=!1;for(let a of e.children){if(f)return new c_(a.dom,0);a==c.tile&&(f=!0)}}return new c_(this.dom,0)}}class dU extends dP{constructor(a,b){super(a),this.mark=b}get domAttrs(){return this.mark.attrs}static of(a,b){let c=new dU(b||document.createElement(a.tagName),a);return b||(c.flags|=4),c}}class dV extends dO{constructor(a,b){super(a,b.length),this.text=b}sync(a){2&this.flags||(super.sync(a),this.dom.nodeValue!=this.text&&(a&&a.node==this.dom&&(a.written=!0),this.dom.nodeValue=this.text))}isText(){return!0}toString(){return JSON.stringify(this.text)}coordsIn(a,b){let c=this.dom.nodeValue.length;a>c&&(a=c);let d=a,e=a,f=0;0==a&&b<0||a==c&&b>=0?!(ct.chrome||ct.gecko)&&(a?(d--,f=1):e<c&&(e++,f=-1)):b<0?d--:e<c&&e++;let g=cW(this.dom,d,e).getClientRects();if(!g.length)return null;let h=g[(f?f<0:b>=0)?0:g.length-1];return ct.safari&&!f&&0==h.width&&(h=Array.prototype.find.call(g,a=>a.width)||h),f?cQ(h,f<0):h||null}static of(a,b){let c=new dV(b||document.createTextNode(a),a);return b||(c.flags|=2),c}}class dW extends dO{constructor(a,b,c,d){super(a,b,d),this.widget=c}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(a){return!(48&this.flags)&&(this.flags&(a<0?64:128))>0}coordsIn(a,b){return this.coordsInWidget(a,b,!1)}coordsInWidget(a,b,c){let d=this.widget.coordsAt(this.dom,a,b);if(d)return d;if(c)return cQ(this.dom.getBoundingClientRect(),this.length?0==a:b<=0);{let b=this.dom.getClientRects(),c=null;if(!b.length)return null;let d=!!(16&this.flags)||!(32&this.flags)&&a>0;for(let e=d?b.length-1:0;c=b[e],a>0?0!=e:e!=b.length-1&&!(c.top<c.bottom);e+=d?-1:1);return cQ(c,!d)}}get overrideDOMText(){if(!this.length)return aQ.empty;let{root:a}=this;if(!a)return aQ.empty;let b=this.posAtStart;return a.view.state.doc.slice(b,b+this.length)}destroy(){super.destroy(),this.widget.destroy(this.dom)}static of(a,b,c,d,e){return!e&&(e=a.toDOM(b),a.editable||(e.contentEditable="false")),new dW(e,c,a,d)}}class dX extends dO{constructor(a){let b=document.createElement("img");b.className="cm-widgetBuffer",b.setAttribute("aria-hidden","true"),super(b,0,a)}get isHidden(){return!0}get overrideDOMText(){return aQ.empty}coordsIn(a){return this.dom.getBoundingClientRect()}}class dY{constructor(a){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=a}advance(a,b,c){let{tile:d,index:e,beforeBreak:f,parents:g}=this;for(;a||b>0;)if(d.isComposite())if(f){if(!a)break;c&&c.break(),a--,f=!1}else if(e==d.children.length){if(!a&&!g.length)break;c&&c.leave(d),f=!!d.breakAfter,({tile:d,index:e}=g.pop()),e++}else{let h=d.children[e],i=h.breakAfter;(b>0?h.length<=a:h.length<a)&&(!c||!1!==c.skip(h,0,h.length)||!h.isComposite)?(f=!!i,e++,a-=h.length):(g.push({tile:d,index:e}),d=h,e=0,c&&h.isComposite()&&c.enter(h))}else if(e==d.length)f=!!d.breakAfter,({tile:d,index:e}=g.pop()),e++;else if(a){let b=Math.min(a,d.length-e);c&&c.skip(d,e,e+b),a-=b,e+=b}else break;return this.tile=d,this.index=e,this.beforeBreak=f,this}get root(){return this.parents.length?this.parents[0].tile:this.tile}}class dZ{constructor(a,b,c,d){this.from=a,this.to=b,this.wrapper=c,this.rank=d}}class d${constructor(a,b,c){this.cache=a,this.root=b,this.blockWrappers=c,this.curLine=null,this.lastBlock=null,this.afterWidget=null,this.pos=0,this.wrappers=[],this.wrapperPos=0}addText(a,b,c,d){var e;this.flushBuffer();let f=this.ensureMarks(b,c),g=f.lastChild;g&&g.isText()&&!(8&g.flags)&&g.length+a.length<512?(this.cache.reused.set(g,2),(f.children[f.children.length-1]=new dV(g.dom,g.text+a)).parent=f):f.append(d||dV.of(a,null==(e=this.cache.find(dV))?void 0:e.dom)),this.pos+=a.length,this.afterWidget=null}addComposition(a,b){let c=this.curLine;c.dom!=b.line.dom&&(c.setDOM(this.cache.reused.has(b.line)?d5(b.line.dom):b.line.dom),this.cache.reused.set(b.line,2));let d=c;for(let a=b.marks.length-1;a>=0;a--){let c=b.marks[a],e=d.lastChild;if(e instanceof dU&&e.mark.eq(c.mark))e.dom!=c.dom&&e.setDOM(d5(c.dom)),d=e;else{if(this.cache.reused.get(c)){let a=dO.get(c.dom);a&&a.setDOM(d5(c.dom))}let a=dU.of(c.mark,c.dom);d.append(a),d=a}this.cache.reused.set(c,2)}let e=dO.get(a.text);e&&this.cache.reused.set(e,2);let f=new dV(a.text,a.text.nodeValue);f.flags|=8,d.append(f)}addInlineWidget(a,b,c){let d=this.afterWidget&&48&a.flags&&(48&this.afterWidget.flags)==(48&a.flags);d||this.flushBuffer();let e=this.ensureMarks(b,c);d||16&a.flags||e.append(this.getBuffer(1)),e.append(a),this.pos+=a.length,this.afterWidget=a}addMark(a,b,c){this.flushBuffer(),this.ensureMarks(b,c).append(a),this.pos+=a.length,this.afterWidget=null}addBlockWidget(a){this.getBlockPos().append(a),this.pos+=a.length,this.lastBlock=a,this.endLine()}continueWidget(a){let b=this.afterWidget||this.lastBlock;b.length+=a,this.pos+=a}addLineStart(a,b){var c;a||(a=d4);let d=dT.start(a,b||(null==(c=this.cache.find(dT))?void 0:c.dom),!!b);this.getBlockPos().append(this.lastBlock=this.curLine=d)}addLine(a){this.getBlockPos().append(a),this.pos+=a.length,this.lastBlock=a,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(a){this.blockPosCovered()||this.addLineStart(a)}ensureLine(a){this.curLine||this.addLineStart(a)}ensureMarks(a,b){var c;let d=this.curLine;for(let e=a.length-1;e>=0;e--){let f=a[e],g;if(b>0&&(g=d.lastChild)&&g instanceof dU&&g.mark.eq(f))d=g,b--;else{let a=dU.of(f,null==(c=this.cache.find(dU,a=>a.mark.eq(f)))?void 0:c.dom);d.append(a),d=a,b=0}}return d}endLine(){if(this.curLine){this.flushBuffer();let a=this.curLine.lastChild;(!a||!d3(this.curLine,!1)||"BR"!=a.dom.nodeName&&a.isWidget()&&!(ct.ios&&d3(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(d7,0,32)||new dW(d7.toDOM(),0,d7,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let a=this.wrappers.length-1;a>=0;a--)this.wrappers[a].to<this.pos&&this.wrappers.splice(a,1);for(let a=this.blockWrappers;a.value&&a.from<=this.pos;a.next())if(a.to>=this.pos){let b=new dZ(a.from,a.to,a.value,a.rank),c=this.wrappers.length;for(;c>0&&0>(this.wrappers[c-1].rank-b.rank||this.wrappers[c-1].to-b.to);)c--;this.wrappers.splice(c,0,b)}this.wrapperPos=this.pos}getBlockPos(){var a;this.updateBlockWrappers();let b=this.root;for(let c of this.wrappers){let d=b.lastChild;if(c.from<this.pos&&d instanceof dS&&d.wrapper.eq(c.wrapper))b=d;else{let d=dS.of(c.wrapper,null==(a=this.cache.find(dS,a=>a.wrapper.eq(c.wrapper)))?void 0:a.dom);b.append(d),b=d}}return b}blockPosCovered(){let a=this.lastBlock;return null!=a&&!a.breakAfter&&(!a.isWidget()||(160&a.flags)>0)}getBuffer(a){let b=2|(a<0?16:32),c=this.cache.find(dX,void 0,1);return c&&(c.flags=b),c||new dX(b)}flushBuffer(){this.afterWidget&&!(32&this.afterWidget.flags)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class d_{constructor(a){this.skipCount=0,this.text="",this.textOff=0,this.cursor=a.iter()}skip(a){this.textOff+a<=this.text.length?this.textOff+=a:(this.skipCount+=a-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(a){if(this.textOff==this.text.length){let{value:b,lineBreak:c,done:d}=this.cursor.next(this.skipCount);if(this.skipCount=0,d)throw Error("Ran out of text content when drawing inline views");this.text=b;let e=this.textOff=Math.min(a,b.length);return c?null:b.slice(0,e)}let b=Math.min(this.text.length,this.textOff+a),c=this.text.slice(this.textOff,b);return this.textOff=b,c}}let d0=[dW,dT,dV,dU,dX,dS,dR];for(let a=0;a<d0.length;a++)d0[a].bucket=a;class d1{constructor(a){this.view=a,this.buckets=d0.map(()=>[]),this.index=d0.map(()=>0),this.reused=new Map}add(a){let b=a.constructor.bucket,c=this.buckets[b];c.length<6?c.push(a):c[this.index[b]=(this.index[b]+1)%6]=a}find(a,b,c=2){let d=a.bucket,e=this.buckets[d],f=this.index[d];for(let a=e.length-1;a>=0;a--){let g=(a+f)%e.length,h=e[g];if((!b||b(h))&&!this.reused.has(h))return e.splice(g,1),g<f&&this.index[d]--,this.reused.set(h,c),h}return null}findWidget(a,b,c){let d=this.buckets[0];if(d.length)for(let e=0,f=0;;e++){if(e==d.length){if(f)return null;f=1,e=0}let g=d[e];if(!this.reused.has(g)&&(0==f?g.widget.compare(a):g.widget.constructor==a.constructor&&a.updateDOM(g.dom,this.view,g.widget))){if(d.splice(e,1),e<this.index[0]&&this.index[0]--,g.widget==a&&g.length==b&&(497&g.flags)==c)return this.reused.set(g,1),g;return this.reused.set(g,2),new dW(g.dom,b,a,-498&g.flags|c)}}}reuse(a){return this.reused.set(a,1),a}maybeReuse(a,b=2){if(!this.reused.has(a))return this.reused.set(a,b),a.dom}clear(){for(let a=0;a<this.buckets.length;a++)this.buckets[a].length=this.index[a]=0}}class d2{constructor(a,b,c,d,e){this.view=a,this.decorations=d,this.disallowBlockEffectsFor=e,this.openWidget=!1,this.openMarks=0,this.cache=new d1(a),this.text=new d_(a.state.doc),this.builder=new d$(this.cache,new dR(a,a.contentDOM),bT.iter(c)),this.cache.reused.set(b,2),this.old=new dY(b),this.reuseWalker={skip:(a,b,c)=>{if(this.cache.add(a),a.isComposite())return!1},enter:a=>this.cache.add(a),leave:()=>{},break:()=>{}}}run(a,b){let c=b&&this.getCompositionContext(b.text);for(let d=0,e=0,f=0;;){let g=f<a.length?a[f++]:null,h=g?g.fromA:this.old.root.length;if(h>d){let a=h-d;this.preserve(a,!f,!g),d=h,e+=a}if(!g)break;b&&g.fromA<=b.range.fromA&&g.toA>=b.range.toA?(this.forward(g.fromA,b.range.fromA,b.range.fromA<b.range.toA?1:-1),this.emit(e,b.range.fromB),this.cache.clear(),this.builder.addComposition(b,c),this.text.skip(b.range.toB-b.range.fromB),this.forward(b.range.fromA,g.toA),this.emit(b.range.toB,g.toB)):(this.forward(g.fromA,g.toA),this.emit(e,g.toB)),e=g.toB,d=g.toA}return this.builder.curLine&&this.builder.endLine(),this.builder.root}preserve(a,b,c){let d=function(a){let b=[];for(let c=a.parents.length;c>1;c--){let d=c==a.parents.length?a.tile:a.parents[c].tile;d instanceof dU&&b.push(d.mark)}return b}(this.old),e=this.openMarks;this.old.advance(a,c?1:-1,{skip:(a,b,c)=>{if(a.isWidget())if(this.openWidget)this.builder.continueWidget(c-b);else{let f=c>0||b<a.length?dW.of(a.widget,this.view,c-b,496&a.flags,this.cache.maybeReuse(a)):this.cache.reuse(a);256&f.flags?(f.flags&=-2,this.builder.addBlockWidget(f)):(this.builder.ensureLine(null),this.builder.addInlineWidget(f,d,e),e=d.length)}else if(a.isText())this.builder.ensureLine(null),b||c!=a.length||this.cache.reused.has(a)?(this.cache.add(a),this.builder.addText(a.text.slice(b,c),d,e)):this.builder.addText(a.text,d,e,this.cache.reuse(a)),e=d.length;else if(a.isLine())a.flags&=-2,this.cache.reused.set(a,1),this.builder.addLine(a);else if(a instanceof dX)this.cache.add(a);else{if(!(a instanceof dU))return!1;this.builder.ensureLine(null),this.builder.addMark(a,d,e),this.cache.reused.set(a,1),e=d.length}this.openWidget=!1},enter:a=>{a.isLine()?this.builder.addLineStart(a.attrs,this.cache.maybeReuse(a)):(this.cache.add(a),a instanceof dU&&d.unshift(a.mark)),this.openWidget=!1},leave:a=>{a.isLine()?d.length&&(d.length=e=0):a instanceof dU&&(d.shift(),e=Math.min(e,d.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(a)}emit(a,b){let c=null,d=this.builder,e=0,f=bT.spans(this.decorations,a,b,{point:(a,b,f,g,h,i)=>{var j,k,l;if(f instanceof cD){if(this.disallowBlockEffectsFor[i]){if(f.block)throw RangeError("Block decorations may not be specified via plugins");if(b>this.view.state.doc.lineAt(a).to)throw RangeError("Decorations that replace line breaks may not be specified via plugins")}if(e=g.length,h>g.length)d.continueWidget(b-a);else{let e,i=f.widget||(f.block?d6.block:d6.inline),k=(e=(j=f).isReplace?64*(j.startSide<0)|128*(j.endSide>0):j.startSide>0?32:16,j.block&&(e|=256),e),l=this.cache.findWidget(i,b-a,k)||dW.of(i,this.view,b-a,k);f.block?(f.startSide>0&&d.addLineStartIfNotCovered(c),d.addBlockWidget(l)):(d.ensureLine(c),d.addInlineWidget(l,g,h))}c=null}else{let a,b;k=c,a=(l=f).spec.attributes,b=l.spec.class,(a||b)&&(k||(k={class:"cm-line"}),a&&cu(a,k),b&&(k.class+=" "+b)),c=k}b>a&&this.text.skip(b-a)},span:(a,b,e,f)=>{for(let g=a;g<b;){let h=this.text.next(Math.min(512,b-g));null==h?(d.addLineStartIfNotCovered(c),d.addBreak(),g++):(d.ensureLine(c),d.addText(h,e,g==a?f:e.length),g+=h.length),c=null}}});d.addLineStartIfNotCovered(c),this.openWidget=f>e,this.openMarks=f}forward(a,b,c=1){b-a<=10?this.old.advance(b-a,c,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(b-a-10,-1),this.old.advance(5,c,this.reuseWalker))}getCompositionContext(a){let b=[],c=null;for(let d=a.parentNode;;d=d.parentNode){let a=dO.get(d);if(d==this.view.contentDOM)break;a instanceof dU?b.push(a):(null==a?void 0:a.isLine())?c=a:a instanceof dS||("DIV"!=d.nodeName||c||d==this.view.contentDOM?c||b.push(dU.of(new cB({tagName:d.nodeName.toLowerCase(),attributes:function(a){let b=Object.create(null);for(let c=0;c<a.attributes.length;c++){let d=a.attributes[c];b[d.name]=d.value}return b}(d)}),d)):c=new dT(d,d4))}return{line:c,marks:b}}}function d3(a,b){let c=a=>{for(let d of a.children)if((b?d.isText():d.length)||c(d))return!0;return!1};return c(a)}let d4={class:"cm-line"};function d5(a){let b=dO.get(a);return b&&b.setDOM(a.cloneNode()),a}class d6 extends cy{constructor(a){super(),this.tag=a}eq(a){return a.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(a){return a.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}d6.inline=new d6("span"),d6.block=new d6("div");let d7=new class extends cy{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class d8{constructor(a){this.view=a,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=cA.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new dR(a,a.contentDOM),this.updateInner([new dL(0,0,0,a.state.doc.length)],null)}update(a){var b,c,d,e,f,g,h,i,j;let k,l,m,n=a.changedRanges;this.minWidth>0&&n.length&&(n.every(({fromA:a,toA:b})=>b<this.minWidthFrom||a>this.minWidthTo)?(this.minWidthFrom=a.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=a.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(a);let o=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&((null==(b=this.domChanged)?void 0:b.newSel)?o=this.domChanged.newSel.head:(c=a.changes,d=this.hasComposition,k=!1,d&&c.iterChangedRanges((a,b)=>{a<d.to&&b>d.from&&(k=!0)}),k||a.selectionSet||(o=a.state.selection.main.head)));let p=o>-1?function(a,b,c){let d=ea(a,c);if(!d)return null;let{node:e,from:f,to:g}=d,h=e.nodeValue;if(/[\n\r]/.test(h)||a.state.doc.sliceString(d.from,d.to)!=h)return null;let i=b.invertedDesc;return{range:new dL(i.mapPos(f),i.mapPos(g),f,g),text:e}}(this.view,a.changes,o):null;if(this.domChanged=null,this.hasComposition){let{from:b,to:c}=this.hasComposition;n=new dL(b,c,a.changes.mapPos(b,-1),a.changes.mapPos(c,1)).addToSet(n.slice())}this.hasComposition=p?{from:p.range.fromB,to:p.range.toB}:null,(ct.ie||ct.chrome)&&!p&&a&&a.state.doc.lines!=a.startState.doc.lines&&(this.forceSelection=!0);let q=this.decorations,r=this.blockWrappers;this.updateDeco();let s=(e=q,f=this.decorations,g=a.changes,l=new eb,bT.compare(e,f,g,l),l.changes);s.length&&(n=dL.extendWithRanges(n,s));let t=(h=r,i=this.blockWrappers,j=a.changes,m=new ec,bT.compare(h,i,j,m),m.changes);return t.length&&(n=dL.extendWithRanges(n,t)),p&&!n.some(a=>a.fromA<=p.range.fromA&&a.toA>=p.range.toA)&&(n=p.range.addToSet(n.slice())),(!(2&this.tile.flags)||0!=n.length)&&(this.updateInner(n,p),a.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(a,b){this.view.viewState.mustMeasureContent=!0;let{observer:c}=this.view;c.ignore(()=>{if(b||a.length){let c=this.tile,d=new d2(this.view,c,this.blockWrappers,this.decorations,this.dynamicDecorationMap);b&&dO.get(b.text)&&d.cache.reused.set(dO.get(b.text),2),this.tile=d.run(a,b),d9(c,d.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let d=ct.chrome||ct.ios?{node:c.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(d),d&&(d.written||c.selectionRange.focusNode!=d.node||!this.tile.dom.contains(d.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let d=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let a of this.tile.children)a.isWidget()&&a.widget instanceof ed&&d.push(a.dom);c.updateGaps(d)}updateEditContextFormatting(a){for(let b of(this.editContextFormatting=this.editContextFormatting.map(a.changes),a.transactions))for(let a of b.effects)a.is(dt)&&(this.editContextFormatting=a.value)}updateSelection(a=!1,b=!1){var c;(a||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let{dom:d}=this.tile,e=this.view.root.activeElement,f=e==d,g=!f&&!(this.view.state.facet(dv)||d.tabIndex>-1)&&cJ(d,this.view.observer.selectionRange)&&!(e&&d.contains(e));if(!(f||b||g))return;let h=this.forceSelection;this.forceSelection=!1;let i=this.view.state.selection.main,j,k;if(i.empty?k=j=this.inlineDOMNearPos(i.anchor,i.assoc||1):(k=this.inlineDOMNearPos(i.head,i.head==i.from?1:-1),j=this.inlineDOMNearPos(i.anchor,i.anchor==i.from?1:-1)),ct.gecko&&i.empty&&!this.hasComposition&&1==(c=j).node.nodeType&&c.node.firstChild&&(0==c.offset||"false"==c.node.childNodes[c.offset-1].contentEditable)&&(c.offset==c.node.childNodes.length||"false"==c.node.childNodes[c.offset].contentEditable)){let a=document.createTextNode("");this.view.observer.ignore(()=>j.node.insertBefore(a,j.node.childNodes[j.offset]||null)),j=k=new c_(a,0),h=!0}let l=this.view.observer.selectionRange;!h&&l.focusNode&&(cL(j.node,j.offset,l.anchorNode,l.anchorOffset)&&cL(k.node,k.offset,l.focusNode,l.focusOffset)||this.suppressWidgetCursorChange(l,i))||(this.view.observer.ignore(()=>{ct.android&&ct.chrome&&d.contains(l.focusNode)&&function(a,b){for(let c=a;c&&c!=b;c=c.assignedSlot||c.parentNode)if(1==c.nodeType&&"false"==c.contentEditable)return!0;return!1}(l.focusNode,d)&&(d.blur(),d.focus({preventScroll:!0}));let a=cH(this.view.root);if(a)if(i.empty){if(ct.gecko){var b,c;let a=(b=j.node,c=j.offset,1!=b.nodeType?0:(c&&"false"==b.childNodes[c-1].contentEditable?1:0)|2*(c<b.childNodes.length&&"false"==b.childNodes[c].contentEditable));if(a&&3!=a){let b=(1==a?cZ:c$)(j.node,j.offset);b&&(j=new c_(b.node,b.offset))}}a.collapse(j.node,j.offset),null!=i.bidiLevel&&void 0!==a.caretBidiLevel&&(a.caretBidiLevel=i.bidiLevel)}else if(a.extend){a.collapse(j.node,j.offset);try{a.extend(k.node,k.offset)}catch(a){}}else{let b=document.createRange();i.anchor>i.head&&([j,k]=[k,j]),b.setEnd(k.node,k.offset),b.setStart(j.node,j.offset),a.removeAllRanges(),a.addRange(b)}g&&this.view.root.activeElement==d&&(d.blur(),e&&e.focus())}),this.view.observer.setSelectionRange(j,k)),this.impreciseAnchor=j.precise?null:new c_(l.anchorNode,l.anchorOffset),this.impreciseHead=k.precise?null:new c_(l.focusNode,l.focusOffset)}suppressWidgetCursorChange(a,b){return this.hasComposition&&b.empty&&cL(a.focusNode,a.focusOffset,a.anchorNode,a.anchorOffset)&&this.posFromDOM(a.focusNode,a.focusOffset)==b.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:a}=this,b=a.state.selection.main,c=cH(a.root),{anchorNode:d,anchorOffset:e}=a.observer.selectionRange;if(!c||!b.empty||!b.assoc||!c.modify)return;let f=this.lineAt(b.head,b.assoc);if(!f)return;let g=f.posAtStart;if(b.head==g||b.head==g+f.length)return;let h=this.coordsAt(b.head,-1),i=this.coordsAt(b.head,1);if(!h||!i||h.bottom>i.top)return;let j=this.domAtPos(b.head+b.assoc,b.assoc);c.collapse(j.node,j.offset),c.modify("move",b.assoc<0?"forward":"backward","lineboundary"),a.observer.readSelectionRange();let k=a.observer.selectionRange;a.docView.posFromDOM(k.anchorNode,k.anchorOffset)!=b.from&&c.collapse(d,e)}posFromDOM(a,b){let c=this.tile.nearest(a);if(!c)return 2&this.tile.dom.compareDocumentPosition(a)?0:this.view.state.doc.length;let d=c.posAtStart;if(c.isComposite()){let e;if(a==c.dom)e=c.dom.childNodes[b];else{let d=0==cP(a)?0:0==b?-1:1;for(;;){let b=a.parentNode;if(b==c.dom)break;0==d&&b.firstChild!=b.lastChild&&(d=a==b.firstChild?-1:1),a=b}e=d<0?a:a.nextSibling}if(e==c.dom.firstChild)return d;for(;e&&!dO.get(e);)e=e.nextSibling;if(!e)return d+c.length;for(let a=0,b=d;;a++){let d=c.children[a];if(d.dom==e)return b;b+=d.length+d.breakAfter}}else if(c.isText())return a==c.dom?d+b:d+(b?c.length:0);else return d}domAtPos(a,b){let{tile:c,offset:d}=this.tile.resolveBlock(a,b);return c.isWidget()?c.domPosFor(a,b):c.domIn(d,b)}inlineDOMNearPos(a,b){let c,d=-1,e=!1,f,g=-1,h=!1;return(this.tile.blockTiles((b,i)=>{if(b.isWidget()){if(32&b.flags&&i>=a)return!0;16&b.flags&&(e=!0)}else{let j=i+b.length;if(i<=a&&(c=b,d=a-i,e=j<a),j>=a&&!f&&(f=b,g=a-i,h=i>a),i>a&&f)return!0}}),c||f)?(e&&f?c=null:h&&c&&(f=null),c&&b<0||!f?c.domIn(d,b):f.domIn(g,b)):this.domAtPos(a,b)}coordsAt(a,b){let{tile:c,offset:d}=this.tile.resolveBlock(a,b);return c.isWidget()?c.widget instanceof ed?null:c.coordsInWidget(d,b,!0):c.coordsIn(d,b)}lineAt(a,b){let{tile:c}=this.tile.resolveBlock(a,b);return c.isLine()?c:null}coordsForChar(a){let{tile:b,offset:c}=this.tile.resolveBlock(a,1);return b.isLine()?function a(b,c){if(b.isComposite())for(let d of b.children){if(d.length>=c){let b=a(d,c);if(b)return b}if((c-=d.length)<0)break}else if(b.isText()&&c<b.length){let a=aZ(b.text,c);if(a==c)return null;let d=cW(b.dom,c,a).getClientRects();for(let a=0;a<d.length;a++){let b=d[a];if(a==d.length-1||b.top<b.bottom&&b.left<b.right)return b}}return null}(b,c):null}measureVisibleLineHeights(a){let b=[],{from:c,to:d}=a,e=this.view.contentDOM.clientWidth,f=e>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,g=-1,h=this.view.textDirection==c0.LTR,i=0,j=(a,k,l)=>{for(let m=0;m<a.children.length&&!(k>d);m++){let d=a.children[m],n=k+d.length,o=d.dom.getBoundingClientRect(),{height:p}=o;if(l&&!m&&(i+=o.top-l.top),d instanceof dS)n>c&&j(d,k,o);else if(k>=c&&(i>0&&b.push(-i),b.push(p+i),i=0,f)){let a=d.dom.lastChild,b=a?cK(a):[];if(b.length){let a=b[b.length-1],c=h?a.right-o.left:o.right-a.left;c>g&&(g=c,this.minWidth=e,this.minWidthFrom=k,this.minWidthTo=n)}}l&&m==a.children.length-1&&(i+=l.bottom-o.bottom),k=n+d.breakAfter}};return j(this.tile,0,null),b}textDirectionAt(a){let{tile:b}=this.tile.resolveBlock(a,1);return"rtl"==getComputedStyle(b.dom).direction?c0.RTL:c0.LTR}measureTextSize(){let a=this.tile.blockTiles(a=>{if(a.isLine()&&a.children.length&&a.length<=20){let b=0,c;for(let d of a.children){if(!d.isText()||/[^ -~]/.test(d.text))return;let a=cK(d.dom);if(1!=a.length)return;b+=a[0].width,c=a[0].height}if(b)return{lineHeight:a.dom.getBoundingClientRect().height,charWidth:b/a.length,textHeight:c}}});if(a)return a;let b=document.createElement("div"),c,d,e;return b.className="cm-line",b.style.width="99999px",b.style.position="absolute",b.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(b);let a=cK(b.firstChild)[0];c=b.getBoundingClientRect().height,d=a&&a.width?a.width/27:7,e=a&&a.height?a.height:c,b.remove()}),{lineHeight:c,charWidth:d,textHeight:e}}computeBlockGapDeco(){let a=[],b=this.view.viewState;for(let c=0,d=0;;d++){let e=d==b.viewports.length?null:b.viewports[d],f=e?e.from-1:this.view.state.doc.length;if(f>c){let d=(b.lineBlockAt(f).bottom-b.lineBlockAt(c).top)/this.view.scaleY;a.push(cA.replace({widget:new ed(d),block:!0,inclusive:!0,isBlockGap:!0}).range(c,f))}if(!e)break;c=e.to+1}return cA.set(a)}updateDeco(){let a=1,b=this.view.state.facet(dC).map(b=>(this.dynamicDecorationMap[a++]="function"==typeof b)?b(this.view):b),c=!1,d=this.view.state.facet(dE).map((a,b)=>{let d="function"==typeof a;return d&&(c=!0),d?a(this.view):a});for(d.length&&(this.dynamicDecorationMap[a++]=c,b.push(bT.join(d))),this.decorations=[this.editContextFormatting,...b,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];a<this.decorations.length;)this.dynamicDecorationMap[a++]=!1;this.blockWrappers=this.view.state.facet(dD).map(a=>"function"==typeof a?a(this.view):a)}scrollIntoView(a){var b;if(a.isSnapshot){let b=this.view.viewState.lineBlockAt(a.range.head);this.view.scrollDOM.scrollTop=b.top-a.yMargin,this.view.scrollDOM.scrollLeft=a.xMargin;return}for(let b of this.view.state.facet(dq))try{if(b(this.view,a.range,a))return!0}catch(a){du(this.view.state,a,"scroll handler")}let{range:c}=a,d=this.coordsAt(c.head,null!=(b=c.assoc)?b:c.empty?0:c.head>c.anchor?-1:1),e;if(!d)return;!c.empty&&(e=this.coordsAt(c.anchor,c.anchor>c.head?-1:1))&&(d={left:Math.min(d.left,e.left),top:Math.min(d.top,e.top),right:Math.max(d.right,e.right),bottom:Math.max(d.bottom,e.bottom)});let f=dJ(this.view),g={left:d.left-f.left,top:d.top-f.top,right:d.right+f.right,bottom:d.bottom+f.bottom},{offsetWidth:h,offsetHeight:i}=this.view.scrollDOM;if(!function(a,b,c,d,e,f,g,h){let i=a.ownerDocument,j=i.defaultView||window;for(let k=a,l=!1;k&&!l;)if(1==k.nodeType){let a,m=k==i.body,n=1,o=1;if(m)a=function(a){let b=a.visualViewport;return b?{left:0,right:b.width,top:0,bottom:b.height}:{left:0,right:a.innerWidth,top:0,bottom:a.innerHeight}}(j);else{if(/^(fixed|sticky)$/.test(getComputedStyle(k).position)&&(l=!0),k.scrollHeight<=k.clientHeight&&k.scrollWidth<=k.clientWidth){k=k.assignedSlot||k.parentNode;continue}let b=k.getBoundingClientRect();({scaleX:n,scaleY:o}=cR(k,b)),a={left:b.left,right:b.left+k.clientWidth*n,top:b.top,bottom:b.top+k.clientHeight*o}}let p=0,q=0;if("nearest"==e)b.top<a.top+g?(q=b.top-(a.top+g),c>0&&b.bottom>a.bottom+q&&(q=b.bottom-a.bottom+g)):b.bottom>a.bottom-g&&(q=b.bottom-a.bottom+g,c<0&&b.top-q<a.top&&(q=b.top-(a.top+g)));else{let d=b.bottom-b.top,f=a.bottom-a.top;q=("center"==e&&d<=f?b.top+d/2-f/2:"start"==e||"center"==e&&c<0?b.top-g:b.bottom-f+g)-a.top}if("nearest"==d?b.left<a.left+f?(p=b.left-(a.left+f),c>0&&b.right>a.right+p&&(p=b.right-a.right+f)):b.right>a.right-f&&(p=b.right-a.right+f,c<0&&b.left<a.left+p&&(p=b.left-(a.left+f))):p=("center"==d?b.left+(b.right-b.left)/2-(a.right-a.left)/2:"start"==d==h?b.left-f:b.right-(a.right-a.left)+f)-a.left,p||q)if(m)j.scrollBy(p,q);else{let a=0,c=0;if(q){let a=k.scrollTop;k.scrollTop+=q/o,c=(k.scrollTop-a)*o}if(p){let b=k.scrollLeft;k.scrollLeft+=p/n,a=(k.scrollLeft-b)*n}b={left:b.left-a,top:b.top-c,right:b.right-a,bottom:b.bottom-c},a&&1>Math.abs(a-p)&&(d="nearest"),c&&1>Math.abs(c-q)&&(e="nearest")}if(m)break;(b.top<a.top||b.bottom>a.bottom||b.left<a.left||b.right>a.right)&&(b={left:Math.max(b.left,a.left),right:Math.min(b.right,a.right),top:Math.max(b.top,a.top),bottom:Math.min(b.bottom,a.bottom)}),k=k.assignedSlot||k.parentNode}else if(11==k.nodeType)k=k.host;else break}(this.view.scrollDOM,g,c.head<c.anchor?-1:1,a.x,a.y,Math.max(Math.min(a.xMargin,h),-h),Math.max(Math.min(a.yMargin,i),-i),this.view.textDirection==c0.LTR),window.visualViewport&&window.innerHeight-window.visualViewport.height>1&&(d.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||d.bottom<window.pageYOffset+window.visualViewport.offsetTop)){let a=this.view.docView.lineAt(c.head,1);a&&a.dom.scrollIntoView({block:"nearest"})}}lineHasWidget(a){let b=a=>a.isWidget()||a.children.some(b);return b(this.tile.resolveBlock(a,1).tile)}destroy(){d9(this.tile)}}function d9(a,b){let c=null==b?void 0:b.get(a);if(1!=c)for(let d of(null==c&&a.destroy(),a.children))d9(d,b)}function ea(a,b){let c=a.observer.selectionRange;if(!c.focusNode)return null;let d=cZ(c.focusNode,c.focusOffset),e=c$(c.focusNode,c.focusOffset),f=d||e;if(e&&d&&e.node!=d.node){let b=dO.get(e.node);if(!b||b.isText()&&b.text!=e.node.nodeValue)f=e;else if(a.docView.lastCompositionAfterCursor){let a=dO.get(d.node);!a||a.isText()&&a.text!=d.node.nodeValue||(f=e)}}if(a.docView.lastCompositionAfterCursor=f!=d,!f)return null;let g=b-f.offset;return{from:g,to:g+f.node.nodeValue.length,node:f.node}}let eb=class{constructor(){this.changes=[]}compareRange(a,b){cF(a,b,this.changes)}comparePoint(a,b){cF(a,b,this.changes)}boundChange(a){cF(a,a,this.changes)}};class ec{constructor(){this.changes=[]}compareRange(a,b){cF(a,b,this.changes)}comparePoint(){}boundChange(a){cF(a,a,this.changes)}}class ed extends cy{constructor(a){super(),this.height=a}toDOM(){let a=document.createElement("div");return a.className="cm-gap",this.updateDOM(a),a}eq(a){return a.height==this.height}updateDOM(a){return a.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function ee(a,b,c){let d=a.lineBlockAt(b);if(Array.isArray(d.type)){let a;for(let e of d.type){if(e.from>b)break;if(!(e.to<b)){if(e.from<b&&e.to>b)return e;(!a||e.type==cz.Text&&(a.type!=e.type||(c<0?e.from<b:e.to>b)))&&(a=e)}}return a||d}return d}function ef(a,b,c,d){let e=a.state.doc.lineAt(b.head),f=a.bidiSpans(e),g=a.textDirectionAt(e.from);for(let h=b,i=null;;){let b=function(a,b,c,d,e){var f;let g=d.head-a.from,h=da.find(b,g,null!=(f=d.bidiLevel)?f:-1,d.assoc),i=b[h],j=i.side(e,c);if(g==j){let a=h+=e?1:-1;if(a<0||a>=b.length)return null;g=(i=b[h=a]).side(!e,c),j=i.side(e,c)}let k=aZ(a.text,g,i.forward(e,c));(k<i.from||k>i.to)&&(k=j),dd=a.text.slice(Math.min(g,k),Math.max(g,k));let l=h==(e?b.length-1:0)?null:b[h+(e?1:-1)];return l&&k==j&&l.level+ +!e<i.level?bc.cursor(l.side(!e,c)+a.from,l.forward(e,c)?1:-1,l.level):bc.cursor(k+a.from,i.forward(e,c)?-1:1,i.level)}(e,f,g,h,c),j=dd;if(!b){if(e.number==(c?a.state.doc.lines:1))return h;j="\n",e=a.state.doc.line(e.number+(c?1:-1)),f=a.bidiSpans(e),b=a.visualLineSide(e,!c)}if(i){if(!i(j))return h}else{if(!d)return b;i=d(j)}h=b}}function eg(a,b,c){for(;;){let d=0;for(let e of a)e.between(b-1,b+1,(a,e,f)=>{if(b>a&&b<e){let f=d||c||(b-a<e-b?-1:1);b=f<0?a:e,d=f}});if(!d)return b}}function eh(a,b){let c=null;for(let d=0;d<b.ranges.length;d++){let e=b.ranges[d],f=null;if(e.empty){let b=eg(a,e.from,0);b!=e.from&&(f=bc.cursor(b,-1))}else{let b=eg(a,e.from,-1),c=eg(a,e.to,1);(b!=e.from||c!=e.to)&&(f=bc.range(e.from==e.anchor?b:c,e.from==e.head?b:c))}f&&(c||(c=b.ranges.slice()),c[d]=f)}return c?bc.create(c,b.mainIndex):b}function ei(a,b,c){let d=eg(a.state.facet(dF).map(b=>b(a)),c.from,b.head>c.from?-1:1);return d==c.from?c:bc.cursor(d,d<c.from?1:-1)}class ej{constructor(a,b){this.pos=a,this.assoc=b}}function ek(a,b,c,d){let e=a.contentDOM.getBoundingClientRect(),f=e.top+a.viewState.paddingTop,{x:g,y:h}=b,i=h-f,j;for(;;){if(i<0)return new ej(0,1);if(i>a.viewState.docHeight)return new ej(a.state.doc.length,-1);if(j=a.elementAtHeight(i),null==d)break;if(j.type==cz.Text){if(d<0?j.to<a.viewport.from:j.from>a.viewport.to)break;let b=a.docView.coordsAt(d<0?j.from:j.to,d>0?-1:1);if(b&&(d<0?b.top<=i+f:b.bottom>=i+f))break}let b=a.viewState.heightOracle.textHeight/2;i=d>0?j.bottom+b:j.top-b}if(a.viewport.from>=j.to||a.viewport.to<=j.from){if(c)return null;if(j.type==cz.Text){let b=function(a,b,c,d,e){let f=Math.round((d-b.left)*a.defaultCharacterWidth);if(a.lineWrapping&&c.height>1.5*a.defaultLineHeight){let b=a.viewState.heightOracle.textHeight;f+=Math.floor((e-c.top-(a.defaultLineHeight-b)*.5)/b)*a.viewState.heightOracle.lineLength}let g=a.state.sliceDoc(c.from,c.to);return c.from+b4(g,f,a.state.tabSize)}(a,e,j,g,h);return new ej(b,b==j.from?1:-1)}}if(j.type!=cz.Text)return i<(j.top+j.bottom)/2?new ej(j.from,1):new ej(j.to,-1);let k=a.docView.lineAt(j.from,2);return k&&k.length==j.length||(k=a.docView.lineAt(j.from,-2)),new el(a,g,h,a.textDirectionAt(j.from)).scanTile(k,j.from)}class el{constructor(a,b,c,d){this.view=a,this.x=b,this.y=c,this.baseDir=d,this.line=null,this.spans=null}bidiSpansAt(a){return(!this.line||this.line.from>a||this.line.to<a)&&(this.line=this.view.state.doc.lineAt(a),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(a,b){let{line:c,spans:d}=this.bidiSpansAt(a);return d[da.find(d,a-c.from,-1,b)].level==this.baseDir}dirAt(a,b){let{line:c,spans:d}=this.bidiSpansAt(a);return d[da.find(d,a-c.from,-1,b)].dir}bidiIn(a,b){let{spans:c,line:d}=this.bidiSpansAt(a);return c.length>1||c.length&&(c[0].level!=this.baseDir||c[0].to+d.from<b)}scan(a,b){let c,d,e=0,f=a.length-1,g=new Set,h=this.bidiIn(a[0],a[f]),i=-1,j=1e9,k;for(;e<f;){let l=f-e,m=e+f>>1;b:if(g.has(m)){let a=e+Math.floor(Math.random()*l);for(let b=0;b<l;b++){if(!g.has(a)){m=a;break b}++a==f&&(a=e)}break}g.add(m);let n=b(m);if(n)for(let b=0;b<n.length;b++){let g=n[b],l=0;if(0!=g.width||!(n.length>1)){if(g.bottom<this.y)(!c||c.bottom<g.bottom)&&(c=g),l=1;else if(g.top>this.y)(!d||d.top>g.top)&&(d=g),l=-1;else{let a=g.left>this.x?this.x-g.left:g.right<this.x?this.x-g.right:0,b=Math.abs(a);b<j&&(i=m,j=b,k=g),a&&(l=a<0==(this.baseDir==c0.LTR)?-1:1)}-1==l&&(!h||this.baseDirAt(a[m],1))?f=m:1==l&&(!h||this.baseDirAt(a[m+1],-1))&&(e=m+1)}}}if(!k){let e=c&&(!d||this.y-c.bottom<d.top-this.y)?c:d;return this.y=(e.top+e.bottom)/2,this.scan(a,b)}if(j){if(c&&c.bottom>k.top)return this.y=c.bottom-1,this.scan(a,b);if(d&&d.top<k.bottom)return this.y=d.top+1,this.scan(a,b)}let l=(h?this.dirAt(a[i],1):this.baseDir)==c0.LTR;return{i:i,after:this.x>(k.left+k.right)/2==l}}scanText(a,b){let c=[];for(let d=0;d<a.length;d=aZ(a.text,d))c.push(b+d);c.push(b+a.length);let d=this.scan(c,d=>{let e=c[d]-b,f=c[d+1]-b;return cW(a.dom,e,f).getClientRects()});return d.after?new ej(c[d.i+1],-1):new ej(c[d.i],1)}scanTile(a,b){if(!a.length)return new ej(b,1);if(1==a.children.length){let c=a.children[0];if(c.isText())return this.scanText(c,b);if(c.isComposite())return this.scanTile(c,b)}let c=[b];for(let d=0,e=b;d<a.children.length;d++)c.push(e+=a.children[d].length);let d=this.scan(c,b=>{let c=a.children[b];return 48&c.flags?null:(1==c.dom.nodeType?c.dom:cW(c.dom,0,c.length)).getClientRects()}),e=a.children[d.i],f=c[d.i];return e.isText()?this.scanText(e,f):e.isComposite()?this.scanTile(e,f):d.after?new ej(c[d.i+1],-1):new ej(f,1)}}class em{constructor(a,b){this.points=a,this.view=b,this.text="",this.lineSeparator=b.state.facet(bM.lineSeparator)}append(a){this.text+=a}lineBreak(){this.text+=""}readRange(a,b){if(!a)return this;let c=a.parentNode;for(let d=a;;){this.findPointBefore(c,d);let a=this.text.length;this.readNode(d);let e=dO.get(d),f=d.nextSibling;if(f==b){(null==e?void 0:e.breakAfter)&&!f&&c!=this.view.contentDOM&&this.lineBreak();break}let g=dO.get(f);(e&&g?e.breakAfter:(e?e.breakAfter:cN(d))||cN(f)&&("BR"!=d.nodeName||(null==e?void 0:e.isWidget()))&&this.text.length>a)&&!function(a,b){let c;for(;a!=b&&a;a=a.nextSibling){let b=dO.get(a);if(!(null==b?void 0:b.isWidget()))return!1;b&&(c||(c=[])).push(b)}if(c)for(let a of c){let b=a.overrideDOMText;if(null==b?void 0:b.length)return!1}return!0}(f,b)&&this.lineBreak(),d=f}return this.findPointBefore(c,b),this}readTextNode(a){let b=a.nodeValue;for(let c of this.points)c.node==a&&(c.pos=this.text.length+Math.min(c.offset,b.length));for(let c=0,d=this.lineSeparator?null:/\r\n?|\n/g;;){let e=-1,f=1,g;if(this.lineSeparator?(e=b.indexOf(this.lineSeparator,c),f=this.lineSeparator.length):(g=d.exec(b))&&(e=g.index,f=g[0].length),this.append(b.slice(c,e<0?b.length:e)),e<0)break;if(this.lineBreak(),f>1)for(let b of this.points)b.node==a&&b.pos>this.text.length&&(b.pos-=f-1);c=e+f}}readNode(a){let b=dO.get(a),c=b&&b.overrideDOMText;if(null!=c){this.findPointInside(a,c.length);for(let a=c.iter();!a.next().done;)a.lineBreak?this.lineBreak():this.append(a.value)}else 3==a.nodeType?this.readTextNode(a):"BR"==a.nodeName?a.nextSibling&&this.lineBreak():1==a.nodeType&&this.readRange(a.firstChild,null)}findPointBefore(a,b){for(let c of this.points)c.node==a&&a.childNodes[c.offset]==b&&(c.pos=this.text.length)}findPointInside(a,b){for(let c of this.points)(3==a.nodeType?c.node==a:a.contains(c.node))&&(c.pos=this.text.length+(!function(a,b,c){for(;;){if(!b||c<cP(b))return!1;if(b==a)return!0;c=cM(b)+1,b=b.parentNode}}(a,c.node,c.offset)?0:b))}}class en{constructor(a,b){this.node=a,this.offset=b,this.pos=-1}}class eo{constructor(a,b,c,d){this.typeOver=d,this.bounds=null,this.text="",this.domChanged=b>-1;let{impreciseHead:e,impreciseAnchor:f}=a.docView,g=a.state.selection;if(a.state.readOnly&&b>-1)this.newSel=null;else if(b>-1&&(this.bounds=function a(b,c,d,e){if(b.isComposite()){let f=-1,g=-1,h=-1,i=-1;for(let j=0,k=e,l=e;j<b.children.length;j++){let e=b.children[j],m=k+e.length;if(k<c&&m>d)return a(e,c,d,k);if(m>=c&&-1==f&&(f=j,g=k),k>d&&e.dom.parentNode==b.dom){h=j,i=l;break}l=m,k=m+e.breakAfter}return{from:g,to:i<0?e+b.length:i,startDOM:(f?b.children[f-1].dom.nextSibling:null)||b.dom.firstChild,endDOM:h<b.children.length&&h>=0?b.children[h].dom:null}}return b.isText()?{from:e,to:e+b.length,startDOM:b.dom,endDOM:b.dom.nextSibling}:null}(a.docView.tile,b,c,0))){let b=e||f?[]:function(a){let b=[];if(a.root.activeElement!=a.contentDOM)return b;let{anchorNode:c,anchorOffset:d,focusNode:e,focusOffset:f}=a.observer.selectionRange;return c&&(b.push(new en(c,d)),(e!=c||f!=d)&&b.push(new en(e,f))),b}(a),c=new em(b,a);c.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=c.text,this.newSel=function(a,b){if(0==a.length)return null;let c=a[0].pos,d=2==a.length?a[1].pos:c;return c>-1&&d>-1?bc.single(c+b,d+b):null}(b,this.bounds.from)}else{let b=a.observer.selectionRange,c=e&&e.node==b.focusNode&&e.offset==b.focusOffset||!cI(a.contentDOM,b.focusNode)?g.main.head:a.docView.posFromDOM(b.focusNode,b.focusOffset),d=f&&f.node==b.anchorNode&&f.offset==b.anchorOffset||!cI(a.contentDOM,b.anchorNode)?g.main.anchor:a.docView.posFromDOM(b.anchorNode,b.anchorOffset),h=a.viewport;if((ct.ios||ct.chrome)&&g.main.empty&&c!=d&&(h.from>0||h.to<a.state.doc.length)){let b=Math.min(c,d),e=Math.max(c,d),f=h.from-b,g=h.to-e;(0==f||1==f||0==b)&&(0==g||-1==g||e==a.state.doc.length)&&(c=0,d=a.state.doc.length)}if(a.inputState.composing>-1&&g.ranges.length>1)this.newSel=g.replaceRange(bc.range(d,c));else if(a.lineWrapping&&d==c&&!(g.main.empty&&g.main.head==c)&&a.inputState.lastTouchTime>Date.now()-100){let b=a.coordsAtPos(c,-1),d=0;b&&(d=a.inputState.lastTouchY<=b.bottom?-1:1),this.newSel=bc.create([bc.cursor(c,d)])}else this.newSel=bc.single(d,c)}}}function ep(a,b){let c,{newSel:d}=b,{state:e}=a,f=e.selection.main,g=a.inputState.lastKeyTime>Date.now()-100?a.inputState.lastKeyCode:-1;if(b.bounds){let{from:a,to:d}=b.bounds,h=f.from,i=null;(8===g||ct.android&&b.text.length<d-a)&&(h=f.to,i="end");let j=e.doc.sliceString(a,d,""),k,l;!f.empty&&f.from>=a&&f.to<=d&&(b.typeOver||j!=b.text)&&j.slice(0,f.from-a)==b.text.slice(0,f.from-a)&&j.slice(f.to-a)==b.text.slice(k=b.text.length-(j.length-(f.to-a)))?c={from:f.from,to:f.to,insert:aQ.of(b.text.slice(f.from-a,k).split(""))}:(l=er(j,b.text,h-a,i))&&(ct.chrome&&13==g&&l.toB==l.from+2&&""==b.text.slice(l.from,l.toB)&&l.toB--,c={from:a+l.from,to:a+l.toA,insert:aQ.of(b.text.slice(l.from,l.toB).split(""))})}else d&&(!a.hasFocus&&e.facet(dv)||es(d,f))&&(d=null);if(!c&&!d)return!1;if((ct.mac||ct.android)&&c&&c.from==c.to&&c.from==f.head-1&&/^\. ?$/.test(c.insert.toString())&&"off"==a.contentDOM.getAttribute("autocorrect")?(d&&2==c.insert.length&&(d=bc.single(d.main.anchor-1,d.main.head-1)),c={from:c.from,to:c.to,insert:aQ.of([c.insert.toString().replace("."," ")])}):e.doc.lineAt(f.from).to<f.to&&a.docView.lineHasWidget(f.to)&&a.inputState.insertingTextAt>Date.now()-50?c={from:f.from,to:f.to,insert:e.toText(a.inputState.insertingText)}:ct.chrome&&c&&c.from==c.to&&c.from==f.head&&"\n "==c.insert.toString()&&a.lineWrapping&&(d&&(d=bc.single(d.main.anchor-1,d.main.head-1)),c={from:f.from,to:f.to,insert:aQ.of([" "])}),c)return eq(a,c,d,g);if(!d||es(d,f))return!1;{let b=!1,c="select";return a.inputState.lastSelectionTime>Date.now()-50&&("select"==a.inputState.lastSelectionOrigin&&(b=!0),"select.pointer"==(c=a.inputState.lastSelectionOrigin)&&(d=eh(e.facet(dF).map(b=>b(a)),d))),a.dispatch({selection:d,scrollIntoView:b,userEvent:c}),!0}}function eq(a,b,c,d=-1){let e;if(ct.ios&&a.inputState.flushIOSKey(b))return!0;let f=a.state.selection.main;if(ct.android&&(b.to==f.to&&(b.from==f.from||b.from==f.from-1&&" "==a.state.sliceDoc(b.from,f.from))&&1==b.insert.length&&2==b.insert.lines&&cX(a.contentDOM,"Enter",13)||(b.from==f.from-1&&b.to==f.to&&0==b.insert.length||8==d&&b.insert.length<b.to-b.from&&b.to>f.head)&&cX(a.contentDOM,"Backspace",8)||b.from==f.from&&b.to==f.to+1&&0==b.insert.length&&cX(a.contentDOM,"Delete",46)))return!0;let g=b.insert.toString();a.inputState.composing>=0&&a.inputState.composing++;let h=()=>e||(e=function(a,b,c){let d,e=a.state,f=e.selection.main,g=-1;if(b.from==b.to&&b.from<f.from||b.from>f.to){let c=b.from<f.from?-1:1,d=c<0?f.from:f.to,h=eg(e.facet(dF).map(b=>b(a)),d,c);b.from==h&&(g=h)}if(g>-1)d={changes:b,selection:bc.cursor(b.from+b.insert.length,-1)};else if(b.from>=f.from&&b.to<=f.to&&b.to-b.from>=(f.to-f.from)/3&&(!c||c.main.empty&&c.main.from==b.from+b.insert.length)&&a.inputState.composing<0){let c=f.from<b.from?e.sliceDoc(f.from,b.from):"",g=f.to>b.to?e.sliceDoc(b.to,f.to):"";d=e.replaceSelection(a.state.toText(c+b.insert.sliceString(0,void 0,a.state.lineBreak)+g))}else{let g=e.changes(b),h=c&&c.main.to<=g.newLength?c.main:void 0;if(e.selection.ranges.length>1&&(a.inputState.composing>=0||a.inputState.compositionPendingChange)&&b.to<=f.to+10&&b.to>=f.to-10){let i=a.state.sliceDoc(b.from,b.to),j,k=c&&ea(a,c.main.head);if(k){let a=b.insert.length-(b.to-b.from);j={from:k.from,to:k.to-a}}else j=a.state.doc.lineAt(f.head);let l=f.to-b.to;d=e.changeByRange(c=>{if(c.from==f.from&&c.to==f.to)return{changes:g,range:h||c.map(g)};let d=c.to-l,k=d-i.length;if(a.state.sliceDoc(k,d)!=i||d>=j.from&&k<=j.to)return{range:c};let m=e.changes({from:k,to:d,insert:b.insert}),n=c.to-f.to;return{changes:m,range:h?bc.range(Math.max(0,h.anchor+n),Math.max(0,h.head+n)):c.map(m)}})}else d={changes:g,selection:h&&e.selection.replaceRange(h)}}let h="input.type";return(a.composing||a.inputState.compositionPendingChange&&a.inputState.compositionEndedAt>Date.now()-50)&&(a.inputState.compositionPendingChange=!1,h+=".compose",a.inputState.compositionFirstChange&&(h+=".start",a.inputState.compositionFirstChange=!1)),e.update(d,{userEvent:h,scrollIntoView:!0})}(a,b,c));return a.state.facet(dj).some(c=>c(a,b.from,b.to,g,h))||a.dispatch(h()),!0}function er(a,b,c,d){let e=Math.min(a.length,b.length),f=0;for(;f<e&&a.charCodeAt(f)==b.charCodeAt(f);)f++;if(f==e&&a.length==b.length)return null;let g=a.length,h=b.length;for(;g>0&&h>0&&a.charCodeAt(g-1)==b.charCodeAt(h-1);)g--,h--;if("end"==d){let a=Math.max(0,f-Math.min(g,h));c-=g+a-f}if(g<f&&a.length<b.length){let a=c<=f&&c>=g?f-c:0;f-=a,h=f+(h-g),g=f}else if(h<f){let a=c<=f&&c>=h?f-c:0;f-=a,g=f+(g-h),h=f}return{from:f,toA:g,toB:h}}function es(a,b){return b.head==a.main.head&&b.anchor==a.main.anchor}class et{setSelectionOrigin(a){this.lastSelectionOrigin=a,this.lastSelectionTime=Date.now()}constructor(a){this.view=a,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=a.hasFocus,ct.safari&&a.contentDOM.addEventListener("input",()=>null),ct.gecko&&function(a){eQ.has(a)||(eQ.add(a),a.addEventListener("copy",()=>{}),a.addEventListener("cut",()=>{}))}(a.contentDOM.ownerDocument)}handleEvent(a){!function(a,b){if(!b.bubbles)return!0;if(b.defaultPrevented)return!1;for(let c=b.target,d;c!=a.contentDOM;c=c.parentNode)if(!c||11==c.nodeType||(d=dO.get(c))&&d.isWidget()&&!d.isHidden&&d.widget.ignoreEvent(b))return!1;return!0}(this.view,a)||this.ignoreDuringComposition(a)||"keydown"==a.type&&this.keydown(a)||(0!=this.view.updateState?Promise.resolve().then(()=>this.runHandlers(a.type,a)):this.runHandlers(a.type,a))}runHandlers(a,b){let c=this.handlers[a];if(c){for(let a of c.observers)a(this.view,b);for(let a of c.handlers){if(b.defaultPrevented)break;if(a(this.view,b)){b.preventDefault();break}}}}ensureHandlers(a){let b=function(a){let b=Object.create(null);function c(a){return b[a]||(b[a]={observers:[],handlers:[]})}for(let b of a){let a=b.spec,d=a&&a.plugin.domEventHandlers,e=a&&a.plugin.domEventObservers;if(d)for(let a in d){let e=d[a];e&&c(a).handlers.push(eu(b.value,e))}if(e)for(let a in e){let d=e[a];d&&c(a).observers.push(eu(b.value,d))}}for(let a in eA)c(a).handlers.push(eA[a]);for(let a in eB)c(a).observers.push(eB[a]);return b}(a),c=this.handlers,d=this.view.contentDOM;for(let a in b)if("scroll"!=a){let e=!b[a].handlers.length,f=c[a];f&&!f.handlers.length!=e&&(d.removeEventListener(a,this.handleEvent),f=null),f||d.addEventListener(a,this.handleEvent,{passive:e})}for(let a in c)"scroll"==a||b[a]||d.removeEventListener(a,this.handleEvent);this.handlers=b}keydown(a){let b;return this.lastKeyCode=a.keyCode,this.lastKeyTime=Date.now(),!!(9==a.keyCode&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))||((this.tabFocusMode>0&&27!=a.keyCode&&0>ex.indexOf(a.keyCode)&&(this.tabFocusMode=-1),ct.android&&ct.chrome&&!a.synthetic&&(13==a.keyCode||8==a.keyCode))?(this.view.observer.delayAndroidKey(a.key,a.keyCode),!0):ct.ios&&!a.synthetic&&!a.altKey&&!a.metaKey&&!a.shiftKey&&((b=ev.find(b=>b.keyCode==a.keyCode))&&!a.ctrlKey||ew.indexOf(a.key)>-1&&a.ctrlKey)?(this.pendingIOSKey=b||a,setTimeout(()=>this.flushIOSKey(),250),!0):(229!=a.keyCode&&this.view.observer.forceFlush(),!1))}flushIOSKey(a){let b=this.pendingIOSKey;return!(!b||"Enter"==b.key&&a&&a.from<a.to&&/^\S+$/.test(a.insert.toString()))&&(this.pendingIOSKey=void 0,cX(this.view.contentDOM,b.key,b.keyCode,b instanceof KeyboardEvent?b:void 0))}ignoreDuringComposition(a){return!!/^key/.test(a.type)&&!a.synthetic&&(this.composing>0||!!(ct.safari&&!ct.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}startMouseSelection(a){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=a}update(a){this.view.observer.update(a),this.mouseSelection&&this.mouseSelection.update(a),this.draggedContent&&a.docChanged&&(this.draggedContent=this.draggedContent.map(a.changes)),a.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function eu(a,b){return(c,d)=>{try{return b.call(a,d,c)}catch(a){du(c.state,a)}}}let ev=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],ew="dthko",ex=[16,17,18,20,91,92,224,225];function ey(a){return .7*Math.max(0,a)+8}class ez{constructor(a,b,c,d){this.view=a,this.startEvent=b,this.style=c,this.mustSelect=d,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=b,this.scrollParents=cS(a.contentDOM),this.atoms=a.state.facet(dF).map(b=>b(a));let e=a.contentDOM.ownerDocument;e.addEventListener("mousemove",this.move=this.move.bind(this)),e.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=b.shiftKey,this.multiple=a.state.facet(bM.allowMultipleSelections)&&function(a,b){let c=a.state.facet(de);return c.length?c[0](b):ct.mac?b.metaKey:b.ctrlKey}(a,b),this.dragging=!!function(a,b){let{main:c}=a.state.selection;if(c.empty)return!1;let d=cH(a.root);if(!d||0==d.rangeCount)return!0;let e=d.getRangeAt(0).getClientRects();for(let a=0;a<e.length;a++){let c=e[a];if(c.left<=b.clientX&&c.right>=b.clientX&&c.top<=b.clientY&&c.bottom>=b.clientY)return!0}return!1}(a,b)&&1==eK(b)&&null}start(a){!1===this.dragging&&this.select(a)}move(a){var b;if(0==a.buttons)return this.destroy();if(this.dragging||null==this.dragging&&10>(b=this.startEvent,Math.max(Math.abs(b.clientX-a.clientX),Math.abs(b.clientY-a.clientY))))return;this.select(this.lastEvent=a);let c=0,d=0,e=0,f=0,g=this.view.win.innerWidth,h=this.view.win.innerHeight;this.scrollParents.x&&({left:e,right:g}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:f,bottom:h}=this.scrollParents.y.getBoundingClientRect());let i=dJ(this.view);a.clientX-i.left<=e+6?c=-ey(e-a.clientX):a.clientX+i.right>=g-6&&(c=ey(a.clientX-g)),a.clientY-i.top<=f+6?d=-ey(f-a.clientY):a.clientY+i.bottom>=h-6&&(d=ey(a.clientY-h)),this.setScrollSpeed(c,d)}up(a){null==this.dragging&&this.select(this.lastEvent),this.dragging||a.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let a=this.view.contentDOM.ownerDocument;a.removeEventListener("mousemove",this.move),a.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(a,b){this.scrollSpeed={x:a,y:b},a||b?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:a,y:b}=this.scrollSpeed;a&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=a,a=0),b&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=b,b=0),(a||b)&&this.view.win.scrollBy(a,b),!1===this.dragging&&this.select(this.lastEvent)}select(a){let{view:b}=this,c=eh(this.atoms,this.style.get(a,this.extend,this.multiple));(this.mustSelect||!c.eq(b.state.selection,!1===this.dragging))&&this.view.dispatch({selection:c,userEvent:"select.pointer"}),this.mustSelect=!1}update(a){a.transactions.some(a=>a.isUserEvent("input.type"))?this.destroy():this.style.update(a)&&setTimeout(()=>this.select(this.lastEvent),20)}}let eA=Object.create(null),eB=Object.create(null),eC=ct.ie&&ct.ie_version<15||ct.ios&&ct.webkit_version<604;function eD(a,b,c){for(let d of a.facet(b))c=d(c,a);return c}function eE(a,b){b=eD(a.state,dl,b);let{state:c}=a,d,e=1,f=c.toText(b),g=f.lines==c.selection.ranges.length;if(null!=eM&&c.selection.ranges.every(a=>a.empty)&&eM==f.toString()){let a=-1;d=c.changeByRange(d=>{let h=c.doc.lineAt(d.from);if(h.from==a)return{range:d};a=h.from;let i=c.toText((g?f.line(e++).text:b)+c.lineBreak);return{changes:{from:h.from,insert:i},range:bc.cursor(d.from+i.length)}})}else d=g?c.changeByRange(a=>{let b=f.line(e++);return{changes:{from:a.from,to:a.to,insert:b.text},range:bc.cursor(a.from+b.length)}}):c.replaceSelection(f);a.dispatch(d,{userEvent:"input.paste",scrollIntoView:!0})}function eF(a,b,c,d){if(1==d)return bc.cursor(b,c);{if(2==d)return function(a,b,c=1){let d=a.charCategorizer(b),e=a.doc.lineAt(b),f=b-e.from;if(0==e.length)return bc.cursor(b);0==f?c=1:f==e.length&&(c=-1);let g=f,h=f;c<0?g=aZ(e.text,f,!1):h=aZ(e.text,f);let i=d(e.text.slice(g,h));for(;g>0;){let a=aZ(e.text,g,!1);if(d(e.text.slice(a,g))!=i)break;g=a}for(;h<e.length;){let a=aZ(e.text,h);if(d(e.text.slice(h,a))!=i)break;h=a}return bc.range(g+e.from,h+e.from)}(a.state,b,c);let e=a.docView.lineAt(b,c),f=a.state.doc.lineAt(e?e.posAtEnd:b),g=e?e.posAtStart:f.from,h=e?e.posAtEnd:f.to;return h<a.state.doc.length&&h==f.to&&h++,bc.range(g,h)}}eB.scroll=a=>{a.inputState.lastScrollTop=a.scrollDOM.scrollTop,a.inputState.lastScrollLeft=a.scrollDOM.scrollLeft},eB.wheel=eB.mousewheel=a=>{a.inputState.lastWheelEvent=Date.now()},eA.keydown=(a,b)=>(a.inputState.setSelectionOrigin("select"),27==b.keyCode&&0!=a.inputState.tabFocusMode&&(a.inputState.tabFocusMode=Date.now()+2e3),!1),eB.touchstart=(a,b)=>{let c=a.inputState,d=b.targetTouches[0];c.lastTouchTime=Date.now(),d&&(c.lastTouchX=d.clientX,c.lastTouchY=d.clientY),c.setSelectionOrigin("select.pointer")},eB.touchmove=a=>{a.inputState.setSelectionOrigin("select.pointer")},eA.mousedown=(a,b)=>{var c,d;let e,f,g;if(a.observer.flush(),a.inputState.lastTouchTime>Date.now()-2e3)return!1;let h=null;for(let c of a.state.facet(dg))if(h=c(a,b))break;if(h||0!=b.button||(c=a,d=b,e=c.posAndSideAtCoords({x:d.clientX,y:d.clientY},!1),f=eK(d),g=c.state.selection,h={update(a){a.docChanged&&(e.pos=a.changes.mapPos(e.pos),g=g.map(a.changes))},get(a,b,d){let h=c.posAndSideAtCoords({x:a.clientX,y:a.clientY},!1),i,j=eF(c,h.pos,h.assoc,f);if(e.pos!=h.pos&&!b){let a=eF(c,e.pos,e.assoc,f),b=Math.min(a.from,j.from),d=Math.max(a.to,j.to);j=b<j.from?bc.range(b,d,j.assoc):bc.range(d,b,j.assoc)}return b?g.replaceRange(g.main.extend(j.from,j.to,j.assoc)):d&&1==f&&g.ranges.length>1&&(i=function(a,b){for(let c=0;c<a.ranges.length;c++){let{from:d,to:e}=a.ranges[c];if(d<=b&&e>=b)return bc.create(a.ranges.slice(0,c).concat(a.ranges.slice(c+1)),a.mainIndex==c?0:a.mainIndex-(a.mainIndex>c))}return null}(g,h.pos))?i:d?g.addRange(j):bc.create([j])}}),h){let c=!a.hasFocus;a.inputState.startMouseSelection(new ez(a,b,h,c)),c&&a.observer.ignore(()=>{cV(a.contentDOM);let b=a.root.activeElement;b&&!b.contains(a.contentDOM)&&b.blur()});let d=a.inputState.mouseSelection;if(d)return d.start(b),!1===d.dragging}else a.inputState.setSelectionOrigin("select.pointer");return!1};let eG=ct.ie&&ct.ie_version<=11,eH=null,eI=0,eJ=0;function eK(a){if(!eG)return a.detail;let b=eH,c=eJ;return eH=a,eJ=Date.now(),eI=!b||c>Date.now()-400&&2>Math.abs(b.clientX-a.clientX)&&2>Math.abs(b.clientY-a.clientY)?(eI+1)%3:1}function eL(a,b,c,d){let e;if(!(c=eD(a.state,dl,c)))return;let f=a.posAtCoords({x:b.clientX,y:b.clientY},!1),{draggedContent:g}=a.inputState,h=d&&g&&((e=a.state.facet(df)).length?e[0](b):ct.mac?!b.altKey:!b.ctrlKey)?{from:g.from,to:g.to}:null,i={from:f,insert:c},j=a.state.changes(h?[h,i]:i);a.focus(),a.dispatch({changes:j,selection:{anchor:j.mapPos(f,-1),head:j.mapPos(f,1)},userEvent:h?"move.drop":"input.drop"}),a.inputState.draggedContent=null}eA.dragstart=(a,b)=>{let{selection:{main:c}}=a.state;if(b.target.draggable){let d=a.docView.tile.nearest(b.target);if(d&&d.isWidget()){let a=d.posAtStart,b=a+d.length;(a>=c.to||b<=c.from)&&(c=bc.range(a,b))}}let{inputState:d}=a;return d.mouseSelection&&(d.mouseSelection.dragging=!0),d.draggedContent=c,b.dataTransfer&&(b.dataTransfer.setData("Text",eD(a.state,dm,a.state.sliceDoc(c.from,c.to))),b.dataTransfer.effectAllowed="copyMove"),!1},eA.dragend=a=>(a.inputState.draggedContent=null,!1),eA.drop=(a,b)=>{if(!b.dataTransfer)return!1;if(a.state.readOnly)return!0;let c=b.dataTransfer.files;if(c&&c.length){let d=Array(c.length),e=0,f=()=>{++e==c.length&&eL(a,b,d.filter(a=>null!=a).join(a.state.lineBreak),!1)};for(let a=0;a<c.length;a++){let b=new FileReader;b.onerror=f,b.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(b.result)||(d[a]=b.result),f()},b.readAsText(c[a])}return!0}{let c=b.dataTransfer.getData("Text");if(c)return eL(a,b,c,!0),!0}return!1},eA.paste=(a,b)=>{if(a.state.readOnly)return!0;a.observer.flush();let c=eC?null:b.clipboardData;return c?(eE(a,c.getData("text/plain")||c.getData("text/uri-list")),!0):(!function(a){let b=a.dom.parentNode;if(!b)return;let c=b.appendChild(document.createElement("textarea"));c.style.cssText="position: fixed; left: -10000px; top: 10px",c.focus(),setTimeout(()=>{a.focus(),c.remove(),eE(a,c.value)},50)}(a),!1)};let eM=null;eA.copy=eA.cut=(a,b)=>{if(!cJ(a.contentDOM,a.observer.selectionRange))return!1;let{text:c,ranges:d,linewise:e}=function(a){let b=[],c=[],d=!1;for(let d of a.selection.ranges)d.empty||(b.push(a.sliceDoc(d.from,d.to)),c.push(d));if(!b.length){let e=-1;for(let{from:d}of a.selection.ranges){let f=a.doc.lineAt(d);f.number>e&&(b.push(f.text),c.push({from:f.from,to:Math.min(a.doc.length,f.to+1)})),e=f.number}d=!0}return{text:eD(a,dm,b.join(a.lineBreak)),ranges:c,linewise:d}}(a.state);if(!c&&!e)return!1;eM=e?c:null,"cut"!=b.type||a.state.readOnly||a.dispatch({changes:d,scrollIntoView:!0,userEvent:"delete.cut"});let f=eC?null:b.clipboardData;return f?(f.clearData(),f.setData("text/plain",c),!0):(!function(a,b){let c=a.dom.parentNode;if(!c)return;let d=c.appendChild(document.createElement("textarea"));d.style.cssText="position: fixed; left: -10000px; top: 10px",d.value=b,d.focus(),d.selectionEnd=b.length,d.selectionStart=0,setTimeout(()=>{d.remove(),a.focus()},50)}(a,c),!1)};let eN=bB.define();function eO(a,b){let c=[];for(let d of a.facet(dk)){let e=d(a,b);e&&c.push(e)}return c.length?a.update({effects:c,annotations:eN.of(!0)}):null}function eP(a){setTimeout(()=>{let b=a.hasFocus;if(b!=a.inputState.notifiedFocused){let c=eO(a.state,b);c?a.dispatch(c):a.update([])}},10)}eB.focus=a=>{a.inputState.lastFocusTime=Date.now(),!a.scrollDOM.scrollTop&&(a.inputState.lastScrollTop||a.inputState.lastScrollLeft)&&(a.scrollDOM.scrollTop=a.inputState.lastScrollTop,a.scrollDOM.scrollLeft=a.inputState.lastScrollLeft),eP(a)},eB.blur=a=>{a.observer.clearSelectionRange(),eP(a)},eB.compositionstart=eB.compositionupdate=a=>{!a.observer.editContext&&(null==a.inputState.compositionFirstChange&&(a.inputState.compositionFirstChange=!0),a.inputState.composing<0&&(a.inputState.composing=0))},eB.compositionend=a=>{a.observer.editContext||(a.inputState.composing=-1,a.inputState.compositionEndedAt=Date.now(),a.inputState.compositionPendingKey=!0,a.inputState.compositionPendingChange=a.observer.pendingRecords().length>0,a.inputState.compositionFirstChange=null,ct.chrome&&ct.android?a.observer.flushSoon():a.inputState.compositionPendingChange?Promise.resolve().then(()=>a.observer.flush()):setTimeout(()=>{a.inputState.composing<0&&a.docView.hasComposition&&a.update([])},50))},eB.contextmenu=a=>{a.inputState.lastContextMenu=Date.now()},eA.beforeinput=(a,b)=>{var c,d;let e;if(("insertText"==b.inputType||"insertCompositionText"==b.inputType)&&(a.inputState.insertingText=b.data,a.inputState.insertingTextAt=Date.now()),"insertReplacementText"==b.inputType&&a.observer.editContext){let d=null==(c=b.dataTransfer)?void 0:c.getData("text/plain"),e=b.getTargetRanges();if(d&&e.length){let b=e[0],c=a.posAtDOM(b.startContainer,b.startOffset),f=a.posAtDOM(b.endContainer,b.endOffset);return eq(a,{from:c,to:f,insert:a.state.toText(d)},null),!0}}if(ct.chrome&&ct.android&&(e=ev.find(a=>a.inputType==b.inputType))&&(a.observer.delayAndroidKey(e.key,e.keyCode),"Backspace"==e.key||"Delete"==e.key)){let b=(null==(d=window.visualViewport)?void 0:d.height)||0;setTimeout(()=>{var c;((null==(c=window.visualViewport)?void 0:c.height)||0)>b+10&&a.hasFocus&&(a.contentDOM.blur(),a.focus())},100)}return ct.ios&&"deleteContentForward"==b.inputType&&a.observer.flushSoon(),ct.safari&&"insertText"==b.inputType&&a.inputState.composing>=0&&setTimeout(()=>eB.compositionend(a,b),20),!1};let eQ=new Set,eR=["pre-wrap","normal","pre-line","break-spaces"],eS=!1;class eT{constructor(a){this.lineWrapping=a,this.doc=aQ.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(a,b){let c=this.doc.lineAt(b).number-this.doc.lineAt(a).number+1;return this.lineWrapping&&(c+=Math.max(0,Math.ceil((b-a-c*this.lineLength*.5)/this.lineLength))),this.lineHeight*c}heightForLine(a){return this.lineWrapping?(1+Math.max(0,Math.ceil((a-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(a){return this.doc=a,this}mustRefreshForWrapping(a){return eR.indexOf(a)>-1!=this.lineWrapping}mustRefreshForHeights(a){let b=!1;for(let c=0;c<a.length;c++){let d=a[c];d<0?c++:this.heightSamples[Math.floor(10*d)]||(b=!0,this.heightSamples[Math.floor(10*d)]=!0)}return b}refresh(a,b,c,d,e,f){let g=eR.indexOf(a)>-1,h=Math.abs(b-this.lineHeight)>.3||this.lineWrapping!=g||Math.abs(c-this.charWidth)>.1;if(this.lineWrapping=g,this.lineHeight=b,this.charWidth=c,this.textHeight=d,this.lineLength=e,h){this.heightSamples={};for(let a=0;a<f.length;a++){let b=f[a];b<0?a++:this.heightSamples[Math.floor(10*b)]=!0}}return h}}class eU{constructor(a,b){this.from=a,this.heights=b,this.index=0}get more(){return this.index<this.heights.length}}class eV{constructor(a,b,c,d,e){this.from=a,this.length=b,this.top=c,this.height=d,this._content=e}get type(){return"number"==typeof this._content?cz.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof cD?this._content.widget:null}get widgetLineBreaks(){return"number"==typeof this._content?this._content:0}join(a){let b=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(a._content)?a._content:[a]);return new eV(this.from,this.length+a.length,this.top,this.height+a.height,b)}}var eW=((pR=eW||(eW={}))[pR.ByPos=0]="ByPos",pR[pR.ByHeight=1]="ByHeight",pR[pR.ByPosNoHeight=2]="ByPosNoHeight",pR);class eX{constructor(a,b,c=2){this.length=a,this.height=b,this.flags=c}get outdated(){return(2&this.flags)>0}set outdated(a){this.flags=2*!!a|-3&this.flags}setHeight(a){this.height!=a&&(Math.abs(this.height-a)>.001&&(eS=!0),this.height=a)}replace(a,b,c){return eX.of(c)}decomposeLeft(a,b){b.push(this)}decomposeRight(a,b){b.push(this)}applyChanges(a,b,c,d){let e=this,f=c.doc;for(let g=d.length-1;g>=0;g--){let{fromA:h,toA:i,fromB:j,toB:k}=d[g],l=e.lineAt(h,eW.ByPosNoHeight,c.setDoc(b),0,0),m=l.to>=i?l:e.lineAt(i,eW.ByPosNoHeight,c,0,0);for(k+=m.to-i,i=m.to;g>0&&l.from<=d[g-1].toA;)h=d[g-1].fromA,j=d[g-1].fromB,g--,h<l.from&&(l=e.lineAt(h,eW.ByPosNoHeight,c,0,0));j+=l.from-h,h=l.from;let n=e3.build(c.setDoc(f),a,j,k);e=eY(e,e.replace(h,i,n))}return e.updateHeight(c,0)}static empty(){return new e_(0,0,0)}static of(a){if(1==a.length)return a[0];let b=0,c=a.length,d=0,e=0;for(;;)if(b==c)if(d>2*e){let e=a[b-1];e.break?a.splice(--b,1,e.left,null,e.right):a.splice(--b,1,e.left,e.right),c+=1+e.break,d-=e.size}else if(e>2*d){let b=a[c];b.break?a.splice(c,1,b.left,null,b.right):a.splice(c,1,b.left,b.right),c+=2+b.break,e-=b.size}else break;else if(d<e){let c=a[b++];c&&(d+=c.size)}else{let b=a[--c];b&&(e+=b.size)}let f=0;return null==a[b-1]?(f=1,b--):null==a[b]&&(f=1,c++),new e1(eX.of(a.slice(0,b)),f,eX.of(a.slice(c)))}}function eY(a,b){return a==b?a:(a.constructor!=b.constructor&&(eS=!0),b)}eX.prototype.size=1;let eZ=cA.replace({});class e$ extends eX{constructor(a,b,c){super(a,b),this.deco=c,this.spaceAbove=0}mainBlock(a,b){return new eV(b,this.length,a+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(a,b,c,d){return this.spaceAbove&&a<c+this.spaceAbove?new eV(d,0,c,this.spaceAbove,eZ):this.mainBlock(c,d)}lineAt(a,b,c,d,e){let f=this.mainBlock(d,e);return this.spaceAbove?this.blockAt(0,c,d,e).join(f):f}forEachLine(a,b,c,d,e,f){a<=e+this.length&&b>=e&&f(this.lineAt(0,eW.ByPos,c,d,e))}setMeasuredHeight(a){let b=a.heights[a.index++];b<0?(this.spaceAbove=-b,b=a.heights[a.index++]):this.spaceAbove=0,this.setHeight(b)}updateHeight(a,b=0,c=!1,d){return d&&d.from<=b&&d.more&&this.setMeasuredHeight(d),this.outdated=!1,this}toString(){return`block(${this.length})`}}class e_ extends e${constructor(a,b,c){super(a,b,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=c}mainBlock(a,b){return new eV(b,this.length,a+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(a,b,c){let d=c[0];return 1==c.length&&(d instanceof e_||d instanceof e0&&4&d.flags)&&10>Math.abs(this.length-d.length)?(d instanceof e0?d=new e_(d.length,this.height,this.spaceAbove):d.height=this.height,this.outdated||(d.outdated=!1),d):eX.of(c)}updateHeight(a,b=0,c=!1,d){return d&&d.from<=b&&d.more?this.setMeasuredHeight(d):(c||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,a.heightForLine(this.length-this.collapsed))+this.breaks*a.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class e0 extends eX{constructor(a){super(a,0)}heightMetrics(a,b){let c=a.doc.lineAt(b).number,d=a.doc.lineAt(b+this.length).number,e=d-c+1,f,g=0;if(a.lineWrapping){let b=Math.min(this.height,a.lineHeight*e);f=b/e,this.length>e+1&&(g=(this.height-b)/(this.length-e-1))}else f=this.height/e;return{firstLine:c,lastLine:d,perLine:f,perChar:g}}blockAt(a,b,c,d){let{firstLine:e,lastLine:f,perLine:g,perChar:h}=this.heightMetrics(b,d);if(b.lineWrapping){let e=d+(a<b.lineHeight?0:Math.round(Math.max(0,Math.min(1,(a-c)/this.height))*this.length)),f=b.doc.lineAt(e),i=g+f.length*h,j=Math.max(c,a-i/2);return new eV(f.from,f.length,j,i,0)}{let d=Math.max(0,Math.min(f-e,Math.floor((a-c)/g))),{from:h,length:i}=b.doc.line(e+d);return new eV(h,i,c+g*d,g,0)}}lineAt(a,b,c,d,e){if(b==eW.ByHeight)return this.blockAt(a,c,d,e);if(b==eW.ByPosNoHeight){let{from:b,to:d}=c.doc.lineAt(a);return new eV(b,d-b,0,0,0)}let{firstLine:f,perLine:g,perChar:h}=this.heightMetrics(c,e),i=c.doc.lineAt(a),j=g+i.length*h,k=i.number-f,l=d+g*k+h*(i.from-e-k);return new eV(i.from,i.length,Math.max(d,Math.min(l,d+this.height-j)),j,0)}forEachLine(a,b,c,d,e,f){a=Math.max(a,e),b=Math.min(b,e+this.length);let{firstLine:g,perLine:h,perChar:i}=this.heightMetrics(c,e);for(let j=a,k=d;j<=b;){let b=c.doc.lineAt(j);if(j==a){let c=b.number-g;k+=h*c+i*(a-e-c)}let d=h+i*b.length;f(new eV(b.from,b.length,k,d,0)),k+=d,j=b.to+1}}replace(a,b,c){let d=this.length-b;if(d>0){let a=c[c.length-1];a instanceof e0?c[c.length-1]=new e0(a.length+d):c.push(null,new e0(d-1))}if(a>0){let b=c[0];b instanceof e0?c[0]=new e0(a+b.length):c.unshift(new e0(a-1),null)}return eX.of(c)}decomposeLeft(a,b){b.push(new e0(a-1),null)}decomposeRight(a,b){b.push(null,new e0(this.length-a-1))}updateHeight(a,b=0,c=!1,d){let e=b+this.length;if(d&&d.from<=b+this.length&&d.more){let c=[],f=Math.max(b,d.from),g=-1;for(d.from>b&&c.push(new e0(d.from-b-1).updateHeight(a,b));f<=e&&d.more;){let b=a.doc.lineAt(f).length;c.length&&c.push(null);let e=d.heights[d.index++],h=0;e<0&&(h=-e,e=d.heights[d.index++]),-1==g?g=e:Math.abs(e-g)>=.001&&(g=-2);let i=new e_(b,e,h);i.outdated=!1,c.push(i),f+=b+1}f<=e&&c.push(null,new e0(e-f).updateHeight(a,f));let h=eX.of(c);return(g<0||Math.abs(h.height-this.height)>=.001||Math.abs(g-this.heightMetrics(a,b).perLine)>=.001)&&(eS=!0),eY(this,h)}return(c||this.outdated)&&(this.setHeight(a.heightForGap(b,b+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class e1 extends eX{constructor(a,b,c){super(a.length+b+c.length,a.height+c.height,b|(a.outdated||c.outdated?2:0)),this.left=a,this.right=c,this.size=a.size+c.size}get break(){return 1&this.flags}blockAt(a,b,c,d){let e=c+this.left.height;return a<e?this.left.blockAt(a,b,c,d):this.right.blockAt(a,b,e,d+this.left.length+this.break)}lineAt(a,b,c,d,e){let f=d+this.left.height,g=e+this.left.length+this.break,h=b==eW.ByHeight?a<f:a<g,i=h?this.left.lineAt(a,b,c,d,e):this.right.lineAt(a,b,c,f,g);if(this.break||(h?i.to<g:i.from>g))return i;let j=b==eW.ByPosNoHeight?eW.ByPosNoHeight:eW.ByPos;return h?i.join(this.right.lineAt(g,j,c,f,g)):this.left.lineAt(g,j,c,d,e).join(i)}forEachLine(a,b,c,d,e,f){let g=d+this.left.height,h=e+this.left.length+this.break;if(this.break)a<h&&this.left.forEachLine(a,b,c,d,e,f),b>=h&&this.right.forEachLine(a,b,c,g,h,f);else{let i=this.lineAt(h,eW.ByPos,c,d,e);a<i.from&&this.left.forEachLine(a,i.from-1,c,d,e,f),i.to>=a&&i.from<=b&&f(i),b>i.to&&this.right.forEachLine(i.to+1,b,c,g,h,f)}}replace(a,b,c){let d=this.left.length+this.break;if(b<d)return this.balanced(this.left.replace(a,b,c),this.right);if(a>this.left.length)return this.balanced(this.left,this.right.replace(a-d,b-d,c));let e=[];a>0&&this.decomposeLeft(a,e);let f=e.length;for(let a of c)e.push(a);if(a>0&&e2(e,f-1),b<this.length){let a=e.length;this.decomposeRight(b,e),e2(e,a)}return eX.of(e)}decomposeLeft(a,b){let c=this.left.length;if(a<=c)return this.left.decomposeLeft(a,b);b.push(this.left),this.break&&a>=++c&&b.push(null),a>c&&this.right.decomposeLeft(a-c,b)}decomposeRight(a,b){let c=this.left.length,d=c+this.break;if(a>=d)return this.right.decomposeRight(a-d,b);a<c&&this.left.decomposeRight(a,b),this.break&&a<d&&b.push(null),b.push(this.right)}balanced(a,b){return a.size>2*b.size||b.size>2*a.size?eX.of(this.break?[a,null,b]:[a,b]):(this.left=eY(this.left,a),this.right=eY(this.right,b),this.setHeight(a.height+b.height),this.outdated=a.outdated||b.outdated,this.size=a.size+b.size,this.length=a.length+this.break+b.length,this)}updateHeight(a,b=0,c=!1,d){let{left:e,right:f}=this,g=b+e.length+this.break,h=null;return(d&&d.from<=b+e.length&&d.more?h=e=e.updateHeight(a,b,c,d):e.updateHeight(a,b,c),d&&d.from<=g+f.length&&d.more?h=f=f.updateHeight(a,g,c,d):f.updateHeight(a,g,c),h)?this.balanced(e,f):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function e2(a,b){let c,d;null==a[b]&&(c=a[b-1])instanceof e0&&(d=a[b+1])instanceof e0&&a.splice(b-1,3,new e0(c.length+1+d.length))}class e3{constructor(a,b){this.pos=a,this.oracle=b,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=a}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(a,b){if(this.lineStart>-1){let a=Math.min(b,this.lineEnd),c=this.nodes[this.nodes.length-1];c instanceof e_?c.length+=a-this.pos:(a>this.pos||!this.isCovered)&&this.nodes.push(new e_(a-this.pos,-1,0)),this.writtenTo=a,b>a&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=b}point(a,b,c){if(a<b||c.heightRelevant){let d=c.widget?c.widget.estimatedHeight:0,e=c.widget?c.widget.lineBreaks:0;d<0&&(d=this.oracle.lineHeight);let f=b-a;c.block?this.addBlock(new e$(f,d,c)):(f||e||d>=5)&&this.addLineDeco(d,e,f)}else b>a&&this.span(a,b);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:a,to:b}=this.oracle.doc.lineAt(this.pos);this.lineStart=a,this.lineEnd=b,this.writtenTo<a&&((this.writtenTo<a-1||null==this.nodes[this.nodes.length-1])&&this.nodes.push(this.blankContent(this.writtenTo,a-1)),this.nodes.push(null)),this.pos>a&&this.nodes.push(new e_(this.pos-a,-1,0)),this.writtenTo=this.pos}blankContent(a,b){let c=new e0(b-a);return this.oracle.doc.lineAt(a).to==b&&(c.flags|=4),c}ensureLine(){this.enterLine();let a=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(a instanceof e_)return a;let b=new e_(0,-1,0);return this.nodes.push(b),b}addBlock(a){this.enterLine();let b=a.deco;b&&b.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(a),this.writtenTo=this.pos=this.pos+a.length,b&&b.endSide>0&&(this.covering=a)}addLineDeco(a,b,c){let d=this.ensureLine();d.length+=c,d.collapsed+=c,d.widgetHeight=Math.max(d.widgetHeight,a),d.breaks+=b,this.writtenTo=this.pos=this.pos+c}finish(a){let b=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||b instanceof e_||this.isCovered?(this.writtenTo<this.pos||null==b)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos)):this.nodes.push(new e_(0,-1,0));let c=a;for(let a of this.nodes)a instanceof e_&&a.updateHeight(this.oracle,c),c+=a?a.length:1;return this.nodes}static build(a,b,c,d){let e=new e3(c,a);return bT.spans(b,c,d,e,0),e.finish(c)}}class e4{constructor(){this.changes=[]}compareRange(){}comparePoint(a,b,c,d){(a<b||c&&c.heightRelevant||d&&d.heightRelevant)&&cF(a,b,this.changes,5)}}class e5{constructor(a,b,c,d){this.from=a,this.to=b,this.size=c,this.displaySize=d}static same(a,b){if(a.length!=b.length)return!1;for(let c=0;c<a.length;c++){let d=a[c],e=b[c];if(d.from!=e.from||d.to!=e.to||d.size!=e.size)return!1}return!0}draw(a,b){return cA.replace({widget:new e6(this.displaySize*(b?a.scaleY:a.scaleX),b)}).range(this.from,this.to)}}class e6 extends cy{constructor(a,b){super(),this.size=a,this.vertical=b}eq(a){return a.size==this.size&&a.vertical==this.vertical}toDOM(){let a=document.createElement("div");return this.vertical?a.style.height=this.size+"px":(a.style.width=this.size+"px",a.style.height="2px",a.style.display="inline-block"),a}get estimatedHeight(){return this.vertical?this.size:-1}}class e7{constructor(a,b){this.view=a,this.state=b,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scaleX=1,this.scaleY=1,this.scrollOffset=0,this.scrolledToBottom=!1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=fb,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=c0.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let c=b.facet(dB).some(a=>"function"!=typeof a&&"cm-lineWrapping"==a.class);this.heightOracle=new eT(c),this.stateDeco=fc(b),this.heightMap=eX.empty().applyChanges(this.stateDeco,aQ.empty,this.heightOracle.setDoc(b.doc),[new dL(0,0,0,b.doc.length)]);for(let a=0;a<2&&(this.viewport=this.getViewport(0,null),this.updateForViewport());a++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=cA.set(this.lineGaps.map(a=>a.draw(this,!1))),this.scrollParent=a.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let a=[this.viewport],{main:b}=this.state.selection;for(let c=0;c<=1;c++){let d=c?b.head:b.anchor;if(!a.some(({from:a,to:b})=>d>=a&&d<=b)){let{from:b,to:c}=this.lineBlockAt(d);a.push(new e8(b,c))}}return this.viewports=a.sort((a,b)=>a.from-b.from),this.updateScaler()}updateScaler(){let a=this.scaler;return this.scaler=this.heightMap.height<=7e6?fb:new fd(this.heightOracle,this.heightMap,this.viewports),2*!a.eq(this.scaler)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,a=>{this.viewportLines.push(fe(a,this.scaler))})}update(a,b=null){var c,d;let e;this.state=a.state;let f=this.stateDeco;this.stateDeco=fc(this.state);let g=a.changedRanges,h=dL.extendWithRanges(g,(c=this.stateDeco,d=a?a.changes:a4.empty(this.state.doc.length),e=new e4,bT.compare(f,c,d,e,0),e.changes)),i=this.heightMap.height,j=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);eS=!1,this.heightMap=this.heightMap.applyChanges(this.stateDeco,a.startState.doc,this.heightOracle.setDoc(this.state.doc),h),(this.heightMap.height!=i||eS)&&(a.flags|=2),j?(this.scrollAnchorPos=a.changes.mapPos(j.from,-1),this.scrollAnchorHeight=j.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=i);let k=h.length?this.mapViewport(this.viewport,a.changes):this.viewport;(b&&(b.range.head<k.from||b.range.head>k.to)||!this.viewportIsAppropriate(k))&&(k=this.getViewport(0,b));let l=k.from!=this.viewport.from||k.to!=this.viewport.to;this.viewport=k,a.flags|=this.updateForViewport(),(l||!a.changes.empty||2&a.flags)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,a.changes))),a.flags|=this.computeVisibleRanges(a.changes),b&&(this.scrollTarget=b),!this.mustEnforceCursorAssoc&&(a.selectionSet||a.focusChanged)&&a.view.lineWrapping&&a.state.selection.main.empty&&a.state.selection.main.assoc&&!a.state.facet(dp)&&(this.mustEnforceCursorAssoc=!0)}measure(){var a;let b,c,{view:d}=this,e=d.contentDOM,f=window.getComputedStyle(e),g=this.heightOracle,h=f.whiteSpace;this.defaultTextDirection="rtl"==f.direction?c0.RTL:c0.LTR;let i=this.heightOracle.mustRefreshForWrapping(h)||"refresh"===this.mustMeasureContent,j=e.getBoundingClientRect(),k=i||this.mustMeasureContent||this.contentDOMHeight!=j.height;this.contentDOMHeight=j.height,this.mustMeasureContent=!1;let l=0,m=0;if(j.width&&j.height){let{scaleX:a,scaleY:b}=cR(e,j);(a>.005&&Math.abs(this.scaleX-a)>.005||b>.005&&Math.abs(this.scaleY-b)>.005)&&(this.scaleX=a,this.scaleY=b,l|=16,i=k=!0)}let n=(parseInt(f.paddingTop)||0)*this.scaleY,o=(parseInt(f.paddingBottom)||0)*this.scaleY;(this.paddingTop!=n||this.paddingBottom!=o)&&(this.paddingTop=n,this.paddingBottom=o,l|=18),this.editorWidth!=d.scrollDOM.clientWidth&&(g.lineWrapping&&(k=!0),this.editorWidth=d.scrollDOM.clientWidth,l|=16);let p=cS(this.view.contentDOM,!1).y;p!=this.scrollParent&&(this.scrollParent=p,this.scrollAnchorHeight=-1,this.scrollOffset=0);let q=this.getScrollOffset();this.scrollOffset!=q&&(this.scrollAnchorHeight=-1,this.scrollOffset=q),this.scrolledToBottom=cY(this.scrollParent||d.win);let r=(this.printing?function(a,b){let c=a.getBoundingClientRect();return{left:0,right:c.right-c.left,top:b,bottom:c.bottom-(c.top+b)}}:function(a,b){let c=a.getBoundingClientRect(),d=a.ownerDocument,e=d.defaultView||window,f=Math.max(0,c.left),g=Math.min(e.innerWidth,c.right),h=Math.max(0,c.top),i=Math.min(e.innerHeight,c.bottom);for(let b=a.parentNode;b&&b!=d.body;)if(1==b.nodeType){let c=b,d=window.getComputedStyle(c);if((c.scrollHeight>c.clientHeight||c.scrollWidth>c.clientWidth)&&"visible"!=d.overflow){let d=c.getBoundingClientRect();f=Math.max(f,d.left),g=Math.min(g,d.right),h=Math.max(h,d.top),i=Math.min(b==a.parentNode?e.innerHeight:i,d.bottom)}b="absolute"==d.position||"fixed"==d.position?c.offsetParent:c.parentNode}else if(11==b.nodeType)b=b.host;else break;return{left:f-c.left,right:Math.max(f,g)-c.left,top:h-(c.top+b),bottom:Math.max(h,i)-(c.top+b)}})(e,this.paddingTop),s=r.top-this.pixelViewport.top,t=r.bottom-this.pixelViewport.bottom;this.pixelViewport=r;let u=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(u!=this.inView&&(this.inView=u,u&&(k=!0)),!this.inView&&!this.scrollTarget&&(b=(a=d.dom).getBoundingClientRect(),c=a.ownerDocument.defaultView||window,!(b.left<c.innerWidth)||!(b.right>0)||!(b.top<c.innerHeight)||!(b.bottom>0)))return 0;let v=j.width;if((this.contentDOMWidth!=v||this.editorHeight!=d.scrollDOM.clientHeight)&&(this.contentDOMWidth=j.width,this.editorHeight=d.scrollDOM.clientHeight,l|=16),k){let a=d.docView.measureVisibleLineHeights(this.viewport);if(g.mustRefreshForHeights(a)&&(i=!0),i||g.lineWrapping&&Math.abs(v-this.contentDOMWidth)>g.charWidth){let{lineHeight:b,charWidth:c,textHeight:e}=d.docView.measureTextSize();(i=b>0&&g.refresh(h,b,c,e,Math.max(5,v/c),a))&&(d.docView.minWidth=0,l|=16)}for(let b of(s>0&&t>0?m=Math.max(s,t):s<0&&t<0&&(m=Math.min(s,t)),eS=!1,this.viewports)){let c=b.from==this.viewport.from?a:d.docView.measureVisibleLineHeights(b);this.heightMap=(i?eX.empty().applyChanges(this.stateDeco,aQ.empty,this.heightOracle,[new dL(0,0,0,d.state.doc.length)]):this.heightMap).updateHeight(g,0,i,new eU(b.from,c))}eS&&(l|=2)}let w=!this.viewportIsAppropriate(this.viewport,m)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return w&&(2&l&&(l|=this.updateScaler()),this.viewport=this.getViewport(m,this.scrollTarget),l|=this.updateForViewport()),(2&l||w)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(i?[]:this.lineGaps,d)),l|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,d.docView.enforceCursorAssoc()),l}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(a,b){let c=.5-Math.max(-.5,Math.min(.5,a/1e3/2)),d=this.heightMap,e=this.heightOracle,{visibleTop:f,visibleBottom:g}=this,h=new e8(d.lineAt(f-1e3*c,eW.ByHeight,e,0,0).from,d.lineAt(g+(1-c)*1e3,eW.ByHeight,e,0,0).to);if(b){let{head:a}=b.range;if(a<h.from||a>h.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=d.lineAt(a,eW.ByPos,e,0,0),g;g="center"==b.y?(f.top+f.bottom)/2-c/2:"start"==b.y||"nearest"==b.y&&a<h.from?f.top:f.bottom-c,h=new e8(d.lineAt(g-500,eW.ByHeight,e,0,0).from,d.lineAt(g+c+500,eW.ByHeight,e,0,0).to)}}return h}mapViewport(a,b){let c=b.mapPos(a.from,-1),d=b.mapPos(a.to,1);return new e8(this.heightMap.lineAt(c,eW.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(d,eW.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:a,to:b},c=0){if(!this.inView)return!0;let{top:d}=this.heightMap.lineAt(a,eW.ByPos,this.heightOracle,0,0),{bottom:e}=this.heightMap.lineAt(b,eW.ByPos,this.heightOracle,0,0),{visibleTop:f,visibleBottom:g}=this;return(0==a||d<=f-Math.max(10,Math.min(-c,250)))&&(b==this.state.doc.length||e>=g+Math.max(10,Math.min(c,250)))&&d>f-2e3&&e<g+2e3}mapLineGaps(a,b){if(!a.length||b.empty)return a;let c=[];for(let d of a)b.touchesRange(d.from,d.to)||c.push(new e5(b.mapPos(d.from),b.mapPos(d.to),d.size,d.displaySize));return c}ensureLineGaps(a,b){let c=this.heightOracle.lineWrapping,d=c?1e4:2e3,e=d>>1,f=d<<1;if(this.defaultTextDirection!=c0.LTR&&!c)return[];let g=[],h=(d,f,i,j)=>{if(f-d<e)return;let k=this.state.selection.main,l=[k.from];for(let a of(k.empty||l.push(k.to),l))if(a>d&&a<f){h(d,a-10,i,j),h(a+10,f,i,j);return}let m=function(a,b){for(let c of a)if(b(c))return c}(a,a=>a.from>=i.from&&a.to<=i.to&&Math.abs(a.from-d)<e&&Math.abs(a.to-f)<e&&!l.some(b=>a.from<b&&a.to>b));if(!m){if(f<i.to&&b&&c&&b.visibleRanges.some(a=>a.from<=f&&a.to>=f)){let a=b.moveToLineBoundary(bc.cursor(f),!1,!0).head;a>d&&(f=a)}let a=this.gapSize(i,d,f,j),e=c||a<2e6?a:2e6;m=new e5(d,f,a,e)}g.push(m)},i=b=>{var e,g,i;let j,k,l,m,n;if(b.length<f||b.type!=cz.Text)return;let o=(e=b.from,g=b.to,i=this.stateDeco,l=[],m=e,n=0,bT.spans(i,e,g,{span(){},point(a,b){a>m&&(l.push({from:m,to:a}),n+=a-m),m=b}},20),m<g&&(l.push({from:m,to:g}),n+=g-m),{total:n,ranges:l});if(o.total<f)return;let p=this.scrollTarget?this.scrollTarget.range.head:null;if(c){let a,c,e=d/this.heightOracle.lineLength*this.heightOracle.lineHeight;if(null!=p){let d=fa(o,p),f=((this.visibleBottom-this.visibleTop)/2+e)/b.height;a=d-f,c=d+f}else a=(this.visibleTop-b.top-e)/b.height,c=(this.visibleBottom-b.top+e)/b.height;j=e9(o,a),k=e9(o,c)}else{let c,e,f=o.total*this.heightOracle.charWidth,g=d*this.heightOracle.charWidth,h=0;if(f>2e6)for(let c of a)c.from>=b.from&&c.from<b.to&&c.size!=c.displaySize&&c.from*this.heightOracle.charWidth+h<this.pixelViewport.left&&(h=c.size-c.displaySize);let i=this.pixelViewport.left+h,l=this.pixelViewport.right+h;if(null!=p){let a=fa(o,p),b=((l-i)/2+g)/f;c=a-b,e=a+b}else c=(i-g)/f,e=(l+g)/f;j=e9(o,c),k=e9(o,e)}j>b.from&&h(b.from,j,b,o),k<b.to&&h(k,b.to,b,o)};for(let a of this.viewportLines)Array.isArray(a.type)?a.type.forEach(i):i(a);return g}gapSize(a,b,c,d){let e=fa(d,c)-fa(d,b);return this.heightOracle.lineWrapping?a.height*e:d.total*this.heightOracle.charWidth*e}updateLineGaps(a){e5.same(a,this.lineGaps)||(this.lineGaps=a,this.lineGapDeco=cA.set(a.map(a=>a.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(a){let b=this.stateDeco;this.lineGaps.length&&(b=b.concat(this.lineGapDeco));let c=[];bT.spans(b,this.viewport.from,this.viewport.to,{span(a,b){c.push({from:a,to:b})},point(){}},20);let d=0;if(c.length!=this.visibleRanges.length)d=12;else for(let b=0;b<c.length&&!(8&d);b++){let e=this.visibleRanges[b],f=c[b];(e.from!=f.from||e.to!=f.to)&&(d|=4,a&&a.mapPos(e.from,-1)==f.from&&a.mapPos(e.to,1)==f.to||(d|=8))}return this.visibleRanges=c,d}lineBlockAt(a){return a>=this.viewport.from&&a<=this.viewport.to&&this.viewportLines.find(b=>b.from<=a&&b.to>=a)||fe(this.heightMap.lineAt(a,eW.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(a){return a>=this.viewportLines[0].top&&a<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(b=>b.top<=a&&b.bottom>=a)||fe(this.heightMap.lineAt(this.scaler.fromDOM(a),eW.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(a){let b=this.lineBlockAtHeight(a+8);return b.from>=this.viewport.from||this.viewportLines[0].top-a>200?b:this.viewportLines[0]}elementAtHeight(a){return fe(this.heightMap.blockAt(this.scaler.fromDOM(a),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class e8{constructor(a,b){this.from=a,this.to=b}}function e9({total:a,ranges:b},c){if(c<=0)return b[0].from;if(c>=1)return b[b.length-1].to;let d=Math.floor(a*c);for(let a=0;;a++){let{from:c,to:e}=b[a],f=e-c;if(d<=f)return c+d;d-=f}}function fa(a,b){let c=0;for(let{from:d,to:e}of a.ranges){if(b<=e){c+=b-d;break}c+=e-d}return c/a.total}let fb={toDOM:a=>a,fromDOM:a=>a,scale:1,eq(a){return a==this}};function fc(a){let b=a.facet(dC).filter(a=>"function"!=typeof a),c=a.facet(dE).filter(a=>"function"!=typeof a);return c.length&&b.push(bT.join(c)),b}class fd{constructor(a,b,c){let d=0,e=0,f=0;for(let g of(this.viewports=c.map(({from:c,to:e})=>{let f=b.lineAt(c,eW.ByPos,a,0,0).top,g=b.lineAt(e,eW.ByPos,a,0,0).bottom;return d+=g-f,{from:c,to:e,top:f,bottom:g,domTop:0,domBottom:0}}),this.scale=(7e6-d)/(b.height-d),this.viewports))g.domTop=f+(g.top-e)*this.scale,f=g.domBottom=g.domTop+(g.bottom-g.top),e=g.bottom}toDOM(a){for(let b=0,c=0,d=0;;b++){let e=b<this.viewports.length?this.viewports[b]:null;if(!e||a<e.top)return d+(a-c)*this.scale;if(a<=e.bottom)return e.domTop+(a-e.top);c=e.bottom,d=e.domBottom}}fromDOM(a){for(let b=0,c=0,d=0;;b++){let e=b<this.viewports.length?this.viewports[b]:null;if(!e||a<e.domTop)return c+(a-d)/this.scale;if(a<=e.domBottom)return e.top+(a-e.domTop);c=e.bottom,d=e.domBottom}}eq(a){return a instanceof fd&&this.scale==a.scale&&this.viewports.length==a.viewports.length&&this.viewports.every((b,c)=>b.from==a.viewports[c].from&&b.to==a.viewports[c].to)}}function fe(a,b){if(1==b.scale)return a;let c=b.toDOM(a.top),d=b.toDOM(a.bottom);return new eV(a.from,a.length,c,d-c,Array.isArray(a._content)?a._content.map(a=>fe(a,b)):a._content)}let ff=bf.define({combine:a=>a.join(" ")}),fg=bf.define({combine:a=>a.indexOf(!0)>-1}),fh=b8.newName(),fi=b8.newName(),fj=b8.newName(),fk={"&light":"."+fi,"&dark":"."+fj};function fl(a,b,c){return new b8(b,{finish:b=>/&/.test(b)?b.replace(/&\w*/,b=>{if("&"==b)return a;if(!c||!c[b])throw RangeError(`Unsupported selector: ${b}`);return c[b]}):a+" "+b})}let fm=fl("."+fh,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:'url(\'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>\')',backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},fk),fn={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},fo=ct.ie&&ct.ie_version<=11;class fp{constructor(a){this.view=a,this.active=!1,this.editContext=null,this.selectionRange=new cT,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=a.contentDOM,this.observer=new MutationObserver(b=>{for(let a of b)this.queue.push(a);(ct.ie&&ct.ie_version<=11||ct.ios&&a.composing)&&b.some(a=>"childList"==a.type&&a.removedNodes.length||"characterData"==a.type&&a.oldValue.length>a.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&ct.android&&!1!==a.constructor.EDIT_CONTEXT&&!(ct.chrome&&ct.chrome_version<126)&&(this.editContext=new fs(a),a.state.facet(dv)&&(a.contentDOM.editContext=this.editContext.editContext)),fo&&(this.onCharData=a=>{this.queue.push({target:a.target,type:"characterData",oldValue:a.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver(()=>{var a;(null==(a=this.view.docView)?void 0:a.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(a.scrollDOM)),this.addWindowListeners(this.win=a.win),this.start(),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver(a=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),a.length>0&&a[a.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(a=>{a.length>0&&a[a.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(a){this.view.inputState.runHandlers("scroll",a),this.intersecting&&this.view.measure()}onScroll(a){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(a)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(a){("change"!=a.type&&a.type||a.matches)&&(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(a){if(this.gapIntersection&&(a.length!=this.gaps.length||this.gaps.some((b,c)=>b!=a[c]))){for(let b of(this.gapIntersection.disconnect(),a))this.gapIntersection.observe(b);this.gaps=a}}onSelectionChange(a){let b=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:c}=this,d=this.selectionRange;if(c.state.facet(dv)?c.root.activeElement!=this.dom:!cJ(this.dom,d))return;let e=d.anchorNode&&c.docView.tile.nearest(d.anchorNode);if(e&&e.isWidget()&&e.widget.ignoreEvent(a)){b||(this.selectionChanged=!1);return}(ct.ie&&ct.ie_version<=11||ct.android&&ct.chrome)&&!c.state.selection.main.empty&&d.focusNode&&cL(d.focusNode,d.focusOffset,d.anchorNode,d.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:a}=this,b=cH(a.root);if(!b)return!1;let c=ct.safari&&11==a.root.nodeType&&a.root.activeElement==this.dom&&function(a,b){if(b.getComposedRanges){let c=b.getComposedRanges(a.root)[0];if(c)return fr(a,c)}let c=null;function d(a){a.preventDefault(),a.stopImmediatePropagation(),c=a.getTargetRanges()[0]}return a.contentDOM.addEventListener("beforeinput",d,!0),a.dom.ownerDocument.execCommand("indent"),a.contentDOM.removeEventListener("beforeinput",d,!0),c?fr(a,c):null}(this.view,b)||b;if(!c||this.selectionRange.eq(c))return!1;let d=cJ(this.dom,c);return d&&!this.selectionChanged&&a.inputState.lastFocusTime>Date.now()-200&&a.inputState.lastTouchTime<Date.now()-300&&function(a,b){let c=b.focusNode,d=b.focusOffset;if(!c||b.anchorNode!=c||b.anchorOffset!=d)return!1;for(d=Math.min(d,cP(c));;)if(d){if(1!=c.nodeType)return!1;let a=c.childNodes[d-1];"false"==a.contentEditable?d--:d=cP(c=a)}else{if(c==a)return!0;d=cM(c),c=c.parentNode}}(this.dom,c)?(this.view.inputState.lastFocusTime=0,a.docView.updateSelection(),!1):(this.selectionRange.setRange(c),d&&(this.selectionChanged=!0),!0)}setSelectionRange(a,b){this.selectionRange.set(a.node,a.offset,b.node,b.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let a=0,b=null;for(let c=this.dom;c;)if(1==c.nodeType)!b&&a<this.scrollTargets.length&&this.scrollTargets[a]==c?a++:b||(b=this.scrollTargets.slice(0,a)),b&&b.push(c),c=c.assignedSlot||c.parentNode;else if(11==c.nodeType)c=c.host;else break;if(a<this.scrollTargets.length&&!b&&(b=this.scrollTargets.slice(0,a)),b){for(let a of this.scrollTargets)a.removeEventListener("scroll",this.onScroll);for(let a of this.scrollTargets=b)a.addEventListener("scroll",this.onScroll)}}ignore(a){if(!this.active)return a();try{return this.stop(),a()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,fn),fo&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),fo&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(a,b){var c;if(!this.delayedAndroidKey){let a=()=>{let a=this.delayedAndroidKey;a&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=a.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&a.force&&cX(this.dom,a.key,a.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(a)}this.delayedAndroidKey&&"Enter"!=a||(this.delayedAndroidKey={key:a,keyCode:b,force:this.lastChange<Date.now()-50||!!(null==(c=this.delayedAndroidKey)?void 0:c.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let a of this.observer.takeRecords())this.queue.push(a);return this.queue}processRecords(){let a=this.pendingRecords();a.length&&(this.queue=[]);let b=-1,c=-1,d=!1;for(let e of a){let a=this.readMutation(e);a&&(a.typeOver&&(d=!0),-1==b?{from:b,to:c}=a:(b=Math.min(a.from,b),c=Math.max(a.to,c)))}return{from:b,to:c,typeOver:d}}readChange(){let{from:a,to:b,typeOver:c}=this.processRecords(),d=this.selectionChanged&&cJ(this.dom,this.selectionRange);if(a<0&&!d)return null;a>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let e=new eo(this.view,a,b,c);return this.view.docView.domChanged={newSel:e.newSel?e.newSel.main:null},e}flush(a=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;a&&this.readSelectionRange();let b=this.readChange();if(!b)return this.view.requestMeasure(),!1;let c=this.view.state,d=ep(this.view,b);return this.view.state==c&&(b.domChanged||b.newSel&&!es(this.view.state.selection,b.newSel.main))&&this.view.update([]),d}readMutation(a){let b=this.view.docView.tile.nearest(a.target);if(!b||b.isWidget())return null;if(b.markDirty("attributes"==a.type),"childList"==a.type){let c=fq(b,a.previousSibling||a.target.previousSibling,-1),d=fq(b,a.nextSibling||a.target.nextSibling,1);return{from:c?b.posAfter(c):b.posAtStart,to:d?b.posBefore(d):b.posAtEnd,typeOver:!1}}return"characterData"==a.type?{from:b.posAtStart,to:b.posAtEnd,typeOver:a.target.nodeValue==a.oldValue}:null}setWindow(a){a!=this.win&&(this.removeWindowListeners(this.win),this.win=a,this.addWindowListeners(this.win))}addWindowListeners(a){a.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):a.addEventListener("beforeprint",this.onPrint),a.addEventListener("scroll",this.onScroll),a.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(a){a.removeEventListener("scroll",this.onScroll),a.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):a.removeEventListener("beforeprint",this.onPrint),a.document.removeEventListener("selectionchange",this.onSelectionChange)}update(a){this.editContext&&(this.editContext.update(a),a.startState.facet(dv)!=a.state.facet(dv)&&(a.view.contentDOM.editContext=a.state.facet(dv)?this.editContext.editContext:null))}destroy(){var a,b,c;for(let d of(this.stop(),null==(a=this.intersection)||a.disconnect(),null==(b=this.gapIntersection)||b.disconnect(),null==(c=this.resizeScroll)||c.disconnect(),this.scrollTargets))d.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function fq(a,b,c){for(;b;){let d=dO.get(b);if(d&&d.parent==a)return d;let e=b.parentNode;b=e!=a.dom?e:c>0?b.nextSibling:b.previousSibling}return null}function fr(a,b){let c=b.startContainer,d=b.startOffset,e=b.endContainer,f=b.endOffset,g=a.docView.domAtPos(a.state.selection.main.anchor,1);return cL(g.node,g.offset,e,f)&&([c,d,e,f]=[e,f,c,d]),{anchorNode:c,anchorOffset:d,focusNode:e,focusOffset:f}}class fs{constructor(a){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(a.state);let b=this.editContext=new window.EditContext({text:a.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,a.state.selection.main.anchor))),selectionEnd:this.toContextPos(a.state.selection.main.head)});for(let c in this.handlers.textupdate=c=>{let d=a.state.selection.main,{anchor:e,head:f}=d,g=this.toEditorPos(c.updateRangeStart),h=this.toEditorPos(c.updateRangeEnd);a.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:c.updateRangeStart,editorBase:g,drifted:!1});let i=h-g>c.text.length;g==this.from&&e<this.from?g=e:h==this.to&&e>this.to&&(h=e);let j=er(a.state.sliceDoc(g,h),c.text,(i?d.from:d.to)-g,i?"end":null);if(!j){let b=bc.single(this.toEditorPos(c.selectionStart),this.toEditorPos(c.selectionEnd));es(b,d)||a.dispatch({selection:b,userEvent:"select"});return}let k={from:j.from+g,to:j.toA+g,insert:aQ.of(c.text.slice(j.from,j.toB).split("\n"))};if((ct.mac||ct.android)&&k.from==f-1&&/^\. ?$/.test(c.text)&&"off"==a.contentDOM.getAttribute("autocorrect")&&(k={from:g,to:h,insert:aQ.of([c.text.replace("."," ")])}),this.pendingContextChange=k,!a.state.readOnly){let b=this.to-this.from+(k.to-k.from+k.insert.length);eq(a,k,bc.single(this.toEditorPos(c.selectionStart,b),this.toEditorPos(c.selectionEnd,b)))}this.pendingContextChange&&(this.revertPending(a.state),this.setSelection(a.state)),k.from<k.to&&!k.insert.length&&a.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(b.text.slice(Math.max(0,c.updateRangeStart-1),Math.min(b.text.length,c.updateRangeStart+1)))&&this.handlers.compositionend(c)},this.handlers.characterboundsupdate=c=>{let d=[],e=null;for(let b=this.toEditorPos(c.rangeStart),f=this.toEditorPos(c.rangeEnd);b<f;b++){let c=a.coordsForChar(b);e=c&&new DOMRect(c.left,c.top,c.right-c.left,c.bottom-c.top)||e||new DOMRect,d.push(e)}b.updateCharacterBounds(c.rangeStart,d)},this.handlers.textformatupdate=b=>{let c=[];for(let a of b.getTextFormats()){let b=a.underlineStyle,d=a.underlineThickness;if(!/none/i.test(b)&&!/none/i.test(d)){let e=this.toEditorPos(a.rangeStart),f=this.toEditorPos(a.rangeEnd);if(e<f){let a=`text-decoration: underline ${/^[a-z]/.test(b)?b+" ":"Dashed"==b?"dashed ":"Squiggle"==b?"wavy ":""}${/thin/i.test(d)?1:2}px`;c.push(cA.mark({attributes:{style:a}}).range(e,f))}}}a.dispatch({effects:dt.of(cA.set(c))})},this.handlers.compositionstart=()=>{a.inputState.composing<0&&(a.inputState.composing=0,a.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(a.inputState.composing=-1,a.inputState.compositionFirstChange=null,this.composing){let{drifted:b}=this.composing;this.composing=null,b&&this.reset(a.state)}},this.handlers)b.addEventListener(c,this.handlers[c]);this.measureReq={read:a=>{this.editContext.updateControlBounds(a.contentDOM.getBoundingClientRect());let b=cH(a.root);b&&b.rangeCount&&this.editContext.updateSelectionBounds(b.getRangeAt(0).getBoundingClientRect())}}}applyEdits(a){let b=0,c=!1,d=this.pendingContextChange;return a.changes.iterChanges((e,f,g,h,i)=>{if(c)return;let j=i.length-(f-e);if(d&&f>=d.to)if(d.from==e&&d.to==f&&d.insert.eq(i)){d=this.pendingContextChange=null,b+=j,this.to+=j;return}else d=null,this.revertPending(a.state);if(e+=b,(f+=b)<=this.from)this.from+=j,this.to+=j;else if(e<this.to){if(e<this.from||f>this.to||this.to-this.from+i.length>3e4){c=!0;return}this.editContext.updateText(this.toContextPos(e),this.toContextPos(f),i.toString()),this.to+=j}b+=j}),d&&!c&&this.revertPending(a.state),!c}update(a){let b=this.pendingContextChange,c=a.startState.selection.main;this.composing&&(this.composing.drifted||!a.changes.touchesRange(c.from,c.to)&&a.transactions.some(a=>!a.isUserEvent("input.type")&&a.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=a.changes.mapPos(this.composing.editorBase)):this.applyEdits(a)&&this.rangeIsValid(a.state)?(a.docChanged||a.selectionSet||b)&&this.setSelection(a.state):(this.pendingContextChange=null,this.reset(a.state)),(a.geometryChanged||a.docChanged||a.selectionSet)&&a.view.requestMeasure(this.measureReq)}resetRange(a){let{head:b}=a.selection.main;this.from=Math.max(0,b-1e4),this.to=Math.min(a.doc.length,b+1e4)}reset(a){this.resetRange(a),this.editContext.updateText(0,this.editContext.text.length,a.doc.sliceString(this.from,this.to)),this.setSelection(a)}revertPending(a){let b=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(b.from),this.toContextPos(b.from+b.insert.length),a.doc.sliceString(b.from,b.to))}setSelection(a){let{main:b}=a.selection,c=this.toContextPos(Math.max(this.from,Math.min(this.to,b.anchor))),d=this.toContextPos(b.head);(this.editContext.selectionStart!=c||this.editContext.selectionEnd!=d)&&this.editContext.updateSelection(c,d)}rangeIsValid(a){let{head:b}=a.selection.main;return!(this.from>0&&b-this.from<500||this.to<a.doc.length&&this.to-b<500||this.to-this.from>3e4)}toEditorPos(a,b=this.to-this.from){a=Math.min(a,b);let c=this.composing;return c&&c.drifted?c.editorBase+(a-c.contextBase):a+this.from}toContextPos(a){let b=this.composing;return b&&b.drifted?b.contextBase+(a-b.editorBase):a-this.from}destroy(){for(let a in this.handlers)this.editContext.removeEventListener(a,this.handlers[a])}}class ft{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(a={}){var b;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),a.parent&&a.parent.appendChild(this.dom);let{dispatch:c}=a;for(let b of(this.dispatchTransactions=a.dispatchTransactions||c&&(a=>a.forEach(a=>c(a,this)))||(a=>this.update(a)),this.dispatch=this.dispatch.bind(this),this._root=a.root||function(a){for(;a;){if(a&&(9==a.nodeType||11==a.nodeType&&a.host))return a;a=a.assignedSlot||a.parentNode}return null}(a.parent)||document,this.viewState=new e7(this,a.state||bM.create(a)),a.scrollTo&&a.scrollTo.is(ds)&&(this.viewState.scrollTarget=a.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(dx).map(a=>new dz(a)),this.plugins))b.update(this);this.observer=new fp(this),this.inputState=new et(this),this.inputState.ensureHandlers(this.plugins),this.docView=new d8(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),(null==(b=document.fonts)?void 0:b.ready)&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...a){let b=1==a.length&&a[0]instanceof bF?a:1==a.length&&Array.isArray(a[0])?a[0]:[this.state.update(...a)];this.dispatchTransactions(b,this)}update(a){if(0!=this.updateState)throw Error("Calls to EditorView.update are not allowed while an update is in progress");let b=!1,c=!1,d,e=this.state;for(let b of a){if(b.startState!=e)throw RangeError("Trying to update state with a transaction that doesn't start from the previous state.");e=b.state}if(this.destroyed){this.viewState.state=e;return}let f=this.hasFocus,g=0,h=null;a.some(a=>a.annotation(eN))?(this.inputState.notifiedFocused=f,g=1):f!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=f,(h=eO(e,f))||(g=1));let i=this.observer.delayedAndroidKey,j=null;if(i?(this.observer.clearDelayedAndroidKey(),((j=this.observer.readChange())&&!this.state.doc.eq(e.doc)||!this.state.selection.eq(e.selection))&&(j=null)):this.observer.clear(),e.facet(bM.phrases)!=this.state.facet(bM.phrases))return this.setState(e);d=dM.create(this,e,a),d.flags|=g;let k=this.viewState.scrollTarget;try{for(let b of(this.updateState=2,a)){if(k&&(k=k.map(b.changes)),b.scrollIntoView){let{main:a}=b.state.selection,{x:c,y:d}=this.state.facet(ft.cursorScrollMargin);k=new dr(a.empty?a:bc.cursor(a.head,a.head>a.anchor?-1:1),"nearest","nearest",d,c)}for(let a of b.effects)a.is(ds)&&(k=a.value.clip(this.state))}this.viewState.update(d,k),this.bidiCache=fw.update(this.bidiCache,d.changes),d.empty||(this.updatePlugins(d),this.inputState.update(d)),b=this.docView.update(d),this.state.facet(dK)!=this.styleModules&&this.mountStyles(),c=this.updateAttrs(),this.showAnnouncements(a),this.docView.updateSelection(b,a.some(a=>a.isUserEvent("select.pointer")))}finally{this.updateState=0}if(d.startState.facet(ff)!=d.state.facet(ff)&&(this.viewState.mustMeasureContent=!0),(b||c||k||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),b&&this.docViewUpdate(),!d.empty)for(let a of this.state.facet(di))try{a(d)}catch(a){du(this.state,a,"update listener")}(h||j)&&Promise.resolve().then(()=>{h&&this.state==h.startState&&this.dispatch(h),j&&!ep(this,j)&&i.force&&cX(this.contentDOM,i.key,i.keyCode)})}setState(a){if(0!=this.updateState)throw Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=a;return}this.updateState=2;let b=this.hasFocus;try{for(let a of this.plugins)a.destroy(this);for(let b of(this.viewState=new e7(this,a),this.plugins=a.facet(dx).map(a=>new dz(a)),this.pluginMap.clear(),this.plugins))b.update(this);this.docView.destroy(),this.docView=new d8(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}b&&this.focus(),this.requestMeasure()}updatePlugins(a){let b=a.startState.facet(dx),c=a.state.facet(dx);if(b!=c){let d=[];for(let e of c){let c=b.indexOf(e);if(c<0)d.push(new dz(e));else{let b=this.plugins[c];b.mustUpdate=a,d.push(b)}}for(let b of this.plugins)b.mustUpdate!=a&&b.destroy(this);this.plugins=d,this.pluginMap.clear()}else for(let b of this.plugins)b.mustUpdate=a;for(let a=0;a<this.plugins.length;a++)this.plugins[a].update(this);b!=c&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let a of this.plugins){let b=a.value;if(b&&b.docViewUpdate)try{b.docViewUpdate(this)}catch(a){du(this.state,a,"doc view update listener")}}}measure(a=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,a&&this.observer.forceFlush();let b=null,c=this.viewState.scrollParent,d=this.viewState.getScrollOffset(),{scrollAnchorPos:e,scrollAnchorHeight:f}=this.viewState;Math.abs(d-this.viewState.scrollOffset)>1&&(f=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(f<0)if(cY(c||this.win))e=-1,f=this.viewState.heightMap.height;else{let a=this.viewState.scrollAnchorAt(d);e=a.from,f=a.top}this.updateState=1;let g=this.viewState.measure();if(!g&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let h=[];4&g||([this.measureRequests,h]=[h,this.measureRequests]);let i=h.map(a=>{try{return a.read(this)}catch(a){return du(this.state,a),fv}}),j=dM.create(this,this.state,[]),k=!1;j.flags|=g,b?b.flags|=g:b=j,this.updateState=2,!j.empty&&(this.updatePlugins(j),this.inputState.update(j),this.updateAttrs(),(k=this.docView.update(j))&&this.docViewUpdate());for(let a=0;a<h.length;a++)if(i[a]!=fv)try{let b=h[a];b.write&&b.write(i[a],this)}catch(a){du(this.state,a)}if(k&&this.docView.updateSelection(!0),!j.viewportChanged&&0==this.measureRequests.length){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,f=-1;continue}else{let a=((e<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(e).top)-f)/this.scaleY;if((a>1||a<-1)&&(c==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){d+=a,c?c.scrollTop+=a:this.win.scrollBy(0,a),f=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(b&&!b.empty)for(let a of this.state.facet(di))a(b)}get themeClasses(){return fh+" "+(this.state.facet(fg)?fj:fi)+" "+this.state.facet(ff)}updateAttrs(){let a=fx(this,dA,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),b={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(dv)?"true":"false",class:"cm-content",style:`${ct.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(b["aria-readonly"]="true"),fx(this,dB,b);let c=this.observer.ignore(()=>{let c=cx(this.contentDOM,this.contentAttrs,b),d=cx(this.dom,this.editorAttrs,a);return c||d});return this.editorAttrs=a,this.contentAttrs=b,c}showAnnouncements(a){let b=!0;for(let c of a)for(let a of c.effects)a.is(ft.announce)&&(b&&(this.announceDOM.textContent=""),b=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=a.value)}mountStyles(){this.styleModules=this.state.facet(dK);let a=this.state.facet(ft.cspNonce);b8.mount(this.root,this.styleModules.concat(fm).reverse(),a?{nonce:a}:void 0)}readMeasured(){if(2==this.updateState)throw Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(a){if((this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),a)&&!(this.measureRequests.indexOf(a)>-1)){if(null!=a.key){for(let b=0;b<this.measureRequests.length;b++)if(this.measureRequests[b].key===a.key){this.measureRequests[b]=a;return}}this.measureRequests.push(a)}}plugin(a){let b=this.pluginMap.get(a);return(void 0===b||b&&b.plugin!=a)&&this.pluginMap.set(a,b=this.plugins.find(b=>b.plugin==a)||null),b&&b.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(a){return this.readMeasured(),this.viewState.elementAtHeight(a)}lineBlockAtHeight(a){return this.readMeasured(),this.viewState.lineBlockAtHeight(a)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(a){return this.viewState.lineBlockAt(a)}get contentHeight(){return this.viewState.contentHeight}moveByChar(a,b,c){return ei(this,a,ef(this,a,b,c))}moveByGroup(a,b){return ei(this,a,ef(this,a,b,b=>{var c;let d,e;return c=a.head,e=(d=this.state.charCategorizer(c))(b),a=>{let b=d(a);return e==bK.Space&&(e=b),e==b}}))}visualLineSide(a,b){let c=this.bidiSpans(a),d=this.textDirectionAt(a.from),e=c[b?c.length-1:0];return bc.cursor(e.side(b,d)+a.from,e.forward(!b,d)?1:-1)}moveToLineBoundary(a,b,c=!0){return function(a,b,c,d){let e=ee(a,b.head,b.assoc||-1),f=d&&e.type==cz.Text&&(a.lineWrapping||e.widgetLineBreaks)?a.coordsAtPos(b.assoc<0&&b.head>e.from?b.head-1:b.head):null;if(f){let b=a.dom.getBoundingClientRect(),d=a.textDirectionAt(e.from),g=a.posAtCoords({x:c==(d==c0.LTR)?b.right-1:b.left+1,y:(f.top+f.bottom)/2});if(null!=g)return bc.cursor(g,c?-1:1)}return bc.cursor(c?e.to:e.from,c?-1:1)}(this,a,b,c)}moveVertically(a,b,c){return ei(this,a,function(a,b,c,d){let e=b.head,f=c?1:-1;if(e==(c?a.state.doc.length:0))return bc.cursor(e,b.assoc);let g=b.goalColumn,h,i=a.contentDOM.getBoundingClientRect(),j=a.coordsAtPos(e,b.assoc||((b.empty?c:b.head==b.from)?1:-1)),k=a.documentTop;if(j)null==g&&(g=j.left-i.left),h=f<0?j.top:j.bottom;else{let b=a.viewState.lineBlockAt(e);null==g&&(g=Math.min(i.right-i.left,a.defaultCharacterWidth*(e-b.from))),h=(f<0?b.top:b.bottom)+k}let l=i.left+g,m=a.viewState.heightOracle.textHeight>>1,n=null!=d?d:m;for(let b=0;;b+=m){let d=h+(n+b)*f,e=ek(a,{x:l,y:d},!1,f);if(c?d>i.bottom:d<i.top)return bc.cursor(e.pos,e.assoc);let j=a.coordsAtPos(e.pos,e.assoc),k=j?(j.top+j.bottom)/2:0;if(!j||(c?k>h:k<h))return bc.cursor(e.pos,e.assoc,void 0,g)}}(this,a,b,c))}domAtPos(a,b=1){return this.docView.domAtPos(a,b)}posAtDOM(a,b=0){return this.docView.posFromDOM(a,b)}posAtCoords(a,b=!0){this.readMeasured();let c=ek(this,a,b);return c&&c.pos}posAndSideAtCoords(a,b=!0){return this.readMeasured(),ek(this,a,b)}coordsAtPos(a,b=1){this.readMeasured();let c=this.docView.coordsAt(a,b);if(!c||c.left==c.right)return c;let d=this.state.doc.lineAt(a),e=this.bidiSpans(d);return cQ(c,e[da.find(e,a-d.from,-1,b)].dir==c0.LTR==b>0)}coordsForChar(a){return this.readMeasured(),this.docView.coordsForChar(a)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(a){return!this.state.facet(dn)||a<this.viewport.from||a>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(a))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(a){if(a.length>fu)return dc(a.length);let b=this.textDirectionAt(a.from),c;for(let d of this.bidiCache)if(d.from==a.from&&d.dir==b&&(d.fresh||function a(b,c){if(b.length!=c.length)return!1;for(let d=0;d<b.length;d++){let e=b[d],f=c[d];if(e.from!=f.from||e.to!=f.to||e.direction!=f.direction||!a(e.inner,f.inner))return!1}return!0}(d.isolates,c=dH(this,a))))return d.order;c||(c=dH(this,a));let d=function(a,b,c){if(!a)return[new da(0,0,+(b==c2))];if(b==c1&&!c.length&&!c9.test(a))return dc(a.length);if(c.length)for(;a.length>db.length;)db[db.length]=256;let d=[],e=+(b!=c1);return function a(b,c,d,e,f,g,h){let i=c%2?2:1;!function(a,b,c,d,e){for(let f=0;f<=d.length;f++){let g=f?d[f-1].to:b,h=f<d.length?d[f].from:c,i=f?256:e;for(let b=g,c=i,d=i;b<h;b++){let e=c8(a.charCodeAt(b));512==e?e=c:8==e&&4==d&&(e=16),db[b]=4==e?2:e,7&e&&(d=e),c=e}for(let a=g,b=i,d=i;a<h;a++){let e=db[a];if(128==e)a<h-1&&b==db[a+1]&&24&b?e=db[a]=b:db[a]=256;else if(64==e){let e=a+1;for(;e<h&&64==db[e];)e++;let f=a&&8==b||e<c&&8==db[e]?1==d?1:8:256;for(let b=a;b<e;b++)db[b]=f;a=e-1}else 8==e&&1==d&&(db[a]=1);b=e,7&e&&(d=e)}}}(b,f,g,e,i),function(a,b,c,d,e){let f=1==e?2:1;for(let g=0,h=0,i=0;g<=d.length;g++){let j=g?d[g-1].to:b,k=g<d.length?d[g].from:c;for(let b=j,c,d,g;b<k;b++)if(d=c6[c=a.charCodeAt(b)])if(d<0){for(let a=h-3;a>=0;a-=3)if(c7[a+1]==-d){let c=c7[a+2],d=2&c?e:4&c?1&c?f:e:0;d&&(db[b]=db[c7[a]]=d),h=a;break}}else if(189==c7.length)break;else c7[h++]=b,c7[h++]=c,c7[h++]=i;else if(2==(g=db[b])||1==g){let a=g==e;i=+!a;for(let b=h-3;b>=0;b-=3){let c=c7[b+2];if(2&c)break;if(a)c7[b+2]|=2;else{if(4&c)break;c7[b+2]|=4}}}}}(b,f,g,e,i),function(a,b,c,d){for(let e=0,f=d;e<=c.length;e++){let g=e?c[e-1].to:a,h=e<c.length?c[e].from:b;for(let i=g;i<h;){let g=db[i];if(256==g){let g=i+1;for(;;)if(g==h){if(e==c.length)break;g=c[e++].to,h=e<c.length?c[e].from:b}else if(256==db[g])g++;else break;let j=1==f,k=j==((g<b?db[g]:d)==1)?j?1:2:d;for(let b=g,d=e,f=d?c[d-1].to:a;b>i;)b==f&&(b=c[--d].from,f=d?c[d-1].to:a),db[--b]=k;i=g}else f=g,i++}}}(f,g,e,i),function b(c,d,e,f,g,h,i){let j=f%2?2:1;if(f%2==g%2)for(let k=d,l=0;k<e;){let d=!0,m=!1;if(l==h.length||k<h[l].from){let a=db[k];a!=j&&(d=!1,m=16==a)}let n=d||1!=j?null:[],o=d?f:f+1,p=k;c:for(;;)if(l<h.length&&p==h[l].from){if(m)break;let b=h[l];if(!d)for(let a=b.to,c=l+1;;){if(a==e)break c;if(c<h.length&&h[c].from==a)a=h[c++].to;else if(db[a]==j)break c;else break}l++,n?n.push(b):(b.from>k&&i.push(new da(k,b.from,o)),a(c,b.direction==c1!=!(o%2)?f+1:f,g,b.inner,b.from,b.to,i),k=b.to),p=b.to}else if(p==e||(d?db[p]!=j:db[p]==j))break;else p++;n?b(c,k,p,f+1,g,n,i):k<p&&i.push(new da(k,p,o)),k=p}else for(let k=e,l=h.length;k>d;){let e=!0,m=!1;if(!l||k>h[l-1].to){let a=db[k-1];a!=j&&(e=!1,m=16==a)}let n=e||1!=j?null:[],o=e?f:f+1,p=k;c:for(;;)if(l&&p==h[l-1].to){if(m)break;let b=h[--l];if(!e)for(let a=b.from,c=l;;){if(a==d)break c;if(c&&h[c-1].to==a)a=h[--c].from;else if(db[a-1]==j)break c;else break}n?n.push(b):(b.to<k&&i.push(new da(b.to,k,o)),a(c,b.direction==c1!=!(o%2)?f+1:f,g,b.inner,b.from,b.to,i),k=b.from),p=b.from}else if(p==d||(e?db[p-1]!=j:db[p-1]==j))break;else p--;n?b(c,p,k,f+1,g,n,i):p<k&&i.push(new da(p,k,o)),k=p}}(b,f,g,c,d,e,h)}(a,e,e,c,0,a.length,d),d}(a.text,b,c);return this.bidiCache.push(new fw(a.from,a.to,b,c,!0,d)),d}get hasFocus(){var a;return(this.dom.ownerDocument.hasFocus()||ct.safari&&(null==(a=this.inputState)?void 0:a.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{cV(this.contentDOM),this.docView.updateSelection()})}setRoot(a){this._root!=a&&(this._root=a,this.observer.setWindow((9==a.nodeType?a:a.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let a of(this.root.activeElement==this.contentDOM&&this.contentDOM.blur(),this.plugins))a.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(a,b={}){var c,d,e,f;return ds.of(new dr("number"==typeof a?bc.cursor(a):a,null!=(c=b.y)?c:"nearest",null!=(d=b.x)?d:"nearest",null!=(e=b.yMargin)?e:5,null!=(f=b.xMargin)?f:5))}scrollSnapshot(){let{scrollTop:a,scrollLeft:b}=this.scrollDOM,c=this.viewState.scrollAnchorAt(a);return ds.of(new dr(bc.cursor(c.from),"start","start",c.top-a,b,!0))}setTabFocusMode(a){null==a?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:"boolean"==typeof a?this.inputState.tabFocusMode=a?0:-1:0!=this.inputState.tabFocusMode&&(this.inputState.tabFocusMode=Date.now()+a)}static domEventHandlers(a){return dy.define(()=>({}),{eventHandlers:a})}static domEventObservers(a){return dy.define(()=>({}),{eventObservers:a})}static theme(a,b){let c=b8.newName(),d=[ff.of(c),dK.of(fl(`.${c}`,a))];return b&&b.dark&&d.push(fg.of(!0)),d}static baseTheme(a){return bn.lowest(dK.of(fl("."+fh,a,fk)))}static findFromDOM(a){var b;let c=a.querySelector(".cm-content"),d=c&&dO.get(c)||dO.get(a);return(null==(b=null==d?void 0:d.root)?void 0:b.view)||null}}ft.styleModule=dK,ft.inputHandler=dj,ft.clipboardInputFilter=dl,ft.clipboardOutputFilter=dm,ft.scrollHandler=dq,ft.focusChangeEffect=dk,ft.perLineTextDirection=dn,ft.exceptionSink=dh,ft.updateListener=di,ft.editable=dv,ft.mouseSelectionStyle=dg,ft.dragMovesSelection=df,ft.clickAddsSelectionRange=de,ft.decorations=dC,ft.blockWrappers=dD,ft.outerDecorations=dE,ft.atomicRanges=dF,ft.bidiIsolatedRanges=dG,ft.cursorScrollMargin=bf.define({combine:a=>{let b=5,c=5;for(let d of a)"number"==typeof d?b=c=d:{x:b,y:c}=d;return{x:b,y:c}}}),ft.scrollMargins=dI,ft.darkTheme=fg,ft.cspNonce=bf.define({combine:a=>a.length?a[0]:""}),ft.contentAttributes=dB,ft.editorAttributes=dA,ft.lineWrapping=ft.contentAttributes.of({class:"cm-lineWrapping"}),ft.announce=bE.define();let fu=4096,fv={};class fw{constructor(a,b,c,d,e,f){this.from=a,this.to=b,this.dir=c,this.isolates=d,this.fresh=e,this.order=f}static update(a,b){if(b.empty&&!a.some(a=>a.fresh))return a;let c=[],d=a.length?a[a.length-1].dir:c0.LTR;for(let e=Math.max(0,a.length-10);e<a.length;e++){let f=a[e];f.dir!=d||b.touchesRange(f.from,f.to)||c.push(new fw(b.mapPos(f.from,1),b.mapPos(f.to,-1),f.dir,f.isolates,!1,f.order))}return c}}function fx(a,b,c){for(let d=a.state.facet(b),e=d.length-1;e>=0;e--){let b=d[e],f="function"==typeof b?b(a):b;f&&cu(f,c)}return c}let fy=ct.mac?"mac":ct.windows?"win":ct.linux?"linux":"key";function fz(a,b,c){return b.altKey&&(a="Alt-"+a),b.ctrlKey&&(a="Ctrl-"+a),b.metaKey&&(a="Meta-"+a),!1!==c&&b.shiftKey&&(a="Shift-"+a),a}let fA=bn.default(ft.domEventHandlers({keydown:(a,b)=>fG(fD(b.state),a,b,"editor")})),fB=bf.define({enables:fA}),fC=new WeakMap;function fD(a){let b=a.facet(fB),c=fC.get(b);return c||fC.set(b,c=function(a,b=fy){let c=Object.create(null),d=Object.create(null),e=(a,b)=>{let c=d[a];if(null==c)d[a]=b;else if(c!=b)throw Error("Key binding "+a+" is used both as a regular binding and as a multi-stroke prefix")},f=(a,d,f,g,h)=>{var i,j;let k=c[a]||(c[a]=Object.create(null)),l=d.split(/ (?!$)/).map(a=>(function(a,b){let c,d,e,f,g=a.split(/-(?!$)/),h=g[g.length-1];"Space"==h&&(h=" ");for(let a=0;a<g.length-1;++a){let h=g[a];if(/^(cmd|meta|m)$/i.test(h))f=!0;else if(/^a(lt)?$/i.test(h))c=!0;else if(/^(c|ctrl|control)$/i.test(h))d=!0;else if(/^s(hift)?$/i.test(h))e=!0;else if(/^mod$/i.test(h))"mac"==b?f=!0:d=!0;else throw Error("Unrecognized modifier name: "+h)}return c&&(h="Alt-"+h),d&&(h="Ctrl-"+h),f&&(h="Meta-"+h),e&&(h="Shift-"+h),h})(a,b));for(let b=1;b<l.length;b++){let c=l.slice(0,b).join(" ");e(c,!0),k[c]||(k[c]={preventDefault:!0,stopPropagation:!1,run:[b=>{let d=fE={view:b,prefix:c,scope:a};return setTimeout(()=>{fE==d&&(fE=null)},4e3),!0}]})}let m=l.join(" ");e(m,!1);let n=k[m]||(k[m]={preventDefault:!1,stopPropagation:!1,run:(null==(j=null==(i=k._any)?void 0:i.run)?void 0:j.slice())||[]});f&&n.run.push(f),g&&(n.preventDefault=!0),h&&(n.stopPropagation=!0)};for(let d of a){let a=d.scope?d.scope.split(" "):["editor"];if(d.any)for(let b of a){let a=c[b]||(c[b]=Object.create(null));a._any||(a._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:e}=d;for(let b in a)a[b].run.push(a=>e(a,fF))}let e=d[b]||d.key;if(e)for(let b of a)f(b,e,d.run,d.preventDefault,d.stopPropagation),d.shift&&f(b,"Shift-"+e,d.shift,d.preventDefault,d.stopPropagation)}return c}(b.reduce((a,b)=>a.concat(b),[]))),c}let fE=null,fF=null;function fG(a,b,c,d){var e;fF=b;let f=("Esc"==(e=!(cd&&b.metaKey&&b.shiftKey&&!b.ctrlKey&&!b.altKey||ce&&b.shiftKey&&b.key&&1==b.key.length||"Unidentified"==b.key)&&b.key||(b.shiftKey?cc:cb)[b.keyCode]||b.key||"Unidentified")&&(e="Escape"),"Del"==e&&(e="Delete"),"Left"==e&&(e="ArrowLeft"),"Up"==e&&(e="ArrowUp"),"Right"==e&&(e="ArrowRight"),"Down"==e&&(e="ArrowDown"),e),g=a0(a$(f,0))==f.length&&" "!=f,h="",i=!1,j=!1,k=!1;fE&&fE.view==c&&fE.scope==d&&(h=fE.prefix+" ",0>ex.indexOf(b.keyCode)&&(j=!0,fE=null));let l=new Set,m=a=>{if(a){for(let b of a.run)if(!l.has(b)&&(l.add(b),b(c)))return a.stopPropagation&&(k=!0),!0;a.preventDefault&&(a.stopPropagation&&(k=!0),j=!0)}return!1},n=a[d],o,p;return n&&(m(n[h+fz(f,b,!g)])?i=!0:g&&(b.altKey||b.metaKey||b.ctrlKey)&&!(ct.windows&&b.ctrlKey&&b.altKey)&&!(ct.mac&&b.altKey&&!(b.ctrlKey||b.metaKey))&&(o=cb[b.keyCode])&&o!=f?m(n[h+fz(o,b,!0)])?i=!0:b.shiftKey&&(p=cc[b.keyCode])!=f&&p!=o&&m(n[h+fz(p,b,!1)])&&(i=!0):g&&b.shiftKey&&m(n[h+fz(f,b,!0)])&&(i=!0),!i&&m(n._any)&&(i=!0)),j&&(i=!0),i&&k&&b.stopPropagation(),fF=null,i}class fH{constructor(a,b,c,d,e){this.className=a,this.left=b,this.top=c,this.width=d,this.height=e}draw(){let a=document.createElement("div");return a.className=this.className,this.adjust(a),a}update(a,b){return b.className==this.className&&(this.adjust(a),!0)}adjust(a){a.style.left=this.left+"px",a.style.top=this.top+"px",null!=this.width&&(a.style.width=this.width+"px"),a.style.height=this.height+"px"}eq(a){return this.left==a.left&&this.top==a.top&&this.width==a.width&&this.height==a.height&&this.className==a.className}static forRange(a,b,c){if(!c.empty)return function(a,b,c){if(c.to<=a.viewport.from||c.from>=a.viewport.to)return[];let d=Math.max(c.from,a.viewport.from),e=Math.min(c.to,a.viewport.to),f=a.textDirection==c0.LTR,g=a.contentDOM,h=g.getBoundingClientRect(),i=fI(a),j=g.querySelector(".cm-line"),k=j&&window.getComputedStyle(j),l=h.left+(k?parseInt(k.paddingLeft)+Math.min(0,parseInt(k.textIndent)):0),m=h.right-(k?parseInt(k.paddingRight):0),n=ee(a,d,1),o=ee(a,e,-1),p=n.type==cz.Text?n:null,q=o.type==cz.Text?o:null;if(p&&(a.lineWrapping||n.widgetLineBreaks)&&(p=fJ(a,d,1,p)),q&&(a.lineWrapping||o.widgetLineBreaks)&&(q=fJ(a,e,-1,q)),p&&q&&p.from==q.from&&p.to==q.to)return s(t(c.from,c.to,p));{let b=p?t(c.from,null,p):u(n,!1),d=q?t(null,c.to,q):u(o,!0),e=[];return(p||n).to<(q||o).from-(p&&q?1:0)||n.widgetLineBreaks>1&&b.bottom+a.defaultLineHeight/2<d.top?e.push(r(l,b.bottom,m,d.top)):b.bottom<d.top&&a.elementAtHeight((b.bottom+d.top)/2).type==cz.Text&&(b.bottom=d.top=(b.bottom+d.top)/2),s(b).concat(e).concat(s(d))}function r(a,c,d,e){return new fH(b,a-i.left,c-i.top,Math.max(0,d-a),e-c)}function s({top:a,bottom:b,horizontal:c}){let d=[];for(let e=0;e<c.length;e+=2)d.push(r(c[e],a,c[e+1],b));return d}function t(b,c,d){let e=1e9,g=-1e9,h=[];function i(b,c,i,j,k){let n=a.coordsAtPos(b,b==d.to?-2:2),o=a.coordsAtPos(i,i==d.from?2:-2);n&&o&&(e=Math.min(n.top,o.top,e),g=Math.max(n.bottom,o.bottom,g),k==c0.LTR?h.push(f&&c?l:n.left,f&&j?m:o.right):h.push(!f&&j?l:o.left,!f&&c?m:n.right))}let j=null!=b?b:d.from,k=null!=c?c:d.to;for(let d of a.visibleRanges)if(d.to>j&&d.from<k)for(let e=Math.max(d.from,j),f=Math.min(d.to,k);;){let d=a.state.doc.lineAt(e);for(let g of a.bidiSpans(d)){let a=g.from+d.from,h=g.to+d.from;if(a>=f)break;h>e&&i(Math.max(a,e),null==b&&a<=j,Math.min(h,f),null==c&&h>=k,g.dir)}if((e=d.to+1)>=f)break}return 0==h.length&&i(j,null==b,k,null==c,a.textDirection),{top:e,bottom:g,horizontal:h}}function u(a,b){let c=h.top+(b?a.top:a.bottom);return{top:c,bottom:c,horizontal:[]}}}(a,b,c);{let d=a.coordsAtPos(c.head,c.assoc||1);if(!d)return[];let e=fI(a);return[new fH(b,d.left-e.left,d.top-e.top,null,d.bottom-d.top)]}}}function fI(a){let b=a.scrollDOM.getBoundingClientRect();return{left:(a.textDirection==c0.LTR?b.left:b.right-a.scrollDOM.clientWidth*a.scaleX)-a.scrollDOM.scrollLeft*a.scaleX,top:b.top-a.scrollDOM.scrollTop*a.scaleY}}function fJ(a,b,c,d){let e=a.coordsAtPos(b,2*c);if(!e)return d;let f=a.dom.getBoundingClientRect(),g=(e.top+e.bottom)/2,h=a.posAtCoords({x:f.left+1,y:g}),i=a.posAtCoords({x:f.right-1,y:g});return null==h||null==i?d:{from:Math.max(d.from,Math.min(h,i)),to:Math.min(d.to,Math.max(h,i))}}class fK{constructor(a,b){this.view=a,this.layer=b,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=a.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),b.above&&this.dom.classList.add("cm-layer-above"),b.class&&this.dom.classList.add(b.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(a.state),a.requestMeasure(this.measureReq),b.mount&&b.mount(this.dom,a)}update(a){a.startState.facet(fL)!=a.state.facet(fL)&&this.setOrder(a.state),(this.layer.update(a,this.dom)||a.geometryChanged)&&(this.scale(),a.view.requestMeasure(this.measureReq))}docViewUpdate(a){!1!==this.layer.updateOnDocViewUpdate&&a.requestMeasure(this.measureReq)}setOrder(a){let b=0,c=a.facet(fL);for(;b<c.length&&c[b]!=this.layer;)b++;this.dom.style.zIndex=String((this.layer.above?150:-1)-b)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:a,scaleY:b}=this.view;(a!=this.scaleX||b!=this.scaleY)&&(this.scaleX=a,this.scaleY=b,this.dom.style.transform=`scale(${1/a}, ${1/b})`)}draw(a){if(a.length!=this.drawn.length||a.some((a,b)=>{var c;return c=this.drawn[b],!(a.constructor==c.constructor&&a.eq(c))})){let b=this.dom.firstChild,c=0;for(let d of a)d.update&&b&&d.constructor&&this.drawn[c].constructor&&d.update(b,this.drawn[c])?(b=b.nextSibling,c++):this.dom.insertBefore(d.draw(),b);for(;b;){let a=b.nextSibling;b.remove(),b=a}this.drawn=a,ct.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}let fL=bf.define();function fM(a){return[dy.define(b=>new fK(b,a)),fL.of(a)]}let fN=bf.define({combine:a=>bN(a,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(a,b)=>Math.min(a,b),drawRangeCursor:(a,b)=>a||b})});function fO(a){return a.startState.facet(fN)!=a.state.facet(fN)}let fP=fM({above:!0,markers(a){let{state:b}=a,c=b.facet(fN),d=[];for(let e of b.selection.ranges){let f=e==b.selection.main;if(e.empty||c.drawRangeCursor&&!(f&&ct.ios&&c.iosSelectionHandles)){let b=f?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",c=e.empty?e:bc.cursor(e.head,e.assoc);for(let e of fH.forRange(a,b,c))d.push(e)}}return d},update(a,b){a.transactions.some(a=>a.selection)&&(b.style.animationName="cm-blink"==b.style.animationName?"cm-blink2":"cm-blink");let c=fO(a);return c&&fQ(a.state,b),a.docChanged||a.selectionSet||c},mount(a,b){fQ(b.state,a)},class:"cm-cursorLayer"});function fQ(a,b){b.style.animationDuration=a.facet(fN).cursorBlinkRate+"ms"}let fR=fM({above:!1,markers(a){let b=[],{main:c,ranges:d}=a.state.selection;for(let c of d)if(!c.empty)for(let d of fH.forRange(a,"cm-selectionBackground",c))b.push(d);if(ct.ios&&!c.empty&&a.state.facet(fN).iosSelectionHandles){for(let d of fH.forRange(a,"cm-selectionHandle cm-selectionHandle-start",bc.cursor(c.from,1)))b.push(d);for(let d of fH.forRange(a,"cm-selectionHandle cm-selectionHandle-end",bc.cursor(c.to,1)))b.push(d)}return b},update:(a,b)=>a.docChanged||a.selectionSet||a.viewportChanged||fO(a),class:"cm-selectionLayer"}),fS=bn.highest(ft.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),fT=bE.define({map:(a,b)=>null==a?null:b.mapPos(a)}),fU=bl.define({create:()=>null,update:(a,b)=>(null!=a&&(a=b.changes.mapPos(a)),b.effects.reduce((a,b)=>b.is(fT)?b.value:a,a))}),fV=dy.fromClass(class{constructor(a){this.view=a,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(a){var b;let c=a.state.field(fU);null==c?null!=this.cursor&&(null==(b=this.cursor)||b.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(a.startState.field(fU)!=c||a.docChanged||a.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:a}=this,b=a.state.field(fU),c=null!=b&&a.coordsAtPos(b);if(!c)return null;let d=a.scrollDOM.getBoundingClientRect();return{left:c.left-d.left+a.scrollDOM.scrollLeft*a.scaleX,top:c.top-d.top+a.scrollDOM.scrollTop*a.scaleY,height:c.bottom-c.top}}drawCursor(a){if(this.cursor){let{scaleX:b,scaleY:c}=this.view;a?(this.cursor.style.left=a.left/b+"px",this.cursor.style.top=a.top/c+"px",this.cursor.style.height=a.height/c+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(a){this.view.state.field(fU)!=a&&this.view.dispatch({effects:fT.of(a)})}},{eventObservers:{dragover(a){this.setDropPos(this.view.posAtCoords({x:a.clientX,y:a.clientY}))},dragleave(a){a.target!=this.view.contentDOM&&this.view.contentDOM.contains(a.relatedTarget)||this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function fW(a,b,c,d,e){b.lastIndex=0;for(let f=a.iterRange(c,d),g=c,h;!f.next().done;g+=f.value.length)if(!f.lineBreak)for(;h=b.exec(f.value);)e(g+h.index,h)}class fX{constructor(a){const{regexp:b,decoration:c,decorate:d,boundary:e,maxLength:f=1e3}=a;if(!b.global)throw RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=b,d)this.addMatch=(a,b,c,e)=>d(e,c,c+a[0].length,a,b);else if("function"==typeof c)this.addMatch=(a,b,d,e)=>{let f=c(a,b,d);f&&e(d,d+a[0].length,f)};else if(c)this.addMatch=(a,b,d,e)=>e(d,d+a[0].length,c);else throw RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=e,this.maxLength=f}createDeco(a){let b=new bU,c=b.add.bind(b);for(let{from:b,to:d}of function(a,b){let c=a.visibleRanges;if(1==c.length&&c[0].from==a.viewport.from&&c[0].to==a.viewport.to)return c;let d=[];for(let{from:e,to:f}of c)e=Math.max(a.state.doc.lineAt(e).from,e-b),f=Math.min(a.state.doc.lineAt(f).to,f+b),d.length&&d[d.length-1].to>=e?d[d.length-1].to=f:d.push({from:e,to:f});return d}(a,this.maxLength))fW(a.state.doc,this.regexp,b,d,(b,d)=>this.addMatch(d,a,b,c));return b.finish()}updateDeco(a,b){let c=1e9,d=-1;return(a.docChanged&&a.changes.iterChanges((b,e,f,g)=>{g>=a.view.viewport.from&&f<=a.view.viewport.to&&(c=Math.min(f,c),d=Math.max(g,d))}),a.viewportMoved||d-c>1e3)?this.createDeco(a.view):d>-1?this.updateRange(a.view,b.map(a.changes),c,d):b}updateRange(a,b,c,d){for(let e of a.visibleRanges){let f=Math.max(e.from,c),g=Math.min(e.to,d);if(g>=f){let c=a.state.doc.lineAt(f),d=c.to<g?a.state.doc.lineAt(g):c,h=Math.max(e.from,c.from),i=Math.min(e.to,d.to);if(this.boundary){for(;f>c.from;f--)if(this.boundary.test(c.text[f-1-c.from])){h=f;break}for(;g<d.to;g++)if(this.boundary.test(d.text[g-d.from])){i=g;break}}let j=[],k,l=(a,b,c)=>j.push(c.range(a,b));if(c==d)for(this.regexp.lastIndex=h-c.from;(k=this.regexp.exec(c.text))&&k.index<i-c.from;)this.addMatch(k,a,k.index+c.from,l);else fW(a.state.doc,this.regexp,h,i,(b,c)=>this.addMatch(c,a,b,l));b=b.update({filterFrom:h,filterTo:i,filter:(a,b)=>a<h||b>i,add:j})}}return b}}let fY=null!=/x/.unicode?"gu":"g",fZ=RegExp("[\0-\b\n-\x1f-\u2028\u2029\uFEFF-]",fY),f$={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},f_=null,f0=bf.define({combine(a){let b=bN(a,{render:null,specialChars:fZ,addSpecialChars:null});return(b.replaceTabs=!function(){var a;if(null==f_&&"u">typeof document&&document.body){let b=document.body.style;f_=(null!=(a=b.tabSize)?a:b.MozTabSize)!=null}return f_||!1}())&&(b.specialChars=RegExp(" |"+b.specialChars.source,fY)),b.addSpecialChars&&(b.specialChars=RegExp(b.specialChars.source+"|"+b.addSpecialChars.source,fY)),b}}),f1=null;class f2 extends cy{constructor(a,b){super(),this.options=a,this.code=b}eq(a){return a.code==this.code}toDOM(a){var b;let c=(b=this.code)>=32?"•":10==b?"":String.fromCharCode(9216+b),d=a.state.phrase("Control character")+" "+(f$[this.code]||"0x"+this.code.toString(16)),e=this.options.render&&this.options.render(this.code,d,c);if(e)return e;let f=document.createElement("span");return f.textContent=c,f.title=d,f.setAttribute("aria-label",d),f.className="cm-specialChar",f}ignoreEvent(){return!1}}class f3 extends cy{constructor(a){super(),this.width=a}eq(a){return a.width==this.width}toDOM(){let a=document.createElement("span");return a.textContent=" ",a.className="cm-tab",a.style.width=this.width+"px",a}ignoreEvent(){return!1}}let f4=cA.line({class:"cm-activeLine"}),f5=dy.fromClass(class{constructor(a){this.decorations=this.getDeco(a)}update(a){(a.docChanged||a.selectionSet)&&(this.decorations=this.getDeco(a.view))}getDeco(a){let b=-1,c=[];for(let d of a.state.selection.ranges){let e=a.lineBlockAt(d.head);e.from>b&&(c.push(f4.range(e.from)),b=e.from)}return cA.set(c)}},{decorations:a=>a.decorations});function f6(a,b){var c;let d,e=a.posAtCoords({x:b.clientX,y:b.clientY},!1),f=a.state.doc.lineAt(e),g=e-f.from,h=g>2e3?-1:g==f.length?(c=b.clientX,(d=a.coordsAtPos(a.viewport.from))?Math.round(Math.abs((d.left-c)/a.defaultCharacterWidth)):-1):b3(f.text,a.state.tabSize,e-f.from);return{line:f.number,col:h,off:g}}let f7={Alt:[18,a=>!!a.altKey],Control:[17,a=>!!a.ctrlKey],Shift:[16,a=>!!a.shiftKey],Meta:[91,a=>!!a.metaKey]},f8={style:"cursor: crosshair"},f9="-10000px";class ga{constructor(a,b,c,d){this.facet=b,this.createTooltipView=c,this.removeTooltipView=d,this.input=a.state.facet(b),this.tooltips=this.input.filter(a=>a);let e=null;this.tooltipViews=this.tooltips.map(a=>e=c(a,e))}update(a,b){var c;let d=a.state.facet(this.facet),e=d.filter(a=>a);if(d===this.input){for(let b of this.tooltipViews)b.update&&b.update(a);return!1}let f=[],g=b?[]:null;for(let c=0;c<e.length;c++){let d=e[c],h=-1;if(d){for(let a=0;a<this.tooltips.length;a++){let b=this.tooltips[a];b&&b.create==d.create&&(h=a)}if(h<0)f[c]=this.createTooltipView(d,c?f[c-1]:null),g&&(g[c]=!!d.above);else{let d=f[c]=this.tooltipViews[h];g&&(g[c]=b[h]),d.update&&d.update(a)}}}for(let a of this.tooltipViews)0>f.indexOf(a)&&(this.removeTooltipView(a),null==(c=a.destroy)||c.call(a));return b&&(g.forEach((a,c)=>b[c]=a),b.length=g.length),this.input=d,this.tooltips=e,this.tooltipViews=f,!0}}function gb(a){let b=a.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:b.clientHeight,right:b.clientWidth}}let gc=bf.define({combine:a=>{var b,c,d;return{position:ct.ios?"absolute":(null==(b=a.find(a=>a.position))?void 0:b.position)||"fixed",parent:(null==(c=a.find(a=>a.parent))?void 0:c.parent)||null,tooltipSpace:(null==(d=a.find(a=>a.tooltipSpace))?void 0:d.tooltipSpace)||gb}}}),gd=new WeakMap,ge=dy.fromClass(class{constructor(a){this.view=a,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let b=a.state.facet(gc);this.position=b.position,this.parent=b.parent,this.classes=a.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver="function"==typeof ResizeObserver?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new ga(a,gi,(a,b)=>this.createTooltip(a,b),a=>{this.resizeObserver&&this.resizeObserver.unobserve(a.dom),a.dom.remove()}),this.above=this.manager.tooltips.map(a=>!!a.above),this.intersectionObserver="function"==typeof IntersectionObserver?new IntersectionObserver(a=>{Date.now()>this.lastTransaction-50&&a.length>0&&a[a.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),a.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver)for(let a of(this.intersectionObserver.disconnect(),this.manager.tooltipViews))this.intersectionObserver.observe(a.dom)}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(a){a.transactions.length&&(this.lastTransaction=Date.now());let b=this.manager.update(a,this.above);b&&this.observeIntersection();let c=b||a.geometryChanged,d=a.state.facet(gc);if(d.position!=this.position&&!this.madeAbsolute){for(let a of(this.position=d.position,this.manager.tooltipViews))a.dom.style.position=this.position;c=!0}if(d.parent!=this.parent){for(let a of(this.parent&&this.container.remove(),this.parent=d.parent,this.createContainer(),this.manager.tooltipViews))this.container.appendChild(a.dom);c=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);c&&this.maybeMeasure()}createTooltip(a,b){let c=a.create(this.view),d=b?b.dom:null;if(c.dom.classList.add("cm-tooltip"),a.arrow&&!c.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let a=document.createElement("div");a.className="cm-tooltip-arrow",c.dom.appendChild(a)}return c.dom.style.position=this.position,c.dom.style.top=f9,c.dom.style.left="0px",this.container.insertBefore(c.dom,d),c.mount&&c.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(c.dom),c}destroy(){var a,b,c;for(let b of(this.view.win.removeEventListener("resize",this.measureSoon),this.manager.tooltipViews))b.dom.remove(),null==(a=b.destroy)||a.call(b);this.parent&&this.container.remove(),null==(b=this.resizeObserver)||b.disconnect(),null==(c=this.intersectionObserver)||c.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let a=1,b=1,c=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{dom:a}=this.manager.tooltipViews[0];if(ct.safari){let b=a.getBoundingClientRect();c=Math.abs(b.top+1e4)>1||Math.abs(b.left)>1}else c=!!a.offsetParent&&a.offsetParent!=this.container.ownerDocument.body}if(c||"absolute"==this.position)if(this.parent){let c=this.parent.getBoundingClientRect();c.width&&c.height&&(a=c.width/this.parent.offsetWidth,b=c.height/this.parent.offsetHeight)}else({scaleX:a,scaleY:b}=this.view.viewState);let d=this.view.scrollDOM.getBoundingClientRect(),e=dJ(this.view);return{visible:{left:d.left+e.left,top:d.top+e.top,right:d.right-e.right,bottom:d.bottom-e.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((a,b)=>{let c=this.manager.tooltipViews[b];return c.getCoords?c.getCoords(a.pos):this.view.coordsAtPos(a.pos)}),size:this.manager.tooltipViews.map(({dom:a})=>a.getBoundingClientRect()),space:this.view.state.facet(gc).tooltipSpace(this.view),scaleX:a,scaleY:b,makeAbsolute:c}}writeMeasure(a){var b;if(a.makeAbsolute)for(let a of(this.madeAbsolute=!0,this.position="absolute",this.manager.tooltipViews))a.dom.style.position="absolute";let{visible:c,space:d,scaleX:e,scaleY:f}=a,g=[];for(let h=0;h<this.manager.tooltips.length;h++){let i=this.manager.tooltips[h],j=this.manager.tooltipViews[h],{dom:k}=j,l=a.pos[h],m=a.size[h];if(!l||!1!==i.clip&&(l.bottom<=Math.max(c.top,d.top)||l.top>=Math.min(c.bottom,d.bottom)||l.right<Math.max(c.left,d.left)-.1||l.left>Math.min(c.right,d.right)+.1)){k.style.top=f9;continue}let n=i.arrow?j.dom.querySelector(".cm-tooltip-arrow"):null,o=7*!!n,p=m.right-m.left,q=null!=(b=gd.get(j))?b:m.bottom-m.top,r=j.offset||gh,s=this.view.textDirection==c0.LTR,t=m.width>d.right-d.left?s?d.left:d.right-m.width:s?Math.max(d.left,Math.min(l.left-14*!!n+r.x,d.right-p)):Math.min(Math.max(d.left,l.left-p+14*!!n-r.x),d.right-p),u=this.above[h];!i.strictSide&&(u?l.top-q-o-r.y<d.top:l.bottom+q+o+r.y>d.bottom)&&u==d.bottom-l.bottom>l.top-d.top&&(u=this.above[h]=!u);let v=(u?l.top-d.top:d.bottom-l.bottom)-o;if(v<q&&!1!==j.resize){if(v<this.view.defaultLineHeight){k.style.top=f9;continue}gd.set(j,q),k.style.height=(q=v)/f+"px"}else k.style.height&&(k.style.height="");let w=u?l.top-q-o-r.y:l.bottom+o+r.y,x=t+p;if(!0!==j.overlap)for(let a of g)a.left<x&&a.right>t&&a.top<w+q&&a.bottom>w&&(w=u?a.top-q-2-o:a.bottom+o+2);if("absolute"==this.position?(k.style.top=(w-a.parent.top)/f+"px",gf(k,(t-a.parent.left)/e)):(k.style.top=w/f+"px",gf(k,t/e)),n){let a=l.left+(s?r.x:-r.x)-(t+14-7);n.style.left=a/e+"px"}!0!==j.overlap&&g.push({left:t,top:w,right:x,bottom:w+q}),k.classList.toggle("cm-tooltip-above",u),k.classList.toggle("cm-tooltip-below",!u),j.positioned&&j.positioned(a.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView)&&(this.inView=this.view.inView,!this.inView))for(let a of this.manager.tooltipViews)a.dom.style.top=f9}},{eventObservers:{scroll(){this.maybeMeasure()}}});function gf(a,b){let c=parseInt(a.style.left,10);(isNaN(c)||Math.abs(b-c)>1)&&(a.style.left=b+"px")}let gg=ft.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),gh={x:0,y:0},gi=bf.define({enables:[ge,gg]}),gj=bf.define({combine:a=>a.reduce((a,b)=>a.concat(b),[])});class gk{static create(a){return new gk(a)}constructor(a){this.view=a,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new ga(a,gj,(a,b)=>this.createHostedView(a,b),a=>a.dom.remove())}createHostedView(a,b){let c=a.create(this.view);return c.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(c.dom,b?b.dom.nextSibling:this.dom.firstChild),this.mounted&&c.mount&&c.mount(this.view),c}mount(a){for(let b of this.manager.tooltipViews)b.mount&&b.mount(a);this.mounted=!0}positioned(a){for(let b of this.manager.tooltipViews)b.positioned&&b.positioned(a)}update(a){this.manager.update(a)}destroy(){var a;for(let b of this.manager.tooltipViews)null==(a=b.destroy)||a.call(b)}passProp(a){let b;for(let c of this.manager.tooltipViews){let d=c[a];if(void 0!==d){if(void 0===b)b=d;else if(b!==d)return}}return b}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}let gl=gi.compute([gj],a=>{let b=a.facet(gj);return 0===b.length?null:{pos:Math.min(...b.map(a=>a.pos)),end:Math.max(...b.map(a=>{var b;return null!=(b=a.end)?b:a.pos})),create:gk.create,above:b[0].above,arrow:b.some(a=>a.arrow)}});class gm{constructor(a,b,c,d,e){this.view=a,this.source=b,this.field=c,this.setHover=d,this.hoverTime=e,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:a.dom,time:0},this.checkHover=this.checkHover.bind(this),a.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),a.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let a=Date.now()-this.lastMove.time;a<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-a):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:a,lastMove:b}=this,c=a.docView.tile.nearest(b.target);if(!c)return;let d,e=1;if(c.isWidget())d=c.posAtStart;else{if(null==(d=a.posAtCoords(b)))return;let c=a.coordsAtPos(d);if(!c||b.y<c.top||b.y>c.bottom||b.x<c.left-a.defaultCharacterWidth||b.x>c.right+a.defaultCharacterWidth)return;let f=a.bidiSpans(a.state.doc.lineAt(d)).find(a=>a.from<=d&&a.to>=d),g=f&&f.dir==c0.RTL?-1:1;e=b.x<c.left?-g:g}let f=this.source(a,d,e);if(null==f?void 0:f.then){let b=this.pending={pos:d};f.then(c=>{this.pending==b&&(this.pending=null,c&&!(Array.isArray(c)&&!c.length)&&a.dispatch({effects:this.setHover.of(Array.isArray(c)?c:[c])}))},b=>du(a.state,b,"hover tooltip"))}else f&&!(Array.isArray(f)&&!f.length)&&a.dispatch({effects:this.setHover.of(Array.isArray(f)?f:[f])})}get tooltip(){let a=this.view.plugin(ge),b=a?a.manager.tooltips.findIndex(a=>a.create==gk.create):-1;return b>-1?a.manager.tooltipViews[b]:null}mousemove(a){var b,c;this.lastMove={x:a.clientX,y:a.clientY,target:a.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:d,tooltip:e}=this;if(d.length&&e&&!function(a,b){let{left:c,right:d,top:e,bottom:f}=a.getBoundingClientRect(),g;if(g=a.querySelector(".cm-tooltip-arrow")){let a=g.getBoundingClientRect();e=Math.min(a.top,e),f=Math.max(a.bottom,f)}return b.clientX>=c-4&&b.clientX<=d+4&&b.clientY>=e-4&&b.clientY<=f+4}(e.dom,a)||this.pending){let{pos:e}=d[0]||this.pending,f=null!=(c=null==(b=d[0])?void 0:b.end)?c:e;(e==f?this.view.posAtCoords(this.lastMove)!=e:!function(a,b,c,d,e){let f=a.scrollDOM.getBoundingClientRect(),g=a.documentTop+a.documentPadding.top+a.contentHeight;if(f.left>d||f.right<d||f.top>e||Math.min(f.bottom,g)<e)return!1;let h=a.posAtCoords({x:d,y:e},!1);return h>=b&&h<=c}(this.view,e,f,a.clientX,a.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(a){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:b}=this;if(b.length){let{tooltip:b}=this;b&&b.dom.contains(a.relatedTarget)?this.watchTooltipLeave(b.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(a){let b=c=>{a.removeEventListener("mouseleave",b),this.active.length&&!this.view.dom.contains(c.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};a.addEventListener("mouseleave",b)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function gn(a,b){let c=a.plugin(ge);if(!c)return null;let d=c.manager.tooltips.indexOf(b);return d<0?null:c.manager.tooltipViews[d]}let go=bE.define(),gp=bf.define({combine(a){let b,c;for(let d of a)b=b||d.topContainer,c=c||d.bottomContainer;return{topContainer:b,bottomContainer:c}}});function gq(a,b){let c=a.plugin(gr),d=c?c.specs.indexOf(b):-1;return d>-1?c.panels[d]:null}let gr=dy.fromClass(class{constructor(a){this.input=a.state.facet(gu),this.specs=this.input.filter(a=>a),this.panels=this.specs.map(b=>b(a));let b=a.state.facet(gp);for(let c of(this.top=new gs(a,!0,b.topContainer),this.bottom=new gs(a,!1,b.bottomContainer),this.top.sync(this.panels.filter(a=>a.top)),this.bottom.sync(this.panels.filter(a=>!a.top)),this.panels))c.dom.classList.add("cm-panel"),c.mount&&c.mount()}update(a){let b=a.state.facet(gp);this.top.container!=b.topContainer&&(this.top.sync([]),this.top=new gs(a.view,!0,b.topContainer)),this.bottom.container!=b.bottomContainer&&(this.bottom.sync([]),this.bottom=new gs(a.view,!1,b.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let c=a.state.facet(gu);if(c!=this.input){let b=c.filter(a=>a),d=[],e=[],f=[],g=[];for(let c of b){let b=this.specs.indexOf(c),h;b<0?(h=c(a.view),g.push(h)):(h=this.panels[b]).update&&h.update(a),d.push(h),(h.top?e:f).push(h)}for(let a of(this.specs=b,this.panels=d,this.top.sync(e),this.bottom.sync(f),g))a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let b of this.panels)b.update&&b.update(a)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:a=>ft.scrollMargins.of(b=>{let c=b.plugin(a);return c&&{top:c.top.scrollMargin(),bottom:c.bottom.scrollMargin()}})});class gs{constructor(a,b,c){this.view=a,this.top=b,this.container=c,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(a){for(let b of this.panels)b.destroy&&0>a.indexOf(b)&&b.destroy();this.panels=a,this.syncDOM()}syncDOM(){if(0==this.panels.length){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let a=this.container||this.view.dom;a.insertBefore(this.dom,this.top?a.firstChild:null)}let a=this.dom.firstChild;for(let b of this.panels)if(b.dom.parentNode==this.dom){for(;a!=b.dom;)a=gt(a);a=a.nextSibling}else this.dom.insertBefore(b.dom,a);for(;a;)a=gt(a)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let a of this.classes.split(" "))a&&this.container.classList.remove(a);for(let a of(this.classes=this.view.themeClasses).split(" "))a&&this.container.classList.add(a)}}}function gt(a){let b=a.nextSibling;return a.remove(),b}let gu=bf.define({enables:gr}),gv=bl.define({create:()=>[],update(a,b){for(let c of b.effects)c.is(gw)?a=[c.value].concat(a):c.is(gx)&&(a=a.filter(a=>a!=c.value));return a},provide:a=>gu.computeN([a],b=>b.field(a))}),gw=bE.define(),gx=bE.define();class gy extends bO{compare(a){return this==a||this.constructor==a.constructor&&this.eq(a)}eq(a){return!1}destroy(a){}}gy.prototype.elementClass="",gy.prototype.toDOM=void 0,gy.prototype.mapMode=a2.TrackBefore,gy.prototype.startSide=gy.prototype.endSide=-1,gy.prototype.point=!0;let gz=bf.define(),gA=bf.define(),gB={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>bT.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},gC=bf.define(),gD=bf.define({combine:a=>a.some(a=>a)});function gE(a){let b=[gF];return a&&!1===a.fixed&&b.push(gD.of(!0)),b}let gF=dy.fromClass(class{constructor(a){for(let b of(this.view=a,this.domAfter=null,this.prevViewport=a.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=a.state.facet(gC).map(b=>new gJ(a,b)),this.fixed=!a.state.facet(gD),this.gutters))"after"==b.config.side?this.getDOMAfter().appendChild(b.dom):this.dom.appendChild(b.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),a.scrollDOM.insertBefore(this.dom,a.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(a){if(this.updateGutters(a)){let b=this.prevViewport,c=a.view.viewport,d=Math.min(b.to,c.to)-Math.max(b.from,c.from);this.syncGutters(d<(c.to-c.from)*.8)}if(a.geometryChanged){let a=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=a,this.domAfter&&(this.domAfter.style.minHeight=a)}this.view.state.facet(gD)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=a.view.viewport}syncGutters(a){let b=this.dom.nextSibling;a&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let c=bT.iter(this.view.state.facet(gz),this.view.viewport.from),d=[],e=this.gutters.map(a=>new gI(a,this.view.viewport,-this.view.documentPadding.top));for(let a of this.view.viewportLineBlocks)if(d.length&&(d=[]),Array.isArray(a.type)){let b=!0;for(let f of a.type)if(f.type==cz.Text&&b){for(let a of(gH(c,d,f.from),e))a.line(this.view,f,d);b=!1}else if(f.widget)for(let a of e)a.widget(this.view,f)}else if(a.type==cz.Text)for(let b of(gH(c,d,a.from),e))b.line(this.view,a,d);else if(a.widget)for(let b of e)b.widget(this.view,a);for(let a of e)a.finish();a&&(this.view.scrollDOM.insertBefore(this.dom,b),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(a){let b=a.startState.facet(gC),c=a.state.facet(gC),d=a.docChanged||a.heightChanged||a.viewportChanged||!bT.eq(a.startState.facet(gz),a.state.facet(gz),a.view.viewport.from,a.view.viewport.to);if(b==c)for(let b of this.gutters)b.update(a)&&(d=!0);else{d=!0;let e=[];for(let d of c){let c=b.indexOf(d);c<0?e.push(new gJ(this.view,d)):(this.gutters[c].update(a),e.push(this.gutters[c]))}for(let a of this.gutters)a.dom.remove(),0>e.indexOf(a)&&a.destroy();for(let a of e)"after"==a.config.side?this.getDOMAfter().appendChild(a.dom):this.dom.appendChild(a.dom);this.gutters=e}return d}destroy(){for(let a of this.gutters)a.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:a=>ft.scrollMargins.of(b=>{let c=b.plugin(a);if(!c||0==c.gutters.length||!c.fixed)return null;let d=c.dom.offsetWidth*b.scaleX,e=c.domAfter?c.domAfter.offsetWidth*b.scaleX:0;return b.textDirection==c0.LTR?{left:d,right:e}:{right:d,left:e}})});function gG(a){return Array.isArray(a)?a:[a]}function gH(a,b,c){for(;a.value&&a.from<=c;)a.from==c&&b.push(a.value),a.next()}class gI{constructor(a,b,c){this.gutter=a,this.height=c,this.i=0,this.cursor=bT.iter(a.markers,b.from)}addElement(a,b,c){let{gutter:d}=this,e=(b.top-this.height)/a.scaleY,f=b.height/a.scaleY;if(this.i==d.elements.length){let b=new gK(a,f,e,c);d.elements.push(b),d.dom.appendChild(b.dom)}else d.elements[this.i].update(a,f,e,c);this.height=b.bottom,this.i++}line(a,b,c){let d=[];gH(this.cursor,d,b.from),c.length&&(d=d.concat(c));let e=this.gutter.config.lineMarker(a,b,d);e&&d.unshift(e);let f=this.gutter;(0!=d.length||f.config.renderEmptyElements)&&this.addElement(a,b,d)}widget(a,b){let c=this.gutter.config.widgetMarker(a,b.widget,b),d=c?[c]:null;for(let c of a.state.facet(gA)){let e=c(a,b.widget,b);e&&(d||(d=[])).push(e)}d&&this.addElement(a,b,d)}finish(){let a=this.gutter;for(;a.elements.length>this.i;){let b=a.elements.pop();a.dom.removeChild(b.dom),b.destroy()}}}class gJ{constructor(a,b){for(let c in this.view=a,this.config=b,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:""),b.domEventHandlers)this.dom.addEventListener(c,d=>{let e=d.target,f;if(e!=this.dom&&this.dom.contains(e)){for(;e.parentNode!=this.dom;)e=e.parentNode;let a=e.getBoundingClientRect();f=(a.top+a.bottom)/2}else f=d.clientY;let g=a.lineBlockAtHeight(f-a.documentTop);b.domEventHandlers[c](a,g,d)&&d.preventDefault()});this.markers=gG(b.markers(a)),b.initialSpacer&&(this.spacer=new gK(a,0,0,[b.initialSpacer(a)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(a){let b=this.markers;if(this.markers=gG(this.config.markers(a.view)),this.spacer&&this.config.updateSpacer){let b=this.config.updateSpacer(this.spacer.markers[0],a);b!=this.spacer.markers[0]&&this.spacer.update(a.view,0,0,[b])}let c=a.view.viewport;return!bT.eq(this.markers,b,c.from,c.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(a)}destroy(){for(let a of this.elements)a.destroy()}}class gK{constructor(a,b,c,d){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(a,b,c,d)}update(a,b,c,d){this.height!=b&&(this.height=b,this.dom.style.height=b+"px"),this.above!=c&&(this.dom.style.marginTop=(this.above=c)?c+"px":""),!function(a,b){if(a.length!=b.length)return!1;for(let c=0;c<a.length;c++)if(!a[c].compare(b[c]))return!1;return!0}(this.markers,d)&&this.setMarkers(a,d)}setMarkers(a,b){let c="cm-gutterElement",d=this.dom.firstChild;for(let e=0,f=0;;){let g=f,h=e<b.length?b[e++]:null,i=!1;if(h){let a=h.elementClass;a&&(c+=" "+a);for(let a=f;a<this.markers.length;a++)if(this.markers[a].compare(h)){g=a,i=!0;break}}else g=this.markers.length;for(;f<g;){let a=this.markers[f++];if(a.toDOM){a.destroy(d);let b=d.nextSibling;d.remove(),d=b}}if(!h)break;h.toDOM&&(i?d=d.nextSibling:this.dom.insertBefore(h.toDOM(a),d)),i&&f++}this.dom.className=c,this.markers=b}destroy(){this.setMarkers(null,[])}}let gL=bf.define(),gM=bf.define(),gN=bf.define({combine:a=>bN(a,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(a,b){let c=Object.assign({},a);for(let a in b){let d=c[a],e=b[a];c[a]=d?(a,b,c)=>d(a,b,c)||e(a,b,c):e}return c}})});class gO extends gy{constructor(a){super(),this.number=a}eq(a){return this.number==a.number}toDOM(){return document.createTextNode(this.number)}}function gP(a,b){return a.state.facet(gN).formatNumber(b,a.state)}let gQ=gC.compute([gN],a=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:a=>a.state.facet(gL),lineMarker:(a,b,c)=>c.some(a=>a.toDOM)?null:new gO(gP(a,a.state.doc.lineAt(b.from).number)),widgetMarker:(a,b,c)=>{for(let d of a.state.facet(gM)){let e=d(a,b,c);if(e)return e}return null},lineMarkerChange:a=>a.startState.facet(gN)!=a.state.facet(gN),initialSpacer:a=>new gO(gP(a,gR(a.state.doc.lines))),updateSpacer(a,b){let c=gP(b.view,gR(b.view.state.doc.lines));return c==a.number?a:new gO(c)},domEventHandlers:a.facet(gN).domEventHandlers,side:"before"}));function gR(a){let b=9;for(;b<a;)b=10*b+9;return b}let gS=new class extends gy{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},gT=gz.compute(["selection"],a=>{let b=[],c=-1;for(let d of a.selection.ranges){let e=a.doc.lineAt(d.head).from;e>c&&(c=e,b.push(gS.range(e)))}return bT.of(b)}),gU=0;class gV{constructor(a,b){this.from=a,this.to=b}}class gW{constructor(a={}){this.id=gU++,this.perNode=!!a.perNode,this.deserialize=a.deserialize||(()=>{throw Error("This node type doesn't define a deserialize function")}),this.combine=a.combine||null}add(a){if(this.perNode)throw RangeError("Can't add per-node props to node types");return"function"!=typeof a&&(a=gZ.match(a)),b=>{let c=a(b);return void 0===c?null:[this,c]}}}gW.closedBy=new gW({deserialize:a=>a.split(" ")}),gW.openedBy=new gW({deserialize:a=>a.split(" ")}),gW.group=new gW({deserialize:a=>a.split(" ")}),gW.isolate=new gW({deserialize:a=>{if(a&&"rtl"!=a&&"ltr"!=a&&"auto"!=a)throw RangeError("Invalid value for isolate: "+a);return a||"auto"}}),gW.contextHash=new gW({perNode:!0}),gW.lookAhead=new gW({perNode:!0}),gW.mounted=new gW({perNode:!0});class gX{constructor(a,b,c,d=!1){this.tree=a,this.overlay=b,this.parser=c,this.bracketed=d}static get(a){return a&&a.props&&a.props[gW.mounted.id]}}let gY=Object.create(null);class gZ{constructor(a,b,c,d=0){this.name=a,this.props=b,this.id=c,this.flags=d}static define(a){let b=a.props&&a.props.length?Object.create(null):gY,c=!!a.top|2*!!a.skipped|4*!!a.error|8*(null==a.name),d=new gZ(a.name||"",b,a.id,c);if(a.props){for(let c of a.props)if(Array.isArray(c)||(c=c(d)),c){if(c[0].perNode)throw RangeError("Can't store a per-node prop on a node type");b[c[0].id]=c[1]}}return d}prop(a){return this.props[a.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(a){if("string"==typeof a){if(this.name==a)return!0;let b=this.prop(gW.group);return!!b&&b.indexOf(a)>-1}return this.id==a}static match(a){let b=Object.create(null);for(let c in a)for(let d of c.split(" "))b[d]=a[c];return a=>{for(let c=a.prop(gW.group),d=-1;d<(c?c.length:0);d++){let e=b[d<0?a.name:c[d]];if(e)return e}}}}gZ.none=new gZ("",Object.create(null),0,8);class g${constructor(a){this.types=a;for(let b=0;b<a.length;b++)if(a[b].id!=b)throw RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...a){let b=[];for(let c of this.types){let d=null;for(let b of a){let a=b(c);if(a){d||(d=Object.assign({},c.props));let b=a[1],e=a[0];e.combine&&e.id in d&&(b=e.combine(d[e.id],b)),d[e.id]=b}}b.push(d?new gZ(c.name,d,c.id,c.flags):c)}return new g$(b)}}let g_=new WeakMap,g0=new WeakMap;(pS=pU||(pU={}))[pS.ExcludeBuffers=1]="ExcludeBuffers",pS[pS.IncludeAnonymous=2]="IncludeAnonymous",pS[pS.IgnoreMounts=4]="IgnoreMounts",pS[pS.IgnoreOverlays=8]="IgnoreOverlays",pS[pS.EnterBracketed=16]="EnterBracketed";class g1{constructor(a,b,c,d,e){if(this.type=a,this.children=b,this.positions=c,this.length=d,this.props=null,e&&e.length)for(let[a,b]of(this.props=Object.create(null),e))this.props["number"==typeof a?a:a.id]=b}toString(){let a=gX.get(this);if(a&&!a.overlay)return a.tree.toString();let b="";for(let a of this.children){let c=a.toString();c&&(b&&(b+=","),b+=c)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(b.length?"("+b+")":""):b}cursor(a=0){return new he(this.topNode,a)}cursorAt(a,b=0,c=0){let d=new he(g_.get(this)||this.topNode);return d.moveTo(a,b),g_.set(this,d._tree),d}get topNode(){return new g7(this,0,0,null)}resolve(a,b=0){let c=g5(g_.get(this)||this.topNode,a,b,!1);return g_.set(this,c),c}resolveInner(a,b=0){let c=g5(g0.get(this)||this.topNode,a,b,!0);return g0.set(this,c),c}resolveStack(a,b=0){return function(a,b,c){let d=a.resolveInner(b,c),e=null;for(let a=d instanceof g7?d:d.context.parent;a;a=a.parent)if(a.index<0){let f=a.parent;(e||(e=[d])).push(f.resolve(b,c)),a=f}else{let f=gX.get(a.tree);if(f&&f.overlay&&f.overlay[0].from<=b&&f.overlay[f.overlay.length-1].to>=b){let g=new g7(f.tree,f.overlay[0].from+a.from,-1,a);(e||(e=[d])).push(g5(g,b,c,!1))}}return e?hc(e):d}(this,a,b)}iterate(a){let{enter:b,leave:c,from:d=0,to:e=this.length}=a,f=a.mode||0,g=(f&pU.IncludeAnonymous)>0;for(let a=this.cursor(f|pU.IncludeAnonymous);;){let f=!1;if(a.from<=e&&a.to>=d&&(!g&&a.type.isAnonymous||!1!==b(a))){if(a.firstChild())continue;f=!0}for(;f&&c&&(g||!a.type.isAnonymous)&&c(a),!a.nextSibling();){if(!a.parent())return;f=!0}}}prop(a){return a.perNode?this.props?this.props[a.id]:void 0:this.type.prop(a)}get propValues(){let a=[];if(this.props)for(let b in this.props)a.push([+b,this.props[b]]);return a}balance(a={}){return this.children.length<=8?this:hi(gZ.none,this.children,this.positions,0,this.children.length,0,this.length,(a,b,c)=>new g1(this.type,a,b,c,this.propValues),a.makeTree||((a,b,c)=>new g1(gZ.none,a,b,c)))}static build(a){return function(a){var b;let{buffer:c,nodeSet:d,maxBufferLength:e=1024,reused:f=[],minRepeatType:g=d.types.length}=a,h=Array.isArray(c)?new g2(c,c.length):c,i=d.types,j=0,k=0;function l(a,b,c,e,f,g,h,i,j){let k=[],l=[];for(;a.length>e;)k.push(a.pop()),l.push(b.pop()+c-f);a.push(m(d.types[h],k,l,g-f,i-g,j)),b.push(f-c)}function m(a,b,c,d,e,f,g){if(f){let a=[gW.contextHash,f];g=g?[a].concat(g):[a]}if(e>25){let a=[gW.lookAhead,e];g=g?[a].concat(g):[a]}return new g1(a,b,c,d,g)}let n=[],o=[];for(;h.pos>0;)!function a(b,c,n,o,p,q){let{id:r,start:s,end:t,size:u}=h,v=k,w=j;if(u<0){if(h.next(),-1==u){let a=f[r];n.push(a),o.push(s-b);return}if(-3==u){j=r;return}if(-4==u){k=r;return}else throw RangeError(`Unrecognized record size: ${u}`)}let x=i[r],y,z,A=s-b;if(t-s<=e&&(z=function(a,b){let c=h.fork(),d=0,f=0,i=0,j=c.end-e,k={size:0,start:0,skip:0};d:for(let e=c.pos-a;c.pos>e;){let a=c.size;if(c.id==b&&a>=0){k.size=d,k.start=f,k.skip=i,i+=4,d+=4,c.next();continue}let h=c.pos-a;if(a<0||h<e||c.start<j)break;let l=4*(c.id>=g),m=c.start;for(c.next();c.pos>h;){if(c.size<0)if(-3==c.size||-4==c.size)l+=4;else break d;else c.id>=g&&(l+=4);c.next()}f=m,d+=a,i+=l}return(b<0||d==a)&&(k.size=d,k.start=f,k.skip=i),k.size>4?k:void 0}(h.pos-c,p))){let a=new Uint16Array(z.size-z.skip),c=h.pos-z.size,e=a.length;for(;h.pos>c;)e=function a(b,c,d){let{id:e,start:f,end:i,size:l}=h;if(h.next(),l>=0&&e<g){let g=d;if(l>4){let e=h.pos-(l-4);for(;h.pos>e;)d=a(b,c,d)}c[--d]=g,c[--d]=i-b,c[--d]=f-b,c[--d]=e}else -3==l?j=e:-4==l&&(k=e);return d}(z.start,a,e);y=new g3(a,t-z.start,d),A=z.start-b}else{let b=h.pos-u;h.next();let c=[],f=[],i=r>=g?r:-1,j=0,k=t;for(;h.pos>b;)i>=0&&h.id==i&&h.size>=0?(h.end<=k-e&&(l(c,f,s,j,h.end,k,i,v,w),j=c.length,k=h.end),h.next()):q>2500?function(a,b,c,f){let g=[],i=0,j=-1;for(;h.pos>b;){let{id:a,start:b,end:c,size:d}=h;if(d>4)h.next();else if(j>-1&&b<j)break;else j<0&&(j=c-e),g.push(a,b,c),i++,h.next()}if(i){let b=new Uint16Array(4*i),e=g[g.length-2];for(let a=g.length-3,c=0;a>=0;a-=3)b[c++]=g[a],b[c++]=g[a+1]-e,b[c++]=g[a+2]-e,b[c++]=c;c.push(new g3(b,g[2]-e,d)),f.push(e-a)}}(s,b,c,f):a(s,b,c,f,i,q+1);if(i>=0&&j>0&&j<c.length&&l(c,f,s,j,s,k,i,v,w),c.reverse(),f.reverse(),i>-1&&j>0){let a=function(a,b){return(c,d,e)=>{let f=0,g=c.length-1,h,i;if(g>=0&&(h=c[g])instanceof g1){if(!g&&h.type==a&&h.length==e)return h;(i=h.prop(gW.lookAhead))&&(f=d[g]+h.length+i)}return m(a,c,d,e,f,b)}}(x,w);y=hi(x,c,f,0,c.length,0,t-s,a,a)}else y=m(x,c,f,t-s,v-t,w)}n.push(y),o.push(A)}(a.start||0,a.bufferStart||0,n,o,-1,0);let p=null!=(b=a.length)?b:n.length?o[0]+n[0].length:0;return new g1(i[a.topID],n.reverse(),o.reverse(),p)}(a)}}g1.empty=new g1(gZ.none,[],[],0);class g2{constructor(a,b){this.buffer=a,this.index=b}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new g2(this.buffer,this.index)}}class g3{constructor(a,b,c){this.buffer=a,this.length=b,this.set=c}get type(){return gZ.none}toString(){let a=[];for(let b=0;b<this.buffer.length;)a.push(this.childString(b)),b=this.buffer[b+3];return a.join(",")}childString(a){let b=this.buffer[a],c=this.buffer[a+3],d=this.set.types[b],e=d.name;if(/\W/.test(e)&&!d.isError&&(e=JSON.stringify(e)),c==(a+=4))return e;let f=[];for(;a<c;)f.push(this.childString(a)),a=this.buffer[a+3];return e+"("+f.join(",")+")"}findChild(a,b,c,d,e){let{buffer:f}=this,g=-1;for(let h=a;h!=b&&(!g4(e,d,f[h+1],f[h+2])||(g=h,!(c>0)));h=f[h+3]);return g}slice(a,b,c){let d=this.buffer,e=new Uint16Array(b-a),f=0;for(let g=a,h=0;g<b;){e[h++]=d[g++],e[h++]=d[g++]-c;let b=e[h++]=d[g++]-c;e[h++]=d[g++]-a,f=Math.max(f,b)}return new g3(e,f,this.set)}}function g4(a,b,c,d){switch(a){case -2:return c<b;case -1:return d>=b&&c<b;case 0:return c<b&&d>b;case 1:return c<=b&&d>b;case 2:return d>b;case 4:return!0}}function g5(a,b,c,d){for(var e;a.from==a.to||(c<1?a.from>=b:a.from>b)||(c>-1?a.to<=b:a.to<b);){let b=!d&&a instanceof g7&&a.index<0?null:a.parent;if(!b)return a;a=b}let f=d?0:pU.IgnoreOverlays;if(d)for(let d=a,g=d.parent;g;g=(d=g).parent)d instanceof g7&&d.index<0&&(null==(e=g.enter(b,c,f))?void 0:e.from)!=d.from&&(a=g);for(;;){let d=a.enter(b,c,f);if(!d)return a;a=d}}class g6{cursor(a=0){return new he(this,a)}getChild(a,b=null,c=null){let d=g8(this,a,b,c);return d.length?d[0]:null}getChildren(a,b=null,c=null){return g8(this,a,b,c)}resolve(a,b=0){return g5(this,a,b,!1)}resolveInner(a,b=0){return g5(this,a,b,!0)}matchContext(a){return g9(this.parent,a)}enterUnfinishedNodesBefore(a){let b=this.childBefore(a),c=this;for(;b;){let a=b.lastChild;if(!a||a.to!=b.to)break;a.type.isError&&a.from==a.to?(c=b,b=a.prevSibling):b=a}return c}get node(){return this}get next(){return this.parent}}class g7 extends g6{constructor(a,b,c,d){super(),this._tree=a,this.from=b,this.index=c,this._parent=d}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(a,b,c,d,e=0){for(let f=this;;){for(let{children:g,positions:h}=f._tree,i=b>0?g.length:-1;a!=i;a+=b){let i=g[a],j=h[a]+f.from,k;if(e&pU.EnterBracketed&&i instanceof g1&&(k=gX.get(i))&&!k.overlay&&k.bracketed&&c>=j&&c<=j+i.length||g4(d,c,j,j+i.length)){if(i instanceof g3){if(e&pU.ExcludeBuffers)continue;let g=i.findChild(0,i.buffer.length,b,c-j,d);if(g>-1)return new hb(new ha(f,i,a,j),null,g)}else if(e&pU.IncludeAnonymous||!i.type.isAnonymous||hf(i)){let g;if(!(e&pU.IgnoreMounts)&&(g=gX.get(i))&&!g.overlay)return new g7(g.tree,j,a,f);let h=new g7(i,j,a,f);return e&pU.IncludeAnonymous||!h.type.isAnonymous?h:h.nextChild(b<0?i.children.length-1:0,b,c,d,e)}}}if(e&pU.IncludeAnonymous||!f.type.isAnonymous||(a=f.index>=0?f.index+b:b<0?-1:f._parent._tree.children.length,!(f=f._parent)))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(a){return this.nextChild(0,1,a,2)}childBefore(a){return this.nextChild(this._tree.children.length-1,-1,a,-2)}prop(a){return this._tree.prop(a)}enter(a,b,c=0){let d;if(!(c&pU.IgnoreOverlays)&&(d=gX.get(this._tree))&&d.overlay){let e=a-this.from,f=c&pU.EnterBracketed&&d.bracketed;for(let{from:a,to:c}of d.overlay)if((b>0||f?a<=e:a<e)&&(b<0||f?c>=e:c>e))return new g7(d.tree,d.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,a,b,c)}nextSignificantParent(){let a=this;for(;a.type.isAnonymous&&a._parent;)a=a._parent;return a}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function g8(a,b,c,d){let e=a.cursor(),f=[];if(!e.firstChild())return f;if(null!=c){for(let a=!1;!a;)if(a=e.type.is(c),!e.nextSibling())return f}for(;;){if(null!=d&&e.type.is(d))return f;if(e.type.is(b)&&f.push(e.node),!e.nextSibling())return null==d?f:[]}}function g9(a,b,c=b.length-1){for(let d=a;c>=0;d=d.parent){if(!d)return!1;if(!d.type.isAnonymous){if(b[c]&&b[c]!=d.name)return!1;c--}}return!0}class ha{constructor(a,b,c,d){this.parent=a,this.buffer=b,this.index=c,this.start=d}}class hb extends g6{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(a,b,c){super(),this.context=a,this._parent=b,this.index=c,this.type=a.buffer.set.types[a.buffer.buffer[c]]}child(a,b,c){let{buffer:d}=this.context,e=d.findChild(this.index+4,d.buffer[this.index+3],a,b-this.context.start,c);return e<0?null:new hb(this.context,this,e)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(a){return this.child(1,a,2)}childBefore(a){return this.child(-1,a,-2)}prop(a){return this.type.prop(a)}enter(a,b,c=0){if(c&pU.ExcludeBuffers)return null;let{buffer:d}=this.context,e=d.findChild(this.index+4,d.buffer[this.index+3],b>0?1:-1,a-this.context.start,b);return e<0?null:new hb(this.context,this,e)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(a){return this._parent?null:this.context.parent.nextChild(this.context.index+a,a,0,4)}get nextSibling(){let{buffer:a}=this.context,b=a.buffer[this.index+3];return b<(this._parent?a.buffer[this._parent.index+3]:a.buffer.length)?new hb(this.context,this._parent,b):this.externalSibling(1)}get prevSibling(){let{buffer:a}=this.context,b=this._parent?this._parent.index+4:0;return this.index==b?this.externalSibling(-1):new hb(this.context,this._parent,a.findChild(b,this.index,-1,0,4))}get tree(){return null}toTree(){let a=[],b=[],{buffer:c}=this.context,d=this.index+4,e=c.buffer[this.index+3];if(e>d){let f=c.buffer[this.index+1];a.push(c.slice(d,e,f)),b.push(0)}return new g1(this.type,a,b,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function hc(a){if(!a.length)return null;let b=0,c=a[0];for(let d=1;d<a.length;d++){let e=a[d];(e.from>c.from||e.to<c.to)&&(c=e,b=d)}let d=c instanceof g7&&c.index<0?null:c.parent,e=a.slice();return d?e[b]=d:e.splice(b,1),new hd(e,c)}class hd{constructor(a,b){this.heads=a,this.node=b}get next(){return hc(this.heads)}}class he{get name(){return this.type.name}constructor(a,b=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=b&~pU.EnterBracketed,a instanceof g7)this.yieldNode(a);else{this._tree=a.context.parent,this.buffer=a.context;for(let b=a._parent;b;b=b._parent)this.stack.unshift(b.index);this.bufferNode=a,this.yieldBuf(a.index)}}yieldNode(a){return!!a&&(this._tree=a,this.type=a.type,this.from=a.from,this.to=a.to,!0)}yieldBuf(a,b){this.index=a;let{start:c,buffer:d}=this.buffer;return this.type=b||d.set.types[d.buffer[a]],this.from=c+d.buffer[a+1],this.to=c+d.buffer[a+2],!0}yield(a){return!!a&&(a instanceof g7?(this.buffer=null,this.yieldNode(a)):(this.buffer=a.context,this.yieldBuf(a.index,a.type)))}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(a,b,c){if(!this.buffer)return this.yield(this._tree.nextChild(a<0?this._tree._tree.children.length-1:0,a,b,c,this.mode));let{buffer:d}=this.buffer,e=d.findChild(this.index+4,d.buffer[this.index+3],a,b-this.buffer.start,c);return!(e<0)&&(this.stack.push(this.index),this.yieldBuf(e))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(a){return this.enterChild(1,a,2)}childBefore(a){return this.enterChild(-1,a,-2)}enter(a,b,c=this.mode){return this.buffer?!(c&pU.ExcludeBuffers)&&this.enterChild(1,a,b):this.yield(this._tree.enter(a,b,c))}parent(){if(!this.buffer)return this.yieldNode(this.mode&pU.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let a=this.mode&pU.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(a)}sibling(a){if(!this.buffer)return!!this._tree._parent&&this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+a,a,0,4,this.mode));let{buffer:b}=this.buffer,c=this.stack.length-1;if(a<0){let a=c<0?0:this.stack[c]+4;if(this.index!=a)return this.yieldBuf(b.findChild(a,this.index,-1,0,4))}else{let a=b.buffer[this.index+3];if(a<(c<0?b.buffer.length:b.buffer[this.stack[c]+3]))return this.yieldBuf(a)}return c<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+a,a,0,4,this.mode))}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(a){let b,c,{buffer:d}=this;if(d){if(a>0){if(this.index<d.buffer.buffer.length)return!1}else for(let a=0;a<this.index;a++)if(d.buffer.buffer[a+3]<this.index)return!1;({index:b,parent:c}=d)}else({index:b,_parent:c}=this._tree);for(;c;{index:b,_parent:c}=c)if(b>-1)for(let d=b+a,e=a<0?-1:c._tree.children.length;d!=e;d+=a){let a=c._tree.children[d];if(this.mode&pU.IncludeAnonymous||a instanceof g3||!a.type.isAnonymous||hf(a))return!1}return!0}move(a,b){if(b&&this.enterChild(a,0,4))return!0;for(;;){if(this.sibling(a))return!0;if(this.atLastNode(a)||!this.parent())return!1}}next(a=!0){return this.move(1,a)}prev(a=!0){return this.move(-1,a)}moveTo(a,b=0){for(;(this.from==this.to||(b<1?this.from>=a:this.from>a)||(b>-1?this.to<=a:this.to<a))&&this.parent(););for(;this.enterChild(1,a,b););return this}get node(){if(!this.buffer)return this._tree;let a=this.bufferNode,b=null,c=0;if(a&&a.context==this.buffer)d:for(let d=this.index,e=this.stack.length;e>=0;){for(let f=a;f;f=f._parent)if(f.index==d){if(d==this.index)return f;b=f,c=e+1;break d}d=this.stack[--e]}for(let a=c;a<this.stack.length;a++)b=new hb(this.buffer,b,this.stack[a]);return this.bufferNode=new hb(this.buffer,b,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(a,b){for(let c=0;;){let d=!1;if(this.type.isAnonymous||!1!==a(this)){if(this.firstChild()){c++;continue}this.type.isAnonymous||(d=!0)}for(;;){if(d&&b&&b(this),d=this.type.isAnonymous,!c)return;if(this.nextSibling())break;this.parent(),c--,d=!0}}}matchContext(a){if(!this.buffer)return g9(this.node.parent,a);let{buffer:b}=this.buffer,{types:c}=b.set;for(let d=a.length-1,e=this.stack.length-1;d>=0;e--){if(e<0)return g9(this._tree,a,d);let f=c[b.buffer[this.stack[e]]];if(!f.isAnonymous){if(a[d]&&a[d]!=f.name)return!1;d--}}return!0}}function hf(a){return a.children.some(a=>a instanceof g3||!a.type.isAnonymous||hf(a))}let hg=new WeakMap;function hh(a,b){if(!a.isAnonymous||b instanceof g3||b.type!=a)return 1;let c=hg.get(b);if(null==c){for(let d of(c=1,b.children)){if(d.type!=a||!(d instanceof g1)){c=1;break}c+=hh(a,d)}hg.set(b,c)}return c}function hi(a,b,c,d,e,f,g,h,i){let j=0;for(let c=d;c<e;c++)j+=hh(a,b[c]);let k=Math.ceil(1.5*j/8),l=[],m=[];return!function b(c,d,e,g,h){for(let j=e;j<g;){let e=j,n=d[j],o=hh(a,c[j]);for(j++;j<g;j++){let b=hh(a,c[j]);if(o+b>=k)break;o+=b}if(j==e+1){if(o>k){let a=c[e];b(a.children,a.positions,0,a.children.length,d[e]+h);continue}l.push(c[e])}else{let b=d[j-1]+c[j-1].length-n;l.push(hi(a,c,d,e,j,n,b,null,i))}m.push(n+h-f)}}(b,c,d,e,0),(h||i)(l,m,g)}class hj{constructor(a,b,c,d,e=!1,f=!1){this.from=a,this.to=b,this.tree=c,this.offset=d,this.open=!!e|2*!!f}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(a,b=[],c=!1){let d=[new hj(0,a.length,a,0,!1,c)];for(let c of b)c.to>a.length&&d.push(c);return d}static applyChanges(a,b,c=128){if(!b.length)return a;let d=[],e=1,f=a.length?a[0]:null;for(let g=0,h=0,i=0;;g++){let j=g<b.length?b[g]:null,k=j?j.fromA:1e9;if(k-h>=c)for(;f&&f.from<k;){let b=f;if(h>=b.from||k<=b.to||i){let a=Math.max(b.from,h)-i,c=Math.min(b.to,k)-i;b=a>=c?null:new hj(a,c,b.tree,b.offset+i,g>0,!!j)}if(b&&d.push(b),f.to>k)break;f=e<a.length?a[e++]:null}if(!j)break;h=j.toA,i=j.toA-j.toB}return d}}class hk{startParse(a,b,c){return"string"==typeof a&&(a=new hl(a)),c=c?c.length?c.map(a=>new gV(a.from,a.to)):[new gV(0,0)]:[new gV(0,a.length)],this.createParse(a,b||[],c)}parse(a,b,c){let d=this.startParse(a,b,c);for(;;){let a=d.advance();if(a)return a}}}class hl{constructor(a){this.string=a}get length(){return this.string.length}chunk(a){return this.string.slice(a)}get lineChunks(){return!1}read(a,b){return this.string.slice(a,b)}}new gW({perNode:!0});let hm=0;class hn{constructor(a,b,c,d){this.name=a,this.set=b,this.base=c,this.modified=d,this.id=hm++}toString(){let{name:a}=this;for(let b of this.modified)b.name&&(a=`${b.name}(${a})`);return a}static define(a,b){if(a instanceof hn&&(b=a),null==b?void 0:b.base)throw Error("Can not derive from a modified tag");let c=new hn("string"==typeof a?a:"?",[],null,[]);if(c.set.push(c),b)for(let a of b.set)c.set.push(a);return c}static defineModifier(a){let b=new hp(a);return a=>a.modified.indexOf(b)>-1?a:hp.get(a.base||a,a.modified.concat(b).sort((a,b)=>a.id-b.id))}}let ho=0;class hp{constructor(a){this.name=a,this.instances=[],this.id=ho++}static get(a,b){if(!b.length)return a;let c=b[0].instances.find(c=>{var d,e;return c.base==a&&(d=b,e=c.modified,d.length==e.length&&d.every((a,b)=>a==e[b]))});if(c)return c;let d=[],e=new hn(a.name,d,a,b);for(let a of b)a.instances.push(e);let f=function(a){let b=[[]];for(let c=0;c<a.length;c++)for(let d=0,e=b.length;d<e;d++)b.push(b[d].concat(a[c]));return b.sort((a,b)=>b.length-a.length)}(b);for(let b of a.set)if(!b.modified.length)for(let a of f)d.push(hp.get(b,a));return e}}function hq(a){let b=Object.create(null);for(let c in a){let d=a[c];for(let a of(Array.isArray(d)||(d=[d]),c.split(" ")))if(a){let c=[],e=2,f=a;for(let b=0;;){if("..."==f&&b>0&&b+3==a.length){e=1;break}let d=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(f);if(!d)throw RangeError("Invalid path: "+a);if(c.push("*"==d[0]?"":'"'==d[0][0]?JSON.parse(d[0]):d[0]),(b+=d[0].length)==a.length)break;let g=a[b++];if(b==a.length&&"!"==g){e=0;break}if("/"!=g)throw RangeError("Invalid path: "+a);f=a.slice(b)}let g=c.length-1,h=c[g];if(!h)throw RangeError("Invalid path: "+a);let i=new hs(d,e,g>0?c.slice(0,g):null);b[h]=i.sort(b[h])}}return hr.add(b)}let hr=new gW({combine(a,b){let c,d,e;for(;a||b;){if(!a||b&&a.depth>=b.depth?(e=b,b=b.next):(e=a,a=a.next),c&&c.mode==e.mode&&!e.context&&!c.context)continue;let f=new hs(e.tags,e.mode,e.context);c?c.next=f:d=f,c=f}return d}});class hs{constructor(a,b,c,d){this.tags=a,this.mode=b,this.context=c,this.next=d}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(a){return!a||a.depth<this.depth?(this.next=a,this):(a.next=this.sort(a.next),a)}get depth(){return this.context?this.context.length:0}}function ht(a,b){let c=Object.create(null);for(let b of a)if(Array.isArray(b.tag))for(let a of b.tag)c[a.id]=b.class;else c[b.tag.id]=b.class;let{scope:d,all:e=null}=b||{};return{style:a=>{let b=e;for(let d of a)for(let a of d.set){let d=c[a.id];if(d){b=b?b+" "+d:d;break}}return b},scope:d}}hs.empty=new hs([],2,null);class hu{constructor(a,b,c){this.at=a,this.highlighters=b,this.span=c,this.class=""}startSpan(a,b){b!=this.class&&(this.flush(a),a>this.at&&(this.at=a),this.class=b)}flush(a){a>this.at&&this.class&&this.span(this.at,a,this.class)}highlightRange(a,b,c,d,e){let{type:f,from:g,to:h}=a;if(g>=c||h<=b)return;f.isTop&&(e=this.highlighters.filter(a=>!a.scope||a.scope(f)));let i=d,j=function(a){let b=a.type.prop(hr);for(;b&&b.context&&!a.matchContext(b.context);)b=b.next;return b||null}(a)||hs.empty,k=function(a,b){let c=null;for(let d of a){let a=d.style(b);a&&(c=c?c+" "+a:a)}return c}(e,j.tags);if(k&&(i&&(i+=" "),i+=k,1==j.mode&&(d+=(d?" ":"")+k)),this.startSpan(Math.max(b,g),i),j.opaque)return;let l=a.tree&&a.tree.prop(gW.mounted);if(l&&l.overlay){let f=a.node.enter(l.overlay[0].from+g,1),j=this.highlighters.filter(a=>!a.scope||a.scope(l.tree.type)),k=a.firstChild();for(let m=0,n=g;;m++){let o=m<l.overlay.length?l.overlay[m]:null,p=o?o.from+g:h,q=Math.max(b,n),r=Math.min(c,p);if(q<r&&k)for(;a.from<r&&(this.highlightRange(a,q,r,d,e),this.startSpan(Math.min(r,a.to),i),!(a.to>=p)&&a.nextSibling()););if(!o||p>c)break;(n=o.to+g)>b&&(this.highlightRange(f.cursor(),Math.max(b,o.from+g),Math.min(c,n),"",j),this.startSpan(Math.min(c,n),i))}k&&a.parent()}else if(a.firstChild()){l&&(d="");do{if(a.to<=b)continue;if(a.from>=c)break;this.highlightRange(a,b,c,d,e),this.startSpan(Math.min(c,a.to),i)}while(a.nextSibling())a.parent()}}}let hv=hn.define,hw=hv(),hx=hv(),hy=hv(hx),hz=hv(hx),hA=hv(),hB=hv(hA),hC=hv(hA),hD=hv(),hE=hv(hD),hF=hv(),hG=hv(),hH=hv(),hI=hv(hH),hJ=hv(),hK={comment:hw,lineComment:hv(hw),blockComment:hv(hw),docComment:hv(hw),name:hx,variableName:hv(hx),typeName:hy,tagName:hv(hy),propertyName:hz,attributeName:hv(hz),className:hv(hx),labelName:hv(hx),namespace:hv(hx),macroName:hv(hx),literal:hA,string:hB,docString:hv(hB),character:hv(hB),attributeValue:hv(hB),number:hC,integer:hv(hC),float:hv(hC),bool:hv(hA),regexp:hv(hA),escape:hv(hA),color:hv(hA),url:hv(hA),keyword:hF,self:hv(hF),null:hv(hF),atom:hv(hF),unit:hv(hF),modifier:hv(hF),operatorKeyword:hv(hF),controlKeyword:hv(hF),definitionKeyword:hv(hF),moduleKeyword:hv(hF),operator:hG,derefOperator:hv(hG),arithmeticOperator:hv(hG),logicOperator:hv(hG),bitwiseOperator:hv(hG),compareOperator:hv(hG),updateOperator:hv(hG),definitionOperator:hv(hG),typeOperator:hv(hG),controlOperator:hv(hG),punctuation:hH,separator:hv(hH),bracket:hI,angleBracket:hv(hI),squareBracket:hv(hI),paren:hv(hI),brace:hv(hI),content:hD,heading:hE,heading1:hv(hE),heading2:hv(hE),heading3:hv(hE),heading4:hv(hE),heading5:hv(hE),heading6:hv(hE),contentSeparator:hv(hD),list:hv(hD),quote:hv(hD),emphasis:hv(hD),strong:hv(hD),link:hv(hD),monospace:hv(hD),strikethrough:hv(hD),inserted:hv(),deleted:hv(),changed:hv(),invalid:hv(),meta:hJ,documentMeta:hv(hJ),annotation:hv(hJ),processingInstruction:hv(hJ),definition:hn.defineModifier("definition"),constant:hn.defineModifier("constant"),function:hn.defineModifier("function"),standard:hn.defineModifier("standard"),local:hn.defineModifier("local"),special:hn.defineModifier("special")};for(let a in hK){let b=hK[a];b instanceof hn&&(b.name=a)}ht([{tag:hK.link,class:"tok-link"},{tag:hK.heading,class:"tok-heading"},{tag:hK.emphasis,class:"tok-emphasis"},{tag:hK.strong,class:"tok-strong"},{tag:hK.keyword,class:"tok-keyword"},{tag:hK.atom,class:"tok-atom"},{tag:hK.bool,class:"tok-bool"},{tag:hK.url,class:"tok-url"},{tag:hK.labelName,class:"tok-labelName"},{tag:hK.inserted,class:"tok-inserted"},{tag:hK.deleted,class:"tok-deleted"},{tag:hK.literal,class:"tok-literal"},{tag:hK.string,class:"tok-string"},{tag:hK.number,class:"tok-number"},{tag:[hK.regexp,hK.escape,hK.special(hK.string)],class:"tok-string2"},{tag:hK.variableName,class:"tok-variableName"},{tag:hK.local(hK.variableName),class:"tok-variableName tok-local"},{tag:hK.definition(hK.variableName),class:"tok-variableName tok-definition"},{tag:hK.special(hK.variableName),class:"tok-variableName2"},{tag:hK.definition(hK.propertyName),class:"tok-propertyName tok-definition"},{tag:hK.typeName,class:"tok-typeName"},{tag:hK.namespace,class:"tok-namespace"},{tag:hK.className,class:"tok-className"},{tag:hK.macroName,class:"tok-macroName"},{tag:hK.propertyName,class:"tok-propertyName"},{tag:hK.operator,class:"tok-operator"},{tag:hK.comment,class:"tok-comment"},{tag:hK.meta,class:"tok-meta"},{tag:hK.invalid,class:"tok-invalid"},{tag:hK.punctuation,class:"tok-punctuation"}]);let hL=new gW,hM=new gW;class hN{constructor(a,b,c=[],d=""){this.data=a,this.name=d,bM.prototype.hasOwnProperty("tree")||Object.defineProperty(bM.prototype,"tree",{get(){return hQ(this)}}),this.parser=b,this.extension=[hZ.of(this),bM.languageData.of((a,b,c)=>{let d=hO(a,b,c),e=d.type.prop(hL);if(!e)return[];let f=a.facet(e),g=d.type.prop(hM);if(g){let e=d.resolve(b-d.from,c);for(let b of g)if(b.test(e,a)){let c=a.facet(b.facet);return"replace"==b.type?c:c.concat(f)}}return f})].concat(c)}isActiveAt(a,b,c=-1){return hO(a,b,c).type.prop(hL)==this.data}findRegions(a){let b=a.facet(hZ);if((null==b?void 0:b.data)==this.data)return[{from:0,to:a.doc.length}];if(!b||!b.allowsNesting)return[];let c=[],d=(a,b)=>{if(a.prop(hL)==this.data)return void c.push({from:b,to:b+a.length});let e=a.prop(gW.mounted);if(e){if(e.tree.prop(hL)==this.data){if(e.overlay)for(let a of e.overlay)c.push({from:a.from+b,to:a.to+b});else c.push({from:b,to:b+a.length});return}else if(e.overlay){let a=c.length;if(d(e.tree,e.overlay[0].from+b),c.length>a)return}}for(let c=0;c<a.children.length;c++){let e=a.children[c];e instanceof g1&&d(e,a.positions[c]+b)}};return d(hQ(a),0),c}get allowsNesting(){return!0}}function hO(a,b,c){let d=a.facet(hZ),e=hQ(a).topNode;if(!d||d.allowsNesting)for(let a=e;a;a=a.enter(b,c,pU.ExcludeBuffers|pU.EnterBracketed))a.type.isTop&&(e=a);return e}hN.setState=bE.define();class hP extends hN{constructor(a,b,c){super(a,b,[],c),this.parser=b}static define(a){var b;let c=(b=a.languageData,bf.define({combine:b?a=>a.concat(b):void 0}));return new hP(c,a.parser.configure({props:[hL.add(a=>a.isTop?c:void 0)]}),a.name)}configure(a,b){return new hP(this.data,this.parser.configure(a),b||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function hQ(a){let b=a.field(hN.state,!1);return b?b.tree:g1.empty}class hR{constructor(a){this.doc=a,this.cursorPos=0,this.string="",this.cursor=a.iter()}get length(){return this.doc.length}syncTo(a){return this.string=this.cursor.next(a-this.cursorPos).value,this.cursorPos=a+this.string.length,this.cursorPos-this.string.length}chunk(a){return this.syncTo(a),this.string}get lineChunks(){return!0}read(a,b){let c=this.cursorPos-this.string.length;return a<c||b>=this.cursorPos?this.doc.sliceString(a,b):this.string.slice(a-c,b-c)}}let hS=null;class hT{constructor(a,b,c=[],d,e,f,g,h){this.parser=a,this.state=b,this.fragments=c,this.tree=d,this.treeLen=e,this.viewport=f,this.skipped=g,this.scheduleOn=h,this.parse=null,this.tempSkipped=[]}static create(a,b,c){return new hT(a,b,[],g1.empty,0,c,[],null)}startParse(){return this.parser.startParse(new hR(this.state.doc),this.fragments)}work(a,b){return(null!=b&&b>=this.state.doc.length&&(b=void 0),this.tree!=g1.empty&&this.isDone(null!=b?b:this.state.doc.length))?(this.takeTree(),!0):this.withContext(()=>{var c;if("number"==typeof a){let b=Date.now()+a;a=()=>Date.now()>b}for(this.parse||(this.parse=this.startParse()),null!=b&&(null==this.parse.stoppedAt||this.parse.stoppedAt>b)&&b<this.state.doc.length&&this.parse.stopAt(b);;){let d=this.parse.advance();if(d){if(this.fragments=this.withoutTempSkipped(hj.addTree(d,this.fragments,null!=this.parse.stoppedAt)),this.treeLen=null!=(c=this.parse.stoppedAt)?c:this.state.doc.length,this.tree=d,this.parse=null,!(this.treeLen<(null!=b?b:this.state.doc.length)))return!0;this.parse=this.startParse()}if(a())return!1}})}takeTree(){let a,b;this.parse&&(a=this.parse.parsedPos)>=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>a)&&this.parse.stopAt(a),this.withContext(()=>{for(;!(b=this.parse.advance()););}),this.treeLen=a,this.tree=b,this.fragments=this.withoutTempSkipped(hj.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(a){let b=hS;hS=this;try{return a()}finally{hS=b}}withoutTempSkipped(a){for(let b;b=this.tempSkipped.pop();)a=hU(a,b.from,b.to);return a}changes(a,b){let{fragments:c,tree:d,treeLen:e,viewport:f,skipped:g}=this;if(this.takeTree(),!a.empty){let b=[];if(a.iterChangedRanges((a,c,d,e)=>b.push({fromA:a,toA:c,fromB:d,toB:e})),c=hj.applyChanges(c,b),d=g1.empty,e=0,f={from:a.mapPos(f.from,-1),to:a.mapPos(f.to,1)},this.skipped.length)for(let b of(g=[],this.skipped)){let c=a.mapPos(b.from,1),d=a.mapPos(b.to,-1);c<d&&g.push({from:c,to:d})}}return new hT(this.parser,b,c,d,e,f,g,this.scheduleOn)}updateViewport(a){if(this.viewport.from==a.from&&this.viewport.to==a.to)return!1;this.viewport=a;let b=this.skipped.length;for(let b=0;b<this.skipped.length;b++){let{from:c,to:d}=this.skipped[b];c<a.to&&d>a.from&&(this.fragments=hU(this.fragments,c,d),this.skipped.splice(b--,1))}return!(this.skipped.length>=b)&&(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(a,b){this.skipped.push({from:a,to:b})}static getSkippingParser(a){return new class extends hk{createParse(b,c,d){let e=d[0].from,f=d[d.length-1].to;return{parsedPos:e,advance(){let b=hS;if(b){for(let a of d)b.tempSkipped.push(a);a&&(b.scheduleOn=b.scheduleOn?Promise.all([b.scheduleOn,a]):a)}return this.parsedPos=f,new g1(gZ.none,[],[],f-e)},stoppedAt:null,stopAt(){}}}}}isDone(a){a=Math.min(a,this.state.doc.length);let b=this.fragments;return this.treeLen>=a&&b.length&&0==b[0].from&&b[0].to>=a}static get(){return hS}}function hU(a,b,c){return hj.applyChanges(a,[{fromA:b,toA:c,fromB:b,toB:c}])}class hV{constructor(a){this.context=a,this.tree=a.tree}apply(a){if(!a.docChanged&&this.tree==this.context.tree)return this;let b=this.context.changes(a.changes,a.state),c=this.context.treeLen==a.startState.doc.length?void 0:Math.max(a.changes.mapPos(this.context.treeLen),b.viewport.to);return b.work(20,c)||b.takeTree(),new hV(b)}static init(a){let b=Math.min(3e3,a.doc.length),c=hT.create(a.facet(hZ).parser,a,{from:0,to:b});return c.work(20,b)||c.takeTree(),new hV(c)}}hN.state=bl.define({create:hV.init,update(a,b){for(let a of b.effects)if(a.is(hN.setState))return a.value;return b.startState.facet(hZ)!=b.state.facet(hZ)?hV.init(b.state):a.apply(b)}});let hW=a=>{let b=setTimeout(()=>a(),500);return()=>clearTimeout(b)};"u">typeof requestIdleCallback&&(hW=a=>{let b=-1,c=setTimeout(()=>{b=requestIdleCallback(a,{timeout:400})},100);return()=>b<0?clearTimeout(c):cancelIdleCallback(b)});let hX="u">typeof navigator&&(null==(pV=navigator.scheduling)?void 0:pV.isInputPending)?()=>navigator.scheduling.isInputPending():null,hY=dy.fromClass(class{constructor(a){this.view=a,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(a){let b=this.view.state.field(hN.state).context;(b.updateViewport(a.view.viewport)||this.view.viewport.to>b.treeLen)&&this.scheduleWork(),(a.docChanged||a.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(b)}scheduleWork(){if(this.working)return;let{state:a}=this.view,b=a.field(hN.state);b.tree==b.context.tree&&b.context.isDone(a.doc.length)||(this.working=hW(this.work))}work(a){this.working=null;let b=Date.now();if(this.chunkEnd<b&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=b+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:c,viewport:{to:d}}=this.view,e=c.field(hN.state);if(e.tree==e.context.tree&&e.context.isDone(d+1e5))return;let f=Date.now()+Math.min(this.chunkBudget,100,a&&!hX?Math.max(25,a.timeRemaining()-5):1e9),g=e.context.treeLen<d&&c.doc.length>d+1e3,h=e.context.work(()=>hX&&hX()||Date.now()>f,d+1e5*!g);this.chunkBudget-=Date.now()-b,(h||this.chunkBudget<=0)&&(e.context.takeTree(),this.view.dispatch({effects:hN.setState.of(new hV(e.context))})),this.chunkBudget>0&&!(h&&!g)&&this.scheduleWork(),this.checkAsyncSchedule(e.context)}checkAsyncSchedule(a){a.scheduleOn&&(this.workScheduled++,a.scheduleOn.then(()=>this.scheduleWork()).catch(a=>du(this.view.state,a)).then(()=>this.workScheduled--),a.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),hZ=bf.define({combine:a=>a.length?a[0]:null,enables:a=>[hN.state,hY,ft.contentAttributes.compute([a],b=>{let c=b.facet(a);return c&&c.name?{"data-language":c.name}:{}})]});class h${constructor(a,b=[]){this.language=a,this.support=b,this.extension=[a,b]}}let h_=bf.define(),h0=bf.define({combine:a=>{if(!a.length)return" ";let b=a[0];if(!b||/\S/.test(b)||Array.from(b).some(a=>a!=b[0]))throw Error("Invalid indent unit: "+JSON.stringify(a[0]));return b}});function h1(a){let b=a.facet(h0);return 9==b.charCodeAt(0)?a.tabSize*b.length:b.length}function h2(a,b){let c="",d=a.tabSize,e=a.facet(h0)[0];if(" "==e){for(;b>=d;)c+=" ",b-=d;e=" "}for(let a=0;a<b;a++)c+=e;return c}function h3(a,b){for(let c of(a instanceof bM&&(a=new h4(a)),a.state.facet(h_))){let d=c(a,b);if(void 0!==d)return d}let c=hQ(a.state);return c.length>=b?function(a,b,c){let d=b.resolveStack(c),e=b.resolveInner(c,-1).resolve(c,0).enterUnfinishedNodesBefore(c);if(e!=d.node){let a=[];for(let b=e;b&&!(b.from<d.node.from||b.to>d.node.to||b.from==d.node.from&&b.type==d.node.type);b=b.parent)a.push(b);for(let b=a.length-1;b>=0;b--)d={node:a[b],next:d}}return h6(d,a,c)}(a,c,b):null}class h4{constructor(a,b={}){this.state=a,this.options=b,this.unit=h1(a)}lineAt(a,b=1){let c=this.state.doc.lineAt(a),{simulateBreak:d,simulateDoubleBreak:e}=this.options;if(null!=d&&d>=c.from&&d<=c.to)if(e&&d==a)return{text:"",from:a};else if(b<0?d<a:d<=a)return{text:c.text.slice(d-c.from),from:d};else return{text:c.text.slice(0,d-c.from),from:c.from};return c}textAfterPos(a,b=1){if(this.options.simulateDoubleBreak&&a==this.options.simulateBreak)return"";let{text:c,from:d}=this.lineAt(a,b);return c.slice(a-d,Math.min(c.length,a+100-d))}column(a,b=1){let{text:c,from:d}=this.lineAt(a,b),e=this.countColumn(c,a-d),f=this.options.overrideIndentation?this.options.overrideIndentation(d):-1;return f>-1&&(e+=f-this.countColumn(c,c.search(/\S|$/))),e}countColumn(a,b=a.length){return b3(a,this.state.tabSize,b)}lineIndent(a,b=1){let{text:c,from:d}=this.lineAt(a,b),e=this.options.overrideIndentation;if(e){let a=e(d);if(a>-1)return a}return this.countColumn(c,c.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}let h5=new gW;function h6(a,b,c){for(let d=a;d;d=d.next){let a=function(a){let b=a.type.prop(h5);if(b)return b;let c=a.firstChild,d;if(c&&(d=c.type.prop(gW.closedBy))){let b=a.lastChild,c=b&&d.indexOf(b.name)>-1;return a=>ia(a,!0,1,void 0,c&&!(a.pos==a.options.simulateBreak&&a.options.simulateDoubleBreak)?b.from:void 0)}return null==a.parent?h7:null}(d.node);if(a)return a(h8.create(b,c,d))}return 0}function h7(){return 0}class h8 extends h4{constructor(a,b,c){super(a.state,a.options),this.base=a,this.pos=b,this.context=c}get node(){return this.context.node}static create(a,b,c){return new h8(a,b,c)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(a){let b=this.state.doc.lineAt(a.from);for(;;){let c=a.resolve(b.from);for(;c.parent&&c.parent.from==c.from;)c=c.parent;if(function(a,b){for(let c=b;c;c=c.parent)if(a==c)return!0;return!1}(c,a))break;b=this.state.doc.lineAt(c.from)}return this.lineIndent(b.from)}continue(){return h6(this.context.next,this.base,this.pos)}}function h9({closing:a,align:b=!0,units:c=1}){return d=>ia(d,b,c,a)}function ia(a,b,c,d,e){let f=a.textAfter,g=f.match(/^\s*/)[0].length,h=d&&f.slice(g,g+d.length)==d||e==a.pos+g,i=b?function(a){let b=a.node,c=b.childAfter(b.from),d=b.lastChild;if(!c)return null;let e=a.options.simulateBreak,f=a.state.doc.lineAt(c.from),g=null==e||e<=f.from?f.to:Math.min(f.to,e);for(let a=c.to;;){let e=b.childAfter(a);if(!e||e==d)return null;if(!e.type.isSkipped){if(e.from>=g)return null;let a=/^ */.exec(f.text.slice(c.to-f.from))[0].length;return{from:c.from,to:c.to+a}}a=e.to}}(a):null;return i?h?a.column(i.from):a.column(i.to):a.baseIndent+(h?0:a.unit*c)}let ib=bf.define(),ic=new gW;function id(a,b,c){for(let d of a.facet(ib)){let e=d(a,b,c);if(e)return e}return function(a,b,c){let d=hQ(a);if(d.length<c)return null;let e=d.resolveStack(c,1),f=null;for(let g=e;g;g=g.next){let e=g.node;if(e.to<=c||e.from>c)continue;if(f&&e.from<b)break;let h=e.type.prop(ic);if(h&&(e.to<d.length-50||d.length==a.doc.length||!function(a){let b=a.lastChild;return b&&b.to==a.to&&b.type.isError}(e))){let d=h(e,a);d&&d.from<=c&&d.from>=b&&d.to>c&&(f=d)}}return f}(a,b,c)}function ie(a,b){let c=b.mapPos(a.from,1),d=b.mapPos(a.to,-1);return c>=d?void 0:{from:c,to:d}}let ig=bE.define({map:ie}),ih=bE.define({map:ie});function ii(a){let b=[];for(let{head:c}of a.state.selection.ranges)b.some(a=>a.from<=c&&a.to>=c)||b.push(a.lineBlockAt(c));return b}let ij=bl.define({create:()=>cA.none,update(a,b){for(let c of(b.isUserEvent("delete")&&b.changes.iterChangedRanges((b,c)=>a=ik(a,b,c)),a=a.map(b.changes),b.effects))if(c.is(ig)&&!function(a,b,c){let d=!1;return a.between(b,b,(a,e)=>{a==b&&e==c&&(d=!0)}),d}(a,c.value.from,c.value.to)){let{preparePlaceholder:d}=b.state.facet(ir),e=d?cA.replace({widget:new iv(d(b.state,c.value))}):iu;a=a.update({add:[e.range(c.value.from,c.value.to)]})}else c.is(ih)&&(a=a.update({filter:(a,b)=>c.value.from!=a||c.value.to!=b,filterFrom:c.value.from,filterTo:c.value.to}));return b.selection&&(a=ik(a,b.selection.main.head)),a},provide:a=>ft.decorations.from(a),toJSON(a,b){let c=[];return a.between(0,b.doc.length,(a,b)=>{c.push(a,b)}),c},fromJSON(a){if(!Array.isArray(a)||a.length%2)throw RangeError("Invalid JSON for fold state");let b=[];for(let c=0;c<a.length;){let d=a[c++],e=a[c++];if("number"!=typeof d||"number"!=typeof e)throw RangeError("Invalid JSON for fold state");b.push(iu.range(d,e))}return cA.set(b,!0)}});function ik(a,b,c=b){let d=!1;return a.between(b,c,(a,e)=>{a<c&&e>b&&(d=!0)}),d?a.update({filterFrom:b,filterTo:c,filter:(a,d)=>a>=c||d<=b}):a}function il(a,b,c){var d;let e=null;return null==(d=a.field(ij,!1))||d.between(b,c,(a,b)=>{(!e||e.from>a)&&(e={from:a,to:b})}),e}function im(a,b){return a.field(ij,!1)?b:b.concat(bE.appendConfig.of(is()))}function io(a,b,c=!0){let d=a.state.doc.lineAt(b.from).number,e=a.state.doc.lineAt(b.to).number;return ft.announce.of(`${a.state.phrase(c?"Folded lines":"Unfolded lines")} ${d} ${a.state.phrase("to")} ${e}.`)}let ip=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:a=>{for(let b of ii(a)){let c=id(a.state,b.from,b.to);if(c)return a.dispatch({effects:im(a.state,[ig.of(c),io(a,c)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:a=>{if(!a.state.field(ij,!1))return!1;let b=[];for(let c of ii(a)){let d=il(a.state,c.from,c.to);d&&b.push(ih.of(d),io(a,d,!1))}return b.length&&a.dispatch({effects:b}),b.length>0}},{key:"Ctrl-Alt-[",run:a=>{let{state:b}=a,c=[];for(let d=0;d<b.doc.length;){let e=a.lineBlockAt(d),f=id(b,e.from,e.to);f&&c.push(ig.of(f)),d=(f?a.lineBlockAt(f.to):e).to+1}return c.length&&a.dispatch({effects:im(a.state,c)}),!!c.length}},{key:"Ctrl-Alt-]",run:a=>{let b=a.state.field(ij,!1);if(!b||!b.size)return!1;let c=[];return b.between(0,a.state.doc.length,(a,b)=>{c.push(ih.of({from:a,to:b}))}),a.dispatch({effects:c}),!0}}],iq={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},ir=bf.define({combine:a=>bN(a,iq)});function is(a){let b=[ij,iy];return a&&b.push(ir.of(a)),b}function it(a,b){let{state:c}=a,d=c.facet(ir),e=b=>{let c=a.lineBlockAt(a.posAtDOM(b.target)),d=il(a.state,c.from,c.to);d&&a.dispatch({effects:ih.of(d)}),b.preventDefault()};if(d.placeholderDOM)return d.placeholderDOM(a,e,b);let f=document.createElement("span");return f.textContent=d.placeholderText,f.setAttribute("aria-label",c.phrase("folded code")),f.title=c.phrase("unfold"),f.className="cm-foldPlaceholder",f.onclick=e,f}let iu=cA.replace({widget:new class extends cy{toDOM(a){return it(a,null)}}});class iv extends cy{constructor(a){super(),this.value=a}eq(a){return this.value==a.value}toDOM(a){return it(a,this.value)}}let iw={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class ix extends gy{constructor(a,b){super(),this.config=a,this.open=b}eq(a){return this.config==a.config&&this.open==a.open}toDOM(a){if(this.config.markerDOM)return this.config.markerDOM(this.open);let b=document.createElement("span");return b.textContent=this.open?this.config.openText:this.config.closedText,b.title=a.state.phrase(this.open?"Fold line":"Unfold line"),b}}let iy=ft.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class iz{constructor(a,b){let c;function d(a){let b=b8.newName();return(c||(c=Object.create(null)))["."+b]=a,b}this.specs=a;const e="string"==typeof b.all?b.all:b.all?d(b.all):void 0,f=b.scope;this.scope=f instanceof hN?a=>a.prop(hL)==f.data:f?a=>a==f:void 0,this.style=ht(a.map(a=>({tag:a.tag,class:a.class||d(Object.assign({},a,{tag:null}))})),{all:e}).style,this.module=c?new b8(c):null,this.themeType=b.themeType}static define(a,b){return new iz(a,b||{})}}let iA=bf.define(),iB=bf.define({combine:a=>a.length?[a[0]]:null});function iC(a){let b=a.facet(iA);return b.length?b:a.facet(iB)}function iD(a,b){let c=[iE],d;return a instanceof iz&&(a.module&&c.push(ft.styleModule.of(a.module)),d=a.themeType),(null==b?void 0:b.fallback)?c.push(iB.of(a)):d?c.push(iA.computeN([ft.darkTheme],b=>b.facet(ft.darkTheme)==("dark"==d)?[a]:[])):c.push(iA.of(a)),c}let iE=bn.high(dy.fromClass(class{constructor(a){this.markCache=Object.create(null),this.tree=hQ(a.state),this.decorations=this.buildDeco(a,iC(a.state)),this.decoratedTo=a.viewport.to}update(a){let b=hQ(a.state),c=iC(a.state),d=c!=iC(a.startState),{viewport:e}=a.view,f=a.changes.mapPos(this.decoratedTo,1);b.length<e.to&&!d&&b.type==this.tree.type&&f>=e.to?(this.decorations=this.decorations.map(a.changes),this.decoratedTo=f):(b!=this.tree||a.viewportChanged||d)&&(this.tree=b,this.decorations=this.buildDeco(a.view,c),this.decoratedTo=e.to)}buildDeco(a,b){if(!b||!this.tree.length)return cA.none;let c=new bU;for(let{from:d,to:e}of a.visibleRanges)!function(a,b,c,d=0,e=a.length){let f=new hu(d,Array.isArray(b)?b:[b],c);f.highlightRange(a.cursor(),d,e,"",f.highlighters),f.flush(e)}(this.tree,b,(a,b,d)=>{c.add(a,b,this.markCache[d]||(this.markCache[d]=cA.mark({class:d})))},d,e);return c.finish()}},{decorations:a=>a.decorations})),iF=iz.define([{tag:hK.meta,color:"#404740"},{tag:hK.link,textDecoration:"underline"},{tag:hK.heading,textDecoration:"underline",fontWeight:"bold"},{tag:hK.emphasis,fontStyle:"italic"},{tag:hK.strong,fontWeight:"bold"},{tag:hK.strikethrough,textDecoration:"line-through"},{tag:hK.keyword,color:"#708"},{tag:[hK.atom,hK.bool,hK.url,hK.contentSeparator,hK.labelName],color:"#219"},{tag:[hK.literal,hK.inserted],color:"#164"},{tag:[hK.string,hK.deleted],color:"#a11"},{tag:[hK.regexp,hK.escape,hK.special(hK.string)],color:"#e40"},{tag:hK.definition(hK.variableName),color:"#00f"},{tag:hK.local(hK.variableName),color:"#30a"},{tag:[hK.typeName,hK.namespace],color:"#085"},{tag:hK.className,color:"#167"},{tag:[hK.special(hK.variableName),hK.macroName],color:"#256"},{tag:hK.definition(hK.propertyName),color:"#00c"},{tag:hK.comment,color:"#940"},{tag:hK.invalid,color:"#f00"}]),iG=ft.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),iH="()[]{}",iI=bf.define({combine:a=>bN(a,{afterCursor:!0,brackets:iH,maxScanDistance:1e4,renderMatch:iL})}),iJ=cA.mark({class:"cm-matchingBracket"}),iK=cA.mark({class:"cm-nonmatchingBracket"});function iL(a){let b=[],c=a.matched?iJ:iK;return b.push(c.range(a.start.from,a.start.to)),a.end&&b.push(c.range(a.end.from,a.end.to)),b}function iM(a){let b=[],c=a.facet(iI);for(let d of a.selection.ranges){if(!d.empty)continue;let e=iR(a,d.head,-1,c)||d.head>0&&iR(a,d.head-1,1,c)||c.afterCursor&&(iR(a,d.head,1,c)||d.head<a.doc.length&&iR(a,d.head+1,-1,c));e&&(b=b.concat(c.renderMatch(e,a)))}return cA.set(b,!0)}let iN=[dy.fromClass(class{constructor(a){this.paused=!1,this.decorations=iM(a.state)}update(a){(a.docChanged||a.selectionSet||this.paused)&&(a.view.composing?(this.decorations=this.decorations.map(a.changes),this.paused=!0):(this.decorations=iM(a.state),this.paused=!1))}},{decorations:a=>a.decorations}),iG],iO=new gW;function iP(a,b,c){let d=a.prop(b<0?gW.openedBy:gW.closedBy);if(d)return d;if(1==a.name.length){let d=c.indexOf(a.name);if(d>-1&&d%2==+(b<0))return[c[d+b]]}return null}function iQ(a){let b=a.type.prop(iO);return b?b(a.node):a}function iR(a,b,c,d={}){let e=d.maxScanDistance||1e4,f=d.brackets||iH,g=hQ(a),h=g.resolveInner(b,c);for(let a=h;a;a=a.parent){let d=iP(a.type,c,f);if(d&&a.from<a.to){let e=iQ(a);if(e&&(c>0?b>=e.from&&b<e.to:b>e.from&&b<=e.to))return function(a,b,c,d,e){let f=b.parent,g={from:c.from,to:c.to},h=0,i=null==f?void 0:f.cursor();if(i&&(a<0?i.childBefore(b.from):i.childAfter(b.to)))do if(a<0?i.to<=b.from:i.from>=b.to){if(0==h&&d.indexOf(i.type.name)>-1&&i.from<i.to){let a=iQ(i);return{start:g,end:a?{from:a.from,to:a.to}:void 0,matched:!0}}else if(iP(i.type,a,e))h++;else if(iP(i.type,-a,e)){if(0==h){let a=iQ(i);return{start:g,end:a&&a.from<a.to?{from:a.from,to:a.to}:void 0,matched:!1}}h--}}while(a<0?i.prevSibling():i.nextSibling())return{start:g,matched:!1}}(c,a,e,d,f)}}return function(a,b,c,d,e,f,g){if(c<0?!b:b==a.doc.length)return null;let h=c<0?a.sliceDoc(b-1,b):a.sliceDoc(b,b+1),i=g.indexOf(h);if(i<0||i%2==0!=c>0)return null;let j={from:c<0?b-1:b,to:c>0?b+1:b},k=a.doc.iterRange(b,c>0?a.doc.length:0),l=0;for(let a=0;!k.next().done&&a<=f;){let f=k.value;c<0&&(a+=f.length);let h=b+a*c;for(let a=c>0?0:f.length-1,b=c>0?f.length:-1;a!=b;a+=c){let b=g.indexOf(f[a]);if(!(b<0)&&d.resolveInner(h+a,1).type==e)if(b%2==0==c>0)l++;else{if(1==l)return{start:j,end:{from:h+a,to:h+a+1},matched:b>>1==i>>1};l--}}c>0&&(a+=f.length)}return k.done?{start:j,matched:!1}:null}(a,b,c,g,h.type,e,f)}let iS=Object.create(null),iT=[gZ.none],iU=[],iV=Object.create(null),iW=Object.create(null);for(let[a,b]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])iW[a]=function(a,b){let c=[];for(let d of b.split(" ")){let b=[];for(let c of d.split(".")){let d=a[c]||hK[c];d?"function"==typeof d?b.length?b=b.map(d):iX(c,`Modifier ${c} used at start of tag`):b.length?iX(c,`Tag ${c} used as modifier`):b=Array.isArray(d)?d:[d]:iX(c,`Unknown highlighting tag ${c}`)}for(let a of b)c.push(a)}if(!c.length)return 0;let d=b.replace(/ /g,"_"),e=d+" "+c.map(a=>a.id),f=iV[e];if(f)return f.id;let g=iV[e]=gZ.define({id:iT.length,name:d,props:[hq({[d]:c})]});return iT.push(g),g.id}(iS,b);function iX(a,b){iU.indexOf(a)>-1||(iU.push(a),console.warn(b))}function iY(a,b){return({state:c,dispatch:d})=>{if(c.readOnly)return!1;let e=a(b,c);return!!e&&(d(c.update(e)),!0)}}c0.RTL,c0.LTR;let iZ=iY(function(a,b,c=b.selection.ranges){let d=[],e=-1;e:for(let{from:a,to:f}of c){let c=d.length,g=1e9,h;for(let c=a;c<=f;){let i=b.doc.lineAt(c);if(void 0==h&&!(h=i0(b,i.from).line))continue e;if(i.from>e&&(a==f||f>i.from)){e=i.from;let a=/^\s*/.exec(i.text)[0].length,b=a==i.length,c=i.text.slice(a,a+h.length)==h?a:-1;a<i.text.length&&a<g&&(g=a),d.push({line:i,comment:c,token:h,indent:a,empty:b,single:!1})}c=i.to+1}if(g<1e9)for(let a=c;a<d.length;a++)d[a].indent<d[a].line.text.length&&(d[a].indent=g);d.length==c+1&&(d[c].single=!0)}if(2!=a&&d.some(a=>a.comment<0&&(!a.empty||a.single))){let a=[];for(let{line:b,token:c,indent:e,empty:f,single:g}of d)(g||!f)&&a.push({from:b.from+e,insert:c+" "});let c=b.changes(a);return{changes:c,selection:b.selection.map(c,1)}}if(1!=a&&d.some(a=>a.comment>=0)){let a=[];for(let{line:b,comment:c,token:e}of d)if(c>=0){let d=b.from+c,f=d+e.length;" "==b.text[f-b.from]&&f++,a.push({from:d,to:f})}return{changes:a}}return null},0),i$=iY(i1,0),i_=iY((a,b)=>i1(a,b,function(a){let b=[];for(let c of a.selection.ranges){let d=a.doc.lineAt(c.from),e=c.to<=d.to?d:a.doc.lineAt(c.to);e.from>d.from&&e.from==c.to&&(e=c.to==d.to+1?d:a.doc.lineAt(c.to-1));let f=b.length-1;f>=0&&b[f].to>d.from?b[f].to=e.to:b.push({from:d.from+/^\s*/.exec(d.text)[0].length,to:e.to})}return b}(b)),0);function i0(a,b){let c=a.languageDataAt("commentTokens",b,1);return c.length?c[0]:{}}function i1(a,b,c=b.selection.ranges){let d=c.map(a=>i0(b,a.from).block);if(!d.every(a=>a))return null;let e=c.map((a,c)=>(function(a,{open:b,close:c},d,e){let f,g,h=a.sliceDoc(d-50,d),i=a.sliceDoc(e,e+50),j=/\s*$/.exec(h)[0].length,k=/^\s*/.exec(i)[0].length,l=h.length-j;if(h.slice(l-b.length,l)==b&&i.slice(k,k+c.length)==c)return{open:{pos:d-j,margin:j&&1},close:{pos:e+k,margin:k&&1}};e-d<=100?f=g=a.sliceDoc(d,e):(f=a.sliceDoc(d,d+50),g=a.sliceDoc(e-50,e));let m=/^\s*/.exec(f)[0].length,n=/\s*$/.exec(g)[0].length,o=g.length-n-c.length;return f.slice(m,m+b.length)==b&&g.slice(o,o+c.length)==c?{open:{pos:d+m+b.length,margin:+!!/\s/.test(f.charAt(m+b.length))},close:{pos:e-n-c.length,margin:+!!/\s/.test(g.charAt(o-1))}}:null})(b,d[c],a.from,a.to));if(2!=a&&!e.every(a=>a))return{changes:b.changes(c.map((a,b)=>e[b]?[]:[{from:a.from,insert:d[b].open+" "},{from:a.to,insert:" "+d[b].close}]))};if(1!=a&&e.some(a=>a)){let a=[];for(let b=0,c;b<e.length;b++)if(c=e[b]){let e=d[b],{open:f,close:g}=c;a.push({from:f.pos-e.open.length,to:f.pos+f.margin},{from:g.pos-g.margin,to:g.pos+e.close.length})}return{changes:a}}return null}let i2=bB.define(),i3=bB.define(),i4=bf.define(),i5=bf.define({combine:a=>bN(a,{minDepth:100,newGroupDelay:500,joinToEvent:(a,b)=>b},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(a,b)=>(c,d)=>a(c,d)||b(c,d)})}),i6=bl.define({create:()=>jj.empty,update(a,b){let c=b.state.facet(i5),d=b.annotation(i2);if(d){let e=jc.fromTransaction(b,d.selection),f=d.side,g=0==f?a.undone:a.done;return g=e?jd(g,g.length,c.minDepth,e):jg(g,b.startState.selection),new jj(0==f?d.rest:g,0==f?g:d.rest)}let e=b.annotation(i3);if(("full"==e||"before"==e)&&(a=a.isolate()),!1===b.annotation(bF.addToHistory))return b.changes.empty?a:a.addMapping(b.changes.desc);let f=jc.fromTransaction(b),g=b.annotation(bF.time),h=b.annotation(bF.userEvent);return f?a=a.addChanges(f,g,h,c,b):b.selection&&(a=a.addSelection(b.startState.selection,g,h,c.newGroupDelay)),("full"==e||"after"==e)&&(a=a.isolate()),a},toJSON:a=>({done:a.done.map(a=>a.toJSON()),undone:a.undone.map(a=>a.toJSON())}),fromJSON:a=>new jj(a.done.map(jc.fromJSON),a.undone.map(jc.fromJSON))});function i7(a,b){return function({state:c,dispatch:d}){if(!b&&c.readOnly)return!1;let e=c.field(i6,!1);if(!e)return!1;let f=e.pop(a,c,b);return!!f&&(d(f),!0)}}let i8=i7(0,!1),i9=i7(1,!1),ja=i7(0,!0),jb=i7(1,!0);class jc{constructor(a,b,c,d,e){this.changes=a,this.effects=b,this.mapped=c,this.startSelection=d,this.selectionsAfter=e}setSelAfter(a){return new jc(this.changes,this.effects,this.mapped,this.startSelection,a)}toJSON(){var a,b,c;return{changes:null==(a=this.changes)?void 0:a.toJSON(),mapped:null==(b=this.mapped)?void 0:b.toJSON(),startSelection:null==(c=this.startSelection)?void 0:c.toJSON(),selectionsAfter:this.selectionsAfter.map(a=>a.toJSON())}}static fromJSON(a){return new jc(a.changes&&a4.fromJSON(a.changes),[],a.mapped&&a3.fromJSON(a.mapped),a.startSelection&&bc.fromJSON(a.startSelection),a.selectionsAfter.map(bc.fromJSON))}static fromTransaction(a,b){let c=jf;for(let b of a.startState.facet(i4)){let d=b(a);d.length&&(c=c.concat(d))}return!c.length&&a.changes.empty?null:new jc(a.changes.invert(a.startState.doc),c,void 0,b||a.startState.selection,jf)}static selection(a){return new jc(void 0,jf,void 0,void 0,a)}}function jd(a,b,c,d){let e=a.slice(b+1>c+20?b-c-1:0,b);return e.push(d),e}function je(a,b){return a.length?b.length?a.concat(b):a:b}let jf=[];function jg(a,b){if(!a.length)return[jc.selection([b])];{let c=a[a.length-1],d=c.selectionsAfter.slice(Math.max(0,c.selectionsAfter.length-200));return d.length&&d[d.length-1].eq(b)?a:(d.push(b),jd(a,a.length-1,1e9,c.setSelAfter(d)))}}function jh(a,b){if(!a.length)return a;let c=a.length,d=jf;for(;c;){let e=function(a,b,c){let d=je(a.selectionsAfter.length?a.selectionsAfter.map(a=>a.map(b)):jf,c);if(!a.changes)return jc.selection(d);let e=a.changes.map(b),f=b.mapDesc(a.changes,!0),g=a.mapped?a.mapped.composeDesc(f):f;return new jc(e,bE.mapEffects(a.effects,b),g,a.startSelection.map(f),d)}(a[c-1],b,d);if(e.changes&&!e.changes.empty||e.effects.length){let b=a.slice(0,c);return b[c-1]=e,b}b=e.mapped,c--,d=e.selectionsAfter}return d.length?[jc.selection(d)]:jf}let ji=/^(input\.type|delete)($|\.)/;class jj{constructor(a,b,c=0,d){this.done=a,this.undone=b,this.prevTime=c,this.prevUserEvent=d}isolate(){return this.prevTime?new jj(this.done,this.undone):this}addChanges(a,b,c,d,e){var f,g;let h,i,j=this.done,k=j[j.length-1];return new jj(j=k&&k.changes&&!k.changes.empty&&a.changes&&(!c||ji.test(c))&&(!k.selectionsAfter.length&&b-this.prevTime<d.newGroupDelay&&d.joinToEvent(e,(f=k.changes,g=a.changes,h=[],i=!1,f.iterChangedRanges((a,b)=>h.push(a,b)),g.iterChangedRanges((a,b,c,d)=>{for(let a=0;a<h.length;){let b=h[a++],e=h[a++];d>=b&&c<=e&&(i=!0)}}),i))||"input.type.compose"==c)?jd(j,j.length-1,d.minDepth,new jc(a.changes.compose(k.changes),je(bE.mapEffects(a.effects,k.changes),k.effects),k.mapped,k.startSelection,jf)):jd(j,j.length,d.minDepth,a),jf,b,c)}addSelection(a,b,c,d){var e;let f=this.done.length?this.done[this.done.length-1].selectionsAfter:jf;return f.length>0&&b-this.prevTime<d&&c==this.prevUserEvent&&c&&/^select($|\.)/.test(c)&&(e=f[f.length-1],e.ranges.length==a.ranges.length&&0===e.ranges.filter((b,c)=>b.empty!=a.ranges[c].empty).length)?this:new jj(jg(this.done,a),this.undone,b,c)}addMapping(a){return new jj(jh(this.done,a),jh(this.undone,a),this.prevTime,this.prevUserEvent)}pop(a,b,c){let d=0==a?this.done:this.undone;if(0==d.length)return null;let e=d[d.length-1],f=e.selectionsAfter[0]||(e.startSelection?e.startSelection.map(e.changes.invertedDesc,1):b.selection);if(c&&e.selectionsAfter.length){let c,g;return b.update({selection:e.selectionsAfter[e.selectionsAfter.length-1],annotations:i2.of({side:a,rest:(c=d[d.length-1],(g=d.slice())[d.length-1]=c.setSelAfter(c.selectionsAfter.slice(0,c.selectionsAfter.length-1)),g),selection:f}),userEvent:0==a?"select.undo":"select.redo",scrollIntoView:!0})}{if(!e.changes)return null;let c=1==d.length?jf:d.slice(0,d.length-1);return e.mapped&&(c=jh(c,e.mapped)),b.update({changes:e.changes,selection:e.startSelection,effects:e.effects,annotations:i2.of({side:a,rest:c,selection:f}),filter:!1,userEvent:0==a?"undo":"redo",scrollIntoView:!0})}}}jj.empty=new jj(jf,jf);function jk(a,b){return bc.create(a.ranges.map(b),a.mainIndex)}function jl(a,b){return a.update({selection:b,scrollIntoView:!0,userEvent:"select"})}function jm({state:a,dispatch:b},c){let d=jk(a.selection,c);return!d.eq(a.selection,!0)&&(b(jl(a,d)),!0)}function jn(a,b){return bc.cursor(b?a.to:a.from)}function jo(a,b){return jm(a,c=>c.empty?a.moveByChar(c,b):jn(c,b))}function jp(a){return a.textDirectionAt(a.state.selection.main.head)==c0.LTR}let jq=a=>jo(a,!jp(a)),jr=a=>jo(a,jp(a));function js(a,b){return jm(a,c=>c.empty?a.moveByGroup(c,b):jn(c,b))}function jt(a,b,c){let d,e,f=hQ(a).resolveInner(b.head),g=c?gW.closedBy:gW.openedBy;for(let d=b.head;;){let b=c?f.childAfter(d):f.childBefore(d);if(!b)break;!function(a,b,c){if(b.type.prop(c))return!0;let d=b.to-b.from;return d&&(d>2||/[^\s,.;:]/.test(a.sliceDoc(b.from,b.to)))||b.firstChild}(a,b,g)?d=c?b.to:b.from:f=b}return e=f.type.prop(g)&&(d=c?iR(a,f.from,1):iR(a,f.to,-1))&&d.matched?c?d.end.to:d.end.from:c?f.to:f.from,bc.cursor(e,c?-1:1)}function ju(a,b){return jm(a,c=>{if(!c.empty)return jn(c,b);let d=a.moveVertically(c,b);return d.head!=c.head?d:a.moveToLineBoundary(c,b)})}"u">typeof Intl&&Intl.Segmenter;let jv=a=>ju(a,!1),jw=a=>ju(a,!0);function jx(a){let b=a.scrollDOM.clientHeight<a.scrollDOM.scrollHeight-2,c=0,d=0,e;if(b){for(let b of a.state.facet(ft.scrollMargins)){let e=b(a);(null==e?void 0:e.top)&&(c=Math.max(null==e?void 0:e.top,c)),(null==e?void 0:e.bottom)&&(d=Math.max(null==e?void 0:e.bottom,d))}e=a.scrollDOM.clientHeight-c-d}else e=(a.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:c,marginBottom:d,selfScroll:b,height:Math.max(a.defaultLineHeight,e-5)}}function jy(a,b){let c,d=jx(a),{state:e}=a,f=jk(e.selection,c=>c.empty?a.moveVertically(c,b,d.height):jn(c,b));if(f.eq(e.selection))return!1;if(d.selfScroll){let b=a.coordsAtPos(e.selection.main.head),g=a.scrollDOM.getBoundingClientRect(),h=g.top+d.marginTop,i=g.bottom-d.marginBottom;b&&b.top>h&&b.bottom<i&&(c=ft.scrollIntoView(f.main.head,{y:"start",yMargin:b.top-h}))}return a.dispatch(jl(e,f),{effects:c}),!0}let jz=a=>jy(a,!1),jA=a=>jy(a,!0);function jB(a,b,c){let d=a.lineBlockAt(b.head),e=a.moveToLineBoundary(b,c);if(e.head==b.head&&e.head!=(c?d.to:d.from)&&(e=a.moveToLineBoundary(b,c,!1)),!c&&e.head==d.from&&d.length){let c=/^\s*/.exec(a.state.sliceDoc(d.from,Math.min(d.from+100,d.to)))[0].length;c&&b.head!=d.from+c&&(e=bc.cursor(d.from+c))}return e}function jC(a,b){let c=jk(a.state.selection,a=>{let c=b(a);return bc.range(a.anchor,c.head,c.goalColumn,c.bidiLevel||void 0,c.assoc)});return!c.eq(a.state.selection)&&(a.dispatch(jl(a.state,c)),!0)}function jD(a,b){return jC(a,c=>a.moveByChar(c,b))}let jE=a=>jD(a,!jp(a)),jF=a=>jD(a,jp(a));function jG(a,b){return jC(a,c=>a.moveByGroup(c,b))}function jH(a,b){return jC(a,c=>a.moveVertically(c,b))}let jI=a=>jH(a,!1),jJ=a=>jH(a,!0);function jK(a,b){return jC(a,c=>a.moveVertically(c,b,jx(a).height))}let jL=a=>jK(a,!1),jM=a=>jK(a,!0),jN=({state:a,dispatch:b})=>(b(jl(a,{anchor:0})),!0),jO=({state:a,dispatch:b})=>(b(jl(a,{anchor:a.doc.length})),!0),jP=({state:a,dispatch:b})=>(b(jl(a,{anchor:a.selection.main.anchor,head:0})),!0),jQ=({state:a,dispatch:b})=>(b(jl(a,{anchor:a.selection.main.anchor,head:a.doc.length})),!0);function jR(a,b){let{state:c}=a,d=c.selection,e=c.selection.ranges.slice();for(let d of c.selection.ranges){let f=c.doc.lineAt(d.head);if(b?f.to<a.state.doc.length:f.from>0)for(let c=d;;){let d=a.moveVertically(c,b);if(d.head<f.from||d.head>f.to){e.some(a=>a.head==d.head)||e.push(d);break}if(d.head==c.head)break;c=d}}return e.length!=d.ranges.length&&(a.dispatch(jl(c,bc.create(e,e.length-1))),!0)}function jS(a,b){if(a.state.readOnly)return!1;let c="delete.selection",{state:d}=a,e=d.changeByRange(d=>{let{from:e,to:f}=d;if(e==f){let g=b(d);g<e?(c="delete.backward",g=jT(a,g,!1)):g>e&&(c="delete.forward",g=jT(a,g,!0)),e=Math.min(e,g),f=Math.max(f,g)}else e=jT(a,e,!1),f=jT(a,f,!0);return e==f?{range:d}:{changes:{from:e,to:f},range:bc.cursor(e,e<d.head?-1:1)}});return!e.changes.empty&&(a.dispatch(d.update(e,{scrollIntoView:!0,userEvent:c,effects:"delete.selection"==c?ft.announce.of(d.phrase("Selection deleted")):void 0})),!0)}function jT(a,b,c){if(a instanceof ft)for(let d of a.state.facet(ft.atomicRanges).map(b=>b(a)))d.between(b,b,(a,d)=>{a<b&&d>b&&(b=c?d:a)});return b}let jU=(a,b,c)=>jS(a,d=>{let e=d.from,{state:f}=a,g=f.doc.lineAt(e),h,i;if(c&&!b&&e>g.from&&e<g.from+200&&!/[^ \t]/.test(h=g.text.slice(0,e-g.from))){if(" "==h[h.length-1])return e-1;let a=b3(h,f.tabSize)%h1(f)||h1(f);for(let b=0;b<a&&" "==h[h.length-1-b];b++)e--;i=e}else(i=aZ(g.text,e-g.from,b,b)+g.from)==e&&g.number!=(b?f.doc.lines:1)?i+=b?1:-1:!b&&/[\ufe00-\ufe0f]/.test(g.text.slice(i-g.from,e-g.from))&&(i=aZ(g.text,i-g.from,!1,!1)+g.from);return i}),jV=a=>jU(a,!1,!0),jW=a=>jU(a,!0,!1),jX=(a,b)=>jS(a,c=>{let d=c.head,{state:e}=a,f=e.doc.lineAt(d),g=e.charCategorizer(d);for(let a=null;;){if(d==(b?f.to:f.from)){d==c.head&&f.number!=(b?e.doc.lines:1)&&(d+=b?1:-1);break}let h=aZ(f.text,d-f.from,b)+f.from,i=f.text.slice(Math.min(d,h)-f.from,Math.max(d,h)-f.from),j=g(i);if(null!=a&&j!=a)break;(" "!=i||d!=c.head)&&(a=j),d=h}return d}),jY=a=>jX(a,!1);function jZ(a){let b=[],c=-1;for(let d of a.selection.ranges){let e=a.doc.lineAt(d.from),f=a.doc.lineAt(d.to);if(d.empty||d.to!=f.from||(f=a.doc.lineAt(d.to-1)),c>=e.number){let a=b[b.length-1];a.to=f.to,a.ranges.push(d)}else b.push({from:e.from,to:f.to,ranges:[d]});c=f.number+1}return b}function j$(a,b,c){if(a.readOnly)return!1;let d=[],e=[];for(let b of jZ(a)){if(c?b.to==a.doc.length:0==b.from)continue;let f=a.doc.lineAt(c?b.to+1:b.from-1),g=f.length+1;if(c)for(let c of(d.push({from:b.to,to:f.to},{from:b.from,insert:f.text+a.lineBreak}),b.ranges))e.push(bc.range(Math.min(a.doc.length,c.anchor+g),Math.min(a.doc.length,c.head+g)));else for(let c of(d.push({from:f.from,to:b.from},{from:b.to,insert:a.lineBreak+f.text}),b.ranges))e.push(bc.range(c.anchor-g,c.head-g))}return!!d.length&&(b(a.update({changes:d,scrollIntoView:!0,selection:bc.create(e,a.selection.mainIndex),userEvent:"move.line"})),!0)}function j_(a,b,c){if(a.readOnly)return!1;let d=[];for(let b of jZ(a))c?d.push({from:b.from,insert:a.doc.slice(b.from,b.to)+a.lineBreak}):d.push({from:b.to,insert:a.lineBreak+a.doc.slice(b.from,b.to)});let e=a.changes(d);return b(a.update({changes:e,selection:a.selection.map(e,c?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}let j0=j2(!1),j1=j2(!0);function j2(a){return({state:b,dispatch:c})=>{if(b.readOnly)return!1;let d=b.changeByRange(c=>{let{from:d,to:e}=c,f=b.doc.lineAt(d),g=!a&&d==e&&function(a,b){if(/\(\)|\[\]|\{\}/.test(a.sliceDoc(b-1,b+1)))return{from:b,to:b};let c=hQ(a).resolveInner(b),d=c.childBefore(b),e=c.childAfter(b),f;return d&&e&&d.to<=b&&e.from>=b&&(f=d.type.prop(gW.closedBy))&&f.indexOf(e.name)>-1&&a.doc.lineAt(d.to).from==a.doc.lineAt(e.from).from&&!/\S/.test(a.sliceDoc(d.to,e.from))?{from:d.to,to:e.from}:null}(b,d);a&&(d=e=(e<=f.to?f:b.doc.lineAt(e)).to);let h=new h4(b,{simulateBreak:d,simulateDoubleBreak:!!g}),i=h3(h,d);for(null==i&&(i=b3(/^\s*/.exec(b.doc.lineAt(d).text)[0],b.tabSize));e<f.to&&/\s/.test(f.text[e-f.from]);)e++;g?{from:d,to:e}=g:d>f.from&&d<f.from+100&&!/\S/.test(f.text.slice(0,d))&&(d=f.from);let j=["",h2(b,i)];return g&&j.push(h2(b,h.lineIndent(f.from,-1))),{changes:{from:d,to:e,insert:aQ.of(j)},range:bc.cursor(d+1+j[1].length)}});return c(b.update(d,{scrollIntoView:!0,userEvent:"input"})),!0}}function j3(a,b){let c=-1;return a.changeByRange(d=>{let e=[];for(let f=d.from;f<=d.to;){let g=a.doc.lineAt(f);g.number>c&&(d.empty||d.to>g.from)&&(b(g,e,d),c=g.number),f=g.to+1}let f=a.changes(e);return{changes:e,range:bc.range(f.mapPos(d.anchor,1),f.mapPos(d.head,1))}})}let j4=[{key:"Ctrl-b",run:jq,shift:jE,preventDefault:!0},{key:"Ctrl-f",run:jr,shift:jF},{key:"Ctrl-p",run:jv,shift:jI},{key:"Ctrl-n",run:jw,shift:jJ},{key:"Ctrl-a",run:a=>jm(a,b=>bc.cursor(a.lineBlockAt(b.head).from,1)),shift:a=>jC(a,b=>bc.cursor(a.lineBlockAt(b.head).from))},{key:"Ctrl-e",run:a=>jm(a,b=>bc.cursor(a.lineBlockAt(b.head).to,-1)),shift:a=>jC(a,b=>bc.cursor(a.lineBlockAt(b.head).to))},{key:"Ctrl-d",run:jW},{key:"Ctrl-h",run:jV},{key:"Ctrl-k",run:a=>jS(a,b=>{let c=a.lineBlockAt(b.head).to;return b.head<c?c:Math.min(a.state.doc.length,b.head+1)})},{key:"Ctrl-Alt-h",run:jY},{key:"Ctrl-o",run:({state:a,dispatch:b})=>{if(a.readOnly)return!1;let c=a.changeByRange(a=>({changes:{from:a.from,to:a.to,insert:aQ.of(["",""])},range:bc.cursor(a.from)}));return b(a.update(c,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:a,dispatch:b})=>{if(a.readOnly)return!1;let c=a.changeByRange(b=>{if(!b.empty||0==b.from||b.from==a.doc.length)return{range:b};let c=b.from,d=a.doc.lineAt(c),e=c==d.from?c-1:aZ(d.text,c-d.from,!1)+d.from,f=c==d.to?c+1:aZ(d.text,c-d.from,!0)+d.from;return{changes:{from:e,to:f,insert:a.doc.slice(c,f).append(a.doc.slice(e,c))},range:bc.cursor(f)}});return!c.changes.empty&&(b(a.update(c,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:jA}],j5=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:a=>jm(a,b=>jt(a.state,b,!jp(a))),shift:a=>jC(a,b=>jt(a.state,b,!jp(a)))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:a=>jm(a,b=>jt(a.state,b,jp(a))),shift:a=>jC(a,b=>jt(a.state,b,jp(a)))},{key:"Alt-ArrowUp",run:({state:a,dispatch:b})=>j$(a,b,!1)},{key:"Shift-Alt-ArrowUp",run:({state:a,dispatch:b})=>j_(a,b,!1)},{key:"Alt-ArrowDown",run:({state:a,dispatch:b})=>j$(a,b,!0)},{key:"Shift-Alt-ArrowDown",run:({state:a,dispatch:b})=>j_(a,b,!0)},{key:"Mod-Alt-ArrowUp",run:a=>jR(a,!1)},{key:"Mod-Alt-ArrowDown",run:a=>jR(a,!0)},{key:"Escape",run:({state:a,dispatch:b})=>{let c=a.selection,d=null;return c.ranges.length>1?d=bc.create([c.main]):c.main.empty||(d=bc.create([bc.cursor(c.main.head)])),!!d&&(b(jl(a,d)),!0)}},{key:"Mod-Enter",run:j1},{key:"Alt-l",mac:"Ctrl-l",run:({state:a,dispatch:b})=>{let c=jZ(a).map(({from:b,to:c})=>bc.range(b,Math.min(c+1,a.doc.length)));return b(a.update({selection:bc.create(c),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:a,dispatch:b})=>{let c=jk(a.selection,b=>{let c=hQ(a),d=c.resolveStack(b.from,1);if(b.empty){let a=c.resolveStack(b.from,-1);a.node.from>=d.node.from&&a.node.to<=d.node.to&&(d=a)}for(let a=d;a;a=a.next){let{node:c}=a;if((c.from<b.from&&c.to>=b.to||c.to>b.to&&c.from<=b.from)&&a.next)return bc.range(c.to,c.from)}return b});return!c.eq(a.selection)&&(b(jl(a,c)),!0)},preventDefault:!0},{key:"Mod-[",run:({state:a,dispatch:b})=>!a.readOnly&&(b(a.update(j3(a,(b,c)=>{let d=/^\s*/.exec(b.text)[0];if(!d)return;let e=b3(d,a.tabSize),f=0,g=h2(a,Math.max(0,e-h1(a)));for(;f<d.length&&f<g.length&&d.charCodeAt(f)==g.charCodeAt(f);)f++;c.push({from:b.from+f,to:b.from+d.length,insert:g.slice(f)})}),{userEvent:"delete.dedent"})),!0)},{key:"Mod-]",run:({state:a,dispatch:b})=>!a.readOnly&&(b(a.update(j3(a,(b,c)=>{c.push({from:b.from,insert:a.facet(h0)})}),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:a,dispatch:b})=>{if(a.readOnly)return!1;let c=Object.create(null),d=new h4(a,{overrideIndentation:a=>{let b=c[a];return null==b?-1:b}}),e=j3(a,(b,e,f)=>{let g=h3(d,b.from);if(null==g)return;/\S/.test(b.text)||(g=0);let h=/^\s*/.exec(b.text)[0],i=h2(a,g);(h!=i||f.from<b.from+h.length)&&(c[b.from]=g,e.push({from:b.from,to:b.from+h.length,insert:i}))});return e.changes.empty||b(a.update(e,{userEvent:"indent"})),!0}},{key:"Shift-Mod-k",run:a=>{if(a.state.readOnly)return!1;let{state:b}=a,c=b.changes(jZ(b).map(({from:a,to:c})=>(a>0?a--:c<b.doc.length&&c++,{from:a,to:c}))),d=jk(b.selection,b=>{let c;if(a.lineWrapping){let d=a.lineBlockAt(b.head),e=a.coordsAtPos(b.head,b.assoc||1);e&&(c=d.bottom+a.documentTop-e.bottom+a.defaultLineHeight/2)}return a.moveVertically(b,!0,c)}).map(c);return a.dispatch({changes:c,selection:d,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:a,dispatch:b})=>{let c,d;return c=!1,d=jk(a.selection,b=>{let d=iR(a,b.head,-1)||iR(a,b.head,1)||b.head>0&&iR(a,b.head-1,1)||b.head<a.doc.length&&iR(a,b.head+1,-1);if(!d||!d.end)return b;c=!0;let e=d.start.from==b.head?d.end.to:d.end.from;return bc.cursor(e)}),!!c&&(b(jl(a,d)),!0)}},{key:"Mod-/",run:a=>{let{state:b}=a,c=b.doc.lineAt(b.selection.main.from),d=i0(a.state,c.from);return d.line?iZ(a):!!d.block&&i_(a)}},{key:"Alt-A",run:i$},{key:"Ctrl-m",mac:"Shift-Alt-m",run:a=>(a.setTabFocusMode(),!0)}].concat([{key:"ArrowLeft",run:jq,shift:jE,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:a=>js(a,!jp(a)),shift:a=>jG(a,!jp(a)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:a=>jm(a,b=>jB(a,b,!jp(a))),shift:a=>jC(a,b=>jB(a,b,!jp(a))),preventDefault:!0},{key:"ArrowRight",run:jr,shift:jF,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:a=>js(a,jp(a)),shift:a=>jG(a,jp(a)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:a=>jm(a,b=>jB(a,b,jp(a))),shift:a=>jC(a,b=>jB(a,b,jp(a))),preventDefault:!0},{key:"ArrowUp",run:jv,shift:jI,preventDefault:!0},{mac:"Cmd-ArrowUp",run:jN,shift:jP},{mac:"Ctrl-ArrowUp",run:jz,shift:jL},{key:"ArrowDown",run:jw,shift:jJ,preventDefault:!0},{mac:"Cmd-ArrowDown",run:jO,shift:jQ},{mac:"Ctrl-ArrowDown",run:jA,shift:jM},{key:"PageUp",run:jz,shift:jL},{key:"PageDown",run:jA,shift:jM},{key:"Home",run:a=>jm(a,b=>jB(a,b,!1)),shift:a=>jC(a,b=>jB(a,b,!1)),preventDefault:!0},{key:"Mod-Home",run:jN,shift:jP},{key:"End",run:a=>jm(a,b=>jB(a,b,!0)),shift:a=>jC(a,b=>jB(a,b,!0)),preventDefault:!0},{key:"Mod-End",run:jO,shift:jQ},{key:"Enter",run:j0,shift:j0},{key:"Mod-a",run:({state:a,dispatch:b})=>(b(a.update({selection:{anchor:0,head:a.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:jV,shift:jV,preventDefault:!0},{key:"Delete",run:jW,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:jY,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:a=>jX(a,!0),preventDefault:!0},{mac:"Mod-Backspace",run:a=>jS(a,b=>{let c=a.moveToLineBoundary(b,!1).head;return b.head>c?c:Math.max(0,b.head-1)}),preventDefault:!0},{mac:"Mod-Delete",run:a=>jS(a,b=>{let c=a.moveToLineBoundary(b,!0).head;return b.head<c?c:Math.min(a.state.doc.length,b.head+1)}),preventDefault:!0}].concat(j4.map(a=>({mac:a.key,run:a.run,shift:a.shift})))),j6="function"==typeof String.prototype.normalize?a=>a.normalize("NFKD"):a=>a;class j7{constructor(a,b,c=0,d=a.length,e,f){this.test=f,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=a.iterRange(c,d),this.bufferStart=c,this.normalize=e?a=>e(j6(a)):j6,this.query=this.normalize(b)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return -1;this.bufferPos=0,this.buffer=this.iter.value}return a$(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let a=this.peek();if(a<0)return this.done=!0,this;let b=a_(a),c=this.bufferStart+this.bufferPos;this.bufferPos+=a0(a);let d=this.normalize(b);if(d.length)for(let a=0,e=c;;a++){let f=d.charCodeAt(a),g=this.match(f,e,this.bufferPos+this.bufferStart);if(a==d.length-1){if(g)return this.value=g,this;break}e==c&&a<b.length&&b.charCodeAt(a)==f&&e++}}}match(a,b,c){let d=null;for(let b=0;b<this.matches.length;b+=2){let e=this.matches[b],f=!1;this.query.charCodeAt(e)==a&&(e==this.query.length-1?d={from:this.matches[b+1],to:c}:(this.matches[b]++,f=!0)),f||(this.matches.splice(b,2),b-=2)}return this.query.charCodeAt(0)==a&&(1==this.query.length?d={from:b,to:c}:this.matches.push(1,b)),d&&this.test&&!this.test(d.from,d.to,this.buffer,this.bufferStart)&&(d=null),d}}"u">typeof Symbol&&(j7.prototype[Symbol.iterator]=function(){return this});let j8={from:-1,to:-1,match:/.*/.exec("")},j9="gm"+(null==/x/.unicode?"":"u");class ka{constructor(a,b,c,d=0,e=a.length){if(this.text=a,this.to=e,this.curLine="",this.done=!1,this.value=j8,/\\[sWDnr]|\n|\r|\[\^/.test(b))return new kd(a,b,c,d,e);this.re=new RegExp(b,j9+((null==c?void 0:c.ignoreCase)?"i":"")),this.test=null==c?void 0:c.test,this.iter=a.iter();let f=a.lineAt(d);this.curLineStart=f.from,this.matchPos=ke(a,d),this.getLine(this.curLineStart)}getLine(a){this.iter.next(a),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let a=this.matchPos-this.curLineStart;;){this.re.lastIndex=a;let b=this.matchPos<=this.to&&this.re.exec(this.curLine);if(b){let c=this.curLineStart+b.index,d=c+b[0].length;if(this.matchPos=ke(this.text,d+ +(c==d)),c==this.curLineStart+this.curLine.length&&this.nextLine(),(c<d||c>this.value.to)&&(!this.test||this.test(c,d,b)))return this.value={from:c,to:d,match:b},this;a=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length<this.to))return this.done=!0,this;this.nextLine(),a=0}}}}let kb=new WeakMap;class kc{constructor(a,b){this.from=a,this.text=b}get to(){return this.from+this.text.length}static get(a,b,c){let d=kb.get(a);if(!d||d.from>=c||d.to<=b){let d=new kc(b,a.sliceString(b,c));return kb.set(a,d),d}if(d.from==b&&d.to==c)return d;let{text:e,from:f}=d;return f>b&&(e=a.sliceString(b,f)+e,f=b),d.to<c&&(e+=a.sliceString(d.to,c)),kb.set(a,new kc(f,e)),new kc(b,e.slice(b-f,c-f))}}class kd{constructor(a,b,c,d,e){this.text=a,this.to=e,this.done=!1,this.value=j8,this.matchPos=ke(a,d),this.re=new RegExp(b,j9+((null==c?void 0:c.ignoreCase)?"i":"")),this.test=null==c?void 0:c.test,this.flat=kc.get(a,d,this.chunkEnd(d+5e3))}chunkEnd(a){return a>=this.to?this.to:this.text.lineAt(a).to}next(){for(;;){let a=this.re.lastIndex=this.matchPos-this.flat.from,b=this.re.exec(this.flat.text);if(b&&!b[0]&&b.index==a&&(this.re.lastIndex=a+1,b=this.re.exec(this.flat.text)),b){let a=this.flat.from+b.index,c=a+b[0].length;if((this.flat.to>=this.to||b.index+b[0].length<=this.flat.text.length-10)&&(!this.test||this.test(a,c,b)))return this.value={from:a,to:c,match:b},this.matchPos=ke(this.text,c+ +(a==c)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=kc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function ke(a,b){if(b>=a.length)return b;let c=a.lineAt(b),d;for(;b<c.to&&(d=c.text.charCodeAt(b-c.from))>=56320&&d<57344;)b++;return b}"u">typeof Symbol&&(ka.prototype[Symbol.iterator]=kd.prototype[Symbol.iterator]=function(){return this});let kf={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},kg=bf.define({combine:a=>bN(a,kf,{highlightWordAroundCursor:(a,b)=>a||b,minSelectionLength:Math.min,maxMatches:Math.min})}),kh=cA.mark({class:"cm-selectionMatch"}),ki=cA.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function kj(a,b,c,d){return(0==c||a(b.sliceDoc(c-1,c))!=bK.Word)&&(d==b.doc.length||a(b.sliceDoc(d,d+1))!=bK.Word)}let kk=dy.fromClass(class{constructor(a){this.decorations=this.getDeco(a)}update(a){(a.selectionSet||a.docChanged||a.viewportChanged)&&(this.decorations=this.getDeco(a.view))}getDeco(a){let b=a.state.facet(kg),{state:c}=a,d=c.selection;if(d.ranges.length>1)return cA.none;let e=d.main,f,g=null;if(e.empty){if(!b.highlightWordAroundCursor)return cA.none;let a=c.wordAt(e.head);if(!a)return cA.none;g=c.charCategorizer(e.head),f=c.sliceDoc(a.from,a.to)}else{let a=e.to-e.from;if(a<b.minSelectionLength||a>200)return cA.none;if(b.wholeWords){var h,i,j;if(f=c.sliceDoc(e.from,e.to),!(kj(g=c.charCategorizer(e.head),c,e.from,e.to)&&(h=g,i=e.from,j=e.to,h(c.sliceDoc(i,i+1))==bK.Word&&h(c.sliceDoc(j-1,j))==bK.Word)))return cA.none}else if(!(f=c.sliceDoc(e.from,e.to)))return cA.none}let k=[];for(let d of a.visibleRanges){let a=new j7(c.doc,f,d.from,d.to);for(;!a.next().done;){let{from:d,to:f}=a.value;if((!g||kj(g,c,d,f))&&(e.empty&&d<=e.from&&f>=e.to?k.push(ki.range(d,f)):(d>=e.to||f<=e.from)&&k.push(kh.range(d,f)),k.length>b.maxMatches))return cA.none}}return cA.set(k)}},{decorations:a=>a.decorations}),kl=ft.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),km=bf.define({combine:a=>bN(a,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:a=>new kP(a),scrollToMatch:a=>ft.scrollIntoView(a)})});class kn{constructor(a){this.search=a.search,this.caseSensitive=!!a.caseSensitive,this.literal=!!a.literal,this.regexp=!!a.regexp,this.replace=a.replace||"",this.valid=!!this.search&&(!this.regexp||function(a){try{return new RegExp(a,j9),!0}catch(a){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!a.wholeWord,this.test=a.test}unquote(a){return this.literal?a:a.replace(/\\([nrt\\])/g,(a,b)=>"n"==b?"\n":"r"==b?"\r":"t"==b?" ":"\\")}eq(a){return this.search==a.search&&this.replace==a.replace&&this.caseSensitive==a.caseSensitive&&this.regexp==a.regexp&&this.wholeWord==a.wholeWord&&this.test==a.test}create(){return this.regexp?new ku(this):new kq(this)}getCursor(a,b=0,c){let d=a.doc?a:bM.create({doc:a});return null==c&&(c=d.doc.length),this.regexp?kr(this,d,b,c):kp(this,d,b,c)}}class ko{constructor(a){this.spec=a}}function kp(a,b,c,d){var e,f,g,h;let i;return a.wholeWord&&(g=b.doc,h=b.charCategorizer(b.selection.main.head),i=(a,b,c,d)=>((d>a||d+c.length<b)&&(d=Math.max(0,a-2),c=g.sliceString(d,Math.min(g.length,b+2))),(h(ks(c,a-d))!=bK.Word||h(kt(c,a-d))!=bK.Word)&&(h(kt(c,b-d))!=bK.Word||h(ks(c,b-d))!=bK.Word))),a.test&&(e=a.test,f=i,i=(a,c,d,g)=>(!f||!!f(a,c,d,g))&&e(a>=g&&c<=g+d.length?d.slice(a-g,c-g):b.doc.sliceString(a,c),b,a,c)),new j7(b.doc,a.unquoted,c,d,a.caseSensitive?void 0:a=>a.toLowerCase(),i)}class kq extends ko{constructor(a){super(a)}nextMatch(a,b,c){let d=kp(this.spec,a,c,a.doc.length).nextOverlapping();if(d.done){let c=Math.min(a.doc.length,b+this.spec.unquoted.length);d=kp(this.spec,a,0,c).nextOverlapping()}return d.done||d.value.from==b&&d.value.to==c?null:d.value}prevMatchInRange(a,b,c){for(let d=c;;){let c=Math.max(b,d-1e4-this.spec.unquoted.length),e=kp(this.spec,a,c,d),f=null;for(;!e.nextOverlapping().done;)f=e.value;if(f)return f;if(c==b)return null;d-=1e4}}prevMatch(a,b,c){let d=this.prevMatchInRange(a,0,b);return d||(d=this.prevMatchInRange(a,Math.max(0,c-this.spec.unquoted.length),a.doc.length)),d&&(d.from!=b||d.to!=c)?d:null}getReplacement(a){return this.spec.unquote(this.spec.replace)}matchAll(a,b){let c=kp(this.spec,a,0,a.doc.length),d=[];for(;!c.next().done;){if(d.length>=b)return null;d.push(c.value)}return d}highlight(a,b,c,d){let e=kp(this.spec,a,Math.max(0,b-this.spec.unquoted.length),Math.min(c+this.spec.unquoted.length,a.doc.length));for(;!e.next().done;)d(e.value.from,e.value.to)}}function kr(a,b,c,d){var e,f,g;let h;return a.wholeWord&&(g=b.charCategorizer(b.selection.main.head),h=(a,b,c)=>!c[0].length||(g(ks(c.input,c.index))!=bK.Word||g(kt(c.input,c.index))!=bK.Word)&&(g(kt(c.input,c.index+c[0].length))!=bK.Word||g(ks(c.input,c.index+c[0].length))!=bK.Word)),a.test&&(e=a.test,f=h,h=(a,c,d)=>(!f||f(a,c,d))&&e(d[0],b,a,c)),new ka(b.doc,a.search,{ignoreCase:!a.caseSensitive,test:h},c,d)}function ks(a,b){return a.slice(aZ(a,b,!1),b)}function kt(a,b){return a.slice(b,aZ(a,b))}class ku extends ko{nextMatch(a,b,c){let d=kr(this.spec,a,c,a.doc.length).next();return d.done&&(d=kr(this.spec,a,0,b).next()),d.done?null:d.value}prevMatchInRange(a,b,c){for(let d=1;;d++){let e=Math.max(b,c-1e4*d),f=kr(this.spec,a,e,c),g=null;for(;!f.next().done;)g=f.value;if(g&&(e==b||g.from>e+10))return g;if(e==b)return null}}prevMatch(a,b,c){return this.prevMatchInRange(a,0,b)||this.prevMatchInRange(a,c,a.doc.length)}getReplacement(a){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(b,c)=>{if("&"==c)return a.match[0];if("$"==c)return"$";for(let b=c.length;b>0;b--){let d=+c.slice(0,b);if(d>0&&d<a.match.length)return a.match[d]+c.slice(b)}return b})}matchAll(a,b){let c=kr(this.spec,a,0,a.doc.length),d=[];for(;!c.next().done;){if(d.length>=b)return null;d.push(c.value)}return d}highlight(a,b,c,d){let e=kr(this.spec,a,Math.max(0,b-250),Math.min(c+250,a.doc.length));for(;!e.next().done;)d(e.value.from,e.value.to)}}let kv=bE.define(),kw=bE.define(),kx=bl.define({create:a=>new ky(kJ(a).create(),null),update(a,b){for(let c of b.effects)c.is(kv)?a=new ky(c.value.create(),a.panel):c.is(kw)&&(a=new ky(a.query,c.value?kI:null));return a},provide:a=>gu.from(a,a=>a.panel)});class ky{constructor(a,b){this.query=a,this.panel=b}}let kz=cA.mark({class:"cm-searchMatch"}),kA=cA.mark({class:"cm-searchMatch cm-searchMatch-selected"}),kB=dy.fromClass(class{constructor(a){this.view=a,this.decorations=this.highlight(a.state.field(kx))}update(a){let b=a.state.field(kx);(b!=a.startState.field(kx)||a.docChanged||a.selectionSet||a.viewportChanged)&&(this.decorations=this.highlight(b))}highlight({query:a,panel:b}){if(!b||!a.spec.valid)return cA.none;let{view:c}=this,d=new bU;for(let b=0,e=c.visibleRanges,f=e.length;b<f;b++){let{from:g,to:h}=e[b];for(;b<f-1&&h>e[b+1].from-500;)h=e[++b].to;a.highlight(c.state,g,h,(a,b)=>{let e=c.state.selection.ranges.some(c=>c.from==a&&c.to==b);d.add(a,b,e?kA:kz)})}return d.finish()}},{decorations:a=>a.decorations});function kC(a){return b=>{let c=b.state.field(kx,!1);return c&&c.query.spec.valid?a(b,c):kM(b)}}let kD=kC((a,{query:b})=>{let{to:c}=a.state.selection.main,d=b.nextMatch(a.state,c,c);if(!d)return!1;let e=bc.single(d.from,d.to),f=a.state.facet(km);return a.dispatch({selection:e,effects:[kS(a,d),f.scrollToMatch(e.main,a)],userEvent:"select.search"}),kL(a),!0}),kE=kC((a,{query:b})=>{let{state:c}=a,{from:d}=c.selection.main,e=b.prevMatch(c,d,d);if(!e)return!1;let f=bc.single(e.from,e.to),g=a.state.facet(km);return a.dispatch({selection:f,effects:[kS(a,e),g.scrollToMatch(f.main,a)],userEvent:"select.search"}),kL(a),!0}),kF=kC((a,{query:b})=>{let c=b.matchAll(a.state,1e3);return!!c&&!!c.length&&(a.dispatch({selection:bc.create(c.map(a=>bc.range(a.from,a.to))),userEvent:"select.search.matches"}),!0)}),kG=kC((a,{query:b})=>{let{state:c}=a,{from:d,to:e}=c.selection.main;if(c.readOnly)return!1;let f=b.nextMatch(c,d,d);if(!f)return!1;let g=f,h=[],i,j,k=[];g.from==d&&g.to==e&&(j=c.toText(b.getReplacement(g)),h.push({from:g.from,to:g.to,insert:j}),g=b.nextMatch(c,g.from,g.to),k.push(ft.announce.of(c.phrase("replaced match on line $",c.doc.lineAt(d).number)+".")));let l=a.state.changes(h);return g&&(i=bc.single(g.from,g.to).map(l),k.push(kS(a,g)),k.push(c.facet(km).scrollToMatch(i.main,a))),a.dispatch({changes:l,selection:i,effects:k,userEvent:"input.replace"}),!0}),kH=kC((a,{query:b})=>{if(a.state.readOnly)return!1;let c=b.matchAll(a.state,1e9).map(a=>{let{from:c,to:d}=a;return{from:c,to:d,insert:b.getReplacement(a)}});if(!c.length)return!1;let d=a.state.phrase("replaced $ matches",c.length)+".";return a.dispatch({changes:c,effects:ft.announce.of(d),userEvent:"input.replace.all"}),!0});function kI(a){return a.state.facet(km).createPanel(a)}function kJ(a,b){var c,d,e,f,g;let h=a.selection.main,i=h.empty||h.to>h.from+100?"":a.sliceDoc(h.from,h.to);if(b&&!i)return b;let j=a.facet(km);return new kn({search:(null!=(c=null==b?void 0:b.literal)?c:j.literal)?i:i.replace(/\n/g,"\\n"),caseSensitive:null!=(d=null==b?void 0:b.caseSensitive)?d:j.caseSensitive,literal:null!=(e=null==b?void 0:b.literal)?e:j.literal,regexp:null!=(f=null==b?void 0:b.regexp)?f:j.regexp,wholeWord:null!=(g=null==b?void 0:b.wholeWord)?g:j.wholeWord})}function kK(a){let b=gq(a,kI);return b&&b.dom.querySelector("[main-field]")}function kL(a){let b=kK(a);b&&b==a.root.activeElement&&b.select()}let kM=a=>{let b=a.state.field(kx,!1);if(b&&b.panel){let c=kK(a);if(c&&c!=a.root.activeElement){let d=kJ(a.state,b.query.spec);d.valid&&a.dispatch({effects:kv.of(d)}),c.focus(),c.select()}}else a.dispatch({effects:[kw.of(!0),b?kv.of(kJ(a.state,b.query.spec)):bE.appendConfig.of(kU)]});return!0},kN=a=>{let b=a.state.field(kx,!1);if(!b||!b.panel)return!1;let c=gq(a,kI);return c&&c.dom.contains(a.root.activeElement)&&a.focus(),a.dispatch({effects:kw.of(!1)}),!0},kO=[{key:"Mod-f",run:kM,scope:"editor search-panel"},{key:"F3",run:kD,shift:kE,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:kD,shift:kE,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:kN,scope:"editor search-panel"},{key:"Mod-Shift-l",run:({state:a,dispatch:b})=>{let c=a.selection;if(c.ranges.length>1||c.main.empty)return!1;let{from:d,to:e}=c.main,f=[],g=0;for(let b=new j7(a.doc,a.sliceDoc(d,e));!b.next().done;){if(f.length>1e3)return!1;b.value.from==d&&(g=f.length),f.push(bc.range(b.value.from,b.value.to))}return b(a.update({selection:bc.create(f,g),userEvent:"select.search.matches"})),!0}},{key:"Mod-Alt-g",run:a=>{var b;let c,d,e,f,{state:g}=a,h=String(g.doc.lineAt(a.state.selection.main.head).number),{close:i,result:j}=(b={label:g.phrase("Go to line"),input:{type:"text",name:"line",value:h},focus:!0,submitLabel:g.phrase("go")},d=new Promise(a=>c=a),e=a=>(function(a,b,c){let d=b.content?b.content(a,()=>g(null)):null;if(!d){if(d=ch("form"),b.input){let a=ch("input",b.input);/^(text|password|number|email|tel|url)$/.test(a.type)&&a.classList.add("cm-textfield"),a.name||(a.name="input"),d.appendChild(ch("label",(b.label||"")+": ",a))}else d.appendChild(document.createTextNode(b.label||""));d.appendChild(document.createTextNode(" ")),d.appendChild(ch("button",{class:"cm-button",type:"submit"},b.submitLabel||"OK"))}let e="FORM"==d.nodeName?[d]:d.querySelectorAll("form");for(let a=0;a<e.length;a++){let b=e[a];b.addEventListener("keydown",a=>{27==a.keyCode?(a.preventDefault(),g(null)):13==a.keyCode&&(a.preventDefault(),g(b))}),b.addEventListener("submit",a=>{a.preventDefault(),g(b)})}let f=ch("div",d,ch("button",{onclick:()=>g(null),"aria-label":a.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));function g(b){f.contains(f.ownerDocument.activeElement)&&a.focus(),c(b)}return b.class&&(f.className=b.class),f.classList.add("cm-dialog"),{dom:f,top:b.top,mount:()=>{if(b.focus){let a;(a="string"==typeof b.focus?d.querySelector(b.focus):d.querySelector("input")||d.querySelector("button"))&&"select"in a?a.select():a&&"focus"in a&&a.focus()}}}})(a,b,c),a.state.field(gv,!1)?a.dispatch({effects:gw.of(e)}):a.dispatch({effects:bE.appendConfig.of(gv.init(()=>[e]))}),{close:f=gx.of(e),result:d.then(b=>((a.win.queueMicrotask||(b=>a.win.setTimeout(b,10)))(()=>{a.state.field(gv).indexOf(e)>-1&&a.dispatch({effects:f})}),b))});return j.then(b=>{let c=b&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(b.elements.line.value);if(!c)return void a.dispatch({effects:i});let d=g.doc.lineAt(g.selection.main.head),[,e,f,h,j]=c,k=h?+h.slice(1):0,l=f?+f:d.number;if(f&&j){let a=l/100;e&&(a=a*("-"==e?-1:1)+d.number/g.doc.lines),l=Math.round(g.doc.lines*a)}else f&&e&&(l=l*("-"==e?-1:1)+d.number);let m=g.doc.line(Math.max(1,Math.min(g.doc.lines,l))),n=bc.cursor(m.from+Math.max(0,Math.min(k,m.length)));a.dispatch({effects:[i,ft.scrollIntoView(n.from,{y:"center"})],selection:n})}),!0}},{key:"Mod-d",run:({state:a,dispatch:b})=>{let{ranges:c}=a.selection;if(c.some(a=>a.from===a.to))return(({state:a,dispatch:b})=>{let{selection:c}=a,d=bc.create(c.ranges.map(b=>a.wordAt(b.head)||bc.cursor(b.head)),c.mainIndex);return!d.eq(c)&&(b(a.update({selection:d})),!0)})({state:a,dispatch:b});let d=a.sliceDoc(c[0].from,c[0].to);if(a.selection.ranges.some(b=>a.sliceDoc(b.from,b.to)!=d))return!1;let e=function(a,b){let{main:c,ranges:d}=a.selection,e=a.wordAt(c.head),f=e&&e.from==c.from&&e.to==c.to;for(let c=!1,e=new j7(a.doc,b,d[d.length-1].to);;)if(e.next(),e.done){if(c)return null;e=new j7(a.doc,b,0,Math.max(0,d[d.length-1].from-1)),c=!0}else{if(c&&d.some(a=>a.from==e.value.from))continue;if(f){let b=a.wordAt(e.value.from);if(!b||b.from!=e.value.from||b.to!=e.value.to)continue}return e.value}}(a,d);return!!e&&(b(a.update({selection:a.selection.addRange(bc.range(e.from,e.to),!1),effects:ft.scrollIntoView(e.to)})),!0)},preventDefault:!0}];class kP{constructor(a){this.view=a;let b=this.query=a.state.field(kx).query.spec;function c(a,b,c){return ch("button",{class:"cm-button",name:a,onclick:b,type:"button"},c)}this.commit=this.commit.bind(this),this.searchField=ch("input",{value:b.search,placeholder:kQ(a,"Find"),"aria-label":kQ(a,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=ch("input",{value:b.replace,placeholder:kQ(a,"Replace"),"aria-label":kQ(a,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=ch("input",{type:"checkbox",name:"case",form:"",checked:b.caseSensitive,onchange:this.commit}),this.reField=ch("input",{type:"checkbox",name:"re",form:"",checked:b.regexp,onchange:this.commit}),this.wordField=ch("input",{type:"checkbox",name:"word",form:"",checked:b.wholeWord,onchange:this.commit}),this.dom=ch("div",{onkeydown:a=>this.keydown(a),class:"cm-search"},[this.searchField,c("next",()=>kD(a),[kQ(a,"next")]),c("prev",()=>kE(a),[kQ(a,"previous")]),c("select",()=>kF(a),[kQ(a,"all")]),ch("label",null,[this.caseField,kQ(a,"match case")]),ch("label",null,[this.reField,kQ(a,"regexp")]),ch("label",null,[this.wordField,kQ(a,"by word")]),...a.state.readOnly?[]:[ch("br"),this.replaceField,c("replace",()=>kG(a),[kQ(a,"replace")]),c("replaceAll",()=>kH(a),[kQ(a,"replace all")])],ch("button",{name:"close",onclick:()=>kN(a),"aria-label":kQ(a,"close"),type:"button"},["×"])])}commit(){let a=new kn({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});a.eq(this.query)||(this.query=a,this.view.dispatch({effects:kv.of(a)}))}keydown(a){var b;(b=this.view,fG(fD(b.state),a,b,"search-panel"))?a.preventDefault():13==a.keyCode&&a.target==this.searchField?(a.preventDefault(),(a.shiftKey?kE:kD)(this.view)):13==a.keyCode&&a.target==this.replaceField&&(a.preventDefault(),kG(this.view))}update(a){for(let b of a.transactions)for(let a of b.effects)a.is(kv)&&!a.value.eq(this.query)&&this.setQuery(a.value)}setQuery(a){this.query=a,this.searchField.value=a.search,this.replaceField.value=a.replace,this.caseField.checked=a.caseSensitive,this.reField.checked=a.regexp,this.wordField.checked=a.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(km).top}}function kQ(a,b){return a.state.phrase(b)}let kR=/[\s\.,:;?!]/;function kS(a,{from:b,to:c}){let d=a.state.doc.lineAt(b),e=a.state.doc.lineAt(c).to,f=Math.max(d.from,b-30),g=Math.min(e,c+30),h=a.state.sliceDoc(f,g);if(f!=d.from){for(let a=0;a<30;a++)if(!kR.test(h[a+1])&&kR.test(h[a])){h=h.slice(a);break}}if(g!=e){for(let a=h.length-1;a>h.length-30;a--)if(!kR.test(h[a-1])&&kR.test(h[a])){h=h.slice(0,a);break}}return ft.announce.of(`${a.state.phrase("current match")}. ${h} ${a.state.phrase("on line")} ${d.number}.`)}let kT=ft.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),kU=[kx,bn.low(kB),kT];class kV{constructor(a,b,c,d){this.state=a,this.pos=b,this.explicit=c,this.view=d,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(a){let b=hQ(this.state).resolveInner(this.pos,-1);for(;b&&0>a.indexOf(b.name);)b=b.parent;return b?{from:b.from,to:this.pos,text:this.state.sliceDoc(b.from,this.pos),type:b.type}:null}matchBefore(a){let b=this.state.doc.lineAt(this.pos),c=Math.max(b.from,this.pos-250),d=b.text.slice(c-b.from,this.pos-b.from),e=d.search(kZ(a,!1));return e<0?null:{from:c+e,to:this.pos,text:d.slice(e)}}get aborted(){return null==this.abortListeners}addEventListener(a,b,c){"abort"==a&&this.abortListeners&&(this.abortListeners.push(b),c&&c.onDocChange&&(this.abortOnDocChange=!0))}}function kW(a){let b=Object.keys(a).join(""),c=/\w/.test(b);return c&&(b=b.replace(/\w/g,"")),`[${c?"\\w":""}${b.replace(/[^\w\s]/g,"\\$&")}]`}class kX{constructor(a,b,c,d){this.completion=a,this.source=b,this.match=c,this.score=d}}function kY(a){return a.selection.main.from}function kZ(a,b){var c;let{source:d}=a,e=b&&"^"!=d[0],f="$"!=d[d.length-1];return e||f?RegExp(`${e?"^":""}(?:${d})${f?"$":""}`,null!=(c=a.flags)?c:a.ignoreCase?"i":""):a}let k$=bB.define(),k_=new WeakMap;function k0(a){if(!Array.isArray(a))return a;let b=k_.get(a);return b||k_.set(a,b=function(a){let b=a.map(a=>"string"==typeof a?{label:a}:a),[c,d]=b.every(a=>/^\w+$/.test(a.label))?[/\w*$/,/\w+$/]:function(a){let b=Object.create(null),c=Object.create(null);for(let{label:d}of a){b[d[0]]=!0;for(let a=1;a<d.length;a++)c[d[a]]=!0}let d=kW(b)+kW(c)+"*$";return[RegExp("^"+d),new RegExp(d)]}(b);return a=>{let e=a.matchBefore(d);return e||a.explicit?{from:e?e.from:a.pos,options:b,validFor:c}:null}}(a)),b}let k1=bE.define(),k2=bE.define();class k3{constructor(a){this.pattern=a,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let b=0;b<a.length;){let c=a$(a,b),d=a0(c);this.chars.push(c);let e=a.slice(b,b+d),f=e.toUpperCase();this.folded.push(a$(f==e?e.toLowerCase():f,0)),b+=d}this.astral=a.length!=this.chars.length}ret(a,b){return this.score=a,this.matched=b,this}match(a){if(0==this.pattern.length)return this.ret(-100,[]);if(a.length<this.pattern.length)return null;let{chars:b,folded:c,any:d,precise:e,byWord:f}=this;if(1==b.length){let d=a$(a,0),e=a0(d),f=e==a.length?0:-100;if(d==b[0]);else{if(d!=c[0])return null;f+=-200}return this.ret(f,[0,e])}let g=a.indexOf(this.pattern);if(0==g)return this.ret(a.length==this.pattern.length?0:-100,[0,this.pattern.length]);let h=b.length,i=0;if(g<0){for(let e=0,f=Math.min(a.length,200);e<f&&i<h;){let f=a$(a,e);(f==b[i]||f==c[i])&&(d[i++]=e),e+=a0(f)}if(i<h)return null}let j=0,k=0,l=!1,m=0,n=-1,o=-1,p=/[a-z]/.test(a),q=!0;for(let d=0,i=Math.min(a.length,200),r=0;d<i&&k<h;){let i=a$(a,d);g<0&&(j<h&&i==b[j]&&(e[j++]=d),m<h&&(i==b[m]||i==c[m]?(0==m&&(n=d),o=d+1,m++):m=0));let s,t=i<255?i>=48&&i<=57||i>=97&&i<=122?2:+(i>=65&&i<=90):(s=a_(i))!=s.toLowerCase()?1:2*(s!=s.toUpperCase());(!d||1==t&&p||0==r&&0!=t)&&(b[k]==i||c[k]==i&&(l=!0)?f[k++]=d:f.length&&(q=!1)),r=t,d+=a0(i)}return k==h&&0==f[0]&&q?this.result(-100+(l?-200:0),f,a):m==h&&0==n?this.ret(-200-a.length+(o==a.length?0:-100),[0,o]):g>-1?this.ret(-700-a.length,[g,g+this.pattern.length]):m==h?this.ret(-900-a.length,[n,o]):k==h?this.result(-100+(l?-200:0)+-700+(q?0:-1100),f,a):2==b.length?null:this.result((d[0]?-700:0)+-200+-1100,d,a)}result(a,b,c){let d=[],e=0;for(let a of b){let b=a+(this.astral?a0(a$(c,a)):1);e&&d[e-1]==a?d[e-1]=b:(d[e++]=a,d[e++]=b)}return this.ret(a-c.length,d)}}class k4{constructor(a){this.pattern=a,this.matched=[],this.score=0,this.folded=a.toLowerCase()}match(a){if(a.length<this.pattern.length)return null;let b=a.slice(0,this.pattern.length),c=b==this.pattern?0:b.toLowerCase()==this.folded?-200:null;return null==c?null:(this.matched=[0,b.length],this.score=c+(a.length==this.pattern.length?0:-100),this)}}let k5=bf.define({combine:a=>bN(a,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:k7,filterStrict:!1,compareCompletions:(a,b)=>(a.sortText||a.label).localeCompare(b.sortText||b.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(a,b)=>a&&b,closeOnBlur:(a,b)=>a&&b,icons:(a,b)=>a&&b,tooltipClass:(a,b)=>c=>k6(a(c),b(c)),optionClass:(a,b)=>c=>k6(a(c),b(c)),addToOptions:(a,b)=>a.concat(b),filterStrict:(a,b)=>a||b})});function k6(a,b){return a?b?a+" "+b:a:b}function k7(a,b,c,d,e,f){let g=a.textDirection==c0.RTL,h=g,i=!1,j="top",k,l,m=b.left-e.left,n=e.right-b.right,o=d.right-d.left,p=d.bottom-d.top;if(h&&m<Math.min(o,n)?h=!1:!h&&n<Math.min(o,m)&&(h=!0),o<=(h?m:n))k=Math.max(e.top,Math.min(c.top,e.bottom-p))-b.top,l=Math.min(400,h?m:n);else{i=!0,l=Math.min(400,(g?b.right:e.right-b.left)-30);let a=e.bottom-b.bottom;a>=p||a>b.top?k=c.bottom-b.top:(j="bottom",k=b.bottom-c.top)}let q=(b.bottom-b.top)/f.offsetHeight,r=(b.right-b.left)/f.offsetWidth;return{style:`${j}: ${k/q}px; max-width: ${l/r}px`,class:"cm-completionInfo-"+(i?g?"left-narrow":"right-narrow":h?"left":"right")}}let k8=bE.define();function k9(a,b,c){if(a<=c)return{from:0,to:a};if(b<0&&(b=0),b<=a>>1){let a=Math.floor(b/c);return{from:a*c,to:(a+1)*c}}let d=Math.floor((a-b)/c);return{from:a-(d+1)*c,to:a-d*c}}class la{constructor(a,b,c){this.view=a,this.stateField=b,this.applyCompletion=c,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let d=a.state.field(b),{options:e,selected:f}=d.open,g=a.state.facet(k5);this.optionContent=function(a){let b=a.addToOptions.slice();return a.icons&&b.push({render(a){let b=document.createElement("div");return b.classList.add("cm-completionIcon"),a.type&&b.classList.add(...a.type.split(/\s+/g).map(a=>"cm-completionIcon-"+a)),b.setAttribute("aria-hidden","true"),b},position:20}),b.push({render(a,b,c,d){let e=document.createElement("span");e.className="cm-completionLabel";let f=a.displayLabel||a.label,g=0;for(let a=0;a<d.length;){let b=d[a++],c=d[a++];b>g&&e.appendChild(document.createTextNode(f.slice(g,b)));let h=e.appendChild(document.createElement("span"));h.appendChild(document.createTextNode(f.slice(b,c))),h.className="cm-completionMatchedText",g=c}return g<f.length&&e.appendChild(document.createTextNode(f.slice(g))),e},position:50},{render(a){if(!a.detail)return null;let b=document.createElement("span");return b.className="cm-completionDetail",b.textContent=a.detail,b},position:80}),b.sort((a,b)=>a.position-b.position).map(a=>a.render)}(g),this.optionClass=g.optionClass,this.tooltipClass=g.tooltipClass,this.range=k9(e.length,f,g.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(a.state),this.dom.addEventListener("mousedown",c=>{let{options:d}=a.state.field(b).open;for(let b=c.target,e;b&&b!=this.dom;b=b.parentNode)if("LI"==b.nodeName&&(e=/-(\d+)$/.exec(b.id))&&+e[1]<d.length){this.applyCompletion(a,d[+e[1]]),c.preventDefault();return}if(c.target==this.list){let b=this.list.classList.contains("cm-completionListIncompleteTop")&&c.clientY<this.list.firstChild.getBoundingClientRect().top?this.range.from-1:this.list.classList.contains("cm-completionListIncompleteBottom")&&c.clientY>this.list.lastChild.getBoundingClientRect().bottom?this.range.to:null;null!=b&&(a.dispatch({effects:k8.of(b)}),c.preventDefault())}}),this.dom.addEventListener("focusout",b=>{let c=a.state.field(this.stateField,!1);c&&c.tooltip&&a.state.facet(k5).closeOnBlur&&b.relatedTarget!=a.contentDOM&&a.dispatch({effects:k2.of(null)})}),this.showOptions(e,d.id)}mount(){this.updateSel()}showOptions(a,b){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(a,b,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(a){var b;let c=a.state.field(this.stateField),d=a.startState.field(this.stateField);if(this.updateTooltipClass(a.state),c!=d){let{options:e,selected:f,disabled:g}=c.open;d.open&&d.open.options==e||(this.range=k9(e.length,f,a.state.facet(k5).maxRenderedOptions),this.showOptions(e,c.id)),this.updateSel(),g!=(null==(b=d.open)?void 0:b.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!g)}}updateTooltipClass(a){let b=this.tooltipClass(a);if(b!=this.currentClass){for(let a of this.currentClass.split(" "))a&&this.dom.classList.remove(a);for(let a of b.split(" "))a&&this.dom.classList.add(a);this.currentClass=b}}positioned(a){this.space=a,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let a=this.view.state.field(this.stateField),b=a.open;(b.selected>-1&&b.selected<this.range.from||b.selected>=this.range.to)&&(this.range=k9(b.options.length,b.selected,this.view.state.facet(k5).maxRenderedOptions),this.showOptions(b.options,a.id));let c=this.updateSelectedOption(b.selected);if(c){this.destroyInfo();let{completion:d}=b.options[b.selected],{info:e}=d;if(!e)return;let f="string"==typeof e?document.createTextNode(e):e(d);if(!f)return;"then"in f?f.then(b=>{b&&this.view.state.field(this.stateField,!1)==a&&this.addInfoPane(b,d)}).catch(a=>du(this.view.state,a,"completion info")):(this.addInfoPane(f,d),c.setAttribute("aria-describedby",this.info.id))}}addInfoPane(a,b){this.destroyInfo();let c=this.info=document.createElement("div");if(c.className="cm-tooltip cm-completionInfo",c.id="cm-completionInfo-"+Math.floor(65535*Math.random()).toString(16),null!=a.nodeType)c.appendChild(a),this.infoDestroy=null;else{let{dom:b,destroy:d}=a;c.appendChild(b),this.infoDestroy=d||null}this.dom.appendChild(c),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(a){var b,c;let d,e,f,g=null;for(let b=this.list.firstChild,c=this.range.from;b;b=b.nextSibling,c++)"LI"==b.nodeName&&b.id?c==a?b.hasAttribute("aria-selected")||(b.setAttribute("aria-selected","true"),g=b):b.hasAttribute("aria-selected")&&(b.removeAttribute("aria-selected"),b.removeAttribute("aria-describedby")):c--;return g&&(b=this.list,c=g,d=b.getBoundingClientRect(),e=c.getBoundingClientRect(),f=d.height/b.offsetHeight,e.top<d.top?b.scrollTop-=(d.top-e.top)/f:e.bottom>d.bottom&&(b.scrollTop+=(e.bottom-d.bottom)/f)),g}measureInfo(){let a=this.dom.querySelector("[aria-selected]");if(!a||!this.info)return null;let b=this.dom.getBoundingClientRect(),c=this.info.getBoundingClientRect(),d=a.getBoundingClientRect(),e=this.space;if(!e){let a=this.dom.ownerDocument.documentElement;e={left:0,top:0,right:a.clientWidth,bottom:a.clientHeight}}return d.top>Math.min(e.bottom,b.bottom)-10||d.bottom<Math.max(e.top,b.top)+10?null:this.view.state.facet(k5).positionInfo(this.view,b,d,c,e,this.dom)}placeInfo(a){this.info&&(a?(a.style&&(this.info.style.cssText=a.style),this.info.className="cm-tooltip cm-completionInfo "+(a.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(a,b,c){let d=document.createElement("ul");d.id=b,d.setAttribute("role","listbox"),d.setAttribute("aria-expanded","true"),d.setAttribute("aria-label",this.view.state.phrase("Completions")),d.addEventListener("mousedown",a=>{a.target==d&&a.preventDefault()});let e=null;for(let f=c.from;f<c.to;f++){let{completion:g,match:h}=a[f],{section:i}=g;if(i){let a="string"==typeof i?i:i.name;a!=e&&(f>c.from||0==c.from)&&(e=a,"string"!=typeof i&&i.header?d.appendChild(i.header(i)):d.appendChild(document.createElement("completion-section")).textContent=a)}let j=d.appendChild(document.createElement("li"));j.id=b+"-"+f,j.setAttribute("role","option");let k=this.optionClass(g);for(let a of(k&&(j.className=k),this.optionContent)){let b=a(g,this.view.state,this.view,h);b&&j.appendChild(b)}}return c.from&&d.classList.add("cm-completionListIncompleteTop"),c.to<a.length&&d.classList.add("cm-completionListIncompleteBottom"),d}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function lb(a){return 100*(a.boost||0)+10*!!a.apply+5*!!a.info+ +!!a.type}class lc{constructor(a,b,c,d,e,f){this.options=a,this.attrs=b,this.tooltip=c,this.timestamp=d,this.selected=e,this.disabled=f}setSelected(a,b){return a==this.selected||a>=this.options.length?this:new lc(this.options,lg(b,a),this.tooltip,this.timestamp,a,this.disabled)}static build(a,b,c,d,e,f){if(d&&!f&&a.some(a=>a.isPending))return d.setDisabled();let g=function(a,b){let c=[],d=null,e=null,f=a=>{c.push(a);let{section:b}=a.completion;if(b){d||(d=[]);let a="string"==typeof b?b:b.name;d.some(b=>b.name==a)||d.push("string"==typeof b?{name:a}:b)}},g=b.facet(k5);for(let d of a)if(d.hasResult()){let a=d.result.getMatch;if(!1===d.result.filter)for(let b of d.result.options)f(new kX(b,d.source,a?a(b):[],1e9-c.length));else{let c=b.sliceDoc(d.from,d.to),h,i=g.filterStrict?new k4(c):new k3(c);for(let b of d.result.options)if(h=i.match(b.label)){let c=b.displayLabel?a?a(b,h.matched):[]:h.matched,g=h.score+(b.boost||0);if(f(new kX(b,d.source,c,g)),"object"==typeof b.section&&"dynamic"===b.section.rank){let{name:a}=b.section;e||(e=Object.create(null)),e[a]=Math.max(g,e[a]||-1e9)}}}}if(d){let a=Object.create(null),b=0;for(let c of d.sort((a,b)=>("dynamic"===a.rank&&"dynamic"===b.rank?e[b.name]-e[a.name]:0)||("number"==typeof a.rank?a.rank:1e9)-("number"==typeof b.rank?b.rank:1e9)||(a.name<b.name?-1:1)))b-=1e5,a[c.name]=b;for(let b of c){let{section:c}=b.completion;c&&(b.score+=a["string"==typeof c?c:c.name])}}let h=[],i=null,j=g.compareCompletions;for(let a of c.sort((a,b)=>b.score-a.score||j(a.completion,b.completion))){let b=a.completion;i&&i.label==b.label&&i.detail==b.detail&&(null==i.type||null==b.type||i.type==b.type)&&i.apply==b.apply&&i.boost==b.boost?lb(a.completion)>lb(i)&&(h[h.length-1]=a):h.push(a),i=a.completion}return h}(a,b);if(!g.length)return d&&a.some(a=>a.isPending)?d.setDisabled():null;let h=b.facet(k5).selectOnOpen?0:-1;if(d&&d.selected!=h&&-1!=d.selected){let a=d.options[d.selected].completion;for(let b=0;b<g.length;b++)if(g[b].completion==a){h=b;break}}return new lc(g,lg(c,h),{pos:a.reduce((a,b)=>b.hasResult()?Math.min(a,b.from):a,1e8),create:lo,above:e.aboveCursor},d?d.timestamp:Date.now(),h,!1)}map(a){return new lc(this.options,this.attrs,{...this.tooltip,pos:a.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new lc(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class ld{constructor(a,b,c){this.active=a,this.id=b,this.open=c}static start(){return new ld(lh,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(a){let{state:b}=a,c=b.facet(k5),d=(c.override||b.languageDataAt("autocomplete",kY(b)).map(k0)).map(b=>(this.active.find(a=>a.source==b)||new lj(b,+!!this.active.some(a=>0!=a.state))).update(a,c));d.length==this.active.length&&d.every((a,b)=>a==this.active[b])&&(d=this.active);let e=this.open,f=a.effects.some(a=>a.is(ll));for(let g of(e&&a.docChanged&&(e=e.map(a.changes)),a.selection||d.some(b=>b.hasResult()&&a.changes.touchesRange(b.from,b.to))||!function(a,b){if(a==b)return!0;for(let c=0,d=0;;){for(;c<a.length&&!a[c].hasResult();)c++;for(;d<b.length&&!b[d].hasResult();)d++;let e=c==a.length,f=d==b.length;if(e||f)return e==f;if(a[c++].result!=b[d++].result)return!1}}(d,this.active)||f?e=lc.build(d,b,this.id,e,c,f):e&&e.disabled&&!d.some(a=>a.isPending)&&(e=null),!e&&d.every(a=>!a.isPending)&&d.some(a=>a.hasResult())&&(d=d.map(a=>a.hasResult()?new lj(a.source,0):a)),a.effects))g.is(k8)&&(e=e&&e.setSelected(g.value,this.id));return d==this.active&&e==this.open?this:new ld(d,this.id,e)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?le:lf}}let le={"aria-autocomplete":"list"},lf={};function lg(a,b){let c={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":a};return b>-1&&(c["aria-activedescendant"]=a+"-"+b),c}let lh=[];function li(a,b){if(a.isUserEvent("input.complete")){let c=a.annotation(k$);if(c&&b.activateOnCompletion(c))return 12}let c=a.isUserEvent("input.type");return c&&b.activateOnTyping?5:c?1:a.isUserEvent("delete.backward")?2:a.selection?8:16*!!a.docChanged}class lj{constructor(a,b,c=!1){this.source=a,this.state=b,this.explicit=c}hasResult(){return!1}get isPending(){return 1==this.state}update(a,b){let c=li(a,b),d=this;for(let b of((8&c||16&c&&this.touches(a))&&(d=new lj(d.source,0)),4&c&&0==d.state&&(d=new lj(this.source,1)),d=d.updateFor(a,c),a.effects))if(b.is(k1))d=new lj(d.source,1,b.value);else if(b.is(k2))d=new lj(d.source,0);else if(b.is(ll))for(let a of b.value)a.source==d.source&&(d=a);return d}updateFor(a,b){return this.map(a.changes)}map(a){return this}touches(a){return a.changes.touchesRange(kY(a.state))}}class lk extends lj{constructor(a,b,c,d,e,f){super(a,3,b),this.limit=c,this.result=d,this.from=e,this.to=f}hasResult(){return!0}updateFor(a,b){var c;if(!(3&b))return this.map(a.changes);let d=this.result;d.map&&!a.changes.empty&&(d=d.map(d,a.changes));let e=a.changes.mapPos(this.from),f=a.changes.mapPos(this.to,1),g=kY(a.state);if(g>f||!d||2&b&&(kY(a.startState)==this.from||g<this.limit))return new lj(this.source,4&b?1:0);let h=a.changes.mapPos(this.limit);return!function(a,b,c,d){if(!a)return!1;let e=b.sliceDoc(c,d);return"function"==typeof a?a(e,c,d,b):kZ(a,!0).test(e)}(d.validFor,a.state,e,f)?d.update&&(d=d.update(d,e,f,new kV(a.state,g,!1)))?new lk(this.source,this.explicit,h,d,d.from,null!=(c=d.to)?c:kY(a.state)):new lj(this.source,1,this.explicit):new lk(this.source,this.explicit,h,d,e,f)}map(a){return a.empty?this:(this.result.map?this.result.map(this.result,a):this.result)?new lk(this.source,this.explicit,a.mapPos(this.limit),this.result,a.mapPos(this.from),a.mapPos(this.to,1)):new lj(this.source,0)}touches(a){return a.changes.touchesRange(this.from,this.to)}}let ll=bE.define({map:(a,b)=>a.map(a=>a.map(b))}),lm=bl.define({create:()=>ld.start(),update:(a,b)=>a.update(b),provide:a=>[gi.from(a,a=>a.tooltip),ft.contentAttributes.from(a,a=>a.attrs)]});function ln(a,b){let c=b.completion.apply||b.completion.label,d=a.state.field(lm).active.find(a=>a.source==b.source);return d instanceof lk&&("string"==typeof c?a.dispatch({...function(a,b,c,d){let{main:e}=a.selection,f=c-e.from,g=d-e.from;return{...a.changeByRange(h=>{if(h!=e&&c!=d&&a.sliceDoc(h.from+f,h.from+g)!=a.sliceDoc(c,d))return{range:h};let i=a.toText(b);return{changes:{from:h.from+f,to:d==e.from?h.to:h.from+g,insert:i},range:bc.cursor(h.from+f+i.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}(a.state,c,d.from,d.to),annotations:k$.of(b.completion)}):c(a,b.completion,d.from,d.to),!0)}let lo=a=>new la(a,lm,ln);function lp(a,b="option"){return c=>{let d=c.state.field(lm,!1);if(!d||!d.open||d.open.disabled||Date.now()-d.open.timestamp<c.state.facet(k5).interactionDelay)return!1;let e=1,f;"page"==b&&(f=gn(c,d.open.tooltip))&&(e=Math.max(2,Math.floor(f.dom.offsetHeight/f.dom.querySelector("li").offsetHeight)-1));let{length:g}=d.open.options,h=d.open.selected>-1?d.open.selected+e*(a?1:-1):a?0:g-1;return h<0?h="page"==b?0:g-1:h>=g&&(h="page"==b?g-1:0),c.dispatch({effects:k8.of(h)}),!0}}let lq=a=>!!a.state.field(lm,!1)&&(a.dispatch({effects:k1.of(!0)}),!0);class lr{constructor(a,b){this.active=a,this.context=b,this.time=Date.now(),this.updates=[],this.done=void 0}}let ls=dy.fromClass(class{constructor(a){for(let b of(this.view=a,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0,a.state.field(lm).active))b.isPending&&this.startQuery(b)}update(a){let b=a.state.field(lm),c=a.state.facet(k5);if(!a.selectionSet&&!a.docChanged&&a.startState.field(lm)==b)return;let d=a.transactions.some(a=>{let b=li(a,c);return 8&b||(a.selection||a.docChanged)&&!(3&b)});for(let b=0;b<this.running.length;b++){let c=this.running[b];if(d||c.context.abortOnDocChange&&a.docChanged||c.updates.length+a.transactions.length>50&&Date.now()-c.time>1e3){for(let a of c.context.abortListeners)try{a()}catch(a){du(this.view.state,a)}c.context.abortListeners=null,this.running.splice(b--,1)}else c.updates.push(...a.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),a.transactions.some(a=>a.effects.some(a=>a.is(k1)))&&(this.pendingStart=!0);let e=this.pendingStart?50:c.activateOnTypingDelay;if(this.debounceUpdate=b.active.some(a=>a.isPending&&!this.running.some(b=>b.active.source==a.source))?setTimeout(()=>this.startUpdate(),e):-1,0!=this.composing)for(let b of a.transactions)b.isUserEvent("input.type")?this.composing=2:2==this.composing&&b.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:a}=this.view,b=a.field(lm);for(let a of b.active)a.isPending&&!this.running.some(b=>b.active.source==a.source)&&this.startQuery(a);this.running.length&&b.open&&b.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(k5).updateSyncTime))}startQuery(a){let{state:b}=this.view,c=kY(b),d=new kV(b,c,a.explicit,this.view),e=new lr(a,d);this.running.push(e),Promise.resolve(a.source(d)).then(a=>{e.context.aborted||(e.done=a||null,this.scheduleAccept())},a=>{this.view.dispatch({effects:k2.of(null)}),du(this.view.state,a)})}scheduleAccept(){this.running.every(a=>void 0!==a.done)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(k5).updateSyncTime))}accept(){var a;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let b=[],c=this.view.state.facet(k5),d=this.view.state.field(lm);for(let e=0;e<this.running.length;e++){let f=this.running[e];if(void 0===f.done)continue;if(this.running.splice(e--,1),f.done){let d=kY(f.updates.length?f.updates[0].startState:this.view.state),e=Math.min(d,f.done.from+ +!f.active.explicit),g=new lk(f.active.source,f.active.explicit,e,f.done,f.done.from,null!=(a=f.done.to)?a:d);for(let a of f.updates)g=g.update(a,c);if(g.hasResult()){b.push(g);continue}}let g=d.active.find(a=>a.source==f.active.source);if(g&&g.isPending)if(null==f.done){let a=new lj(f.active.source,0);for(let b of f.updates)a=a.update(b,c);a.isPending||b.push(a)}else this.startQuery(g)}(b.length||d.open&&d.open.disabled)&&this.view.dispatch({effects:ll.of(b)})}},{eventHandlers:{blur(a){let b=this.view.state.field(lm,!1);if(b&&b.tooltip&&this.view.state.facet(k5).closeOnBlur){let c=b.open&&gn(this.view,b.open.tooltip);c&&c.dom.contains(a.relatedTarget)||setTimeout(()=>this.view.dispatch({effects:k2.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout(()=>this.view.dispatch({effects:k1.of(!1)}),20),this.composing=0}}}),lt="object"==typeof navigator&&/Win/.test(navigator.platform),lu=bn.highest(ft.domEventHandlers({keydown(a,b){let c=b.state.field(lm,!1);if(!c||!c.open||c.open.disabled||c.open.selected<0||a.key.length>1||a.ctrlKey&&!(lt&&a.altKey)||a.metaKey)return!1;let d=c.open.options[c.open.selected],e=c.active.find(a=>a.source==d.source),f=d.completion.commitCharacters||e.result.commitCharacters;return f&&f.indexOf(a.key)>-1&&ln(b,d),!1}})),lv=ft.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),lw=cA.widget({widget:new class extends cy{toDOM(){let a=document.createElement("span");return a.className="cm-snippetFieldPosition",a}ignoreEvent(){return!1}}}),lx=cA.mark({class:"cm-snippetField"});class ly{constructor(a,b){this.ranges=a,this.active=b,this.deco=cA.set(a.map(a=>(a.from==a.to?lw:lx).range(a.from,a.to)),!0)}map(a){let b=[];for(let c of this.ranges){let d=c.map(a);if(!d)return null;b.push(d)}return new ly(b,this.active)}selectionInsideField(a){return a.ranges.every(a=>this.ranges.some(b=>b.field==this.active&&b.from<=a.from&&b.to>=a.to))}}let lz=bE.define({map:(a,b)=>a&&a.map(b)}),lA=bE.define(),lB=bl.define({create:()=>null,update(a,b){for(let c of b.effects){if(c.is(lz))return c.value;if(c.is(lA)&&a)return new ly(a.ranges,c.value)}return a&&b.docChanged&&(a=a.map(b.changes)),a&&b.selection&&!a.selectionInsideField(b.selection)&&(a=null),a},provide:a=>ft.decorations.from(a,a=>a?a.deco:cA.none)});function lC(a){return({state:b,dispatch:c})=>{var d;let e=b.field(lB,!1);if(!e||a<0&&0==e.active)return!1;let f=e.active+a,g=a>0&&!e.ranges.some(b=>b.field==f+a);return c(b.update({selection:(d=e.ranges,bc.create(d.filter(a=>a.field==f).map(a=>bc.range(a.from,a.to)))),effects:lz.of(g?null:new ly(e.ranges,f)),scrollIntoView:!0})),!0}}let lD=[{key:"Tab",run:lC(1),shift:lC(-1)},{key:"Escape",run:({state:a,dispatch:b})=>!!a.field(lB,!1)&&(b(a.update({effects:lz.of(null)})),!0)}],lE={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},lF=bE.define({map(a,b){let c=b.mapPos(a,-1,a2.TrackAfter);return null==c?void 0:c}}),lG=new class extends bO{};lG.startSide=1,lG.endSide=-1;let lH=bl.define({create:()=>bT.empty,update(a,b){if(a=a.map(b.changes),b.selection){let c=b.state.doc.lineAt(b.selection.main.head);a=a.update({filter:a=>a>=c.from&&a<=c.to})}for(let c of b.effects)c.is(lF)&&(a=a.update({add:[lG.range(c.value,c.value+1)]}));return a}}),lI="()[]{}<>«»»«[]{}";function lJ(a){for(let b=0;b<lI.length;b+=2)if(lI.charCodeAt(b)==a)return lI.charAt(b+1);return a_(a<128?a:a+1)}function lK(a,b){return a.languageDataAt("closeBrackets",b)[0]||lE}let lL="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),lM=ft.inputHandler.of((a,b,c,d)=>{if((lL?a.composing:a.compositionStarted)||a.state.readOnly)return!1;let e=a.state.selection.main;if(d.length>2||2==d.length&&1==a0(a$(d,0))||b!=e.from||c!=e.to)return!1;let f=function(a,b){let c=lK(a,a.selection.main.head),d=c.brackets||lE.brackets;for(let e of d){let f=lJ(a$(e,0));if(b==e)return f==e?function(a,b,c,d){let e=d.stringPrefixes||lE.stringPrefixes,f=null,g=a.changeByRange(d=>{if(!d.empty)return{changes:[{insert:b,from:d.from},{insert:b,from:d.to}],effects:lF.of(d.to+b.length),range:bc.range(d.anchor+b.length,d.head+b.length)};let g=d.head,h=lP(a.doc,g),i;if(h==b){if(lQ(a,g))return{changes:{insert:b+b,from:g},effects:lF.of(g+b.length),range:bc.cursor(g+b.length)};else if(lO(a,g)){let d=c&&a.sliceDoc(g,g+3*b.length)==b+b+b?b+b+b:b;return{changes:{from:g,to:g+d.length,insert:d},range:bc.cursor(g+d.length)}}}else if(c&&a.sliceDoc(g-2*b.length,g)==b+b&&(i=lR(a,g-2*b.length,e))>-1&&lQ(a,i))return{changes:{insert:b+b+b+b,from:g},effects:lF.of(g+b.length),range:bc.cursor(g+b.length)};else if(a.charCategorizer(g)(h)!=bK.Word&&lR(a,g,e)>-1&&!function(a,b,c,d){let e=hQ(a).resolveInner(b,-1),f=d.reduce((a,b)=>Math.max(a,b.length),0);for(let g=0;g<5;g++){let g=a.sliceDoc(e.from,Math.min(e.to,e.from+c.length+f)),h=g.indexOf(c);if(!h||h>-1&&d.indexOf(g.slice(0,h))>-1){let b=e.firstChild;for(;b&&b.from==e.from&&b.to-b.from>c.length+h;){if(a.sliceDoc(b.to-c.length,b.to)==c)return!1;b=b.firstChild}return!0}let i=e.to==b&&e.parent;if(!i)break;e=i}return!1}(a,g,b,e))return{changes:{insert:b+b,from:g},effects:lF.of(g+b.length),range:bc.cursor(g+b.length)};return{range:f=d}});return f?null:a.update(g,{scrollIntoView:!0,userEvent:"input.type"})}(a,e,d.indexOf(e+e+e)>-1,c):function(a,b,c,d){let e=null,f=a.changeByRange(f=>{if(!f.empty)return{changes:[{insert:b,from:f.from},{insert:c,from:f.to}],effects:lF.of(f.to+b.length),range:bc.range(f.anchor+b.length,f.head+b.length)};let g=lP(a.doc,f.head);return!g||/\s/.test(g)||d.indexOf(g)>-1?{changes:{insert:b+c,from:f.head},effects:lF.of(f.head+b.length),range:bc.cursor(f.head+b.length)}:{range:e=f}});return e?null:a.update(f,{scrollIntoView:!0,userEvent:"input.type"})}(a,e,f,c.before||lE.before);if(b==f&&lO(a,a.selection.main.from))return function(a,b){let c=null,d=a.changeByRange(d=>d.empty&&lP(a.doc,d.head)==b?{changes:{from:d.head,to:d.head+b.length,insert:b},range:bc.cursor(d.head+b.length)}:c={range:d});return c?null:a.update(d,{scrollIntoView:!0,userEvent:"input.type"})}(a,f)}return null}(a.state,d);return!!f&&(a.dispatch(f),!0)}),lN=[{key:"Backspace",run:({state:a,dispatch:b})=>{if(a.readOnly)return!1;let c=lK(a,a.selection.main.head).brackets||lE.brackets,d=null,e=a.changeByRange(b=>{if(b.empty){var e,f;let d,g=(e=a.doc,f=b.head,a0(a$(d=e.sliceString(f-2,f),0))==d.length?d:d.slice(1));for(let d of c)if(d==g&&lP(a.doc,b.head)==lJ(a$(d,0)))return{changes:{from:b.head-d.length,to:b.head+d.length},range:bc.cursor(b.head-d.length)}}return{range:d=b}});return d||b(a.update(e,{scrollIntoView:!0,userEvent:"delete.backward"})),!d}}];function lO(a,b){let c=!1;return a.field(lH).between(0,a.doc.length,a=>{a==b&&(c=!0)}),c}function lP(a,b){let c=a.sliceString(b,b+2);return c.slice(0,a0(a$(c,0)))}function lQ(a,b){let c=hQ(a).resolveInner(b+1);return c.parent&&c.from==b}function lR(a,b,c){let d=a.charCategorizer(b);if(d(a.sliceDoc(b-1,b))!=bK.Word)return b;for(let e of c){let c=b-e.length;if(a.sliceDoc(c,b)==e&&d(a.sliceDoc(c-1,c))!=bK.Word)return c}return -1}let lS=[{key:"Ctrl-Space",run:lq},{mac:"Alt-`",run:lq},{mac:"Alt-i",run:lq},{key:"Escape",run:a=>{let b=a.state.field(lm,!1);return!!b&&!!b.active.some(a=>0!=a.state)&&(a.dispatch({effects:k2.of(null)}),!0)}},{key:"ArrowDown",run:lp(!0)},{key:"ArrowUp",run:lp(!1)},{key:"PageDown",run:lp(!0,"page")},{key:"PageUp",run:lp(!1,"page")},{key:"Enter",run:a=>{let b=a.state.field(lm,!1);return!(a.state.readOnly||!b||!b.open||b.open.selected<0||b.open.disabled||Date.now()-b.open.timestamp<a.state.facet(k5).interactionDelay)&&ln(a,b.open.options[b.open.selected])}}],lT=bn.highest(fB.computeN([k5],a=>a.facet(k5).defaultKeymap?[lS]:[]));class lU{constructor(a,b,c){this.from=a,this.to=b,this.diagnostic=c}}class lV{constructor(a,b,c){this.diagnostics=a,this.panel=b,this.selected=c}static init(a,b,c){let d=c.facet(l4).markerFilter;d&&(a=d(a,c));let e=a.slice().sort((a,b)=>a.from-b.from||a.to-b.to),f=new bU,g=[],h=0,i=c.doc.iter(),j=0,k=c.doc.length;for(let a=0;;){let b,c,d=a==e.length?null:e[a];if(!d&&!g.length)break;if(g.length)b=h,c=g.reduce((a,b)=>Math.min(a,b.to),d&&d.from>b?d.from:1e8);else{if((b=d.from)>k)break;c=d.to,g.push(d),a++}for(;a<e.length;){let d=e[a];if(d.from==b&&(d.to>d.from||d.to==b))g.push(d),a++,c=Math.min(d.to,c);else{c=Math.min(d.from,c);break}}c=Math.min(c,k);let l=!1;if(g.some(a=>a.from==b&&(a.to==c||c==k))&&!(l=b==c)&&c-b<10){let a=b-(j+i.value.length);a>0&&(i.next(a),j=b);for(let a=b;;){if(a>=c){l=!0;break}if(!i.lineBreak&&j+i.value.length>a)break;a=j+i.value.length,j+=i.value.length,i.next()}}let m=md(g);if(l)f.add(b,b,cA.widget({widget:new l8(m),diagnostics:g.slice()}));else{let a=g.reduce((a,b)=>b.markClass?a+" "+b.markClass:a,"");f.add(b,c,cA.mark({class:"cm-lintRange cm-lintRange-"+m+a,diagnostics:g.slice(),inclusiveEnd:g.some(a=>a.to>c)}))}if((h=c)==k)break;for(let a=0;a<g.length;a++)g[a].to<=h&&g.splice(a--,1)}let l=f.finish();return new lV(l,b,lW(l))}}function lW(a,b=null,c=0){let d=null;return a.between(c,1e9,(a,c,{spec:e})=>{if(!(b&&0>e.diagnostics.indexOf(b)))if(d){if(0>e.diagnostics.indexOf(d.diagnostic))return!1;d=new lU(d.from,c,d.diagnostic)}else d=new lU(a,c,b||e.diagnostics[0])}),d}function lX(a,b){let c=b.pos,d=b.end||c,e=a.state.facet(l4).hideOn(a,c,d);if(null!=e)return e;let f=a.startState.doc.lineAt(b.pos);return!!(a.effects.some(a=>a.is(lY))||a.changes.touchesRange(f.from,Math.max(f.to,d)))}let lY=bE.define(),lZ=bE.define(),l$=bE.define(),l_=bl.define({create:()=>new lV(cA.none,null,null),update(a,b){if(b.docChanged&&a.diagnostics.size){let c=a.diagnostics.map(b.changes),d=null,e=a.panel;if(a.selected){let e=b.changes.mapPos(a.selected.from,1);d=lW(c,a.selected.diagnostic,e)||lW(c,null,e)}!c.size&&e&&b.state.facet(l4).autoPanel&&(e=null),a=new lV(c,e,d)}for(let c of b.effects)if(c.is(lY)){let d=b.state.facet(l4).autoPanel?c.value.length?ma.open:null:a.panel;a=lV.init(c.value,d,b.state)}else c.is(lZ)?a=new lV(a.diagnostics,c.value?ma.open:null,a.selected):c.is(l$)&&(a=new lV(a.diagnostics,a.panel,c.value));return a},provide:a=>[gu.from(a,a=>a.panel),ft.decorations.from(a,a=>a.diagnostics)]}),l0=cA.mark({class:"cm-lintRange cm-lintRange-active"});function l1(a,b){return ch("ul",{class:"cm-tooltip-lint"},b.map(b=>l7(a,b,!1)))}let l2=a=>{let b=a.state.field(l_,!1);return!!b&&!!b.panel&&(a.dispatch({effects:lZ.of(!1)}),!0)},l3=[{key:"Mod-Shift-m",run:a=>{var b,c;let d=a.state.field(l_,!1);d&&d.panel||a.dispatch({effects:(b=a.state,c=[lZ.of(!0)],b.field(l_,!1)?c:c.concat(bE.appendConfig.of(mg)))});let e=gq(a,ma.open);return e&&e.dom.querySelector(".cm-panel-lint ul").focus(),!0},preventDefault:!0},{key:"F8",run:a=>{let b=a.state.field(l_,!1);if(!b)return!1;let c=a.state.selection.main,d=lW(b.diagnostics,null,c.to+1);return(!!d||!!(d=lW(b.diagnostics,null,0))&&(d.from!=c.from||d.to!=c.to))&&(a.dispatch({selection:{anchor:d.from,head:d.to},scrollIntoView:!0}),!0)}}],l4=bf.define({combine:a=>({sources:a.map(a=>a.source).filter(a=>null!=a),...bN(a.map(a=>a.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:l5,tooltipFilter:l5,needsRefresh:(a,b)=>a?b?c=>a(c)||b(c):a:b,hideOn:(a,b)=>a?b?(c,d,e)=>a(c,d,e)||b(c,d,e):a:b,autoPanel:(a,b)=>a||b})})});function l5(a,b){return a?b?(c,d)=>b(a(c,d),d):a:b}function l6(a){let b=[];if(a)f:for(let{name:c}of a){for(let a=0;a<c.length;a++){let d=c[a];if(/[a-zA-Z]/.test(d)&&!b.some(a=>a.toLowerCase()==d.toLowerCase())){b.push(d);continue f}}b.push("")}return b}function l7(a,b,c){var d;let e=c?l6(b.actions):[];return ch("li",{class:"cm-diagnostic cm-diagnostic-"+b.severity},ch("span",{class:"cm-diagnosticText"},b.renderMessage?b.renderMessage(a):b.message),null==(d=b.actions)?void 0:d.map((c,d)=>{let f=!1,g=d=>{if(d.preventDefault(),f)return;f=!0;let e=lW(a.state.field(l_).diagnostics,b);e&&c.apply(a,e.from,e.to)},{name:h}=c,i=e[d]?h.indexOf(e[d]):-1,j=i<0?h:[h.slice(0,i),ch("u",h.slice(i,i+1)),h.slice(i+1)];return ch("button",{type:"button",class:"cm-diagnosticAction"+(c.markClass?" "+c.markClass:""),onclick:g,onmousedown:g,"aria-label":` Action: ${h}${i<0?"":` (access key "${e[d]})"`}.`},j)}),b.source&&ch("div",{class:"cm-diagnosticSource"},b.source))}class l8 extends cy{constructor(a){super(),this.sev=a}eq(a){return a.sev==this.sev}toDOM(){return ch("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class l9{constructor(a,b){this.diagnostic=b,this.id="item_"+Math.floor(0xffffffff*Math.random()).toString(16),this.dom=l7(a,b,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class ma{constructor(a){this.view=a,this.items=[];let b=b=>{if(!b.ctrlKey&&!b.altKey&&!b.metaKey){if(27==b.keyCode)l2(this.view),this.view.focus();else if(38==b.keyCode||33==b.keyCode)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(40==b.keyCode||34==b.keyCode)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(36==b.keyCode)this.moveSelection(0);else if(35==b.keyCode)this.moveSelection(this.items.length-1);else if(13==b.keyCode)this.view.focus();else{if(!(b.keyCode>=65)||!(b.keyCode<=90)||!(this.selectedIndex>=0))return;let{diagnostic:c}=this.items[this.selectedIndex],d=l6(c.actions);for(let e=0;e<d.length;e++)if(d[e].toUpperCase().charCodeAt(0)==b.keyCode){let b=lW(this.view.state.field(l_).diagnostics,c);b&&c.actions[e].apply(a,b.from,b.to)}}b.preventDefault()}},c=a=>{for(let b=0;b<this.items.length;b++)this.items[b].dom.contains(a.target)&&this.moveSelection(b)};this.list=ch("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:b,onclick:c}),this.dom=ch("div",{class:"cm-panel-lint"},this.list,ch("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>l2(this.view)},"×")),this.update()}get selectedIndex(){let a=this.view.state.field(l_).selected;if(!a)return -1;for(let b=0;b<this.items.length;b++)if(this.items[b].diagnostic==a.diagnostic)return b;return -1}update(){let{diagnostics:a,selected:b}=this.view.state.field(l_),c=0,d=!1,e=null,f=new Set;for(a.between(0,this.view.state.doc.length,(a,g,{spec:h})=>{for(let a of h.diagnostics){if(f.has(a))continue;f.add(a);let g=-1,h;for(let b=c;b<this.items.length;b++)if(this.items[b].diagnostic==a){g=b;break}g<0?(h=new l9(this.view,a),this.items.splice(c,0,h),d=!0):(h=this.items[g],g>c&&(this.items.splice(c,g-c),d=!0)),b&&h.diagnostic==b.diagnostic?h.dom.hasAttribute("aria-selected")||(h.dom.setAttribute("aria-selected","true"),e=h):h.dom.hasAttribute("aria-selected")&&h.dom.removeAttribute("aria-selected"),c++}});c<this.items.length&&!(1==this.items.length&&this.items[0].diagnostic.from<0);)d=!0,this.items.pop();0==this.items.length&&(this.items.push(new l9(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),d=!0),e?(this.list.setAttribute("aria-activedescendant",e.id),this.view.requestMeasure({key:this,read:()=>({sel:e.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:a,panel:b})=>{let c=b.height/this.list.offsetHeight;a.top<b.top?this.list.scrollTop-=(b.top-a.top)/c:a.bottom>b.bottom&&(this.list.scrollTop+=(a.bottom-b.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),d&&this.sync()}sync(){let a=this.list.firstChild;function b(){let b=a;a=b.nextSibling,b.remove()}for(let c of this.items)if(c.dom.parentNode==this.list){for(;a!=c.dom;)b();a=c.dom.nextSibling}else this.list.insertBefore(c.dom,a);for(;a;)b()}moveSelection(a){if(this.selectedIndex<0)return;let b=lW(this.view.state.field(l_).diagnostics,this.items[a].diagnostic);b&&this.view.dispatch({selection:{anchor:b.from,head:b.to},scrollIntoView:!0,effects:l$.of(b)})}static open(a){return new ma(a)}}function mb(a){return function(a,b='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${b}>${encodeURIComponent(a)}</svg>')`}(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${a}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}let mc=ft.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:mb("#d11")},".cm-lintRange-warning":{backgroundImage:mb("orange")},".cm-lintRange-info":{backgroundImage:mb("#999")},".cm-lintRange-hint":{backgroundImage:mb("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:"#86714a80"},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:"#2e343e"}}});function md(a){let b="hint",c=1;for(let e of a){var d;let a="error"==(d=e.severity)?4:"warning"==d?3:"info"==d?2:1;a>c&&(c=a,b=e.severity)}return b}let me=bE.define(),mf=bl.define({create:()=>null,update:(a,b)=>(a&&b.docChanged&&(a=lX(b,a)?null:{...a,pos:b.changes.mapPos(a.pos)}),b.effects.reduce((a,b)=>b.is(me)?b.value:a,a)),provide:a=>gi.from(a)}),mg=[l_,ft.decorations.compute([l_],a=>{let{selected:b,panel:c}=a.field(l_);return b&&c&&b.from!=b.to?cA.set([l0.range(b.from,b.to)]):cA.none}),function(a,b={}){let c=bE.define(),d=bl.define({create:()=>[],update(a,d){if(a.length&&(b.hideOnChange&&(d.docChanged||d.selection)?a=[]:b.hideOn&&(a=a.filter(a=>!b.hideOn(d,a))),d.docChanged)){let b=[];for(let c of a){let a=d.changes.mapPos(c.pos,-1,a2.TrackDel);if(null!=a){let e=Object.assign(Object.create(null),c);e.pos=a,null!=e.end&&(e.end=d.changes.mapPos(e.end)),b.push(e)}}a=b}for(let b of d.effects)b.is(c)&&(a=b.value),b.is(go)&&(a=[]);return a},provide:a=>gj.from(a)});return{active:d,extension:[d,dy.define(e=>new gm(e,a,d,c,b.hoverTime||300)),gl]}}(function(a,b,c){let{diagnostics:d}=a.state.field(l_),e,f=-1,g=-1;d.between(b-(c<0),b+ +(c>0),(a,d,{spec:h})=>{if(b>=a&&b<=d&&(a==d||(b>a||c>0)&&(b<d||c<0)))return e=h.diagnostics,f=a,g=d,!1});let h=a.state.facet(l4).tooltipFilter;return(e&&h&&(e=h(e,a.state)),e)?{pos:f,end:g,above:a.state.doc.lineAt(f).to<g,create:()=>({dom:l1(a,e)})}:null},{hideOn:lX}),mc],mh=bf.define({combine:a=>bN(a,{hoverTime:300,markerFilter:null,tooltipFilter:null})}),mi=[function(a={}){return[gN.of(a),gE(),gQ]}(),gT,function(a={}){return[f0.of(a),f1||(f1=dy.fromClass(class{constructor(a){this.view=a,this.decorations=cA.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(a.state.facet(f0)),this.decorations=this.decorator.createDeco(a)}makeDecorator(a){return new fX({regexp:a.specialChars,decoration:(b,c,d)=>{let{doc:e}=c.state,f=a$(b[0],0);if(9==f){let a=e.lineAt(d),b=c.state.tabSize,f=b3(a.text,b,d-a.from);return cA.replace({widget:new f3((b-f%b)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[f]||(this.decorationCache[f]=cA.replace({widget:new f2(a,f)}))},boundary:a.replaceTabs?void 0:/[^]/})}update(a){let b=a.state.facet(f0);a.startState.facet(f0)!=b?(this.decorator=this.makeDecorator(b),this.decorations=this.decorator.createDeco(a.view)):this.decorations=this.decorator.updateDeco(a,this.decorations)}},{decorations:a=>a.decorations}))]}(),function(a={}){return[i6,i5.of(a),ft.domEventHandlers({beforeinput(a,b){let c="historyUndo"==a.inputType?i8:"historyRedo"==a.inputType?i9:null;return!!c&&(a.preventDefault(),c(b))}})]}(),function(a={}){var b;let c={...iw,...a},d=new ix(c,!0),e=new ix(c,!1),f=dy.fromClass(class{constructor(a){this.from=a.viewport.from,this.markers=this.buildMarkers(a)}update(a){(a.docChanged||a.viewportChanged||a.startState.facet(hZ)!=a.state.facet(hZ)||a.startState.field(ij,!1)!=a.state.field(ij,!1)||hQ(a.startState)!=hQ(a.state)||c.foldingChanged(a))&&(this.markers=this.buildMarkers(a.view))}buildMarkers(a){let b=new bU;for(let c of a.viewportLineBlocks){let f=il(a.state,c.from,c.to)?e:id(a.state,c.from,c.to)?d:null;f&&b.add(c.from,c.from,f)}return b.finish()}}),{domEventHandlers:g}=c;return[f,(b={class:"cm-foldGutter",markers(a){var b;return(null==(b=a.plugin(f))?void 0:b.markers)||bT.empty},initialSpacer:()=>new ix(c,!1),domEventHandlers:{...g,click:(a,b,c)=>{if(g.click&&g.click(a,b,c))return!0;let d=il(a.state,b.from,b.to);if(d)return a.dispatch({effects:ih.of(d)}),!0;let e=id(a.state,b.from,b.to);return!!e&&(a.dispatch({effects:ig.of(e)}),!0)}}},[gE(),gC.of({...gB,...b})]),is()]}(),function(a={}){return[fN.of(a),fP,fR,fS,dp.of(!0)]}(),[fU,fV],bM.allowMultipleSelections.of(!0),bM.transactionFilter.of(a=>{if(!a.docChanged||!a.isUserEvent("input.type")&&!a.isUserEvent("input.complete"))return a;let b=a.startState.languageDataAt("indentOnInput",a.startState.selection.main.head);if(!b.length)return a;let c=a.newDoc,{head:d}=a.newSelection.main,e=c.lineAt(d);if(d>e.from+200)return a;let f=c.sliceString(e.from,d);if(!b.some(a=>a.test(f)))return a;let{state:g}=a,h=-1,i=[];for(let{head:a}of g.selection.ranges){let b=g.doc.lineAt(a);if(b.from==h)continue;h=b.from;let c=h3(g,b.from);if(null==c)continue;let d=/^\s*/.exec(b.text)[0],e=h2(g,c);d!=e&&i.push({from:b.from,to:b.from+d.length,insert:e})}return i.length?[a,{changes:i,sequential:!0}]:a}),iD(iF,{fallback:!0}),function(a={}){return[iI.of(a),iN]}(),[lM,lH],function(a={}){return[lu,lm,k5.of(a),ls,lT,lv]}(),(d=a=>a.altKey&&0==a.button,ft.mouseSelectionStyle.of((a,b)=>{let c,e;return d(b)?(c=f6(a,b),e=a.state.selection,{update(a){if(a.docChanged){let b=a.changes.mapPos(a.startState.doc.line(c.line).from),d=a.state.doc.lineAt(b);c={line:d.number,col:c.col,off:Math.min(c.off,d.length)},e=e.map(a.changes)}},get(b,d,f){let g=f6(a,b),h=function(a,b,c){let d=Math.min(b.line,c.line),e=Math.max(b.line,c.line),f=[];if(b.off>2e3||c.off>2e3||b.col<0||c.col<0){let g=Math.min(b.off,c.off),h=Math.max(b.off,c.off);for(let b=d;b<=e;b++){let c=a.doc.line(b);c.length<=h&&f.push(bc.range(c.from+g,c.to+h))}}else{let g=Math.min(b.col,c.col),h=Math.max(b.col,c.col);for(let b=d;b<=e;b++){let c=a.doc.line(b),d=b4(c.text,g,a.tabSize,!0);if(d<0)f.push(bc.cursor(c.to));else{let b=b4(c.text,h,a.tabSize);f.push(bc.range(c.from+d,c.from+b))}}}return f}(a.state,c,g);return h.length?f?bc.create(h.concat(e.ranges)):bc.create(h):e}}):null})),function(a={}){let[b,c]=f7[a.key||"Alt"],d=dy.fromClass(class{constructor(a){this.view=a,this.isDown=!1}set(a){this.isDown!=a&&(this.isDown=a,this.view.update([]))}},{eventObservers:{keydown(a){this.set(a.keyCode==b||c(a))},keyup(a){a.keyCode!=b&&c(a)||this.set(!1)},mousemove(a){this.set(c(a))}}});return[d,ft.contentAttributes.of(a=>{var b;return(null==(b=a.plugin(d))?void 0:b.isDown)?f8:null})]}(),f5,[kl,kk],fB.of([...lN,...j5,...kO,{key:"Mod-z",run:i8,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:i9,preventDefault:!0},{linux:"Ctrl-Shift-z",run:i9,preventDefault:!0},{key:"Mod-u",run:ja,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:jb,preventDefault:!0},...ip,...lS,...l3])];class mj{constructor(a,b,c,d,e,f,g,h,i,j=0,k){this.p=a,this.stack=b,this.state=c,this.reducePos=d,this.pos=e,this.score=f,this.buffer=g,this.bufferBase=h,this.curContext=i,this.lookAhead=j,this.parent=k}toString(){return`[${this.stack.filter((a,b)=>b%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(a,b,c=0){let d=a.parser.context;return new mj(a,[],b,c,c,0,[],0,d?new mk(d,d.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(a,b){this.stack.push(this.state,b,this.bufferBase+this.buffer.length),this.state=a}reduce(a){var b;let c=a>>19,d=65535&a,{parser:e}=this.p,f=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),g=e.dynamicPrecedence(d);if(g&&(this.score+=g),0==c){this.pushState(e.getGoto(this.state,d,!0),this.reducePos),d<e.minRepeatTerm&&this.storeNode(d,this.reducePos,this.reducePos,f?8:4,!0),this.reduceContext(d,this.reducePos);return}let h=this.stack.length-(c-1)*3-(262144&a?6:0),i=h?this.stack[h-2]:this.p.ranges[0].from,j=this.reducePos-i;j>=2e3&&!(null==(b=this.p.parser.nodeSet.types[d])?void 0:b.isAnonymous)&&(i==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=j):this.p.lastBigReductionSize<j&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=i,this.p.lastBigReductionSize=j));let k=h?this.stack[h-1]:0,l=this.bufferBase+this.buffer.length-k;if(d<e.minRepeatTerm||131072&a){let a=e.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(d,i,a,l+4,!0)}if(262144&a)this.state=this.stack[h];else{let a=this.stack[h-3];this.state=e.getGoto(a,d,!0)}for(;this.stack.length>h;)this.stack.pop();this.reduceContext(d,i)}storeNode(a,b,c,d=4,e=!1){if(0==a&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let a=this,d=this.buffer.length;if(0==d&&a.parent&&(d=a.bufferBase-a.parent.bufferBase,a=a.parent),d>0&&0==a.buffer[d-4]&&a.buffer[d-1]>-1){if(b==c)return;if(a.buffer[d-2]>=b){a.buffer[d-2]=c;return}}}if(e&&this.pos!=c){let e=this.buffer.length;if(e>0&&(0!=this.buffer[e-4]||this.buffer[e-1]<0)){let a=!1;for(let b=e;b>0&&this.buffer[b-2]>c;b-=4)if(this.buffer[b-1]>=0){a=!0;break}if(a)for(;e>0&&this.buffer[e-2]>c;)this.buffer[e]=this.buffer[e-4],this.buffer[e+1]=this.buffer[e-3],this.buffer[e+2]=this.buffer[e-2],this.buffer[e+3]=this.buffer[e-1],e-=4,d>4&&(d-=4)}this.buffer[e]=a,this.buffer[e+1]=b,this.buffer[e+2]=c,this.buffer[e+3]=d}else this.buffer.push(a,b,c,d)}shift(a,b,c,d){if(131072&a)this.pushState(65535&a,this.pos);else if((262144&a)==0){let{parser:e}=this.p;this.pos=d;let f=e.stateFlag(a,1);!f&&(d>c||b<=e.maxNode)&&(this.reducePos=d),this.pushState(a,f?c:Math.min(c,this.reducePos)),this.shiftContext(b,c),b<=e.maxNode&&this.buffer.push(b,c,d,4)}else this.pos=d,this.shiftContext(b,c),b<=this.p.parser.maxNode&&this.buffer.push(b,c,d,4)}apply(a,b,c,d){65536&a?this.reduce(a):this.shift(a,b,c,d)}useNode(a,b){let c=this.p.reused.length-1;(c<0||this.p.reused[c]!=a)&&(this.p.reused.push(a),c++);let d=this.pos;this.reducePos=this.pos=d+a.length,this.pushState(b,d),this.buffer.push(c,d,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,a,this,this.p.stream.reset(this.pos-a.length)))}split(){let a=this,b=a.buffer.length;for(;b>0&&a.buffer[b-2]>a.reducePos;)b-=4;let c=a.buffer.slice(b),d=a.bufferBase+b;for(;a&&d==a.bufferBase;)a=a.parent;return new mj(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,c,d,this.curContext,this.lookAhead,a)}recoverByDelete(a,b){let c=a<=this.p.parser.maxNode;c&&this.storeNode(a,this.pos,b,4),this.storeNode(0,this.pos,b,c?8:4),this.pos=this.reducePos=b,this.score-=190}canShift(a){for(let b=new ml(this);;){let c=this.p.parser.stateSlot(b.state,4)||this.p.parser.hasAction(b.state,a);if(0==c)return!1;if((65536&c)==0)return!0;b.reduce(c)}}recoverByInsert(a){if(this.stack.length>=300)return[];let b=this.p.parser.nextStates(this.state);if(b.length>8||this.stack.length>=120){let c=[];for(let d=0,e;d<b.length;d+=2)(e=b[d+1])!=this.state&&this.p.parser.hasAction(e,a)&&c.push(b[d],e);if(this.stack.length<120)for(let a=0;c.length<8&&a<b.length;a+=2){let d=b[a+1];c.some((a,b)=>1&b&&a==d)||c.push(b[a],d)}b=c}let c=[];for(let a=0;a<b.length&&c.length<4;a+=2){let d=b[a+1];if(d==this.state)continue;let e=this.split();e.pushState(d,this.pos),e.storeNode(0,e.pos,e.pos,4,!0),e.shiftContext(b[a],this.pos),e.reducePos=this.pos,e.score-=200,c.push(e)}return c}forceReduce(){let{parser:a}=this.p,b=a.stateSlot(this.state,5);if((65536&b)==0)return!1;if(!a.validAction(this.state,b)){let c=b>>19,d=65535&b,e=this.stack.length-3*c;if(e<0||0>a.getGoto(this.stack[e],d,!1)){let a=this.findForcedReduction();if(null==a)return!1;b=a}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(b),!0}findForcedReduction(){let{parser:a}=this.p,b=[],c=(d,e)=>{if(!b.includes(d))return b.push(d),a.allActions(d,b=>{if(393216&b);else if(65536&b){let c=(b>>19)-e;if(c>1){let d=65535&b,e=this.stack.length-3*c;if(e>=0&&a.getGoto(this.stack[e],d,!1)>=0)return c<<19|65536|d}}else{let a=c(b,e+1);if(null!=a)return a}})};return c(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(3!=this.stack.length)return!1;let{parser:a}=this.p;return 65535==a.data[a.stateSlot(this.state,1)]&&!a.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(a){if(this.state!=a.state||this.stack.length!=a.stack.length)return!1;for(let b=0;b<this.stack.length;b+=3)if(this.stack[b]!=a.stack[b])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(a){return this.p.parser.dialect.flags[a]}shiftContext(a,b){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,a,this,this.p.stream.reset(b)))}reduceContext(a,b){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,a,this,this.p.stream.reset(b)))}emitContext(){let a=this.buffer.length-1;(a<0||-3!=this.buffer[a])&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let a=this.buffer.length-1;(a<0||-4!=this.buffer[a])&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(a){if(a!=this.curContext.context){let b=new mk(this.curContext.tracker,a);b.hash!=this.curContext.hash&&this.emitContext(),this.curContext=b}}setLookAhead(a){return!(a<=this.lookAhead)&&(this.emitLookAhead(),this.lookAhead=a,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class mk{constructor(a,b){this.tracker=a,this.context=b,this.hash=a.strict?a.hash(b):0}}class ml{constructor(a){this.start=a,this.state=a.state,this.stack=a.stack,this.base=this.stack.length}reduce(a){let b=a>>19;0==b?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(b-1)*3;let c=this.start.p.parser.getGoto(this.stack[this.base-3],65535&a,!0);this.state=c}}class mm{constructor(a,b,c){this.stack=a,this.pos=b,this.index=c,this.buffer=a.buffer,0==this.index&&this.maybeNext()}static create(a,b=a.bufferBase+a.buffer.length){return new mm(a,b,b-a.bufferBase)}maybeNext(){let a=this.stack.parent;null!=a&&(this.index=this.stack.bufferBase-a.bufferBase,this.stack=a,this.buffer=a.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new mm(this.stack,this.pos,this.index)}}function mn(a,b=Uint16Array){if("string"!=typeof a)return a;let c=null;for(let d=0,e=0;d<a.length;){let f=0;for(;;){let b=a.charCodeAt(d++),c=!1;if(126==b){f=65535;break}b>=92&&b--,b>=34&&b--;let e=b-32;if(e>=46&&(e-=46,c=!0),f+=e,c)break;f*=46}c?c[e++]=f:c=new b(f)}return c}class mo{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}let mp=new mo;class mq{constructor(a,b){this.input=a,this.ranges=b,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=mp,this.rangeIndex=0,this.pos=this.chunkPos=b[0].from,this.range=b[0],this.end=b[b.length-1].to,this.readNext()}resolveOffset(a,b){let c=this.range,d=this.rangeIndex,e=this.pos+a;for(;e<c.from;){if(!d)return null;let a=this.ranges[--d];e-=c.from-a.to,c=a}for(;b<0?e>c.to:e>=c.to;){if(d==this.ranges.length-1)return null;let a=this.ranges[++d];e+=a.from-c.to,c=a}return e}clipPos(a){if(a>=this.range.from&&a<this.range.to)return a;for(let b of this.ranges)if(b.to>a)return Math.max(a,b.from);return this.end}peek(a){let b=this.chunkOff+a,c,d;if(b>=0&&b<this.chunk.length)c=this.pos+a,d=this.chunk.charCodeAt(b);else{let b=this.resolveOffset(a,1);if(null==b)return -1;if((c=b)>=this.chunk2Pos&&c<this.chunk2Pos+this.chunk2.length)d=this.chunk2.charCodeAt(c-this.chunk2Pos);else{let a=this.rangeIndex,b=this.range;for(;b.to<=c;)b=this.ranges[++a];this.chunk2=this.input.chunk(this.chunk2Pos=c),c+this.chunk2.length>b.to&&(this.chunk2=this.chunk2.slice(0,b.to-c)),d=this.chunk2.charCodeAt(0)}}return c>=this.token.lookAhead&&(this.token.lookAhead=c+1),d}acceptToken(a,b=0){let c=b?this.resolveOffset(b,-1):this.pos;if(null==c||c<this.token.start)throw RangeError("Token end out of bounds");this.token.value=a,this.token.end=c}acceptTokenTo(a,b){this.token.value=a,this.token.end=b}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:a,chunkPos:b}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=a,this.chunk2Pos=b,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let a=this.input.chunk(this.pos),b=this.pos+a.length;this.chunk=b>this.range.to?a.slice(0,this.range.to-this.pos):a,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(a=1){for(this.chunkOff+=a;this.pos+a>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();a-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=a,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(a,b){if(b?(this.token=b,b.start=a,b.lookAhead=a+1,b.value=b.extended=-1):this.token=mp,this.pos!=a){if(this.pos=a,a==this.end)return this.setDone(),this;for(;a<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;a>=this.range.to;)this.range=this.ranges[++this.rangeIndex];a>=this.chunkPos&&a<this.chunkPos+this.chunk.length?this.chunkOff=a-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(a,b){if(a>=this.chunkPos&&b<=this.chunkPos+this.chunk.length)return this.chunk.slice(a-this.chunkPos,b-this.chunkPos);if(a>=this.chunk2Pos&&b<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(a-this.chunk2Pos,b-this.chunk2Pos);if(a>=this.range.from&&b<=this.range.to)return this.input.read(a,b);let c="";for(let d of this.ranges){if(d.from>=b)break;d.to>a&&(c+=this.input.read(Math.max(d.from,a),Math.min(d.to,b)))}return c}}class mr{constructor(a,b){this.data=a,this.id=b}token(a,b){let{parser:c}=b.p;mt(this.data,a,b,this.id,c.data,c.tokenPrecTable)}}mr.prototype.contextual=mr.prototype.fallback=mr.prototype.extend=!1,(class{constructor(a,b,c){this.precTable=b,this.elseToken=c,this.data="string"==typeof a?mn(a):a}token(a,b){let c=a.pos,d=0;for(;;){let c=a.next<0,e=a.resolveOffset(1,1);if(mt(this.data,a,b,0,this.data,this.precTable),a.token.value>-1)break;if(null==this.elseToken)return;if(!c&&d++,null==e)break;a.reset(e,a.token)}d&&(a.reset(c,a.token),a.acceptToken(this.elseToken,d))}}).prototype.contextual=mr.prototype.fallback=mr.prototype.extend=!1;class ms{constructor(a,b={}){this.token=a,this.contextual=!!b.contextual,this.fallback=!!b.fallback,this.extend=!!b.extend}}function mt(a,b,c,d,e,f){let g=0,h=1<<d,{dialect:i}=c.p.parser;d:for(;(h&a[g])!=0;){let c=a[g+1];for(let d=g+3;d<c;d+=2)if((a[d+1]&h)>0){let c=a[d];if(i.allows(c)&&(-1==b.token.value||b.token.value==c||function(a,b,c,d){let e=mu(c,d,b);return e<0||mu(c,d,a)<e}(c,b.token.value,e,f))){b.acceptToken(c);break}}let d=b.next,j=0,k=a[g+2];if(b.next<0&&k>j&&65535==a[c+3*k-3]){g=a[c+3*k-1];continue}for(;j<k;){let e=j+k>>1,f=c+e+(e<<1),h=a[f],i=a[f+1]||65536;if(d<h)k=e;else if(d>=i)j=e+1;else{g=a[f+2],b.advance();continue d}}break}}function mu(a,b,c){for(let d=b,e;65535!=(e=a[d]);d++)if(e==c)return d-b;return -1}let mv="u">typeof process&&process.env&&/\bparse\b/.test(process.env.LOG),mw=null;function mx(a,b,c){let d=a.cursor(pU.IncludeAnonymous);for(d.moveTo(b);;)if(!(c<0?d.childBefore(b):d.childAfter(b)))for(;;){if((c<0?d.to<b:d.from>b)&&!d.type.isError)return c<0?Math.max(0,Math.min(d.to-1,b-25)):Math.min(a.length,Math.max(d.from+1,b+25));if(c<0?d.prevSibling():d.nextSibling())break;if(!d.parent())return c<0?0:a.length}}class my{constructor(a,b){this.fragments=a,this.nodeSet=b,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let a=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(a){for(this.safeFrom=a.openStart?mx(a.tree,a.from+a.offset,1)-a.offset:a.from,this.safeTo=a.openEnd?mx(a.tree,a.to+a.offset,-1)-a.offset:a.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(a.tree),this.start.push(-a.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(a){if(a<this.nextStart)return null;for(;this.fragment&&this.safeTo<=a;)this.nextFragment();if(!this.fragment)return null;for(;;){let b=this.trees.length-1;if(b<0)return this.nextFragment(),null;let c=this.trees[b],d=this.index[b];if(d==c.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let e=c.children[d],f=this.start[b]+c.positions[d];if(f>a)return this.nextStart=f,null;if(e instanceof g1){if(f==a){if(f<this.safeFrom)return null;let a=f+e.length;if(a<=this.safeTo){let b=e.prop(gW.lookAhead);if(!b||a+b<this.fragment.to)return e}}this.index[b]++,f+e.length>=Math.max(this.safeFrom,a)&&(this.trees.push(e),this.start.push(f),this.index.push(0))}else this.index[b]++,this.nextStart=f+e.length}}}class mz{constructor(a,b){this.stream=b,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=a.tokenizers.map(a=>new mo)}getActions(a){let b=0,c=null,{parser:d}=a.p,{tokenizers:e}=d,f=d.stateSlot(a.state,3),g=a.curContext?a.curContext.hash:0,h=0;for(let d=0;d<e.length;d++){if((1<<d&f)==0)continue;let i=e[d],j=this.tokens[d];if((!c||i.fallback)&&((i.contextual||j.start!=a.pos||j.mask!=f||j.context!=g)&&(this.updateCachedToken(j,i,a),j.mask=f,j.context=g),j.lookAhead>j.end+25&&(h=Math.max(j.lookAhead,h)),0!=j.value)){let d=b;if(j.extended>-1&&(b=this.addActions(a,j.extended,j.end,b)),b=this.addActions(a,j.value,j.end,b),!i.extend&&(c=j,b>d))break}}for(;this.actions.length>b;)this.actions.pop();return h&&a.setLookAhead(h),c||a.pos!=this.stream.end||((c=new mo).value=a.p.parser.eofTerm,c.start=c.end=a.pos,b=this.addActions(a,c.value,c.end,b)),this.mainToken=c,this.actions}getMainToken(a){if(this.mainToken)return this.mainToken;let b=new mo,{pos:c,p:d}=a;return b.start=c,b.end=Math.min(c+1,d.stream.end),b.value=c==d.stream.end?d.parser.eofTerm:0,b}updateCachedToken(a,b,c){let d=this.stream.clipPos(c.pos);if(b.token(this.stream.reset(d,a),c),a.value>-1){let{parser:b}=c.p;for(let d=0;d<b.specialized.length;d++)if(b.specialized[d]==a.value){let e=b.specializers[d](this.stream.read(a.start,a.end),c);if(e>=0&&c.p.parser.dialect.allows(e>>1)){(1&e)==0?a.value=e>>1:a.extended=e>>1;break}}}else a.value=0,a.end=this.stream.clipPos(d+1)}putAction(a,b,c,d){for(let b=0;b<d;b+=3)if(this.actions[b]==a)return d;return this.actions[d++]=a,this.actions[d++]=b,this.actions[d++]=c,d}addActions(a,b,c,d){let{state:e}=a,{parser:f}=a.p,{data:g}=f;for(let a=0;a<2;a++)for(let h=f.stateSlot(e,a?2:1);;h+=3){if(65535==g[h])if(1==g[h+1])h=mF(g,h+2);else{0==d&&2==g[h+1]&&(d=this.putAction(mF(g,h+2),b,c,d));break}g[h]==b&&(d=this.putAction(mF(g,h+1),b,c,d))}return d}}class mA{constructor(a,b,c,d){this.parser=a,this.input=b,this.ranges=d,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new mq(b,d),this.tokens=new mz(a,this.stream),this.topTerm=a.top[1];let{from:e}=d[0];this.stacks=[mj.start(this,a.top[0],e)],this.fragments=c.length&&this.stream.end-e>4*a.bufferLength?new my(c,a.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let a,b,c=this.stacks,d=this.minStackPos,e=this.stacks=[];if(this.bigReductionCount>300&&1==c.length){let[a]=c;for(;a.forceReduce()&&a.stack.length&&a.stack[a.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let f=0;f<c.length;f++){let g=c[f];for(;;){if(this.tokens.mainToken=null,g.pos>d)e.push(g);else{if(this.advanceStack(g,e,c))continue;a||(a=[],b=[]),a.push(g);let d=this.tokens.getMainToken(g);b.push(d.value,d.end)}break}}if(!e.length){let b=a&&function(a){let b=null;for(let c of a){let a=c.p.stoppedAt;(c.pos==c.p.stream.end||null!=a&&c.pos>a)&&c.p.parser.stateFlag(c.state,2)&&(!b||b.score<c.score)&&(b=c)}return b}(a);if(b)return mv&&console.log("Finish with "+this.stackID(b)),this.stackToTree(b);if(this.parser.strict)throw mv&&a&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),SyntaxError("No parse at "+d);this.recovering||(this.recovering=5)}if(this.recovering&&a){let c=null!=this.stoppedAt&&a[0].pos>this.stoppedAt?a[0]:this.runRecovery(a,b,e);if(c)return mv&&console.log("Force-finish "+this.stackID(c)),this.stackToTree(c.forceAll())}if(this.recovering){let a=1==this.recovering?1:3*this.recovering;if(e.length>a)for(e.sort((a,b)=>b.score-a.score);e.length>a;)e.pop();e.some(a=>a.reducePos>d)&&this.recovering--}else if(e.length>1){g:for(let a=0;a<e.length-1;a++){let b=e[a];for(let c=a+1;c<e.length;c++){let d=e[c];if(b.sameState(d)||b.buffer.length>500&&d.buffer.length>500)if((b.score-d.score||b.buffer.length-d.buffer.length)>0)e.splice(c--,1);else{e.splice(a--,1);continue g}}}e.length>12&&(e.sort((a,b)=>b.score-a.score),e.splice(12,e.length-12))}this.minStackPos=e[0].pos;for(let a=1;a<e.length;a++)e[a].pos<this.minStackPos&&(this.minStackPos=e[a].pos);return null}stopAt(a){if(null!=this.stoppedAt&&this.stoppedAt<a)throw RangeError("Can't move stoppedAt forward");this.stoppedAt=a}advanceStack(a,b,c){let d=a.pos,{parser:e}=this,f=mv?this.stackID(a)+" -> ":"";if(null!=this.stoppedAt&&d>this.stoppedAt)return a.forceReduce()?a:null;if(this.fragments){let b=a.curContext&&a.curContext.tracker.strict,c=b?a.curContext.hash:0;for(let g=this.fragments.nodeAt(d);g;){let d=this.parser.nodeSet.types[g.type.id]==g.type?e.getGoto(a.state,g.type.id):-1;if(d>-1&&g.length&&(!b||(g.prop(gW.contextHash)||0)==c))return a.useNode(g,d),mv&&console.log(f+this.stackID(a)+` (via reuse of ${e.getName(g.type.id)})`),!0;if(!(g instanceof g1)||0==g.children.length||g.positions[0]>0)break;let h=g.children[0];if(h instanceof g1&&0==g.positions[0])g=h;else break}}let g=e.stateSlot(a.state,4);if(g>0)return a.reduce(g),mv&&console.log(f+this.stackID(a)+` (via always-reduce ${e.getName(65535&g)})`),!0;if(a.stack.length>=8400)for(;a.stack.length>6e3&&a.forceReduce(););let h=this.tokens.getActions(a);for(let g=0;g<h.length;){let i=h[g++],j=h[g++],k=h[g++],l=g==h.length||!c,m=l?a:a.split(),n=this.tokens.mainToken;if(m.apply(i,j,n?n.start:m.pos,k),mv&&console.log(f+this.stackID(m)+` (via ${(65536&i)==0?"shift":`reduce of ${e.getName(65535&i)}`} for ${e.getName(j)} @ ${d}${m==a?"":", split"})`),l)return!0;m.pos>d?b.push(m):c.push(m)}return!1}advanceFully(a,b){let c=a.pos;for(;;){if(!this.advanceStack(a,null,null))return!1;if(a.pos>c)return mB(a,b),!0}}runRecovery(a,b,c){let d=null,e=!1;for(let f=0;f<a.length;f++){let g=a[f],h=b[f<<1],i=b[(f<<1)+1],j=mv?this.stackID(g)+" -> ":"";if(g.deadEnd&&(e||(e=!0,g.restart(),mv&&console.log(j+this.stackID(g)+" (restarted)"),this.advanceFully(g,c))))continue;let k=g.split(),l=j;for(let a=0;a<10&&k.forceReduce()&&(mv&&console.log(l+this.stackID(k)+" (via force-reduce)"),!this.advanceFully(k,c));a++)mv&&(l=this.stackID(k)+" -> ");for(let a of g.recoverByInsert(h))mv&&console.log(j+this.stackID(a)+" (via recover-insert)"),this.advanceFully(a,c);this.stream.end>g.pos?(i==g.pos&&(i++,h=0),g.recoverByDelete(h,i),mv&&console.log(j+this.stackID(g)+` (via recover-delete ${this.parser.getName(h)})`),mB(g,c)):(!d||d.score<k.score)&&(d=k)}return d}stackToTree(a){return a.close(),g1.build({buffer:mm.create(a),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:a.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(a){let b=(mw||(mw=new WeakMap)).get(a);return b||mw.set(a,b=String.fromCodePoint(this.nextStackID++)),b+a}}function mB(a,b){for(let c=0;c<b.length;c++){let d=b[c];if(d.pos==a.pos&&d.sameState(a)){b[c].score<a.score&&(b[c]=a);return}}b.push(a)}class mC{constructor(a,b,c){this.source=a,this.flags=b,this.disabled=c}allows(a){return!this.disabled||0==this.disabled[a]}}let mD=a=>a;class mE extends hk{constructor(a){if(super(),this.wrappers=[],14!=a.version)throw RangeError(`Parser version (${a.version}) doesn't match runtime version (14)`);let b=a.nodeNames.split(" ");this.minRepeatTerm=b.length;for(let c=0;c<a.repeatNodeCount;c++)b.push("");let c=Object.keys(a.topRules).map(b=>a.topRules[b][1]),d=[];for(let a=0;a<b.length;a++)d.push([]);function e(a,b,c){d[a].push([b,b.deserialize(String(c))])}if(a.nodeProps)for(let b of a.nodeProps){let a=b[0];"string"==typeof a&&(a=gW[a]);for(let c=1;c<b.length;){let d=b[c++];if(d>=0)e(d,a,b[c++]);else{let f=b[c+-d];for(let g=-d;g>0;g--)e(b[c++],a,f);c++}}}this.nodeSet=new g$(b.map((b,e)=>gZ.define({name:e>=this.minRepeatTerm?void 0:b,id:e,props:d[e],top:c.indexOf(e)>-1,error:0==e,skipped:a.skippedNodes&&a.skippedNodes.indexOf(e)>-1}))),a.propSources&&(this.nodeSet=this.nodeSet.extend(...a.propSources)),this.strict=!1,this.bufferLength=1024;let f=mn(a.tokenData);this.context=a.context,this.specializerSpecs=a.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(mG),this.states=mn(a.states,Uint32Array),this.data=mn(a.stateData),this.goto=mn(a.goto),this.maxTerm=a.maxTerm,this.tokenizers=a.tokenizers.map(a=>"number"==typeof a?new mr(f,a):a),this.topRules=a.topRules,this.dialects=a.dialects||{},this.dynamicPrecedences=a.dynamicPrecedences||null,this.tokenPrecTable=a.tokenPrec,this.termNames=a.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(a,b,c){let d=new mA(this,a,b,c);for(let e of this.wrappers)d=e(d,a,b,c);return d}getGoto(a,b,c=!1){let d=this.goto;if(b>=d[0])return -1;for(let e=d[b+1];;){let b=d[e++],f=1&b,g=d[e++];if(f&&c)return g;for(let c=e+(b>>1);e<c;e++)if(d[e]==a)return g;if(f)return -1}}hasAction(a,b){let c=this.data;for(let d=0;d<2;d++)for(let e=this.stateSlot(a,d?2:1),f;;e+=3){if(65535==(f=c[e]))if(1==c[e+1])f=c[e=mF(c,e+2)];else if(2==c[e+1])return mF(c,e+2);else break;if(f==b||0==f)return mF(c,e+1)}return 0}stateSlot(a,b){return this.states[6*a+b]}stateFlag(a,b){return(this.stateSlot(a,0)&b)>0}validAction(a,b){return!!this.allActions(a,a=>a==b||null)}allActions(a,b){let c=this.stateSlot(a,4),d=c?b(c):void 0;for(let c=this.stateSlot(a,1);null==d;c+=3){if(65535==this.data[c])if(1==this.data[c+1])c=mF(this.data,c+2);else break;d=b(mF(this.data,c+1))}return d}nextStates(a){let b=[];for(let c=this.stateSlot(a,1);;c+=3){if(65535==this.data[c])if(1==this.data[c+1])c=mF(this.data,c+2);else break;if((1&this.data[c+2])==0){let a=this.data[c+1];b.some((b,c)=>1&c&&b==a)||b.push(this.data[c],a)}}return b}configure(a){let b=Object.assign(Object.create(mE.prototype),this);if(a.props&&(b.nodeSet=this.nodeSet.extend(...a.props)),a.top){let c=this.topRules[a.top];if(!c)throw RangeError(`Invalid top rule name ${a.top}`);b.top=c}return a.tokenizers&&(b.tokenizers=this.tokenizers.map(b=>{let c=a.tokenizers.find(a=>a.from==b);return c?c.to:b})),a.specializers&&(b.specializers=this.specializers.slice(),b.specializerSpecs=this.specializerSpecs.map((c,d)=>{let e=a.specializers.find(a=>a.from==c.external);if(!e)return c;let f=Object.assign(Object.assign({},c),{external:e.to});return b.specializers[d]=mG(f),f})),a.contextTracker&&(b.context=a.contextTracker),a.dialect&&(b.dialect=this.parseDialect(a.dialect)),null!=a.strict&&(b.strict=a.strict),a.wrap&&(b.wrappers=b.wrappers.concat(a.wrap)),null!=a.bufferLength&&(b.bufferLength=a.bufferLength),b}hasWrappers(){return this.wrappers.length>0}getName(a){return this.termNames?this.termNames[a]:String(a<=this.maxNode&&this.nodeSet.types[a].name||a)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(a){let b=this.dynamicPrecedences;return null==b?0:b[a]||0}parseDialect(a){let b=Object.keys(this.dialects),c=b.map(()=>!1);if(a)for(let d of a.split(" ")){let a=b.indexOf(d);a>=0&&(c[a]=!0)}let d=null;for(let a=0;a<b.length;a++)if(!c[a])for(let c=this.dialects[b[a]],e;65535!=(e=this.data[c++]);)(d||(d=new Uint8Array(this.maxTerm+1)))[e]=1;return new mC(a,c,d)}static deserialize(a){return new mE(a)}}function mF(a,b){return a[b]|a[b+1]<<16}function mG(a){if(a.external){let b=+!!a.extend;return(c,d)=>a.external(c,d)<<1|b}return a.get}let mH=new Set([25,49,50,263,65,130,56,57,238,62,63,72,73,77,60,61,151,152,155,112]);function mI(a){return 10==a||13==a}function mJ(a){return a>=48&&a<=57||a>=65&&a<=70||a>=97&&a<=102}let mK=new ms((a,b)=>{let c;if(a.next<0)a.acceptToken(199);else if(b.context.flags&mM)mI(a.next)&&a.acceptToken(198,1);else if(((c=a.peek(-1))<0||mI(c))&&b.canShift(197)){let b=0;for(;32==a.next||9==a.next;)a.advance(),b++;(10==a.next||13==a.next||35==a.next)&&a.acceptToken(197,-b)}else mI(a.next)&&a.acceptToken(196,1)},{contextual:!0}),mL=new ms((a,b)=>{let c=b.context;if(c.flags)return;let d=a.peek(-1);if(10==d||13==d){let b=0,d=0;for(;;){if(32==a.next)b++;else if(9==a.next)b+=8-b%8;else break;a.advance(),d++}b!=c.indent&&10!=a.next&&13!=a.next&&35!=a.next&&(b<c.indent?a.acceptToken(195,-d):a.acceptToken(194))}}),mM=1;function mN(a,b,c){this.parent=a,this.indent=b,this.flags=c,this.hash=(a?a.hash+a.hash<<8:0)+b+(b<<4)+c+(c<<6)}let mO=new mN(null,0,0),mP=new Map([[241,0],[242,4],[243,8],[244,12],[245,16],[246,20],[247,24],[248,28],[249,32],[250,36],[251,40],[252,44],[253,48],[254,52],[255,56],[256,60]].map(([a,b])=>[a,2|b])),mQ=new class{constructor(a){this.start=a.start,this.shift=a.shift||mD,this.reduce=a.reduce||mD,this.reuse=a.reuse||mD,this.hash=a.hash||(()=>0),this.strict=!1!==a.strict}}({start:mO,reduce:(a,b,c,d)=>a.flags&mM&&mH.has(b)||(71==b||72==b)&&2&a.flags?a.parent:a,shift:(a,b,c,d)=>194==b?new mN(a,function(a){let b=0;for(let c=0;c<a.length;c++)b+=9==a.charCodeAt(c)?8-b%8:1;return b}(d.read(d.pos,c.pos)),0):195==b?a.parent:24==b||55==b||59==b||3==b?new mN(a,0,mM):mP.has(b)?new mN(a,0,mP.get(b)|a.flags&mM):a,hash:a=>a.hash}),mR=new ms(a=>{for(let b=0;b<5;b++){if(a.next!="print".charCodeAt(b))return;a.advance()}if(!/\w/.test(String.fromCharCode(a.next)))for(let b=0;;b++){let c=a.peek(b);if(32!=c&&9!=c){40!=c&&46!=c&&10!=c&&13!=c&&35!=c&&a.acceptToken(1);return}}}),mS=new ms((a,b)=>{let{flags:c}=b.context,d=4&c?34:39,e=(8&c)>0,f=!(16&c),g=(32&c)>0,h=a.pos;for(;;)if(a.next<0)break;else if(g&&123==a.next)if(123==a.peek(1))a.advance(2);else{if(a.pos==h)return void a.acceptToken(3,1);break}else if(f&&92==a.next){if(a.pos==h){a.advance();let b=a.next;b>=0&&(a.advance(),function(a,b){if(111==b)for(let b=0;b<2&&a.next>=48&&a.next<=55;b++)a.advance();else if(120==b)for(let b=0;b<2&&mJ(a.next);b++)a.advance();else if(117==b)for(let b=0;b<4&&mJ(a.next);b++)a.advance();else if(85==b)for(let b=0;b<8&&mJ(a.next);b++)a.advance();else if(78==b&&123==a.next){for(a.advance();a.next>=0&&125!=a.next&&39!=a.next&&34!=a.next&&10!=a.next;)a.advance();125==a.next&&a.advance()}}(a,b)),a.acceptToken(2);return}break}else if(92==a.next&&!f&&a.peek(1)>-1)a.advance(2);else if(a.next!=d||e&&(a.peek(1)!=d||a.peek(2)!=d))if(10==a.next){if(e)a.advance();else if(a.pos==h)return void a.acceptToken(201);break}else a.advance();else{if(a.pos==h)return void a.acceptToken(201,e?3:1);break}a.pos>h&&a.acceptToken(200)}),mT=hq({'async "*" "**" FormatConversion FormatSpec':hK.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":hK.controlKeyword,"in not and or is del":hK.operatorKeyword,"from def class global nonlocal lambda":hK.definitionKeyword,import:hK.moduleKeyword,"with as print":hK.keyword,Boolean:hK.bool,None:hK.null,VariableName:hK.variableName,"CallExpression/VariableName":hK.function(hK.variableName),"FunctionDefinition/VariableName":hK.function(hK.definition(hK.variableName)),"ClassDefinition/VariableName":hK.definition(hK.className),PropertyName:hK.propertyName,"CallExpression/MemberExpression/PropertyName":hK.function(hK.propertyName),Comment:hK.lineComment,Number:hK.number,String:hK.string,FormatString:hK.special(hK.string),Escape:hK.escape,UpdateOp:hK.updateOperator,"ArithOp!":hK.arithmeticOperator,BitOp:hK.bitwiseOperator,CompareOp:hK.compareOperator,AssignOp:hK.definitionOperator,Ellipsis:hK.punctuation,At:hK.meta,"( )":hK.paren,"[ ]":hK.squareBracket,"{ }":hK.brace,".":hK.derefOperator,", ;":hK.separator}),mU={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},mV=mE.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:mQ,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[mT],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[mR,mL,mK,mS,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:a=>mU[a]||-1}],tokenPrec:7668});class mW{constructor(a,b,c,d){this.state=a,this.pos=b,this.explicit=c,this.view=d,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(a){let b=hQ(this.state).resolveInner(this.pos,-1);for(;b&&0>a.indexOf(b.name);)b=b.parent;return b?{from:b.from,to:this.pos,text:this.state.sliceDoc(b.from,this.pos),type:b.type}:null}matchBefore(a){let b=this.state.doc.lineAt(this.pos),c=Math.max(b.from,this.pos-250),d=b.text.slice(c-b.from,this.pos-b.from),e=d.search(m_(a,!1));return e<0?null:{from:c+e,to:this.pos,text:d.slice(e)}}get aborted(){return null==this.abortListeners}addEventListener(a,b,c){"abort"==a&&this.abortListeners&&(this.abortListeners.push(b),c&&c.onDocChange&&(this.abortOnDocChange=!0))}}function mX(a){let b=Object.keys(a).join(""),c=/\w/.test(b);return c&&(b=b.replace(/\w/g,"")),`[${c?"\\w":""}${b.replace(/[^\w\s]/g,"\\$&")}]`}function mY(a){let b=a.map(a=>"string"==typeof a?{label:a}:a),[c,d]=b.every(a=>/^\w+$/.test(a.label))?[/\w*$/,/\w+$/]:function(a){let b=Object.create(null),c=Object.create(null);for(let{label:d}of a){b[d[0]]=!0;for(let a=1;a<d.length;a++)c[d[a]]=!0}let d=mX(b)+mX(c)+"*$";return[RegExp("^"+d),new RegExp(d)]}(b);return a=>{let e=a.matchBefore(d);return e||a.explicit?{from:e?e.from:a.pos,options:b,validFor:c}:null}}class mZ{constructor(a,b,c,d){this.completion=a,this.source=b,this.match=c,this.score=d}}function m$(a){return a.selection.main.from}function m_(a,b){var c;let{source:d}=a,e=b&&"^"!=d[0],f="$"!=d[d.length-1];return e||f?RegExp(`${e?"^":""}(?:${d})${f?"$":""}`,null!=(c=a.flags)?c:a.ignoreCase?"i":""):a}let m0=bB.define(),m1=new WeakMap;function m2(a){if(!Array.isArray(a))return a;let b=m1.get(a);return b||m1.set(a,b=mY(a)),b}let m3=bE.define(),m4=bE.define();class m5{constructor(a){this.pattern=a,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let b=0;b<a.length;){let c=a$(a,b),d=a0(c);this.chars.push(c);let e=a.slice(b,b+d),f=e.toUpperCase();this.folded.push(a$(f==e?e.toLowerCase():f,0)),b+=d}this.astral=a.length!=this.chars.length}ret(a,b){return this.score=a,this.matched=b,this}match(a){if(0==this.pattern.length)return this.ret(-100,[]);if(a.length<this.pattern.length)return null;let{chars:b,folded:c,any:d,precise:e,byWord:f}=this;if(1==b.length){let d=a$(a,0),e=a0(d),f=e==a.length?0:-100;if(d==b[0]);else{if(d!=c[0])return null;f+=-200}return this.ret(f,[0,e])}let g=a.indexOf(this.pattern);if(0==g)return this.ret(a.length==this.pattern.length?0:-100,[0,this.pattern.length]);let h=b.length,i=0;if(g<0){for(let e=0,f=Math.min(a.length,200);e<f&&i<h;){let f=a$(a,e);(f==b[i]||f==c[i])&&(d[i++]=e),e+=a0(f)}if(i<h)return null}let j=0,k=0,l=!1,m=0,n=-1,o=-1,p=/[a-z]/.test(a),q=!0;for(let d=0,i=Math.min(a.length,200),r=0;d<i&&k<h;){let i=a$(a,d);g<0&&(j<h&&i==b[j]&&(e[j++]=d),m<h&&(i==b[m]||i==c[m]?(0==m&&(n=d),o=d+1,m++):m=0));let s,t=i<255?i>=48&&i<=57||i>=97&&i<=122?2:+(i>=65&&i<=90):(s=a_(i))!=s.toLowerCase()?1:2*(s!=s.toUpperCase());(!d||1==t&&p||0==r&&0!=t)&&(b[k]==i||c[k]==i&&(l=!0)?f[k++]=d:f.length&&(q=!1)),r=t,d+=a0(i)}return k==h&&0==f[0]&&q?this.result(-100+(l?-200:0),f,a):m==h&&0==n?this.ret(-200-a.length+(o==a.length?0:-100),[0,o]):g>-1?this.ret(-700-a.length,[g,g+this.pattern.length]):m==h?this.ret(-900-a.length,[n,o]):k==h?this.result(-100+(l?-200:0)+-700+(q?0:-1100),f,a):2==b.length?null:this.result((d[0]?-700:0)+-200+-1100,d,a)}result(a,b,c){let d=[],e=0;for(let a of b){let b=a+(this.astral?a0(a$(c,a)):1);e&&d[e-1]==a?d[e-1]=b:(d[e++]=a,d[e++]=b)}return this.ret(a-c.length,d)}}class m6{constructor(a){this.pattern=a,this.matched=[],this.score=0,this.folded=a.toLowerCase()}match(a){if(a.length<this.pattern.length)return null;let b=a.slice(0,this.pattern.length),c=b==this.pattern?0:b.toLowerCase()==this.folded?-200:null;return null==c?null:(this.matched=[0,b.length],this.score=c+(a.length==this.pattern.length?0:-100),this)}}let m7=bf.define({combine:a=>bN(a,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:m9,filterStrict:!1,compareCompletions:(a,b)=>(a.sortText||a.label).localeCompare(b.sortText||b.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(a,b)=>a&&b,closeOnBlur:(a,b)=>a&&b,icons:(a,b)=>a&&b,tooltipClass:(a,b)=>c=>m8(a(c),b(c)),optionClass:(a,b)=>c=>m8(a(c),b(c)),addToOptions:(a,b)=>a.concat(b),filterStrict:(a,b)=>a||b})});function m8(a,b){return a?b?a+" "+b:a:b}function m9(a,b,c,d,e,f){let g=a.textDirection==c0.RTL,h=g,i=!1,j="top",k,l,m=b.left-e.left,n=e.right-b.right,o=d.right-d.left,p=d.bottom-d.top;if(h&&m<Math.min(o,n)?h=!1:!h&&n<Math.min(o,m)&&(h=!0),o<=(h?m:n))k=Math.max(e.top,Math.min(c.top,e.bottom-p))-b.top,l=Math.min(400,h?m:n);else{i=!0,l=Math.min(400,(g?b.right:e.right-b.left)-30);let a=e.bottom-b.bottom;a>=p||a>b.top?k=c.bottom-b.top:(j="bottom",k=b.bottom-c.top)}let q=(b.bottom-b.top)/f.offsetHeight,r=(b.right-b.left)/f.offsetWidth;return{style:`${j}: ${k/q}px; max-width: ${l/r}px`,class:"cm-completionInfo-"+(i?g?"left-narrow":"right-narrow":h?"left":"right")}}let na=bE.define();function nb(a,b,c){if(a<=c)return{from:0,to:a};if(b<0&&(b=0),b<=a>>1){let a=Math.floor(b/c);return{from:a*c,to:(a+1)*c}}let d=Math.floor((a-b)/c);return{from:a-(d+1)*c,to:a-d*c}}class nc{constructor(a,b,c){this.view=a,this.stateField=b,this.applyCompletion=c,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let d=a.state.field(b),{options:e,selected:f}=d.open,g=a.state.facet(m7);this.optionContent=function(a){let b=a.addToOptions.slice();return a.icons&&b.push({render(a){let b=document.createElement("div");return b.classList.add("cm-completionIcon"),a.type&&b.classList.add(...a.type.split(/\s+/g).map(a=>"cm-completionIcon-"+a)),b.setAttribute("aria-hidden","true"),b},position:20}),b.push({render(a,b,c,d){let e=document.createElement("span");e.className="cm-completionLabel";let f=a.displayLabel||a.label,g=0;for(let a=0;a<d.length;){let b=d[a++],c=d[a++];b>g&&e.appendChild(document.createTextNode(f.slice(g,b)));let h=e.appendChild(document.createElement("span"));h.appendChild(document.createTextNode(f.slice(b,c))),h.className="cm-completionMatchedText",g=c}return g<f.length&&e.appendChild(document.createTextNode(f.slice(g))),e},position:50},{render(a){if(!a.detail)return null;let b=document.createElement("span");return b.className="cm-completionDetail",b.textContent=a.detail,b},position:80}),b.sort((a,b)=>a.position-b.position).map(a=>a.render)}(g),this.optionClass=g.optionClass,this.tooltipClass=g.tooltipClass,this.range=nb(e.length,f,g.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(a.state),this.dom.addEventListener("mousedown",c=>{let{options:d}=a.state.field(b).open;for(let b=c.target,e;b&&b!=this.dom;b=b.parentNode)if("LI"==b.nodeName&&(e=/-(\d+)$/.exec(b.id))&&+e[1]<d.length){this.applyCompletion(a,d[+e[1]]),c.preventDefault();return}if(c.target==this.list){let b=this.list.classList.contains("cm-completionListIncompleteTop")&&c.clientY<this.list.firstChild.getBoundingClientRect().top?this.range.from-1:this.list.classList.contains("cm-completionListIncompleteBottom")&&c.clientY>this.list.lastChild.getBoundingClientRect().bottom?this.range.to:null;null!=b&&(a.dispatch({effects:na.of(b)}),c.preventDefault())}}),this.dom.addEventListener("focusout",b=>{let c=a.state.field(this.stateField,!1);c&&c.tooltip&&a.state.facet(m7).closeOnBlur&&b.relatedTarget!=a.contentDOM&&a.dispatch({effects:m4.of(null)})}),this.showOptions(e,d.id)}mount(){this.updateSel()}showOptions(a,b){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(a,b,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(a){var b;let c=a.state.field(this.stateField),d=a.startState.field(this.stateField);if(this.updateTooltipClass(a.state),c!=d){let{options:e,selected:f,disabled:g}=c.open;d.open&&d.open.options==e||(this.range=nb(e.length,f,a.state.facet(m7).maxRenderedOptions),this.showOptions(e,c.id)),this.updateSel(),g!=(null==(b=d.open)?void 0:b.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!g)}}updateTooltipClass(a){let b=this.tooltipClass(a);if(b!=this.currentClass){for(let a of this.currentClass.split(" "))a&&this.dom.classList.remove(a);for(let a of b.split(" "))a&&this.dom.classList.add(a);this.currentClass=b}}positioned(a){this.space=a,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let a=this.view.state.field(this.stateField),b=a.open;(b.selected>-1&&b.selected<this.range.from||b.selected>=this.range.to)&&(this.range=nb(b.options.length,b.selected,this.view.state.facet(m7).maxRenderedOptions),this.showOptions(b.options,a.id));let c=this.updateSelectedOption(b.selected);if(c){this.destroyInfo();let{completion:d}=b.options[b.selected],{info:e}=d;if(!e)return;let f="string"==typeof e?document.createTextNode(e):e(d);if(!f)return;"then"in f?f.then(b=>{b&&this.view.state.field(this.stateField,!1)==a&&this.addInfoPane(b,d)}).catch(a=>du(this.view.state,a,"completion info")):(this.addInfoPane(f,d),c.setAttribute("aria-describedby",this.info.id))}}addInfoPane(a,b){this.destroyInfo();let c=this.info=document.createElement("div");if(c.className="cm-tooltip cm-completionInfo",c.id="cm-completionInfo-"+Math.floor(65535*Math.random()).toString(16),null!=a.nodeType)c.appendChild(a),this.infoDestroy=null;else{let{dom:b,destroy:d}=a;c.appendChild(b),this.infoDestroy=d||null}this.dom.appendChild(c),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(a){var b,c;let d,e,f,g=null;for(let b=this.list.firstChild,c=this.range.from;b;b=b.nextSibling,c++)"LI"==b.nodeName&&b.id?c==a?b.hasAttribute("aria-selected")||(b.setAttribute("aria-selected","true"),g=b):b.hasAttribute("aria-selected")&&(b.removeAttribute("aria-selected"),b.removeAttribute("aria-describedby")):c--;return g&&(b=this.list,c=g,d=b.getBoundingClientRect(),e=c.getBoundingClientRect(),f=d.height/b.offsetHeight,e.top<d.top?b.scrollTop-=(d.top-e.top)/f:e.bottom>d.bottom&&(b.scrollTop+=(e.bottom-d.bottom)/f)),g}measureInfo(){let a=this.dom.querySelector("[aria-selected]");if(!a||!this.info)return null;let b=this.dom.getBoundingClientRect(),c=this.info.getBoundingClientRect(),d=a.getBoundingClientRect(),e=this.space;if(!e){let a=this.dom.ownerDocument.documentElement;e={left:0,top:0,right:a.clientWidth,bottom:a.clientHeight}}return d.top>Math.min(e.bottom,b.bottom)-10||d.bottom<Math.max(e.top,b.top)+10?null:this.view.state.facet(m7).positionInfo(this.view,b,d,c,e,this.dom)}placeInfo(a){this.info&&(a?(a.style&&(this.info.style.cssText=a.style),this.info.className="cm-tooltip cm-completionInfo "+(a.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(a,b,c){let d=document.createElement("ul");d.id=b,d.setAttribute("role","listbox"),d.setAttribute("aria-expanded","true"),d.setAttribute("aria-label",this.view.state.phrase("Completions")),d.addEventListener("mousedown",a=>{a.target==d&&a.preventDefault()});let e=null;for(let f=c.from;f<c.to;f++){let{completion:g,match:h}=a[f],{section:i}=g;if(i){let a="string"==typeof i?i:i.name;a!=e&&(f>c.from||0==c.from)&&(e=a,"string"!=typeof i&&i.header?d.appendChild(i.header(i)):d.appendChild(document.createElement("completion-section")).textContent=a)}let j=d.appendChild(document.createElement("li"));j.id=b+"-"+f,j.setAttribute("role","option");let k=this.optionClass(g);for(let a of(k&&(j.className=k),this.optionContent)){let b=a(g,this.view.state,this.view,h);b&&j.appendChild(b)}}return c.from&&d.classList.add("cm-completionListIncompleteTop"),c.to<a.length&&d.classList.add("cm-completionListIncompleteBottom"),d}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function nd(a){return 100*(a.boost||0)+10*!!a.apply+5*!!a.info+ +!!a.type}class ne{constructor(a,b,c,d,e,f){this.options=a,this.attrs=b,this.tooltip=c,this.timestamp=d,this.selected=e,this.disabled=f}setSelected(a,b){return a==this.selected||a>=this.options.length?this:new ne(this.options,ni(b,a),this.tooltip,this.timestamp,a,this.disabled)}static build(a,b,c,d,e,f){if(d&&!f&&a.some(a=>a.isPending))return d.setDisabled();let g=function(a,b){let c=[],d=null,e=null,f=a=>{c.push(a);let{section:b}=a.completion;if(b){d||(d=[]);let a="string"==typeof b?b:b.name;d.some(b=>b.name==a)||d.push("string"==typeof b?{name:a}:b)}},g=b.facet(m7);for(let d of a)if(d.hasResult()){let a=d.result.getMatch;if(!1===d.result.filter)for(let b of d.result.options)f(new mZ(b,d.source,a?a(b):[],1e9-c.length));else{let c=b.sliceDoc(d.from,d.to),h,i=g.filterStrict?new m6(c):new m5(c);for(let b of d.result.options)if(h=i.match(b.label)){let c=b.displayLabel?a?a(b,h.matched):[]:h.matched,g=h.score+(b.boost||0);if(f(new mZ(b,d.source,c,g)),"object"==typeof b.section&&"dynamic"===b.section.rank){let{name:a}=b.section;e||(e=Object.create(null)),e[a]=Math.max(g,e[a]||-1e9)}}}}if(d){let a=Object.create(null),b=0;for(let c of d.sort((a,b)=>("dynamic"===a.rank&&"dynamic"===b.rank?e[b.name]-e[a.name]:0)||("number"==typeof a.rank?a.rank:1e9)-("number"==typeof b.rank?b.rank:1e9)||(a.name<b.name?-1:1)))b-=1e5,a[c.name]=b;for(let b of c){let{section:c}=b.completion;c&&(b.score+=a["string"==typeof c?c:c.name])}}let h=[],i=null,j=g.compareCompletions;for(let a of c.sort((a,b)=>b.score-a.score||j(a.completion,b.completion))){let b=a.completion;i&&i.label==b.label&&i.detail==b.detail&&(null==i.type||null==b.type||i.type==b.type)&&i.apply==b.apply&&i.boost==b.boost?nd(a.completion)>nd(i)&&(h[h.length-1]=a):h.push(a),i=a.completion}return h}(a,b);if(!g.length)return d&&a.some(a=>a.isPending)?d.setDisabled():null;let h=b.facet(m7).selectOnOpen?0:-1;if(d&&d.selected!=h&&-1!=d.selected){let a=d.options[d.selected].completion;for(let b=0;b<g.length;b++)if(g[b].completion==a){h=b;break}}return new ne(g,ni(c,h),{pos:a.reduce((a,b)=>b.hasResult()?Math.min(a,b.from):a,1e8),create:np,above:e.aboveCursor},d?d.timestamp:Date.now(),h,!1)}map(a){return new ne(this.options,this.attrs,{...this.tooltip,pos:a.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new ne(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class nf{constructor(a,b,c){this.active=a,this.id=b,this.open=c}static start(){return new nf(nj,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(a){let{state:b}=a,c=b.facet(m7),d=(c.override||b.languageDataAt("autocomplete",m$(b)).map(m2)).map(b=>(this.active.find(a=>a.source==b)||new nk(b,+!!this.active.some(a=>0!=a.state))).update(a,c));d.length==this.active.length&&d.every((a,b)=>a==this.active[b])&&(d=this.active);let e=this.open,f=a.effects.some(a=>a.is(nm));for(let g of(e&&a.docChanged&&(e=e.map(a.changes)),a.selection||d.some(b=>b.hasResult()&&a.changes.touchesRange(b.from,b.to))||!function(a,b){if(a==b)return!0;for(let c=0,d=0;;){for(;c<a.length&&!a[c].hasResult();)c++;for(;d<b.length&&!b[d].hasResult();)d++;let e=c==a.length,f=d==b.length;if(e||f)return e==f;if(a[c++].result!=b[d++].result)return!1}}(d,this.active)||f?e=ne.build(d,b,this.id,e,c,f):e&&e.disabled&&!d.some(a=>a.isPending)&&(e=null),!e&&d.every(a=>!a.isPending)&&d.some(a=>a.hasResult())&&(d=d.map(a=>a.hasResult()?new nk(a.source,0):a)),a.effects))g.is(na)&&(e=e&&e.setSelected(g.value,this.id));return d==this.active&&e==this.open?this:new nf(d,this.id,e)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?ng:nh}}let ng={"aria-autocomplete":"list"},nh={};function ni(a,b){let c={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":a};return b>-1&&(c["aria-activedescendant"]=a+"-"+b),c}let nj=[];class nk{constructor(a,b,c=!1){this.source=a,this.state=b,this.explicit=c}hasResult(){return!1}get isPending(){return 1==this.state}update(a,b){let c=function(a,b){if(a.isUserEvent("input.complete")){let c=a.annotation(m0);if(c&&b.activateOnCompletion(c))return 12}let c=a.isUserEvent("input.type");return c&&b.activateOnTyping?5:c?1:a.isUserEvent("delete.backward")?2:a.selection?8:16*!!a.docChanged}(a,b),d=this;for(let b of((8&c||16&c&&this.touches(a))&&(d=new nk(d.source,0)),4&c&&0==d.state&&(d=new nk(this.source,1)),d=d.updateFor(a,c),a.effects))if(b.is(m3))d=new nk(d.source,1,b.value);else if(b.is(m4))d=new nk(d.source,0);else if(b.is(nm))for(let a of b.value)a.source==d.source&&(d=a);return d}updateFor(a,b){return this.map(a.changes)}map(a){return this}touches(a){return a.changes.touchesRange(m$(a.state))}}class nl extends nk{constructor(a,b,c,d,e,f){super(a,3,b),this.limit=c,this.result=d,this.from=e,this.to=f}hasResult(){return!0}updateFor(a,b){var c;if(!(3&b))return this.map(a.changes);let d=this.result;d.map&&!a.changes.empty&&(d=d.map(d,a.changes));let e=a.changes.mapPos(this.from),f=a.changes.mapPos(this.to,1),g=m$(a.state);if(g>f||!d||2&b&&(m$(a.startState)==this.from||g<this.limit))return new nk(this.source,4&b?1:0);let h=a.changes.mapPos(this.limit);return!function(a,b,c,d){if(!a)return!1;let e=b.sliceDoc(c,d);return"function"==typeof a?a(e,c,d,b):m_(a,!0).test(e)}(d.validFor,a.state,e,f)?d.update&&(d=d.update(d,e,f,new mW(a.state,g,!1)))?new nl(this.source,this.explicit,h,d,d.from,null!=(c=d.to)?c:m$(a.state)):new nk(this.source,1,this.explicit):new nl(this.source,this.explicit,h,d,e,f)}map(a){return a.empty?this:(this.result.map?this.result.map(this.result,a):this.result)?new nl(this.source,this.explicit,a.mapPos(this.limit),this.result,a.mapPos(this.from),a.mapPos(this.to,1)):new nk(this.source,0)}touches(a){return a.changes.touchesRange(this.from,this.to)}}let nm=bE.define({map:(a,b)=>a.map(a=>a.map(b))}),nn=bl.define({create:()=>nf.start(),update:(a,b)=>a.update(b),provide:a=>[gi.from(a,a=>a.tooltip),ft.contentAttributes.from(a,a=>a.attrs)]});function no(a,b){let c=b.completion.apply||b.completion.label,d=a.state.field(nn).active.find(a=>a.source==b.source);return d instanceof nl&&("string"==typeof c?a.dispatch({...function(a,b,c,d){let{main:e}=a.selection,f=c-e.from,g=d-e.from;return{...a.changeByRange(h=>{if(h!=e&&c!=d&&a.sliceDoc(h.from+f,h.from+g)!=a.sliceDoc(c,d))return{range:h};let i=a.toText(b);return{changes:{from:h.from+f,to:d==e.from?h.to:h.from+g,insert:i},range:bc.cursor(h.from+f+i.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}(a.state,c,d.from,d.to),annotations:m0.of(b.completion)}):c(a,b.completion,d.from,d.to),!0)}let np=a=>new nc(a,nn,no);function nq(a,b="option"){return c=>{let d=c.state.field(nn,!1);if(!d||!d.open||d.open.disabled||Date.now()-d.open.timestamp<c.state.facet(m7).interactionDelay)return!1;let e=1,f;"page"==b&&(f=gn(c,d.open.tooltip))&&(e=Math.max(2,Math.floor(f.dom.offsetHeight/f.dom.querySelector("li").offsetHeight)-1));let{length:g}=d.open.options,h=d.open.selected>-1?d.open.selected+e*(a?1:-1):a?0:g-1;return h<0?h="page"==b?0:g-1:h>=g&&(h="page"==b?g-1:0),c.dispatch({effects:na.of(h)}),!0}}"object"==typeof navigator&&navigator.platform;let nr=ft.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class ns{constructor(a,b,c,d){this.field=a,this.line=b,this.from=c,this.to=d}}class nt{constructor(a,b,c){this.field=a,this.from=b,this.to=c}map(a){let b=a.mapPos(this.from,-1,a2.TrackDel),c=a.mapPos(this.to,1,a2.TrackDel);return null==b||null==c?null:new nt(this.field,b,c)}}class nu{constructor(a,b){this.lines=a,this.fieldPositions=b}instantiate(a,b){let c=[],d=[b],e=a.doc.lineAt(b),f=/^\s*/.exec(e.text)[0];for(let e of this.lines){if(c.length){let c=f,g=/^\t*/.exec(e)[0].length;for(let b=0;b<g;b++)c+=a.facet(h0);d.push(b+c.length-g),e=c+e.slice(g)}c.push(e),b+=e.length+1}return{text:c,ranges:this.fieldPositions.map(a=>new nt(a.field,d[a.line]+a.from,d[a.line]+a.to))}}static parse(a){let b=[],c=[],d=[],e;for(let f of a.split(/\r\n?|\n/)){for(;e=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(f);){let a=e[1]?+e[1]:null,g=e[2]||e[3]||"",h=-1,i=g.replace(/\\[{}]/g,a=>a[1]);for(let c=0;c<b.length;c++)(null!=a?b[c].seq==a:i&&b[c].name==i)&&(h=c);if(h<0){let c=0;for(;c<b.length&&(null==a||null!=b[c].seq&&b[c].seq<a);)c++;for(let e of(b.splice(c,0,{seq:a,name:i}),h=c,d))e.field>=h&&e.field++}for(let a of d)if(a.line==c.length&&a.from>e.index){let b=e[2]?3+(e[1]||"").length:2;a.from-=b,a.to-=b}d.push(new ns(h,c.length,e.index,e.index+i.length)),f=f.slice(0,e.index)+g+f.slice(e.index+e[0].length)}f=f.replace(/\\([{}])/g,(a,b,e)=>{for(let a of d)a.line==c.length&&a.from>e&&(a.from--,a.to--);return b}),c.push(f)}return new nu(c,d)}}let nv=cA.widget({widget:new class extends cy{toDOM(){let a=document.createElement("span");return a.className="cm-snippetFieldPosition",a}ignoreEvent(){return!1}}}),nw=cA.mark({class:"cm-snippetField"});class nx{constructor(a,b){this.ranges=a,this.active=b,this.deco=cA.set(a.map(a=>(a.from==a.to?nv:nw).range(a.from,a.to)),!0)}map(a){let b=[];for(let c of this.ranges){let d=c.map(a);if(!d)return null;b.push(d)}return new nx(b,this.active)}selectionInsideField(a){return a.ranges.every(a=>this.ranges.some(b=>b.field==this.active&&b.from<=a.from&&b.to>=a.to))}}let ny=bE.define({map:(a,b)=>a&&a.map(b)}),nz=bE.define(),nA=bl.define({create:()=>null,update(a,b){for(let c of b.effects){if(c.is(ny))return c.value;if(c.is(nz)&&a)return new nx(a.ranges,c.value)}return a&&b.docChanged&&(a=a.map(b.changes)),a&&b.selection&&!a.selectionInsideField(b.selection)&&(a=null),a},provide:a=>ft.decorations.from(a,a=>a?a.deco:cA.none)});function nB(a,b){return bc.create(a.filter(a=>a.field==b).map(a=>bc.range(a.from,a.to)))}function nC(a){return({state:b,dispatch:c})=>{let d=b.field(nA,!1);if(!d||a<0&&0==d.active)return!1;let e=d.active+a,f=a>0&&!d.ranges.some(b=>b.field==e+a);return c(b.update({selection:nB(d.ranges,e),effects:ny.of(f?null:new nx(d.ranges,e)),scrollIntoView:!0})),!0}}let nD=[{key:"Tab",run:nC(1),shift:nC(-1)},{key:"Escape",run:({state:a,dispatch:b})=>!!a.field(nA,!1)&&(b(a.update({effects:ny.of(null)})),!0)}],nE=bf.define({combine:a=>a.length?a[0]:nD}),nF=bn.highest(fB.compute([nE],a=>a.facet(nE)));function nG(a,b){let c;return{...b,apply:(c=nu.parse(a),(a,b,d,e)=>{let{text:f,ranges:g}=c.instantiate(a.state,d),{main:h}=a.state.selection,i={changes:{from:d,to:e==h.from?h.to:e,insert:aQ.of(f)},scrollIntoView:!0,annotations:b?[m0.of(b),bF.userEvent.of("input.complete")]:void 0};if(g.length&&(i.selection=nB(g,0)),g.some(a=>a.field>0)){let b=new nx(g,0),c=i.effects=[ny.of(b)];void 0===a.state.field(nA,!1)&&c.push(bE.appendConfig.of([nA,nF,nH,nr]))}a.dispatch(a.state.update(i))})}}let nH=ft.domEventHandlers({mousedown(a,b){let c=b.state.field(nA,!1),d;if(!c||null==(d=b.posAtCoords({x:a.clientX,y:a.clientY})))return!1;let e=c.ranges.find(a=>a.from<=d&&a.to>=d);return!!e&&e.field!=c.active&&(b.dispatch({selection:nB(c.ranges,e.field),effects:ny.of(c.ranges.some(a=>a.field>e.field)?new nx(c.ranges,e.field):null),scrollIntoView:!0}),!0)}}),nI={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},nJ=bE.define({map(a,b){let c=b.mapPos(a,-1,a2.TrackAfter);return null==c?void 0:c}}),nK=new class extends bO{};nK.startSide=1,nK.endSide=-1;"object"==typeof navigator&&navigator.userAgent;let nL=new class{constructor(){this.map=new WeakMap}setBuffer(a,b,c){let d=this.map.get(a);d||this.map.set(a,d=new Map),d.set(b,c)}getBuffer(a,b){let c=this.map.get(a);return c&&c.get(b)}set(a,b){a instanceof hb?this.setBuffer(a.context.buffer,a.index,b):a instanceof g7&&this.map.set(a.tree,b)}get(a){return a instanceof hb?this.getBuffer(a.context.buffer,a.index):a instanceof g7?this.map.get(a.tree):void 0}cursorSet(a,b){a.buffer?this.setBuffer(a.buffer.buffer,a.index,b):this.map.set(a.tree,b)}cursorGet(a){return a.buffer?this.getBuffer(a.buffer.buffer,a.index):this.map.get(a.tree)}},nM=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function nN(a){return(b,c,d)=>{if(d)return!1;let e=b.node.getChild("VariableName");return e&&c(e,a),!0}}let nO={FunctionDefinition:nN("function"),ClassDefinition:nN("class"),ForStatement(a,b,c){if(c){for(let c=a.node.firstChild;c;c=c.nextSibling)if("VariableName"==c.name)b(c,"variable");else if("in"==c.name)break}},ImportStatement(a,b){var c,d;let{node:e}=a,f=(null==(c=e.firstChild)?void 0:c.name)=="from";for(let a=e.getChild("import");a;a=a.nextSibling)"VariableName"==a.name&&(null==(d=a.nextSibling)?void 0:d.name)!="as"&&b(a,f?"variable":"namespace")},AssignStatement(a,b){for(let c=a.node.firstChild;c;c=c.nextSibling)if("VariableName"==c.name)b(c,"variable");else if(":"==c.name||"AssignOp"==c.name)break},ParamList(a,b){for(let c=null,d=a.node.firstChild;d;d=d.nextSibling)"VariableName"!=d.name||c&&/\*|AssignOp/.test(c.name)||b(d,"variable"),c=d},CapturePattern:nN("variable"),AsPattern:nN("variable"),__proto__:null},nP=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,nQ=["String","FormatString","Comment","PropertyName"];function nR(a){let b=hQ(a.state).resolveInner(a.pos,-1);if(nQ.indexOf(b.name)>-1)return null;let c="VariableName"==b.name||b.to-b.from<20&&nP.test(a.state.sliceDoc(b.from,b.to));if(!c&&!a.explicit)return null;let d=[];for(let c=b;c;c=c.parent)nM.has(c.name)&&(d=d.concat(function a(b,c){let d=nL.get(c);if(d)return d;let e=[],f=!0;function g(a,c){let d=b.sliceString(a.from,a.to);e.push({label:d,type:c})}return c.cursor(pU.IncludeAnonymous).iterate(c=>{if(c.name){let a=nO[c.name];if(a&&a(c,g,f)||!f&&nM.has(c.name))return!1;f=!1}else if(c.to-c.from>8192){for(let d of a(b,c.node))e.push(d);return!1}}),nL.set(c,e),e}(a.state.doc,c)));return{options:d,from:c?b.from:a.pos,validFor:nP}}let nS=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(a=>({label:a,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(a=>({label:a,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(a=>({label:a,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(a=>({label:a,type:"function"}))),nT=[nG("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),nG("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),nG("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),nG("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),nG("if ${}:\n \n",{label:"if",detail:"block",type:"keyword"}),nG("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),nG("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),nG("import ${module}",{label:"import",detail:"statement",type:"keyword"}),nG("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],nU=(pT=mY(nS.concat(nT)),a=>{for(let b=hQ(a.state).resolveInner(a.pos,-1);b;b=b.parent){if(nQ.indexOf(b.name)>-1)return null;if(b.type.isTop)break}return pT(a)});function nV(a){let{node:b,pos:c}=a,d=a.lineIndent(c,-1),e=null;for(;;){let f=b.childBefore(c);if(f)if("Comment"==f.name)c=f.from;else if("Body"==f.name||"MatchBody"==f.name)a.baseIndentFor(f)+a.unit<=d&&(e=f),b=f;else if("MatchClause"==f.name)b=f;else if(f.type.is("Statement"))b=f;else break;else break}return e}function nW(a,b){let c=a.baseIndentFor(b),d=a.lineAt(a.pos,-1),e=d.from+d.text.length;return/^\s*($|#)/.test(d.text)&&a.node.to<e+100&&!/\S/.test(a.state.sliceDoc(e,a.node.to))&&a.lineIndent(a.pos,-1)<=c||/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(a.textAfter)&&a.lineIndent(a.pos,-1)>c?null:c+a.unit}let nX=hP.define({name:"python",parser:mV.configure({props:[h5.add({Body:a=>{var b;let c=/^\s*(#|$)/.test(a.textAfter)&&nV(a)||a.node;return null!=(b=nW(a,c))?b:a.continue()},MatchBody:a=>{var b;let c=nV(a);return null!=(b=nW(a,c||a.node))?b:a.continue()},IfStatement:a=>/^\s*(else:|elif )/.test(a.textAfter)?a.baseIndent:a.continue(),"ForStatement WhileStatement":a=>/^\s*else:/.test(a.textAfter)?a.baseIndent:a.continue(),TryStatement:a=>/^\s*(except[ :]|finally:|else:)/.test(a.textAfter)?a.baseIndent:a.continue(),MatchStatement:a=>/^\s*case /.test(a.textAfter)?a.baseIndent+a.unit:a.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":h9({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":h9({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":h9({closing:"]"}),MemberExpression:a=>a.baseIndent+a.unit,"String FormatString":()=>null,Script:a=>{var b;let c=nV(a);return null!=(b=c&&nW(a,c))?b:a.continue()}}),ic.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":function(a){let b=a.firstChild,c=a.lastChild;return b&&b.to<c.from?{from:b.to,to:c.type.isError?a.to:c.from}:null},Body:(a,b)=>({from:a.from+1,to:a.to-(a.to!=b.doc.length)}),"String FormatString":(a,b)=>({from:b.doc.lineAt(a.from).to,to:a.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function nY(){return new h$(nX,[nX.data.of({autocomplete:nR}),nX.data.of({autocomplete:nU})])}let nZ="#abb2bf",n$="#2c313a",n_="#282c34",n0="#353a42",n1="#528bff",n2=ft.theme({"&":{color:nZ,backgroundColor:n_},".cm-content":{caretColor:n1},".cm-cursor, .cm-dropCursor":{borderLeftColor:n1},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:"#3E4451"},".cm-panels":{backgroundColor:"#21252b",color:nZ},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:n_,color:"#7d8799",border:"none"},".cm-activeLineGutter":{backgroundColor:n$},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:n0},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:n0,borderBottomColor:n0},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:n$,color:nZ}}},{dark:!0});hK.keyword,hK.name,hK.deleted,hK.character,hK.propertyName,hK.macroName,hK.variableName,hK.labelName,hK.color,hK.name,hK.name,hK.name,hK.separator,hK.typeName,hK.className,hK.number,hK.changed,hK.annotation,hK.modifier,hK.self,hK.namespace,hK.operator,hK.operatorKeyword,hK.url,hK.escape,hK.regexp,hK.link,hK.string,hK.meta,hK.comment,hK.strong,hK.emphasis,hK.strikethrough,hK.link,hK.heading,hK.atom,hK.bool,hK.variableName,hK.processingInstruction,hK.string,hK.inserted,hK.invalid;let n3=iD(iz.define([{tag:hK.keyword,color:"#c792ea",fontWeight:"bold"},{tag:hK.definitionKeyword,color:"#c792ea",fontWeight:"bold"},{tag:hK.self,color:"#f78c6c",fontStyle:"italic"},{tag:hK.bool,color:"#ff9cac"},{tag:hK.null,color:"#ff9cac"},{tag:hK.definition(hK.function(hK.variableName)),color:"#82aaff",fontWeight:"bold"},{tag:hK.function(hK.variableName),color:"#82aaff"},{tag:hK.definition(hK.className),color:"#ffcb6b",fontWeight:"bold"},{tag:hK.className,color:"#ffcb6b"},{tag:hK.meta,color:"#ffa759",fontStyle:"italic"},{tag:hK.variableName,color:"#eeffff"},{tag:hK.propertyName,color:"#89ddff"},{tag:hK.string,color:"#c3e88d"},{tag:hK.special(hK.string),color:"#c3e88d"},{tag:hK.number,color:"#f78c6c"},{tag:hK.operator,color:"#89ddff"},{tag:hK.punctuation,color:"#89ddff"},{tag:hK.bracket,color:"#ffcb6b"},{tag:hK.comment,color:"#546e7a",fontStyle:"italic"},{tag:hK.special(hK.variableName),color:"#80cbc4"},{tag:hK.typeName,color:"#ffcb6b"},{tag:hK.moduleKeyword,color:"#c792ea",fontWeight:"bold"},{tag:hK.escape,color:"#f78c6c"}])),n4=["pandas","numpy","scipy","scikit-learn","matplotlib","seaborn","requests","httpx","beautifulsoup4","lxml","openpyxl","xlsxwriter","pyyaml","tabulate","jinja2","jsonschema","pillow","sympy"],n5=`# _args contains all tool arguments as a Python dict
|
|
13
|
+
# Use print() — stdout becomes the tool result
|
|
14
|
+
# JSON output is recommended: the agent can parse it
|
|
15
|
+
import json
|
|
16
|
+
|
|
17
|
+
query = _args.get("query", "")
|
|
18
|
+
|
|
19
|
+
# Your logic here
|
|
20
|
+
result = {"output": f"Processed: {query}"}
|
|
21
|
+
|
|
22
|
+
print(json.dumps(result))
|
|
23
|
+
`;function n6(a){let b=[],c=a.split("\n");return c.forEach((a,d)=>{let e=d+1,f=(a.match(/(?<!\\)'/g)||[]).filter(b=>!a.includes("'''")).length,g=(a.match(/(?<!\\)"/g)||[]).filter(b=>!a.includes('"""')).length;(f%2!=0||g%2!=0)&&b.push({line:e,message:"Possible unmatched quote",severity:"warning"}),/\barguments\b/.test(a)&&!/\b_args\b/.test(c.join("\n"))&&b.push({line:e,message:"Did you mean `_args` instead of `arguments`?",severity:"warning"}),/^\s*print\s+[^(]/.test(a)&&b.push({line:e,message:"Python 2 print statement — use print() instead",severity:"error"})}),b}function n7({draft:a,onChange:b}){let c=(0,w.useRef)(null),d=(0,w.useRef)(null),[e,f]=(0,w.useState)(!1),[g,h]=(0,w.useState)("{}"),[i,j]=(0,w.useState)(null),[k,l]=(0,w.useState)(!1),[m,n]=(0,w.useState)(null),[o,p]=(0,w.useState)([]),q=(0,w.useCallback)(c=>{p(n6(c)),b({...a,code:c})},[a,b]);(0,w.useEffect)(()=>{if(!c.current||d.current)return;let b=bM.create({doc:a.code||n5,extensions:[mi,nY(),n2,n3,ft.updateListener.of(a=>{a.docChanged&&q(a.state.doc.toString())}),ft.theme({"&":{backgroundColor:"#09090b",height:"100%",borderRadius:"0"},".cm-scroller":{overflow:"auto",fontFamily:"monospace",fontSize:"13px"},".cm-content":{padding:"12px 0"},".cm-line":{padding:"0 16px"},"&.cm-focused .cm-cursor":{borderLeftColor:"#a855f7"},".cm-selectionBackground":{backgroundColor:"#3f3f46"},"&.cm-focused .cm-selectionBackground":{backgroundColor:"#4f46e5"}})]});return d.current=new ft({state:b,parent:c.current}),p(n6(a.code||n5)),()=>{d.current?.destroy(),d.current=null}},[]);let[r,s]=(0,w.useState)(()=>JSON.stringify(a.inputSchema||{type:"object",properties:{input:{type:"string"}}},null,2)),[t,u]=(0,w.useState)(null),x=async()=>{if(!a.code.trim())return;l(!0),j(null),n(null);let b={};try{b=JSON.parse(g||"{}")}catch{n("Test Args must be valid JSON"),l(!1);return}try{let c=await fetch("/api/tools/python/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a.code,args:b,timeout:30})});if(!c.ok){let a=await c.json();n(a.detail||"Test run failed");return}let d=await c.json();j(d)}catch(a){n(a.message||"Network error")}finally{l(!1)}};return(0,v.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,v.jsxs)("div",{className:"bg-zinc-950 border border-violet-900/40 rounded-sm p-3 space-y-2",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2 text-xs font-bold text-violet-400 uppercase tracking-wider",children:[(0,v.jsx)(aG,{className:"h-3.5 w-3.5"}),"Python Sandbox"]}),(0,v.jsxs)("button",{onClick:()=>f(a=>!a),className:"text-[10px] text-zinc-500 hover:text-zinc-300 flex items-center gap-1",children:[e?(0,v.jsx)(aE,{className:"h-3 w-3"}):(0,v.jsx)(ae.ChevronDown,{className:"h-3 w-3"}),e?"Hide":"Show"," packages"]})]}),(0,v.jsxs)("p",{className:"text-[11px] text-zinc-500 leading-relaxed",children:["Code runs in a ",(0,v.jsx)("span",{className:"text-violet-400 font-mono",children:"Docker sandbox"})," (512MB RAM, 1 CPU, no network). Vault files are mounted at ",(0,v.jsx)("span",{className:"font-mono text-violet-300",children:"/data/"}),". Arguments are injected as ",(0,v.jsx)("span",{className:"font-mono text-violet-300",children:"_args"})," (dict).",(0,v.jsx)("span",{className:"font-mono text-zinc-400",children:" print()"})," stdout becomes the tool result."]}),e&&(0,v.jsx)("div",{className:"flex flex-wrap gap-1.5 pt-1 border-t border-zinc-800",children:n4.map(a=>(0,v.jsx)("span",{className:"text-[10px] font-mono bg-zinc-900 border border-zinc-700 text-zinc-400 px-1.5 py-0.5 rounded",children:a},a))})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Python Code"}),o.length>0&&(0,v.jsxs)("div",{className:"flex items-center gap-1 text-[10px] text-amber-400",children:[(0,v.jsx)(V,{className:"h-3 w-3"}),o.length," warning",o.length>1?"s":""]})]}),(0,v.jsx)("div",{ref:c,className:"min-h-[280px] h-[280px] overflow-hidden border border-zinc-800 focus-within:border-violet-600 transition-colors rounded-sm"}),o.length>0&&(0,v.jsx)("div",{className:"space-y-1 pt-1",children:o.map((a,b)=>(0,v.jsxs)("div",{className:`flex items-start gap-2 text-[10px] font-mono ${"error"===a.severity?"text-red-400":"text-amber-400"}`,children:[(0,v.jsx)(V,{className:"h-3 w-3 mt-0.5 shrink-0"}),(0,v.jsxs)("span",{children:["Line ",a.line,": ",a.message]})]},b))})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Input Schema (JSON)"}),(0,v.jsx)("textarea",{value:r,onChange:c=>(c=>{s(c);try{let d=JSON.parse(c);u(null),b({...a,inputSchema:d})}catch{u("Invalid JSON")}})(c.target.value),className:"w-full bg-zinc-950 border border-zinc-800 p-3 text-[10px] font-mono text-zinc-300 focus:border-violet-600 focus:outline-none resize-none min-h-[140px]",placeholder:'{"type": "object", "properties": {"query": {"type": "string", "description": "The input query"}}}'}),t&&(0,v.jsxs)("p",{className:"text-[10px] text-red-400 flex items-center gap-1",children:[(0,v.jsx)(V,{className:"h-3 w-3 shrink-0"})," ",t]})]}),(0,v.jsxs)("div",{className:"space-y-2 border-t border-zinc-800 pt-4",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsxs)("label",{className:"text-[10px] uppercase font-bold text-zinc-500 flex items-center gap-2",children:[(0,v.jsx)(aF.Terminal,{className:"h-3.5 w-3.5"}),"Test Run"]}),(0,v.jsx)("span",{className:"text-[10px] text-zinc-600",children:"Runs in Docker sandbox"})]}),(0,v.jsxs)("div",{className:"flex gap-2 items-start",children:[(0,v.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,v.jsx)("label",{className:"text-[9px] text-zinc-600 uppercase tracking-wider",children:"Test Arguments (JSON)"}),(0,v.jsx)("textarea",{value:g,onChange:a=>h(a.target.value),rows:2,className:"w-full bg-zinc-950 border border-zinc-800 p-2 text-xs font-mono text-zinc-300 focus:border-violet-600 focus:outline-none resize-none",placeholder:'{"query": "hello world"}'})]}),(0,v.jsx)("button",{onClick:x,disabled:k||!a.code.trim(),className:"flex items-center gap-2 px-4 py-2 bg-violet-700 hover:bg-violet-600 disabled:bg-zinc-800 disabled:text-zinc-600 text-white text-xs font-bold transition-colors mt-4 shrink-0",children:k?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(Q.Loader2,{className:"h-3.5 w-3.5 animate-spin"})," Running..."]}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(aD,{className:"h-3.5 w-3.5"})," Run"]})})]}),m&&(0,v.jsxs)("div",{className:"flex items-center gap-2 p-2 bg-red-950/40 border border-red-800 text-red-400 text-[11px]",children:[(0,v.jsx)(V,{className:"h-4 w-4 shrink-0"}),m]}),i&&(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[0===i.exit_code?(0,v.jsx)(W,{className:"h-4 w-4 text-green-500"}):(0,v.jsx)(V,{className:"h-4 w-4 text-red-500"}),(0,v.jsxs)("span",{className:`text-[11px] font-bold ${0===i.exit_code?"text-green-400":"text-red-400"}`,children:["Exit code: ",i.exit_code]})]}),i.stdout&&(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("p",{className:"text-[9px] uppercase tracking-wider text-zinc-500",children:"stdout"}),(0,v.jsx)("pre",{className:"p-3 bg-zinc-950 border border-zinc-800 text-[11px] font-mono text-green-300 overflow-auto max-h-48 whitespace-pre-wrap",children:i.stdout})]}),i.stderr&&(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("p",{className:"text-[9px] uppercase tracking-wider text-zinc-500",children:"stderr"}),(0,v.jsx)("pre",{className:"p-3 bg-zinc-950 border border-red-900/40 text-[11px] font-mono text-red-300 overflow-auto max-h-32 whitespace-pre-wrap",children:i.stderr})]})]})]})]})}let n8=({customTools:a,draftTool:b,setDraftTool:c,toolBuilderMode:d,setToolBuilderMode:e,headerRows:f,setHeaderRows:g,n8nWorkflows:h,n8nWorkflowsLoading:i,n8nWorkflowId:j,setN8nWorkflowId:k,getN8nBaseUrl:l,onSaveTool:m,onDeleteTool:n,n8nIntegrated:o})=>{let[p,q]=(0,w.useState)(null),[r,s]=(0,w.useState)(!1),[t,u]=(0,w.useState)(!1),[x,z]=(0,w.useState)(null),A=(0,w.useCallback)(async()=>{s(!0);try{let a=await fetch("/api/tools/docker/status");a.ok&&q(await a.json())}finally{s(!1)}},[]),B=async()=>{u(!0),z(null);try{let a=await fetch("/api/tools/docker/build",{method:"POST"});if(a.ok)await A();else{let b=await a.json();z(b.detail||"Build failed")}}catch(a){z(String(a))}finally{u(!1)}};return(0,w.useEffect)(()=>{A()},[A]),(0,v.jsx)("div",{className:"flex flex-col min-h-[600px]",children:b?(0,v.jsxs)("div",{className:"flex flex-col h-full",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between mb-4 pb-4 border-b border-zinc-800",children:[(0,v.jsxs)("div",{className:"flex items-center gap-4",children:[(0,v.jsx)("button",{onClick:()=>{c(null),e("config")},className:"text-zinc-500 hover:text-white",children:(0,v.jsx)(az.X,{className:"h-5 w-5"})}),(0,v.jsx)("h3",{className:"font-bold text-white uppercase tracking-wider",children:b.name?`Editing: ${b.name}`:"New Tool Builder"})]}),(0,v.jsxs)("div",{className:"flex gap-2",children:[(0,v.jsxs)("div",{className:"flex bg-zinc-900 border border-zinc-800 p-1 rounded gap-0.5",children:[(0,v.jsx)("button",{onClick:()=>{if("python"===b.tool_type){let a={type:"object",properties:{input:{type:"string"}}};c({...b,tool_type:"http",url:b.url||"",method:b.method||"POST",inputSchema:a,inputSchemaStr:JSON.stringify(a,null,2),outputSchemaStr:""}),g([{id:"h1",key:"",value:""}])}e("config")},className:`px-3 py-1 text-xs font-bold rounded ${"config"===d?"bg-zinc-700 text-white":"text-zinc-500 hover:text-zinc-300"}`,children:"CONFIG"}),(0,v.jsx)("button",{onClick:()=>{if("python"!==b.tool_type){let a=`# _args contains all tool arguments as a Python dict
|
|
24
|
+
# print() stdout becomes the tool result
|
|
25
|
+
import json
|
|
26
|
+
|
|
27
|
+
result = {"output": _args.get("input", "")}
|
|
28
|
+
print(json.dumps(result))
|
|
29
|
+
`;c({...b,tool_type:"python",code:b.code||a,inputSchema:{type:"object",properties:{input:{type:"string"}}},schemaParams:b.schemaParams||[{id:"p1",name:"input",type:"string",description:"The input value",required:!1}]})}e("python")},className:`px-3 py-1 text-xs font-bold rounded ${"python"===d?"bg-violet-700 text-white":"text-zinc-500 hover:text-zinc-300"}`,children:"🐍 PYTHON"})]}),(0,v.jsx)("button",{onClick:m,className:"px-4 py-1.5 bg-white text-black text-xs font-bold hover:bg-zinc-200",children:"SAVE"})]})]}),(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-4 mb-4",children:[(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"General Name"}),(0,v.jsx)("input",{type:"text",value:b.generalName||"",onChange:a=>{let d=a.target.value,e={...b,generalName:d};b.name||(e.name=d.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")),c(e)},className:"w-full bg-zinc-900 border border-zinc-800 p-2 text-sm text-white focus:border-white focus:outline-none placeholder:text-zinc-700",placeholder:"e.g. Process Orders"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"System Name (Snake Case)"}),(0,v.jsx)("input",{type:"text",value:b.name,onChange:a=>c({...b,name:a.target.value}),className:"w-full bg-zinc-900 border border-zinc-800 p-2 text-sm text-white focus:border-white focus:outline-none font-mono placeholder:text-zinc-700",placeholder:"e.g. process_orders"})]})]}),(0,v.jsxs)("div",{className:"space-y-1 mb-5",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Description (For AI)"}),(0,v.jsx)("textarea",{value:b.description,onChange:a=>c({...b,description:a.target.value}),className:"w-full bg-zinc-900 border border-zinc-800 p-2 text-sm text-white focus:border-white focus:outline-none resize-vertical min-h-[80px]",placeholder:"What does this tool do? Describe its purpose and critical rules for the AI..."})]}),"config"===d&&(0,v.jsxs)("div",{className:"space-y-5 pr-2",children:[(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Method"}),(0,v.jsxs)("select",{value:b.method,onChange:a=>c({...b,method:a.target.value}),className:"w-full bg-zinc-900 border border-zinc-800 p-2 text-sm text-white focus:border-white focus:outline-none",children:[(0,v.jsx)("option",{children:"POST"}),(0,v.jsx)("option",{children:"GET"})]})]}),o&&(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"n8n Workflow"}),(0,v.jsxs)("select",{value:b.workflowId||"",onChange:async a=>{let d=a.target.value;if(c({...b,workflowId:d}),k(d||null),d)try{let a=await fetch(`/api/n8n/workflows/${d}/webhook`);if(!a.ok)return;let e=await a.json();e?.productionUrl&&c({...b,workflowId:d,url:e.productionUrl})}catch{}},className:"w-full bg-zinc-900 border border-zinc-800 p-2 text-sm text-white focus:border-white focus:outline-none",children:[(0,v.jsx)("option",{value:"",children:i?"Loading workflows...":"Select a workflow (optional)"}),Array.isArray(h)&&h.map(a=>(0,v.jsx)("option",{value:String(a.id),children:a.name||a.id},String(a.id)))]}),b.workflowId?(0,v.jsxs)("a",{href:`${l()}/workflow/${b.workflowId}`,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 text-[10px] text-[#ff6d5a] hover:text-[#ff8a78] hover:underline mt-1",children:["Open workflow in n8n ",(0,v.jsx)(ak.ExternalLink,{className:"h-3 w-3"})]}):(0,v.jsxs)("a",{href:`${l()}/workflow/new`,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 text-[10px] text-zinc-500 hover:text-zinc-300 hover:underline mt-1",children:["Create new workflow in n8n ",(0,v.jsx)(ak.ExternalLink,{className:"h-3 w-3"})]})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Webhook URL"}),!o&&(0,v.jsxs)("span",{className:"text-[9px] text-zinc-600",children:["(you can also"," ",(0,v.jsx)("a",{href:"/settings/workspace",className:"text-[#ff6d5a] hover:underline",children:"integrate n8n workflows"}),")"]})]}),(0,v.jsx)("input",{type:"text",value:b.url,onChange:a=>c({...b,url:a.target.value}),className:"w-full bg-zinc-900 border border-zinc-800 p-2 text-sm text-white focus:border-white focus:outline-none font-mono",placeholder:"https://example.com/webhook/..."})]}),(0,v.jsxs)("div",{className:"space-y-2 pt-2",children:[(0,v.jsxs)("div",{className:"flex justify-between items-end mb-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Headers"}),(0,v.jsx)("button",{onClick:()=>g([...f,{id:`h-${Date.now()}`,key:"",value:""}]),className:"text-[10px] text-zinc-400 hover:text-white font-bold bg-zinc-800 px-2 py-1 rounded transition-colors",children:"+ ADD HEADER"})]}),f.map((a,b)=>(0,v.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,v.jsx)("input",{type:"text",placeholder:"Key (e.g. Authorization)",value:a.key,onChange:a=>{let c=[...f];c[b].key=a.target.value,g(c)},className:"flex-1 bg-zinc-900 border border-zinc-800 p-2 text-sm text-white focus:border-white focus:outline-none font-mono"}),(0,v.jsx)("input",{type:"text",placeholder:"Value",value:a.value,onChange:a=>{let c=[...f];c[b].value=a.target.value,g(c)},className:"flex-1 bg-zinc-900 border border-zinc-800 p-2 text-sm text-white focus:border-white focus:outline-none font-mono"}),(0,v.jsx)("button",{onClick:()=>g(f.filter(b=>b.id!==a.id)),className:"p-2 text-zinc-600 hover:text-red-500 transition-colors",children:(0,v.jsx)(y.Trash,{className:"h-4 w-4"})})]},a.id))]}),(0,v.jsxs)("div",{className:"space-y-1 flex flex-col min-h-[280px]",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Input Schema (JSON)"}),(0,v.jsx)("textarea",{value:b.inputSchemaStr,onChange:a=>c({...b,inputSchemaStr:a.target.value}),className:"w-full flex-1 bg-zinc-950 border border-zinc-800 p-3 text-[10px] font-mono text-zinc-300 focus:border-white focus:outline-none resize-none",placeholder:'{"type": "object", "properties": {"msg": {"type": "string"}}}'})]})]}),"python"===d&&(0,v.jsxs)("div",{className:"flex flex-col gap-4",children:[r&&!p?(0,v.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-zinc-900 border border-zinc-800 rounded text-xs text-zinc-500",children:[(0,v.jsx)(aB.RefreshCw,{className:"h-3.5 w-3.5 animate-spin shrink-0"}),"Checking Docker status..."]}):p&&(p.installed&&p.running&&p.image_exists&&!x?(0,v.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-green-950/30 border border-green-800/40 rounded text-xs text-green-400",children:[(0,v.jsx)(W,{className:"h-3.5 w-3.5 shrink-0"}),"Docker sandbox is ready",(0,v.jsx)("button",{onClick:A,disabled:r,className:"ml-auto text-green-700 hover:text-green-400 disabled:opacity-50",children:(0,v.jsx)(aB.RefreshCw,{className:`h-3 w-3 ${r?"animate-spin":""}`})})]}):(0,v.jsxs)("div",{className:"p-3 bg-amber-950/30 border border-amber-700/50 rounded space-y-2",children:[(0,v.jsxs)("div",{className:"flex items-start gap-2",children:[(0,v.jsx)(aA,{className:"h-4 w-4 text-amber-400 shrink-0 mt-0.5"}),(0,v.jsxs)("div",{className:"flex-1 space-y-1",children:[!p.installed&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("p",{className:"text-xs font-semibold text-amber-300",children:"Docker is not installed"}),(0,v.jsx)("p",{className:"text-xs text-amber-500/80",children:"Python tools run in a Docker sandbox. Install Docker Desktop to use them."}),(0,v.jsxs)("a",{href:"https://docs.docker.com/get-docker/",target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 text-xs text-amber-400 hover:text-amber-200 underline",children:["Install Docker Desktop ",(0,v.jsx)(ak.ExternalLink,{className:"h-3 w-3"})]})]}),p.installed&&!p.running&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("p",{className:"text-xs font-semibold text-amber-300",children:"Docker is not running"}),(0,v.jsx)("p",{className:"text-xs text-amber-500/80",children:"Start Docker Desktop, then refresh the status."})]}),p.installed&&p.running&&!p.image_exists&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("p",{className:"text-xs font-semibold text-amber-300",children:"Python sandbox image not built"}),(0,v.jsx)("p",{className:"text-xs text-amber-500/80",children:"The sandbox image needs to be built once. This downloads Python and installs packages (~2–3 min)."})]}),x&&(0,v.jsx)("p",{className:"text-xs text-red-400 font-mono whitespace-pre-wrap mt-1",children:x})]}),(0,v.jsx)("button",{onClick:A,disabled:r,className:"text-amber-700 hover:text-amber-400 shrink-0 disabled:opacity-50",children:(0,v.jsx)(aB.RefreshCw,{className:`h-3.5 w-3.5 ${r?"animate-spin":""}`})})]}),p.installed&&p.running&&!p.image_exists&&(0,v.jsxs)("button",{onClick:B,disabled:t,className:"flex items-center gap-2 px-3 py-1.5 bg-amber-700 hover:bg-amber-600 disabled:opacity-50 text-white text-xs font-bold transition-colors rounded",children:[(0,v.jsx)(aC,{className:"h-3.5 w-3.5"}),t?"Building… (this may take a few minutes)":"Build Sandbox Image"]})]})),(0,v.jsx)(n7,{draft:b,onChange:a=>c(a)})]})]}):(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsxs)("div",{className:"flex justify-between items-center",children:[(0,v.jsxs)("div",{children:[(0,v.jsxs)("h3",{className:"text-lg font-bold text-white flex items-center gap-2",children:[(0,v.jsx)(E.Wrench,{className:"h-5 w-5"})," Custom Tools"]}),(0,v.jsx)("p",{className:"text-zinc-500 text-sm",children:"Extend your agent with n8n webhooks, HTTP endpoints, or Python functions."})]}),(0,v.jsxs)("button",{onClick:()=>{let a={type:"object",properties:{input:{type:"string"}}};c({name:"",generalName:"",description:"",url:"",method:"POST",inputSchema:a,inputSchemaStr:JSON.stringify(a,null,2),outputSchemaStr:"",tool_type:"http"}),g([{id:"h1",key:"",value:""}]),e("config")},className:"px-3 py-2 bg-zinc-800 border border-zinc-700 text-zinc-300 font-bold text-xs uppercase flex items-center gap-2 hover:bg-zinc-700 hover:text-white transition-colors",children:[(0,v.jsx)(ac.Plus,{className:"h-4 w-4"})," New Tool"]})]}),(0,v.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:[a.map(a=>(0,v.jsxs)("div",{className:`p-4 border hover:border-zinc-600 transition-all group relative ${"python"===a.tool_type?"bg-violet-950/10 border-violet-900/30 hover:border-violet-700/50":"bg-zinc-900 border-zinc-800"}`,children:[(0,v.jsxs)("div",{className:"font-bold text-white mb-1 flex items-center gap-2 pr-10",children:[(0,v.jsx)("span",{className:"truncate",children:a.generalName||a.name}),"python"===a.tool_type?(0,v.jsx)("span",{className:"text-[9px] font-bold bg-violet-900/40 border border-violet-700 text-violet-400 px-1.5 py-0.5 rounded",children:"🐍 PYTHON"}):a.workflowId||a.url?.includes("webhook")?(0,v.jsx)("span",{className:"text-[9px] font-bold bg-orange-900/30 border border-orange-700/50 text-orange-400 px-1.5 py-0.5 rounded",children:"n8n"}):(0,v.jsx)("span",{className:"text-[9px] font-bold bg-zinc-800 border border-zinc-700 text-zinc-400 px-1.5 py-0.5 rounded",children:"HTTP"})]}),a.generalName&&(0,v.jsxs)("div",{className:"text-[9px] text-zinc-500 font-mono mb-1",children:["(",a.name,")"]}),(0,v.jsx)("div",{className:"text-xs text-zinc-500 mb-2 h-8 overflow-hidden",children:a.description}),"python"===a.tool_type?(0,v.jsx)("div",{className:"text-[10px] font-mono text-violet-600",children:"🐍 Python sandboxed function"}):(0,v.jsx)("div",{className:"text-[10px] font-mono text-zinc-600 truncate",children:a.url}),(0,v.jsx)("button",{onClick:()=>n(a.name),className:"absolute top-2 right-2 p-1 text-zinc-600 hover:text-red-500 opacity-0 group-hover:opacity-100",children:(0,v.jsx)(y.Trash,{className:"h-4 w-4"})}),(0,v.jsx)("button",{onClick:()=>{if("python"===a.tool_type)c({...a,schemaParams:a.schemaParams||[]}),e("python");else{c({...a,inputSchemaStr:JSON.stringify(a.inputSchema||{},null,2),outputSchemaStr:a.outputSchema?JSON.stringify(a.outputSchema,null,2):""});let b=Object.entries(a.headers||{}).map(([a,b],c)=>({id:`h-${c}`,key:a,value:b}));g(b.length?b:[{id:"h1",key:"",value:""}]),e("config")}},className:"absolute bottom-2 right-2 text-[10px] text-zinc-400 hover:text-white font-bold uppercase",children:"Edit"})]},a.name)),0===a.length&&(0,v.jsx)("div",{className:"col-span-full py-12 text-center text-zinc-600 italic text-sm border border-dashed border-zinc-800",children:"No custom tools yet. Create an HTTP, n8n webhook, or Python tool."})]})]})})},n9=({dlTopic:a,setDlTopic:b,dlCount:c,setDlCount:d,dlProvider:e,setDlProvider:f,dlSystemPrompt:g,setDlSystemPrompt:h,dlEdgeCases:i,setDlEdgeCases:j,dlStatus:k,dlDatasets:l,onGenerate:m})=>(0,v.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8 h-full",children:[(0,v.jsx)("div",{className:"space-y-6 overflow-y-auto pr-2",children:(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Domain / Topic"}),(0,v.jsx)("input",{type:"text",value:a,onChange:a=>b(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none",placeholder:"e.g. Medical Assistant, Python Coding Tutor"})]}),(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Count"}),(0,v.jsx)("input",{type:"number",value:c,onChange:a=>d(parseInt(a.target.value)),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none",min:1,max:100})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Provider"}),(0,v.jsxs)("select",{value:e,onChange:a=>f(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none appearance-none",children:[(0,v.jsx)("option",{value:"openai",children:"OpenAI (GPT-4o)"}),(0,v.jsx)("option",{value:"gemini",children:"Gemini (1.5 Pro)"})]})]})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Target Persona (System Prompt)"}),(0,v.jsx)("textarea",{value:g,onChange:a=>h(a.target.value),className:"w-full h-24 bg-zinc-900 border border-zinc-800 p-3 text-xs font-mono text-zinc-300 focus:border-white focus:outline-none resize-none"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Edge Cases & Constraints"}),(0,v.jsx)("textarea",{value:i,onChange:a=>j(a.target.value),className:"w-full h-24 bg-zinc-900 border border-zinc-800 p-3 text-xs font-mono text-zinc-300 focus:border-white focus:outline-none resize-none",placeholder:"e.g. 'If user asks for illegal advice, politely refuse.' or 'Always include code comments.'"})]}),(0,v.jsx)("button",{onClick:m,disabled:k?.status==="generating",className:"w-full py-4 bg-white text-black font-bold text-sm tracking-uppercase hover:bg-zinc-200 disabled:opacity-50 disabled:cursor-not-allowed",children:k?.status==="generating"?"GENERATING...":"START GENERATION JOB"})]})}),(0,v.jsxs)("div",{className:"bg-zinc-950 border border-zinc-800 p-6 flex flex-col h-full",children:[(0,v.jsxs)("h3",{className:"text-sm font-bold text-zinc-400 mb-4 flex items-center justify-between",children:[(0,v.jsx)("span",{children:"DATASETS"}),k?.status==="generating"&&(0,v.jsxs)("span",{className:"text-green-500 text-xs animate-pulse",children:["Running: ",k.completed,"/",k.total]}),k?.status==="failed"&&(0,v.jsxs)("span",{className:"text-red-500 text-xs",children:["Failed: ",k.error]})]}),(0,v.jsx)("div",{className:"flex-1 overflow-y-auto space-y-2",children:0===l.length?(0,v.jsx)("div",{className:"text-center py-10 text-zinc-600 text-xs italic",children:"No datasets generated yet."}):l.map(a=>(0,v.jsxs)("div",{className:"p-3 bg-black border border-zinc-800 flex justify-between items-center group hover:border-zinc-600",children:[(0,v.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,v.jsx)("div",{className:"text-xs text-white font-mono truncate mb-1",children:a.filename}),(0,v.jsxs)("div",{className:"text-[10px] text-zinc-500 flex gap-2",children:[(0,v.jsxs)("span",{children:[(a.size/1024).toFixed(1)," KB"]}),(0,v.jsx)("span",{children:"•"}),(0,v.jsx)("span",{children:new Date(a.created).toLocaleDateString()})]})]}),(0,v.jsx)(B.Database,{className:"h-4 w-4 text-zinc-600 group-hover:text-zinc-400"})]},a.filename))})]})]}),oa=(0,U.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),ob=(0,U.default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]),oc=({className:a})=>(0,v.jsx)("img",{src:"/ollama-icon.svg",className:`${a} theme-adaptive-icon`,alt:"Ollama"}),od=({className:a})=>(0,v.jsx)("img",{src:"/google-gemini-icon.svg",className:a,alt:"Google Gemini"}),oe=({className:a})=>(0,v.jsx)("img",{src:"/claude-ai-icon.svg",className:a,alt:"Anthropic Claude"}),of=({className:a})=>(0,v.jsx)("img",{src:"/chatgpt-icon.svg",className:a,alt:"OpenAI"}),og=({className:a})=>(0,v.jsx)(aF.Terminal,{className:a}),oh={ollama:{label:"Ollama (Local)",icon:oc,color:"#22c55e",description:"Runs locally on your machine. Private, free, no API key needed."},gemini:{label:"Google Gemini",icon:od,color:"#4285f4",description:"Google AI models. Fast and capable, with a generous free tier.",keyPlaceholder:"AIza...",keyLink:{label:"Get a free key at Google AI Studio →",url:"https://aistudio.google.com/app/apikey"},keyNote:"Free tier available. Key starts with AIza..."},anthropic:{label:"Anthropic Claude",icon:oe,color:"#d97706",description:"Advanced reasoning and analysis via Claude models.",keyPlaceholder:"sk-ant-...",keyLink:{label:"Get your key at Anthropic Console →",url:"https://console.anthropic.com/settings/keys"},keyNote:"Key starts with sk-ant-api03-..."},openai:{label:"OpenAI",icon:of,color:"#10b981",description:"GPT-4o and latest OpenAI models.",keyPlaceholder:"sk-...",keyLink:{label:"Get your key at OpenAI Platform →",url:"https://platform.openai.com/api-keys"},keyNote:"Key starts with sk-proj-... or sk-..."},grok:{label:"xAI Grok",icon:({className:a})=>(0,v.jsx)("img",{src:"/grok-icon.svg",className:a,alt:"Grok"}),color:"#e5e7eb",description:"Grok-3 and frontier reasoning models from Elon Musk's AI lab, xAI.",keyPlaceholder:"xai-...",keyLink:{label:"Get your key at xAI Console →",url:"https://console.x.ai/"},keyNote:"Key starts with xai-..."},deepseek:{label:"DeepSeek",icon:({className:a})=>(0,v.jsx)("img",{src:"/deepseek-logo-icon.svg",className:a,alt:"DeepSeek"}),color:"#4f6ef7",description:"DeepSeek-V3 (chat + tools) and DeepSeek-R1 (powerful chain-of-thought reasoning).",keyPlaceholder:"sk-...",keyLink:{label:"Get your key at DeepSeek Platform →",url:"https://platform.deepseek.com/api_keys"},keyNote:"Note: deepseek-reasoner (R1) does not support tool/function calling."},openai_compatible:{label:"OpenAI Compatible",icon:of,color:"#f97316",description:"Any OpenAI v1-compatible cloud provider (OpenRouter, Together, Fireworks, etc.).",keyPlaceholder:"sk-...",keyNote:"Enter your API key, base URL, and model names below."},local_compatible:{label:"Local V1 Compatible",icon:oc,color:"#06b6d4",description:"Any local OpenAI v1-compatible server (vLLM, LM Studio, llama.cpp server, etc.).",keyNote:"Enter your base URL and model names below. API key is optional."},bedrock:{label:"AWS Bedrock",icon:({className:a})=>(0,v.jsx)("img",{src:"/aws-bedrock-icon.svg",className:a,alt:"AWS Bedrock"}),color:"#f59e0b",description:"Enterprise-grade models via AWS, including Claude, Llama, and Titan.",keyPlaceholder:"ABSK... or bedrock-api-key...",keyLink:{label:"Set up Bedrock API keys in AWS Console →",url:"https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys-generate.html#api-keys-generate-console"},keyNote:"Supports long-term keys (ABSK...) and temporary keys (bedrock-api-key...). Bearer prefix is auto-normalized."},anthropic_cli:{label:"Claude (CLI)",icon:oe,color:"#d97706",description:"Use the locally installed Anthropic Claude CLI. No API key needed — uses your existing terminal session."},gemini_cli:{label:"Gemini (CLI)",icon:od,color:"#4285f4",description:"Use the locally installed Google Gemini CLI. No API key needed — uses your existing terminal session."},codex_cli:{label:"Codex (CLI)",icon:og,color:"#a78bfa",description:"Use the locally installed OpenAI Codex CLI agent. No API key needed — uses your existing terminal session."},github_copilot_cli:{label:"GitHub Copilot (CLI)",icon:og,color:"#8957e5",description:"Use the locally installed GitHub Copilot CLI. No API key needed — uses your existing GitHub session."}},oi=({providers:a,selectedModel:b,setSelectedModel:c,embeddingModel:d,setEmbeddingModel:e,openaiKey:f,setOpenaiKey:g,anthropicKey:h,setAnthropicKey:i,geminiKey:j,setGeminiKey:k,grokKey:l,setGrokKey:m,deepseekKey:n,setDeepseekKey:o,bedrockApiKey:p,setBedrockApiKey:q,awsRegion:r,setAwsRegion:s,bedrockInferenceProfile:t,setBedrockInferenceProfile:u,bedrockInferenceProfiles:x,loadingInferenceProfiles:y,inferenceProfilesError:z,loadingModels:A,onExpandBedrock:B,onSave:C,isSaving:D,mode:E,setMode:F,localModels:G,cloudModels:H,filteredModels:I,openaiCompatibleKey:J,setOpenaiCompatibleKey:K,openaiCompatibleBaseUrl:L,setOpenaiCompatibleBaseUrl:M,openaiCompatibleModels:N,setOpenaiCompatibleModels:O,openaiCompatibleEmbedModels:P,setOpenaiCompatibleEmbedModels:R,localCompatibleBaseUrl:S,setLocalCompatibleBaseUrl:T,localCompatibleKey:U,setLocalCompatibleKey:V,localCompatibleModels:W,setLocalCompatibleModels:X,localCompatibleEmbedModels:Y,setLocalCompatibleEmbedModels:Z})=>{let[$,_]=(0,w.useState)(null),aa=[];return Object.entries(a).forEach(([,a])=>{a.available&&aa.push(...a.models)}),(0,v.jsxs)("div",{className:"space-y-8",children:[(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Providers"}),(0,v.jsx)("div",{className:"space-y-3",children:Object.entries(oh).map(([b,c])=>{let d=a[b]||{available:!1,models:[]},e=$===b,w=c.icon,A=d.models.length;return(0,v.jsxs)("div",{className:`border transition-all duration-200 ${d.available?"border-zinc-700 bg-zinc-900/50":"border-zinc-800/50 bg-zinc-950"}`,children:[(0,v.jsxs)("button",{onClick:()=>{let a=e?null:b;_(a),"bedrock"===a&&B?.()},className:"w-full flex items-center justify-between p-4 text-left hover:bg-zinc-900/30 transition-colors",children:[(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)("div",{className:`h-2 w-2 rounded-full ${d.available?"bg-green-500 shadow-[0_0_6px_#22c55e]":"bg-zinc-600"}`}),(0,v.jsx)(w,{className:`h-4 w-4 ${!d.available?"opacity-40 grayscale":""}`,style:{color:d.available?c.color:"#71717a"}}),(0,v.jsxs)("div",{children:[(0,v.jsx)("span",{className:`text-sm font-bold ${d.available?"text-white":"text-zinc-500"}`,children:c.label}),(0,v.jsx)("span",{className:"text-[10px] text-zinc-500 ml-2",children:d.available?`${A} model${1!==A?"s":""}`:"ollama"===b?"Not running":b.endsWith("_cli")?"Not installed":"No key configured"})]})]}),(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[d.available?(0,v.jsx)(oa,{className:"h-4 w-4 text-green-500"}):(0,v.jsx)(az.X,{className:"h-3 w-3 text-zinc-600"}),e?(0,v.jsx)(aE,{className:"h-4 w-4 text-zinc-500"}):(0,v.jsx)(ae.ChevronDown,{className:"h-4 w-4 text-zinc-500"})]})]}),e&&(0,v.jsxs)("div",{className:"px-4 pb-4 space-y-3 border-t border-zinc-800/50 pt-3",children:[(0,v.jsx)("p",{className:"text-[10px] text-zinc-500",children:c.description}),"ollama"!==b&&"bedrock"!==b&&"openai_compatible"!==b&&"local_compatible"!==b&&!b.endsWith("_cli")&&(0,v.jsxs)("div",{className:"space-y-1.5",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"API Key"}),(0,v.jsx)("input",{type:"password",value:(a=>{switch(a){case"openai":return f;case"anthropic":return h;case"gemini":return j;case"grok":return l;case"deepseek":return n;case"bedrock":return p;case"openai_compatible":return J;case"local_compatible":return U;default:return""}})(b),onChange:a=>((a,b)=>{switch(a){case"openai":g(b);break;case"anthropic":i(b);break;case"gemini":k(b);break;case"grok":m(b);break;case"deepseek":o(b);break;case"bedrock":q(b);break;case"openai_compatible":K(b);break;case"local_compatible":V(b)}})(b,a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-xs text-white focus:border-white focus:outline-none transition-colors",placeholder:c.keyPlaceholder}),c.keyNote&&(0,v.jsx)("p",{className:"text-[10px] text-zinc-600",children:c.keyNote}),c.keyLink&&(0,v.jsxs)("a",{href:c.keyLink.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-[10px] text-blue-400 hover:text-blue-300 transition-colors",children:[(0,v.jsx)(ak.ExternalLink,{className:"h-2.5 w-2.5"}),c.keyLink.label]})]}),"bedrock"===b&&(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsxs)("div",{className:"space-y-1.5",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Bedrock API Key"}),(0,v.jsx)("input",{type:"password",value:p,onChange:a=>q(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-xs text-white focus:border-white focus:outline-none transition-colors",placeholder:"ABSK... or bedrock-api-key..."}),c.keyNote&&(0,v.jsx)("p",{className:"text-[10px] text-zinc-600",children:c.keyNote}),c.keyLink&&(0,v.jsxs)("a",{href:c.keyLink.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-[10px] text-blue-400 hover:text-blue-300 transition-colors",children:[(0,v.jsx)(ak.ExternalLink,{className:"h-2.5 w-2.5"}),c.keyLink.label]})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"AWS Region"}),(0,v.jsx)("input",{type:"text",value:r,onChange:a=>s(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-xs text-white focus:border-white focus:outline-none transition-colors",placeholder:"us-east-1"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Inference Profile (Optional)"}),(0,v.jsxs)("select",{value:t,onChange:a=>u(a.target.value),className:"w-full appearance-none bg-zinc-900 border border-zinc-800 p-2.5 text-xs focus:border-white focus:outline-none transition-colors text-white cursor-pointer",children:[(0,v.jsx)("option",{value:"",children:"None (on-demand)"}),y?(0,v.jsx)("option",{value:"",disabled:!0,children:"Loading..."}):x.map(a=>{let b=(a.arn||a.id||"").toString(),c=(a.name||a.arn||a.id||"").toString();return b?(0,v.jsx)("option",{value:b,children:c},b):null})]})]}),z&&(0,v.jsxs)("div",{className:"flex items-start gap-2 p-2.5 bg-red-500/5 border border-red-500/20 text-[10px] text-red-400",children:[(0,v.jsx)(ob,{className:"w-3 h-3 mt-0.5 shrink-0"}),(0,v.jsx)("span",{className:"break-all",children:z})]}),!z&&d.available&&!t&&(0,v.jsxs)("div",{className:"flex items-start gap-2 p-2.5 bg-amber-500/5 border border-amber-500/20 text-[10px] text-amber-400",children:[(0,v.jsx)(ob,{className:"w-3 h-3 mt-0.5 shrink-0"}),(0,v.jsx)("span",{children:"No inference profile selected. Please select an inference profile above to use AWS Bedrock."})]})]}),"openai_compatible"===b&&(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsxs)("div",{className:"space-y-1.5",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"API Key"}),(0,v.jsx)("input",{type:"password",value:J,onChange:a=>K(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-xs text-white focus:border-white focus:outline-none transition-colors",placeholder:"sk-..."})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Base URL"}),(0,v.jsx)("input",{type:"text",value:L,onChange:a=>M(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-xs text-white focus:border-white focus:outline-none transition-colors",placeholder:"https://openrouter.ai/api"}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600",children:"The /v1 path is appended automatically. Do not include /v1 in the URL."})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Model Names (comma-separated)"}),(0,v.jsx)("input",{type:"text",value:N,onChange:a=>O(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-xs text-white focus:border-white focus:outline-none transition-colors",placeholder:"e.g. meta-llama/llama-3-70b-instruct, google/gemma-2-27b-it"}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600",children:"If the /v1/models endpoint is available, models will be fetched automatically. Otherwise, list them here."})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Embedding Model Names (comma-separated)"}),(0,v.jsx)("input",{type:"text",value:P,onChange:a=>R(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-xs text-white focus:border-white focus:outline-none transition-colors",placeholder:"e.g. hf:nomic-ai/nomic-embed-text-v1.5"}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600",children:'Models listed here appear in the embedding model dropdown. Models with "embed" in the name are also auto-detected from /v1/models.'})]})]}),"local_compatible"===b&&(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsxs)("div",{className:"space-y-1.5",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"API Key (optional)"}),(0,v.jsx)("input",{type:"password",value:U,onChange:a=>V(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-xs text-white focus:border-white focus:outline-none transition-colors",placeholder:"Leave blank if not required"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Base URL"}),(0,v.jsx)("input",{type:"text",value:S,onChange:a=>T(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-xs text-white focus:border-white focus:outline-none transition-colors",placeholder:"http://localhost:8000"}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600",children:"The /v1 path is appended automatically. Do not include /v1 in the URL."})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Model Names (comma-separated)"}),(0,v.jsx)("input",{type:"text",value:W,onChange:a=>X(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-xs text-white focus:border-white focus:outline-none transition-colors",placeholder:"e.g. llama-3-70b, mistral-7b"}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600",children:"If the /v1/models endpoint is available, models will be fetched automatically. Otherwise, list them here."})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Embedding Model Names (comma-separated)"}),(0,v.jsx)("input",{type:"text",value:Y,onChange:a=>Z(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2.5 text-xs text-white focus:border-white focus:outline-none transition-colors",placeholder:"e.g. bge-m3"}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600",children:'Models listed here appear in the embedding model dropdown. Models with "embed" in the name are also auto-detected from /v1/models.'})]})]}),"ollama"===b&&(0,v.jsxs)("div",{className:"space-y-1.5",children:[(0,v.jsx)("div",{className:"text-[10px] text-zinc-500",children:d.available?`Detected ${A} local model${1!==A?"s":""}: ${d.models.slice(0,5).join(", ")}${A>5?"...":""}`:"Ollama is not running. Start it to use local models."}),(0,v.jsxs)("a",{href:"https://ollama.com/download",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-[10px] text-blue-400 hover:text-blue-300 transition-colors",children:[(0,v.jsx)(ak.ExternalLink,{className:"h-2.5 w-2.5"}),"Download Ollama →"]})]}),b.endsWith("_cli")&&(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("div",{className:"text-[10px] text-zinc-500",children:d.available?`Detected ${A} CLI session${1!==A?"s":""}: ${d.models.join(", ")}`:`No CLI binary found in PATH for ${c.label}.`}),(0,v.jsxs)("div",{className:"p-2.5 bg-violet-500/5 border border-violet-500/20 text-[10px] text-violet-300 leading-relaxed",children:[(0,v.jsx)("strong",{children:"No API key needed"})," — uses your existing CLI session. Run the CLI manually first to authenticate."]}),(0,v.jsxs)("div",{className:"flex flex-col gap-1",children:["anthropic_cli"===b&&(0,v.jsxs)("a",{href:"https://claude.ai/download",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-[10px] text-blue-400 hover:text-blue-300 transition-colors",children:[(0,v.jsx)(ak.ExternalLink,{className:"h-2.5 w-2.5"})," Install Claude CLI →"]}),"gemini_cli"===b&&(0,v.jsxs)("a",{href:"https://ai.google.dev/gemini-api/docs/gemini-cli",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-[10px] text-blue-400 hover:text-blue-300 transition-colors",children:[(0,v.jsx)(ak.ExternalLink,{className:"h-2.5 w-2.5"})," Install Gemini CLI →"]}),"codex_cli"===b&&(0,v.jsxs)("a",{href:"https://github.com/openai/codex",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-[10px] text-blue-400 hover:text-blue-300 transition-colors",children:[(0,v.jsx)(ak.ExternalLink,{className:"h-2.5 w-2.5"})," Install OpenAI Codex CLI →"]}),"github_copilot_cli"===b&&(0,v.jsxs)("a",{href:"https://docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-[10px] text-blue-400 hover:text-blue-300 transition-colors",children:[(0,v.jsx)(ak.ExternalLink,{className:"h-2.5 w-2.5"})," Install GitHub Copilot CLI →"]})]})]}),d.available&&d.models.length>0&&"ollama"!==b&&(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-600",children:"Available Models"}),(0,v.jsx)("div",{className:"flex flex-wrap gap-1.5",children:d.models.map(a=>(0,v.jsx)("span",{className:"text-[10px] px-2 py-0.5 bg-zinc-800 text-zinc-400 border border-zinc-700/50 rounded-sm",children:a},a))})]})]})]},b)})})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Default Model"}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600 -mt-1",children:"Used for system prompt generation and agents without a specific model assigned."}),(0,v.jsx)("select",{value:b,onChange:a=>c(a.target.value),className:"w-full appearance-none bg-zinc-900 border border-zinc-800 p-2.5 text-sm focus:border-white focus:outline-none transition-colors text-white cursor-pointer",children:A?(0,v.jsx)("option",{children:"Loading models..."}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("option",{value:"",disabled:!0,children:"Select default model..."}),Object.entries(a).map(([a,b])=>{if(!b.available||0===b.models.length)return null;let c=oh[a]?.label||a;return(0,v.jsx)("optgroup",{label:c,children:b.models.map(a=>(0,v.jsx)("option",{value:a,children:a},a))},a)})]})})]}),(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Embedding Model"}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600 -mt-1",children:"Used for code indexing and repository search. Requires compatible providers like Gemini, OpenAI, or Ollama."}),(0,v.jsx)("select",{value:d,onChange:a=>e(a.target.value),className:"w-full appearance-none bg-zinc-900 border border-zinc-800 p-2.5 text-sm focus:border-white focus:outline-none transition-colors text-white cursor-pointer",children:A?(0,v.jsx)("option",{children:"Loading models..."}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("option",{value:"",children:"Select default embedding model..."}),Object.entries(a).map(([a,b])=>{if(!b.available||!b.embedding_models||0===b.embedding_models.length)return null;let c=oh[a]?.label||a;return(0,v.jsx)("optgroup",{label:c,children:b.embedding_models.map(a=>(0,v.jsx)("option",{value:a,children:a},a))},a)})]})})]}),(0,v.jsx)("div",{className:"p-3 bg-amber-900/20 border border-amber-900/50 rounded-sm",children:(0,v.jsx)("p",{className:"text-[10px] text-amber-500 leading-relaxed uppercase font-bold tracking-tight",children:"⚠ Warning: Changing the global embedding model will affect new repository indexals. Existing repositories will NOT be automatically migrated. Use individual repo settings to re-index manually if needed."})})]}),(0,v.jsx)("div",{className:"pt-4 flex justify-end",children:(0,v.jsxs)("button",{onClick:C,disabled:D,className:"flex items-center gap-2 px-6 py-2.5 text-sm font-bold bg-white text-black hover:bg-zinc-200 transition-all shadow-lg disabled:opacity-50 disabled:cursor-not-allowed",children:[D&&(0,v.jsx)(Q.Loader2,{className:"w-4 h-4 animate-spin"}),D?"Saving…":"Save Changes"]})})]})};var oj=a.i(46842);let ok=({n8nUrl:a,setN8nUrl:b,n8nApiKey:c,setN8nApiKey:d,onSave:e})=>{let[f,g]=(0,w.useState)(null),[h,i]=(0,w.useState)(!0),[j,k]=(0,w.useState)(!1),[l,m]=(0,w.useState)(!1),[n,o]=(0,w.useState)("idle"),p=(0,w.useCallback)(async()=>{i(!0);try{let a=await fetch("/api/config"),b=await a.json();g(b)}catch{g({has_credentials:!1,is_connected:!1})}finally{i(!1)}},[]);(0,w.useEffect)(()=>{p()},[p]),(0,w.useEffect)(()=>{let a=new URLSearchParams(window.location.search),b=a.get("google_auth");"success"===b?(p(),window.history.replaceState({},"",window.location.pathname)):"error"===b&&(console.error("Google OAuth error:",a.get("reason")||"Unknown error"),window.history.replaceState({},"",window.location.pathname))},[p]);let q=async a=>{try{JSON.parse(a)}catch{return}o("saving");try{(await fetch("/api/setup/google-credentials",{method:"POST",body:a,headers:{"Content-Type":"application/json"}})).ok?(o("saved"),setTimeout(async()=>{await p(),o("idle"),k(!1)},1200)):(o("error"),setTimeout(()=>o("idle"),2e3))}catch{o("error"),setTimeout(()=>o("idle"),2e3)}},r=async a=>{try{JSON.parse(a)}catch{return}try{(await fetch("/api/setup/google-token",{method:"POST",body:a,headers:{"Content-Type":"application/json"}})).ok&&(await p(),m(!1))}catch{}},s=f?.has_credentials,t=f?.is_connected,u=f?.user_email;return(0,v.jsxs)("div",{className:"space-y-8",children:[(0,v.jsxs)("div",{className:"bg-zinc-900 border border-zinc-800 overflow-hidden",children:[(0,v.jsxs)("div",{className:"p-4 border-b border-zinc-800 bg-zinc-950 flex items-center justify-between",children:[(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)("div",{className:`h-2 w-2 transition-colors ${t?"bg-green-500 shadow-[0_0_10px_rgba(34,197,94,0.5)]":"bg-red-500"}`}),(0,v.jsx)("span",{className:"text-sm font-bold text-zinc-400",children:"Connection Status"})]}),(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)("button",{onClick:p,disabled:h,className:"p-1 text-zinc-600 hover:text-zinc-400 transition-colors",title:"Refresh status",children:(0,v.jsx)(aB.RefreshCw,{className:`h-3 w-3 ${h?"animate-spin":""}`})}),(0,v.jsx)("span",{className:`text-xs px-2 py-1 bg-zinc-900 border border-zinc-800 ${t?"text-green-400":"text-zinc-500"}`,children:t?"CONNECTED":"DISCONNECTED"})]})]}),(0,v.jsx)("div",{className:"p-6 space-y-6",children:s?(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsxs)("div",{className:"bg-zinc-950 border border-zinc-800 p-4 space-y-3",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,v.jsx)(W,{className:"h-4 w-4 text-green-500"}),(0,v.jsx)("span",{className:"text-xs font-bold text-green-400 uppercase tracking-wider",children:"OAuth Credentials Configured"})]}),(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-x-6 gap-y-2 text-[11px]",children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-zinc-600 uppercase tracking-wider mb-0.5",children:"Client ID"}),(0,v.jsx)("p",{className:"font-mono text-zinc-300",children:f?.client_id??"—"})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-zinc-600 uppercase tracking-wider mb-0.5",children:"Project"}),(0,v.jsx)("p",{className:"font-mono text-zinc-300",children:f?.project_id||"—"})]})]}),t&&u?(0,v.jsxs)("div",{className:"mt-2 pt-2 border-t border-zinc-800 flex items-center gap-2",children:[(0,v.jsx)(oj.User,{className:"h-3.5 w-3.5 text-green-500"}),(0,v.jsx)("span",{className:"text-xs text-zinc-300",children:u}),(0,v.jsx)("span",{className:"ml-auto text-[10px] text-green-500 uppercase tracking-wider",children:"Authenticated"})]}):t?(0,v.jsxs)("div",{className:"mt-2 pt-2 border-t border-zinc-800 flex items-center gap-2",children:[(0,v.jsx)(W,{className:"h-3.5 w-3.5 text-green-500"}),(0,v.jsx)("span",{className:"text-xs text-zinc-400",children:"Token active — no email info stored"})]}):(0,v.jsxs)("div",{className:"mt-3 pt-3 border-t border-zinc-800 space-y-2",children:[(0,v.jsx)("p",{className:"text-[11px] text-zinc-500",children:"OAuth credentials are ready. Click below to authenticate your Google account."}),(0,v.jsxs)("a",{href:"/auth/login",target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-2 px-4 py-2 bg-white text-black text-xs font-bold uppercase tracking-wider hover:bg-zinc-200 transition-colors",children:[(0,v.jsx)(x.Shield,{className:"h-3.5 w-3.5"}),"Connect Google Account",(0,v.jsx)(ak.ExternalLink,{className:"h-3 w-3 opacity-60"})]}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600",children:"This opens a Google sign-in page. After completing, return here and refresh."})]})]}),(0,v.jsxs)("div",{children:[(0,v.jsxs)("button",{onClick:()=>k(a=>!a),className:"flex items-center gap-2 text-[11px] text-zinc-500 hover:text-zinc-300 transition-colors",children:[j?(0,v.jsx)(aE,{className:"h-3 w-3"}):(0,v.jsx)(ae.ChevronDown,{className:"h-3 w-3"}),"Replace / Re-upload credentials.json"]}),j&&(0,v.jsxs)("div",{className:"mt-2 space-y-2 animate-in fade-in slide-in-from-top-1 duration-150",children:[(0,v.jsx)("textarea",{className:`w-full h-28 bg-black border p-3 text-[10px] font-mono text-zinc-300 focus:outline-none resize-none transition-colors ${"saved"===n?"border-green-600":"error"===n?"border-red-600":"border-zinc-800 focus:border-white"}`,placeholder:'{"installed":{"client_id":"...","project_id":"..."}}',onChange:a=>q(a.target.value)}),(0,v.jsx)("p",{className:`text-[10px] ${"saved"===n?"text-green-500":"error"===n?"text-red-500":"saving"===n?"text-zinc-400":"text-zinc-700"}`,children:"saved"===n?"✓ Credentials saved — refreshing…":"error"===n?"✗ Failed to save credentials.":"saving"===n?"Saving…":"Paste valid JSON and it saves automatically."})]})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("button",{onClick:()=>m(a=>!a),className:"text-[11px] text-zinc-600 hover:text-zinc-400 underline decoration-dotted transition-colors",children:"Advanced: Import existing Token JSON (Skip OAuth)"}),l&&(0,v.jsx)("div",{className:"mt-2 animate-in fade-in slide-in-from-top-1 duration-150",children:(0,v.jsx)("textarea",{className:"w-full h-24 bg-black border border-zinc-800 p-3 font-mono text-xs text-zinc-300 focus:border-white focus:outline-none resize-none",placeholder:'{"token": "...", "refresh_token": "..."}',onChange:a=>r(a.target.value)})})]})]}):(0,v.jsxs)("div",{className:"space-y-5",children:[(0,v.jsxs)("div",{className:"text-center py-4 px-4",children:[(0,v.jsxs)("div",{className:"relative inline-block mb-3",children:[(0,v.jsx)(x.Shield,{className:"h-8 w-8 text-zinc-700 mx-auto"}),(0,v.jsx)(am,{className:"h-4 w-4 text-red-500 absolute -bottom-1 -right-1"})]}),(0,v.jsx)("h3",{className:"text-base text-white font-bold mb-1",children:"Google Workspace Setup"}),(0,v.jsx)("p",{className:"text-xs text-zinc-500 max-w-sm mx-auto mb-4",children:"Google Workspace tools are powered by the Google Workspace MCP server. Upload your OAuth credentials below to enable it."}),(0,v.jsxs)("div",{className:"text-left text-[10px] bg-black p-4 border border-zinc-800 mb-5 max-w-md mx-auto overflow-y-auto max-h-[300px]",children:[(0,v.jsx)("p",{className:"font-bold text-zinc-300 mb-2",children:"Quick Setup Guide:"}),(0,v.jsxs)("ol",{className:"list-decimal pl-4 space-y-1.5 text-zinc-500",children:[(0,v.jsxs)("li",{children:["Go to ",(0,v.jsx)("a",{href:"https://console.cloud.google.com/",target:"_blank",rel:"noreferrer",className:"text-blue-400 hover:text-blue-300 underline",children:"Google Cloud Console"})," & create a Project."]}),(0,v.jsxs)("li",{children:["Enable ",(0,v.jsx)("em",{children:"Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, People APIs"})," — ",(0,v.jsx)("a",{href:"https://console.cloud.google.com/flows/enableapi?apiid=gmail.googleapis.com,drive.googleapis.com,calendar-json.googleapis.com,docs.googleapis.com,sheets.googleapis.com,slides.googleapis.com,forms.googleapis.com,tasks.googleapis.com,people.googleapis.com",target:"_blank",rel:"noreferrer",className:"text-blue-400 hover:text-blue-300 underline",children:"one-click enable APIs →"})]}),(0,v.jsxs)("li",{children:["Create OAuth Client ID — use this direct link: ",(0,v.jsx)("a",{href:"https://console.cloud.google.com/auth/clients/create",target:"_blank",rel:"noreferrer",className:"text-blue-400 hover:text-blue-300 underline",children:"Create OAuth Client →"})," and choose ",(0,v.jsx)("strong",{className:"text-zinc-300",children:"Web application"}),"."]}),(0,v.jsxs)("li",{children:["Under ",(0,v.jsx)("strong",{children:"Authorized redirect URIs"}),", add ",(0,v.jsxs)("strong",{className:"text-zinc-300",children:["http://localhost:","8765","/auth/callback"]})]}),(0,v.jsx)("li",{children:"Download the JSON file, open it, copy all its content, and paste it below."})]})]})]}),(0,v.jsxs)("div",{className:"border-t border-zinc-800 pt-5 space-y-4",children:[(0,v.jsxs)("details",{className:"group appearance-none",children:[(0,v.jsx)("summary",{className:"cursor-pointer text-xs font-bold text-zinc-400 hover:text-white list-none flex items-center gap-2 p-3 bg-zinc-950 border border-zinc-800 hover:border-zinc-700 transition-colors",children:(0,v.jsx)("span",{children:"+ PASTE CREDENTIALS.JSON CONTENT"})}),(0,v.jsxs)("div",{className:"mt-2",children:[(0,v.jsx)("textarea",{className:`w-full h-32 bg-black border p-3 text-[10px] font-mono text-zinc-300 focus:outline-none resize-none transition-colors ${"saved"===n?"border-green-600":"error"===n?"border-red-600":"border-zinc-800 focus:border-white"}`,placeholder:'{"installed":{"client_id":"...","project_id":"..."}}',onChange:a=>q(a.target.value)}),(0,v.jsx)("p",{className:`mt-1 text-[10px] ${"saved"===n?"text-green-500":"error"===n?"text-red-500":"saving"===n?"text-zinc-400":"text-zinc-700"}`,children:"saved"===n?"✓ Saved — refreshing status…":"error"===n?"✗ Invalid JSON or save failed.":"saving"===n?"Saving…":"Paste valid JSON and it saves automatically."})]})]}),(0,v.jsxs)("details",{className:"group appearance-none",children:[(0,v.jsx)("summary",{className:"cursor-pointer text-xs font-bold text-zinc-500 hover:text-white mt-2 list-none flex items-center gap-2",children:(0,v.jsx)("span",{className:"underline decoration-dotted decoration-zinc-700 hover:decoration-zinc-500",children:"Advanced: Import existing Token JSON (Skip OAuth)"})}),(0,v.jsx)("div",{className:"mt-2",children:(0,v.jsx)("textarea",{className:"w-full h-24 bg-black border border-zinc-800 p-3 font-mono text-xs text-zinc-300 focus:border-white focus:outline-none resize-none",placeholder:'{"token": "...", "refresh_token": "..."}',onChange:a=>r(a.target.value)})})]})]})]})})]}),(0,v.jsxs)("div",{className:"bg-zinc-900 border border-zinc-800 overflow-hidden",children:[(0,v.jsxs)("div",{className:"p-4 border-b border-zinc-800 bg-zinc-950 flex items-center justify-between",children:[(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)("div",{className:`h-2 w-2 ${c?"bg-green-500":"bg-red-500"}`}),(0,v.jsx)("span",{className:"text-sm font-bold text-zinc-400",children:"n8n"})]}),(0,v.jsx)("span",{className:`text-xs px-2 py-1 bg-zinc-900 border border-zinc-800 ${c?"text-green-400":"text-zinc-500"}`,children:c?"CONFIGURED":"NOT CONFIGURED"})]}),(0,v.jsxs)("div",{className:"p-6 space-y-6",children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"n8n URL"}),(0,v.jsx)("input",{type:"text",value:a,onChange:a=>b(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono",placeholder:"http://localhost:5678"}),(0,v.jsx)("p",{className:"text-xs text-zinc-600",children:"Defaults to localhost for local dev. Use your production n8n base URL in deployment."})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"n8n API Key"}),(0,v.jsx)("input",{type:"password",value:c,onChange:a=>d(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono",placeholder:"X-N8N-API-KEY"}),(0,v.jsx)("p",{className:"text-xs text-zinc-600",children:"Used server-side to list workflows and derive webhook URLs."})]}),(0,v.jsx)("div",{className:"pt-2 flex justify-end",children:(0,v.jsx)("button",{onClick:e,className:"px-6 py-2.5 text-sm font-bold bg-white text-black hover:bg-zinc-200 transition-all shadow-lg",children:"Save Changes"})})]})]})]})},ol=(0,U.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),om=(0,U.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),on=[{server_type:"stdio",name:"Git",command:"uvx",args:"mcp-server-git",label:"Git"}],oo=[{server_type:"remote",name:"Vercel",url:"https://mcp.vercel.com",label:"Vercel"},{server_type:"remote",name:"Github",url:"https://api.githubcopilot.com/mcp/",label:"GitHub Copilot",token:"GITHUB_PERSONAL_ACCESS_TOKEN"},{server_type:"remote",name:"slack",url:"https://mcp.slack.com/mcp",label:"Slack",token:"SLACK_CLIENT_ID"},{server_type:"remote",name:"notion",url:"https://mcp.notion.com/mcp",label:"Notion"},{server_type:"remote",name:"Jira",url:"https://mcp.atlassian.com/v1/mcp",label:"Jira"},{server_type:"remote",name:"Zapier",url:"https://mcp.zapier.com/api/mcp/mcp",label:"Zapier"},{server_type:"remote",name:"Figma",url:"https://mcp.figma.com/mcp",label:"Figma",token:"FIGMA_PERSONAL_ACCESS_TOKEN"},{server_type:"remote",name:"Fetch",url:"https://remote.mcpservers.org/fetch/mcp",label:"Fetch"}],op=({status:a})=>"connecting"===a?(0,v.jsxs)("span",{className:"flex items-center gap-1 text-[10px] bg-blue-500/20 text-blue-400 px-1.5 py-0.5 rounded border border-blue-500/30 uppercase",children:[(0,v.jsx)(Q.Loader2,{className:"h-2.5 w-2.5 animate-spin"})," Connecting"]}):"connected"===a?(0,v.jsxs)("span",{className:"flex items-center gap-1 text-[10px] bg-green-500/20 text-green-400 px-1.5 py-0.5 rounded border border-green-500/30 uppercase",children:[(0,v.jsx)(al,{className:"h-2.5 w-2.5"})," Active"]}):(0,v.jsxs)("span",{className:"flex items-center gap-1 text-[10px] bg-yellow-500/20 text-yellow-400 px-1.5 py-0.5 rounded border border-yellow-500/30 uppercase",children:[(0,v.jsx)(am,{className:"h-2.5 w-2.5"})," Disconnected"]}),oq=({type:a})=>"remote"===a?(0,v.jsxs)("span",{className:"flex items-center gap-1 text-[9px] bg-violet-500/15 text-violet-400 px-1.5 py-0.5 rounded border border-violet-500/25 uppercase",children:[(0,v.jsx)(om,{className:"h-2 w-2"}),"Remote"]}):(0,v.jsxs)("span",{className:"flex items-center gap-1 text-[9px] bg-zinc-800 text-zinc-500 px-1.5 py-0.5 rounded border border-zinc-700 uppercase",children:[(0,v.jsx)(aF.Terminal,{className:"h-2 w-2"}),"Local"]}),or={success:"bg-green-500/10 border-green-500/30 text-green-400",warning:"bg-yellow-500/10 border-yellow-500/30 text-yellow-300",error:"bg-red-500/10 border-red-500/30 text-red-400"},os={success:al,warning:V,error:am},ot="w-full bg-zinc-900 border border-zinc-800 p-2 text-sm text-white focus:border-white focus:outline-none placeholder:text-zinc-700",ou=`${ot} font-mono`,ov=({mcpServers:a,loadingMcp:b,isConnecting:c,lastConnected:d,mcpToast:e,setMcpToast:f,pendingServerName:g,onPendingResolved:h,draftMcpServer:i,setDraftMcpServer:j,onAddServer:k,onDeleteServer:l,onReconnectServer:m})=>{let n,o=(0,O.useDispatch)(),p=i.server_type,q=a=>j({...i,server_type:a}),[r,s]=(0,w.useState)(!1),[t,u]=(0,w.useState)(!0),x=async(a=!1)=>{a||s(!0);try{let a=await fetch("/api/mcp/servers");if(a.ok){let b=await a.json();o((0,P.setMcpServers)(Array.isArray(b)?b:[]))}}catch{}finally{a||s(!1)}},[z,A]=(0,w.useState)(0),B=(0,w.useRef)(null),C=(0,w.useRef)(null),D=(0,w.useRef)(0),E=()=>{B.current&&(clearInterval(B.current),B.current=null),C.current&&(clearInterval(C.current),C.current=null),A(0)};(0,w.useEffect)(()=>g?(D.current=Date.now()+6e4,A(60),B.current=setInterval(async()=>{try{let a=await fetch("/api/mcp/servers");if(!a.ok)return;let b=await a.json();o((0,P.setMcpServers)(b));let c=b.find(a=>a.name===g);if(c?.status==="connected"){E(),h(),f({show:!0,message:`✓ ${g} connected!`,type:"success"}),setTimeout(()=>f(null),5e3);return}}catch{}Date.now()>=D.current&&(E(),h())},5e3),C.current=setInterval(()=>{let a=Math.max(0,Math.round((D.current-Date.now())/1e3));A(a),a<=0&&(E(),h())},1e3),E):void E(),[g]);let G=(a,b,c)=>{let d=[...i.env];d[a]={...d[a],[b]:c},j({...i,env:d})};return(0,v.jsxs)("div",{className:"space-y-8",children:[(0,v.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,v.jsxs)("div",{children:[(0,v.jsxs)("h3",{className:"text-lg font-bold text-white flex items-center gap-2",children:[(0,v.jsx)(F.Server,{className:"h-5 w-5"})," External MCP Servers"]}),(0,v.jsx)("p",{className:"text-zinc-500 text-sm mt-1",children:"Connect local and remote Model Context Protocol servers to extend agent capabilities."})]}),(0,v.jsxs)("button",{onClick:()=>x(),disabled:r,title:"Refresh server statuses",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium border border-zinc-700 text-zinc-400 hover:border-zinc-500 hover:text-white rounded transition-colors disabled:opacity-50 shrink-0 mt-1",children:[(0,v.jsx)(aB.RefreshCw,{className:`h-3.5 w-3.5 ${r?"animate-spin":""}`}),r?"Refreshing…":"Refresh"]})]}),e?.show&&(0,v.jsxs)("div",{className:`flex items-start gap-2.5 px-4 py-3 rounded border text-xs font-medium animate-in fade-in slide-in-from-top-2 duration-200 ${or[e.type]}`,children:[(n=os[e.type],(0,v.jsx)(n,{className:"h-4 w-4 mt-0.5 shrink-0"})),(0,v.jsx)("span",{className:"leading-relaxed",children:e.message})]}),(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsx)("h4",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Connected Servers"}),b?(0,v.jsxs)("div",{className:"flex items-center gap-2 text-zinc-500 text-sm",children:[(0,v.jsx)(Q.Loader2,{className:"h-4 w-4 animate-spin"})," Loading…"]}):0===a.length?(0,v.jsxs)("div",{className:"p-8 text-center border border-dashed border-zinc-800 rounded bg-zinc-900/30",children:[(0,v.jsx)(F.Server,{className:"h-8 w-8 mx-auto text-zinc-700 mb-2"}),(0,v.jsx)("p",{className:"text-zinc-500 text-sm",children:"No servers added yet."}),(0,v.jsx)("p",{className:"text-zinc-700 text-xs mt-1",children:"Pick a preset or fill the form below."})]}):(0,v.jsx)("div",{className:"grid gap-3",children:a.map(a=>(0,v.jsxs)("div",{className:"flex items-center justify-between p-4 bg-zinc-900 border border-zinc-800 rounded group",children:[(0,v.jsxs)("div",{className:"flex flex-col gap-1.5 min-w-0",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,v.jsx)("span",{className:"font-bold text-white text-sm",children:a.label||a.name}),a.label&&a.label!==a.name&&(0,v.jsx)("span",{className:"text-[10px] text-zinc-600 font-mono",children:a.name}),(0,v.jsx)(oq,{type:a.server_type}),(0,v.jsx)(op,{status:a.status})]}),(0,v.jsx)("code",{className:"text-[10px] text-zinc-500 font-mono truncate",children:"remote"===a.server_type?a.url:`${a.command} ${(a.args||[]).join(" ")}`})]}),(0,v.jsxs)("div",{className:"flex items-center gap-1 ml-4 shrink-0",children:["connecting"===a.status&&(0,v.jsx)("span",{className:"p-2",children:(0,v.jsx)(Q.Loader2,{className:"h-3.5 w-3.5 text-blue-400 animate-spin"})}),(!a.status||"disconnected"===a.status)&&(0,v.jsx)("button",{onClick:()=>m(a.name),title:"Retry connection",className:"p-2 text-zinc-500 hover:text-blue-400 hover:bg-zinc-800 rounded transition-colors",children:(0,v.jsx)(aB.RefreshCw,{className:"h-3.5 w-3.5"})}),(0,v.jsx)("button",{onClick:()=>l(a.name),className:"p-2 text-zinc-600 hover:text-red-500 hover:bg-zinc-800 rounded transition-colors",children:(0,v.jsx)(y.Trash,{className:"h-4 w-4"})})]})]},a.name))})]}),(0,v.jsxs)("div",{className:"pt-6 border-t border-zinc-800 space-y-6",children:[(0,v.jsxs)("div",{className:"flex items-center gap-1 bg-zinc-900 border border-zinc-800 p-1 w-fit",children:[(0,v.jsxs)("button",{onClick:()=>q("stdio"),className:`flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold transition-colors ${"stdio"===p?"bg-white text-black":"text-zinc-500 hover:text-white"}`,children:[(0,v.jsx)(aF.Terminal,{className:"h-3 w-3"})," Local (stdio)"]}),(0,v.jsxs)("button",{onClick:()=>q("remote"),className:`flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold transition-colors ${"remote"===p?"bg-white text-black":"text-zinc-500 hover:text-white"}`,children:[(0,v.jsx)(om,{className:"h-3 w-3"})," Remote (URL)"]})]}),(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)(ol,{className:"h-3.5 w-3.5 text-zinc-500"}),(0,v.jsx)("h4",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"stdio"===p?"Local Presets":"Remote Presets"})]}),(0,v.jsx)("div",{className:"flex flex-wrap gap-2",children:("stdio"===p?on:oo).map(a=>(0,v.jsx)("button",{onClick:()=>{let b;return b=a.env?Object.entries(a.env).map(([a,b])=>({key:a,value:b})):[],void j({name:a.name,label:a.label,server_type:a.server_type,command:a.command||"",args:a.args||"",env:b,url:a.url||"",token:a.token||""})},className:"px-3 py-1.5 text-[11px] font-medium bg-zinc-900 border border-zinc-800 text-zinc-400 hover:border-zinc-600 hover:text-white rounded transition-colors",children:a.label},a.name+a.label))}),(0,v.jsxs)("p",{className:"text-[10px] text-zinc-600",children:["Find more on the"," ",(0,v.jsx)("a",{href:"https://github.com/modelcontextprotocol/servers",target:"_blank",rel:"noopener noreferrer",className:"text-zinc-400 underline underline-offset-2 hover:text-white transition-colors",children:"MCP servers registry"}),".","remote"===p&&" Remote servers use native OAuth — no npx required."]})]}),(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Display Label"}),(0,v.jsx)("input",{type:"text",value:i.label,onChange:a=>j({...i,label:a.target.value}),className:ot,placeholder:"e.g. GitHub Production"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Unique ID"}),(0,v.jsx)("input",{type:"text",value:i.name,onChange:a=>j({...i,name:a.target.value}),className:ot,placeholder:"e.g. github-prod"})]})]}),"stdio"===p?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Command"}),(0,v.jsx)("input",{type:"text",value:i.command,onChange:a=>j({...i,command:a.target.value}),className:ou,placeholder:"npx, uvx, python3"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Arguments"}),(0,v.jsx)("input",{type:"text",value:i.args,onChange:a=>j({...i,args:a.target.value}),className:ou,placeholder:"-y @org/server-name"})]})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Environment Variables"}),(0,v.jsxs)("button",{onClick:()=>j({...i,env:[...i.env,{key:"",value:""}]}),className:"text-[10px] font-bold text-zinc-400 hover:text-white flex items-center gap-1",children:[(0,v.jsx)(ac.Plus,{className:"h-3 w-3"})," ADD VAR"]})]}),i.env.map((a,b)=>(0,v.jsxs)("div",{className:"flex gap-2",children:[(0,v.jsx)("input",{type:"text",placeholder:"KEY",value:a.key,onChange:a=>G(b,"key",a.target.value),className:"flex-1 bg-zinc-900 border border-zinc-800 p-2 text-xs text-white font-mono focus:border-white focus:outline-none"}),(0,v.jsx)("input",{type:"text",placeholder:"VALUE",value:a.value,onChange:a=>G(b,"value",a.target.value),className:"flex-[2] bg-zinc-900 border border-zinc-800 p-2 text-xs text-white font-mono focus:border-white focus:outline-none"}),(0,v.jsx)("button",{onClick:()=>j({...i,env:i.env.filter((a,c)=>c!==b)}),className:"p-2 text-zinc-600 hover:text-red-500",children:(0,v.jsx)(y.Trash,{className:"h-4 w-4"})})]},b))]})]}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:"Server URL"}),(0,v.jsx)("input",{type:"url",value:i.url,onChange:a=>j({...i,url:a.target.value}),className:ou,placeholder:"https://mcp.example.com/mcp"}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600",children:"Leave token empty to use OAuth (browser will open). Fill token for PAT-based servers (Figma, GitHub)."})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsxs)("label",{className:"text-[10px] uppercase font-bold text-zinc-500",children:["Bearer Token / Personal Access Token ",(0,v.jsx)("span",{className:"text-zinc-600 normal-case font-normal",children:"(optional — leave empty for OAuth)"})]}),(0,v.jsxs)("div",{className:"relative",children:[(0,v.jsx)("input",{type:t?"text":"password",value:i.token,onChange:a=>j({...i,token:a.target.value}),className:`${ou} pr-10`,placeholder:"ghp_... or fig_... or leave empty"}),(0,v.jsx)("button",{type:"button",onClick:()=>u(a=>!a),title:t?"Hide token":"Show token",className:"absolute right-2 top-1/2 -translate-y-1/2 text-zinc-500 hover:text-zinc-300 transition-colors",children:t?(0,v.jsx)(aj,{className:"h-4 w-4"}):(0,v.jsx)(ai,{className:"h-4 w-4"})})]})]})]})]}),(0,v.jsx)("div",{className:"flex justify-end pt-2",children:(0,v.jsx)("button",{onClick:k,disabled:c,className:"flex items-center gap-2 px-6 py-2 bg-white text-black text-sm font-bold hover:bg-zinc-200 transition-colors disabled:opacity-60 disabled:cursor-not-allowed",children:c?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(Q.Loader2,{className:"h-4 w-4 animate-spin"})," Connecting…"]}):"Connect Server"})})]})]})},ow=["**/venv/**","**/.venv/**","**/env/**","**/__pycache__/**","**/site-packages/**","**/*.pyc","**/*.pyo","**/.eggs/**","**/*.egg-info/**","**/.pytest_cache/**","**/.tox/**","**/.mypy_cache/**","**/node_modules/**","**/.next/**","**/.nuxt/**","**/dist/**","**/build/**","**/.cache/**","**/.turbo/**","**/vendor/**","**/.bundle/**","**/Pods/**","**/bower_components/**","**/.git/**","**/.svn/**","**/.hg/**","**/.idea/**","**/.vscode/**","**/.vs/**","**/target/**","**/*.min.js","**/*.min.css","**/*.map","**/*.class","**/*.o","**/*.so","**/*.jar","**/coverage/**","**/htmlcov/**","**/__snapshots__/**","**/*.lock","**/*.log","**/*.tmp","**/.DS_Store"];function ox({embeddingModel:a,embedCode:b}){let[c,d]=(0,w.useState)([]),[e,f]=(0,w.useState)(!0),[g,h]=(0,w.useState)(null),[i,j]=(0,w.useState)(null),[k,l]=(0,w.useState)(new Set),[m,n]=(0,w.useState)(new Set),[o,p]=(0,w.useState)(!1),[q,r]=(0,w.useState)(""),[s,t]=(0,w.useState)(""),[u,x]=(0,w.useState)(!1),[y,z]=(0,w.useState)(!1),[A,B]=(0,w.useState)(null),C=(a,b="success")=>{B({show:!0,message:a,type:b}),setTimeout(()=>B(null),4e3)},D=(0,w.useCallback)(async()=>{try{let a=await fetch("/api/repos");if(a.ok){let b=await a.json();d(b),l(a=>{let c=new Set(a);for(let d of a){let a=b.find(a=>a.id===d);a&&"indexing"===a.status||c.delete(d)}return c}),n(a=>{let c=new Set(a);for(let d of a){let a=b.find(a=>a.id===d);a&&["indexing","stopping"].includes(a.status)||c.delete(d)}return c})}}catch(a){console.error("Failed to fetch repos",a)}finally{f(!1)}},[]);(0,w.useEffect)(()=>{g&&(r((g.excluded_patterns||[".*"]).join("\n")),t((g.included_patterns||[]).join("\n")))},[g?.id]),(0,w.useEffect)(()=>{D()},[D]),(0,w.useEffect)(()=>{let a=setInterval(D,c.some(a=>"indexing"===a.status)||k.size>0?2e3:6e3);return()=>clearInterval(a)},[c,k,D]);let E=async()=>{if(!g?.name||!g?.path)return void C("Name and Path are required","warning");z(!0);let a=a=>a.split("\n").map(a=>a.trim()).filter(Boolean),b=a(q).length?a(q):[".*"],c=a(s).length?a(s):["*.py","*.ts","*.tsx","*.js","*.jsx","*.rs","*.go","*.java","*.md","*.html","*.vue","*.css","*.scss","*.cpp","*.c"],d={id:g.id||"repo_"+Date.now(),name:g.name,path:g.path,description:g.description||"",included_patterns:c,excluded_patterns:b,status:g.status||"pending",file_count:g.file_count||0};try{(await fetch("/api/repos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})).ok?(C(g.id?"Repo updated!":"Repo added!","success"),h(null),D()):C("Failed to save repo","error")}catch{C("Failed to save repo","error")}finally{z(!1)}},F=async a=>{try{(await fetch(`/api/repos/${a}`,{method:"DELETE"})).ok?D():C("Failed to delete repo","error")}catch{C("Failed to delete repo","error")}},H=async(a,b)=>{b.stopPropagation();let d=c.find(b=>b.id===a);if(!(d?.status==="indexing"||k.has(a))){l(b=>new Set(b).add(a));try{let b=await fetch(`/api/repos/${a}/reindex`,{method:"POST"});if(b.ok||409===b.status)D();else{let c=await b.json().catch(()=>({detail:b.statusText}));C(`Re-index failed: ${c?.detail??b.statusText}`,"error"),l(b=>{let c=new Set(b);return c.delete(a),c})}}catch{C("Re-index request failed","error"),l(b=>{let c=new Set(b);return c.delete(a),c})}}},I=async(a,b)=>{b.stopPropagation(),n(b=>new Set(b).add(a));try{await fetch(`/api/repos/${a}/stop-index`,{method:"POST"}),D()}catch{n(b=>{let c=new Set(b);return c.delete(a),c})}};return e?(0,v.jsx)("div",{className:"p-8 text-center text-zinc-500",children:"Loading…"}):null!==g?(0,v.jsxs)("div",{className:"space-y-8",children:[A&&(0,v.jsx)(ax,{show:A.show,message:A.message,type:A.type}),b&&!a&&(0,v.jsxs)("div",{className:"flex items-start gap-3 p-3 bg-amber-500/5 border border-amber-500/20 text-xs text-amber-400",children:[(0,v.jsx)(ob,{className:"w-3.5 h-3.5 mt-0.5 shrink-0"}),(0,v.jsxs)("span",{children:["No embedding model configured. Indexing requires an embedding model."," ",(0,v.jsx)("a",{href:"/settings/models",className:"underline hover:text-amber-300 transition-colors",children:"Go to Models settings →"})]})]}),(0,v.jsxs)("div",{className:"mb-4",children:[(0,v.jsxs)("h3",{className:"text-lg font-bold text-white flex items-center gap-2",children:[(0,v.jsx)(G.FolderGit2,{className:"h-5 w-5"}),g.id?"Edit Repo":"Add New Repo"]}),(0,v.jsx)("p",{className:"text-zinc-500 text-sm mt-1",children:"Configure codebase indexing settings."})]}),(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Repo Name"}),(0,v.jsx)("input",{type:"text",value:g.name||"",onChange:a=>h({...g,name:a.target.value}),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono",placeholder:"e.g. Frontend App",autoComplete:"off"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Absolute Directory Path"}),(0,v.jsx)("input",{type:"text",value:g.path||"",onChange:a=>h({...g,path:a.target.value}),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono",placeholder:"/home/user/projects/app",autoComplete:"off"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Interconnection Description"}),(0,v.jsx)("textarea",{value:g.description||"",onChange:a=>h({...g,description:a.target.value}),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono min-h-[80px]",placeholder:"Help the LLM understand what this repo contains…"})]}),(0,v.jsx)("div",{children:(0,v.jsxs)("button",{type:"button",onClick:()=>x(a=>!a),className:"flex items-center gap-1.5 text-xs text-zinc-500 hover:text-zinc-300 transition-colors group",children:[u?(0,v.jsx)(aE,{className:"w-3 h-3"}):(0,v.jsx)(ae.ChevronDown,{className:"w-3 h-3"}),(0,v.jsx)("span",{className:"underline underline-offset-2 decoration-dotted group-hover:decoration-solid transition-all",children:"Advanced settings"})]})}),u&&(0,v.jsxs)("div",{className:"space-y-4 pt-1 border-t border-zinc-800/60",children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Extra Excluded Patterns"}),(0,v.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-blue-500/10 text-blue-400 border border-blue-500/20 font-mono",children:"one per line"})]}),(0,v.jsxs)("div",{className:"flex gap-2 p-3 bg-amber-500/5 border border-amber-500/15 text-xs text-amber-300",children:[(0,v.jsx)(ob,{className:"w-3.5 h-3.5 mt-0.5 shrink-0"}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsxs)("p",{children:[(0,v.jsx)("span",{className:"font-mono text-white",children:"data"})," → excludes ",(0,v.jsx)("em",{children:"every"})," directory named ",(0,v.jsx)("span",{className:"font-mono",children:"data"})," (backend/data AND frontend/data)"]}),(0,v.jsxs)("p",{children:[(0,v.jsx)("span",{className:"font-mono text-white",children:"backend/data"})," → excludes ",(0,v.jsx)("em",{children:"only"})," ",(0,v.jsx)("span",{className:"font-mono",children:"backend/data"}),", leaving ",(0,v.jsx)("span",{className:"font-mono",children:"frontend/data"})," indexed"]}),(0,v.jsxs)("p",{children:[(0,v.jsx)("span",{className:"font-mono text-white",children:"*.json"})," → excludes all JSON files anywhere in the tree"]})]})]}),(0,v.jsx)("textarea",{value:q,onChange:a=>r(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono min-h-[80px]",placeholder:`.*
|
|
30
|
+
backend/data
|
|
31
|
+
fixtures`}),(0,v.jsxs)("button",{type:"button",onClick:()=>p(a=>!a),className:"flex items-center gap-1.5 text-xs text-zinc-500 hover:text-zinc-300 transition-colors",children:[o?(0,v.jsx)(aE,{className:"w-3 h-3"}):(0,v.jsx)(ae.ChevronDown,{className:"w-3 h-3"}),"Always excluded automatically (",ow.length," base patterns)"]}),o&&(0,v.jsx)("div",{className:"flex flex-wrap gap-1 p-3 bg-zinc-950 border border-zinc-800",children:ow.map(a=>(0,v.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-zinc-800 text-zinc-400 font-mono",children:a},a))})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Included File Types"}),(0,v.jsx)("textarea",{value:s,onChange:a=>t(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono min-h-[60px]",placeholder:`*.py
|
|
32
|
+
*.ts
|
|
33
|
+
*.tsx
|
|
34
|
+
*.md`}),(0,v.jsx)("p",{className:"text-xs text-zinc-600",children:"Only files matching these globs will be indexed. Leave blank to use defaults."})]})]}),(0,v.jsxs)("div",{className:"flex gap-4 justify-end pt-4",children:[(0,v.jsx)("button",{onClick:()=>h(null),className:"px-6 py-2.5 text-sm font-bold text-zinc-400 hover:text-white transition-all",children:"Cancel"}),(0,v.jsxs)("button",{onClick:E,disabled:y,className:"flex items-center gap-2 px-6 py-2.5 text-sm font-bold bg-white text-black hover:bg-zinc-200 transition-all shadow-lg disabled:opacity-50 disabled:cursor-not-allowed",children:[y&&(0,v.jsx)(Q.Loader2,{className:"w-4 h-4 animate-spin"}),y?"Saving…":"Save Repository"]})]})]})]}):(0,v.jsxs)("div",{className:"space-y-8",children:[A&&(0,v.jsx)(ax,{show:A.show,message:A.message,type:A.type}),(0,v.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,v.jsxs)("div",{children:[(0,v.jsxs)("h3",{className:"text-lg font-bold text-white flex items-center gap-2",children:[(0,v.jsx)(G.FolderGit2,{className:"h-5 w-5"}),"Code Repositories"]}),(0,v.jsx)("p",{className:"text-zinc-500 text-sm mt-1",children:"Manage your agent's codebases for semantic code searching."})]}),(0,v.jsxs)("button",{onClick:()=>h({}),className:"flex items-center gap-2 px-4 py-2 text-sm font-bold bg-white text-black hover:bg-zinc-200 transition-all shadow-lg",children:[(0,v.jsx)(ac.Plus,{className:"w-4 h-4"})," Add Repo"]})]}),0===c.length?(0,v.jsxs)("div",{className:"text-center py-12 border border-dashed border-zinc-800 bg-zinc-900/50",children:[(0,v.jsx)(G.FolderGit2,{className:"w-8 h-8 mx-auto text-zinc-600 mb-3"}),(0,v.jsx)("h3",{className:"text-sm font-bold text-zinc-100",children:"No repositories indexed"}),(0,v.jsx)("p",{className:"text-sm text-zinc-500 mt-1 mb-6",children:"Add a local repository path to enable code context."}),(0,v.jsxs)("button",{onClick:()=>h({}),className:"inline-flex items-center gap-2 px-6 py-2.5 text-sm font-bold bg-white text-black hover:bg-zinc-200 transition-all shadow-lg",children:[(0,v.jsx)(ac.Plus,{className:"w-4 h-4"})," Add Repository"]})]}):(0,v.jsx)("div",{className:"grid grid-cols-1 gap-4",children:c.map(a=>{let c="indexing"===a.status||k.has(a.id),d="stopping"===a.status||m.has(a.id);return(0,v.jsxs)("div",{className:"p-4 border border-zinc-800 bg-zinc-900/50 hover:border-zinc-600 transition-colors cursor-pointer group",onClick:()=>h(a),children:[(0,v.jsxs)("div",{className:"flex justify-between items-start mb-2",children:[(0,v.jsxs)("div",{children:[(0,v.jsxs)("h4",{className:"font-bold text-white text-lg flex items-center gap-2",children:[a.name,(0,v.jsxs)("span",{className:`text-[10px] font-bold px-2 py-0.5 border uppercase tracking-wide inline-flex items-center gap-1 ${(a=>{switch(a){case"indexed":return"bg-emerald-500/10 text-emerald-400 border-emerald-500/20";case"indexing":return"bg-blue-500/10 text-blue-400 border-blue-500/20";case"stopping":return"bg-orange-500/10 text-orange-400 border-orange-500/20";case"stopped":return"bg-zinc-500/10 text-zinc-400 border-zinc-500/20";case"error":return"bg-red-500/10 text-red-400 border-red-500/20";default:return"bg-amber-500/10 text-amber-400 border-amber-500/20"}})(a.status)}`,children:[(c||d)&&(0,v.jsx)(Q.Loader2,{className:"w-2.5 h-2.5 animate-spin"}),b||"pending"!==a.status?a.status:"not indexed"]})]}),(0,v.jsx)("p",{className:"text-xs text-zinc-500 font-mono truncate max-w-lg mt-1",children:a.path})]}),(0,v.jsxs)("div",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 transition-opacity",children:[b&&(c||d?(0,v.jsx)("button",{onClick:b=>I(a.id,b),title:d?"Force reset stuck status":"Stop Indexing",className:`p-2 transition-colors rounded ${d?"text-orange-400 hover:text-orange-300 hover:bg-orange-500/10":"text-red-400 hover:text-red-300 hover:bg-red-500/10"}`,children:(0,v.jsx)(an,{className:"w-4 h-4 fill-current"})}):(0,v.jsx)("button",{onClick:b=>H(a.id,b),title:"Re-Index",className:"p-2 text-zinc-400 hover:text-white hover:bg-zinc-800 transition-colors rounded",children:(0,v.jsx)(aB.RefreshCw,{className:"w-4 h-4"})})),(0,v.jsx)("button",{onClick:b=>{b.stopPropagation(),j(a.id)},disabled:c&&!d,title:c&&!d?"Cannot delete while indexing":"Delete",className:`p-2 transition-colors rounded ${c&&!d?"text-zinc-700 cursor-not-allowed":"text-zinc-400 hover:text-red-500 hover:bg-red-500/10"}`,children:(0,v.jsx)(T.Trash2,{className:"w-4 h-4"})})]})]}),a.description&&(0,v.jsx)("p",{className:"text-sm text-zinc-400 mt-3 line-clamp-2",children:a.description}),b&&(0,v.jsxs)("div",{className:"flex gap-4 mt-4 text-xs font-bold text-zinc-600 uppercase tracking-wider",children:[(0,v.jsxs)("span",{children:[(a.file_count||0).toLocaleString()," CHUNKS",c||d?" INDEXED SO FAR…":" INDEXED"]}),a.last_indexed&&!c&&!d&&(0,v.jsxs)("span",{children:["• UPDATED ",new Date(a.last_indexed).toLocaleString()]})]})]},a.id)})}),(0,v.jsx)($,{isOpen:!!i,title:"Delete Repository",message:"Are you sure you want to delete this repository and its index? This action cannot be undone.",onConfirm:()=>{i&&F(i),j(null)},onClose:()=>j(null)})]})}let oy=["postgres","mysql","sqlite","mssql"];function oz(){let[a,b]=(0,w.useState)([]),[c,d]=(0,w.useState)(!0),[e,f]=(0,w.useState)(null),[g,h]=(0,w.useState)(!1),[i,j]=(0,w.useState)(null),[k,l]=(0,w.useState)(null),m=(a,b="success")=>{l({show:!0,message:a,type:b}),setTimeout(()=>l(null),4e3)};(0,w.useEffect)(()=>{n()},[]);let n=async()=>{try{let a=await fetch("/api/db-configs");if(a.ok){let c=await a.json();b(c)}}catch(a){console.error("Failed to fetch DB configs",a)}finally{d(!1)}},o=async()=>{if(!e?.name||!e?.connection_string)return void m("Name and Connection String are required","warning");let a={id:e.id||"db_"+Date.now(),name:e.name,db_type:e.db_type||"postgres",connection_string:e.connection_string,description:e.description||"",schema_info:e.schema_info||"",last_tested:e.last_tested||null,status:e.status||"untested",error_message:e.error_message||null};try{(await fetch("/api/db-configs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).ok?(f(null),n()):m("Failed to save DB config","error")}catch(a){console.error("Save error",a),m("Failed to save DB config","error")}},p=async a=>{try{(await fetch(`/api/db-configs/${a}`,{method:"DELETE"})).ok&&n()}catch(a){m("Failed to delete DB config","error")}},q=async(a,b)=>{b.stopPropagation(),h(!0);try{let b=await fetch(`/api/db-configs/${a}/refresh-schema`,{method:"POST"});if(b.ok)n();else{let a=await b.text();m(`Schema refresh failed: ${a}`,"error")}}catch(a){m("Schema refresh failed","error")}finally{h(!1)}};return c?(0,v.jsx)("div",{className:"p-8 text-center text-zinc-500",children:"Loading..."}):null!==e?(0,v.jsxs)("div",{className:"space-y-8",children:[k&&(0,v.jsx)(ax,{show:k.show,message:k.message,type:k.type}),(0,v.jsxs)("div",{className:"mb-4",children:[(0,v.jsxs)("h3",{className:"text-lg font-bold text-white flex items-center gap-2",children:[(0,v.jsx)(B.Database,{className:"h-5 w-5"}),e.id?"Edit Database":"Add New Database"]}),(0,v.jsx)("p",{className:"text-zinc-500 text-sm mt-1",children:"Configure a database connection for agent context."})]}),(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Name"}),(0,v.jsx)("input",{type:"text",value:e.name||"",onChange:a=>f({...e,name:a.target.value}),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono",placeholder:"e.g. Production DB",autoComplete:"off"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Database Type"}),(0,v.jsx)("select",{value:e.db_type||"postgres",onChange:a=>f({...e,db_type:a.target.value}),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors",children:oy.map(a=>(0,v.jsx)("option",{value:a,children:a},a))})]})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Connection String"}),(0,v.jsx)("input",{type:"text",value:e.connection_string||"",onChange:a=>f({...e,connection_string:a.target.value}),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono",placeholder:"postgresql://user:password@host:5432/dbname",autoComplete:"off"}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600",children:"e.g. postgresql://user:pass@localhost:5432/mydb — stored locally, never sent externally."})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-xs uppercase font-bold text-zinc-500 tracking-wider",children:"Description"}),(0,v.jsx)("textarea",{value:e.description||"",onChange:a=>f({...e,description:a.target.value}),className:"w-full bg-zinc-900 border border-zinc-800 p-3 text-sm text-white focus:border-white focus:outline-none transition-colors font-mono min-h-[80px]",placeholder:"Help the agent understand what this database contains and how it relates to the codebase..."})]}),(0,v.jsxs)("div",{className:"flex gap-4 justify-end pt-4",children:[(0,v.jsx)("button",{onClick:()=>f(null),className:"px-6 py-2.5 text-sm font-bold text-zinc-400 hover:text-white transition-all",children:"Cancel"}),(0,v.jsx)("button",{onClick:o,className:"px-6 py-2.5 text-sm font-bold bg-white text-black hover:bg-zinc-200 transition-all shadow-lg",children:"Save Database"})]})]})]}):(0,v.jsxs)("div",{className:"space-y-8",children:[k&&(0,v.jsx)(ax,{show:k.show,message:k.message,type:k.type}),(0,v.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,v.jsxs)("div",{children:[(0,v.jsxs)("h3",{className:"text-lg font-bold text-white flex items-center gap-2",children:[(0,v.jsx)(B.Database,{className:"h-5 w-5"}),"Database Connections"]}),(0,v.jsx)("p",{className:"text-zinc-500 text-sm mt-1",children:"Manage database configurations for agent schema context."})]}),(0,v.jsxs)("button",{onClick:()=>f({}),className:"flex items-center gap-2 px-4 py-2 text-sm font-bold bg-white text-black hover:bg-zinc-200 transition-all shadow-lg",children:[(0,v.jsx)(ac.Plus,{className:"w-4 h-4"})," Add Database"]})]}),0===a.length?(0,v.jsxs)("div",{className:"text-center py-12 border border-dashed border-zinc-800 bg-zinc-900/50",children:[(0,v.jsx)(B.Database,{className:"w-8 h-8 mx-auto text-zinc-600 mb-3"}),(0,v.jsx)("h3",{className:"text-sm font-bold text-zinc-100",children:"No databases configured"}),(0,v.jsx)("p",{className:"text-sm text-zinc-500 mt-1 mb-6",children:"Add a database connection to enable schema context for code agents."}),(0,v.jsxs)("button",{onClick:()=>f({}),className:"inline-flex items-center gap-2 px-6 py-2.5 text-sm font-bold bg-white text-black hover:bg-zinc-200 transition-all shadow-lg",children:[(0,v.jsx)(ac.Plus,{className:"w-4 h-4"})," Add Database"]})]}):(0,v.jsx)("div",{className:"grid grid-cols-1 gap-4",children:a.map(a=>(0,v.jsxs)("div",{className:"p-4 border border-zinc-800 bg-zinc-900/50 hover:border-zinc-600 transition-colors cursor-pointer group",onClick:()=>f(a),children:[(0,v.jsxs)("div",{className:"flex justify-between items-start mb-2",children:[(0,v.jsxs)("div",{children:[(0,v.jsxs)("h4",{className:"font-bold text-white text-lg flex items-center gap-2",children:[a.name,(0,v.jsx)("span",{className:`text-[10px] font-bold px-2 py-0.5 border uppercase tracking-wide ${(a=>{switch(a){case"connected":return"bg-emerald-500/10 text-emerald-500 border-emerald-500/20";case"error":return"bg-red-500/10 text-red-500 border-red-500/20";default:return"bg-amber-500/10 text-amber-500 border-amber-500/20"}})(a.status)}`,children:a.status}),(0,v.jsx)("span",{className:"text-[10px] font-bold px-2 py-0.5 border border-zinc-700 text-zinc-500 uppercase",children:a.db_type})]}),(0,v.jsx)("p",{className:"text-xs text-zinc-500 font-mono truncate max-w-lg mt-1",children:a.connection_string.replace(/:\/\/[^@]+@/,"://***@")})]}),(0,v.jsxs)("div",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,v.jsx)("button",{onClick:b=>q(a.id,b),className:"p-2 text-zinc-400 hover:text-white hover:bg-zinc-800 transition-colors",title:"Refresh Schema",disabled:g,children:(0,v.jsx)(aB.RefreshCw,{className:`w-4 h-4 ${g?"animate-spin text-white":""}`})}),(0,v.jsx)("button",{onClick:b=>{b.stopPropagation(),j(a.id)},className:"p-2 text-zinc-400 hover:text-red-500 hover:bg-red-500/10 transition-colors",title:"Delete",children:(0,v.jsx)(T.Trash2,{className:"w-4 h-4"})})]})]}),a.description&&(0,v.jsx)("p",{className:"text-sm text-zinc-400 mt-3 line-clamp-2",children:a.description}),a.error_message&&(0,v.jsx)("p",{className:"text-xs text-red-400 mt-2 font-mono",children:a.error_message}),(0,v.jsxs)("div",{className:"flex gap-4 mt-4 text-xs font-bold text-zinc-600 uppercase tracking-wider",children:[a.schema_info?(0,v.jsxs)("span",{children:[a.schema_info.split("\n").length-1," TABLES CACHED"]}):(0,v.jsx)("span",{children:"SCHEMA NOT FETCHED — hover and click refresh"}),a.last_tested&&(0,v.jsxs)("span",{children:["• TESTED ",new Date(a.last_tested).toLocaleString()]})]})]},a.id))}),(0,v.jsx)($,{isOpen:!!i,title:"Delete Database Config",message:"Are you sure you want to delete this database connection? This action cannot be undone.",onConfirm:()=>{i&&p(i),j(null)},onClose:()=>j(null)})]})}let oA=(0,U.default)("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"}]]),oB=(0,U.default)("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),oC=(0,U.default)("scale",[["path",{d:"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"7g6ntu"}],["path",{d:"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"ijws7r"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2",key:"3gwbw2"}]]),oD=(0,U.default)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]),oE=(0,U.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);var oF=a.i(92759);let oG=(0,U.default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);function oH({events:a,isLive:b}){let[c,d]=(0,w.useState)(!1),e=a.slice(0,-1),f=a[a.length-1],g=(a,b)=>{if("step_progress"===a.kind){let c="complete"===a.stepStatus;return(0,v.jsxs)("div",{className:"flex items-center gap-2 pl-1 py-0.5",children:[c?(0,v.jsx)(W,{size:12,className:"text-emerald-500 shrink-0"}):(0,v.jsx)(Q.Loader2,{size:12,className:"animate-spin text-purple-400 shrink-0"}),(0,v.jsx)("span",{className:`text-[11px] font-mono truncate ${c?"text-zinc-600":"text-zinc-400"}`,children:a.stepName})]},b)}if("tool_call"===a.kind)return(0,v.jsxs)("div",{className:"flex items-start gap-2 pl-1 py-0.5",children:[(0,v.jsx)("span",{className:"text-violet-400 text-[10px] shrink-0 mt-0.5",children:"🔧"}),(0,v.jsxs)("details",{className:"flex-1 min-w-0",children:[(0,v.jsx)("summary",{className:"text-[11px] text-violet-400 cursor-pointer list-none font-mono truncate",children:a.toolName?.replace(/_/g," ")}),(0,v.jsx)("pre",{className:"bg-zinc-800/60 rounded p-1.5 mt-0.5 text-[10px] text-zinc-300 overflow-x-auto whitespace-pre-wrap max-h-28 border border-zinc-700/40",children:JSON.stringify(a.toolArgs,null,2)})]})]},b);if("tool_result"===a.kind){let c=(a.toolPreview||"").slice(0,180),d=(a.toolPreview||"").length>180;return(0,v.jsxs)("div",{className:"pl-7 text-[10px] text-zinc-600 py-0.5 font-mono truncate",children:["↳ ",c,d?"…":""]},b)}return"routing"===a.kind?a.routingDecision?(0,v.jsxs)("div",{className:"flex items-center gap-1.5 pl-1 py-0.5",children:[(0,v.jsx)("span",{className:"text-[10px] text-zinc-600",children:"→"}),(0,v.jsx)("span",{className:"text-[10px] font-mono text-amber-500",children:a.routingDecision})]},b):null:null};return(0,v.jsxs)("div",{className:"space-y-0.5",children:[(b||c)&&e.map((a,b)=>g(a,b)),!b&&e.length>0&&(0,v.jsx)("button",{onClick:()=>d(a=>!a),className:"flex items-center gap-1 pl-1 text-[10px] text-zinc-600 hover:text-zinc-400 transition-colors",children:c?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(aE,{size:10})," hide"]}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ae.ChevronDown,{size:10})," ",e.length," earlier step",1!==e.length?"s":""]})}),f&&g(f,e.length)]})}let oI={code:"bg-sky-900/60 text-sky-400 border-sky-700/40",conversational:"bg-violet-900/60 text-violet-400 border-violet-700/40",orchestrator:"bg-amber-900/60 text-amber-400 border-amber-700/40",builder:"bg-purple-900/60 text-purple-400 border-purple-700/40"};function oJ({content:a}){let[b,c]=(0,w.useState)(!1),d=a.length>600,e=d&&!b?a.slice(0,600)+"…":a;return(0,v.jsx)("div",{className:"flex justify-start",children:(0,v.jsxs)("div",{className:"w-full max-w-[95%] rounded-lg border border-amber-700/40 bg-zinc-900/60 overflow-hidden",children:[(0,v.jsx)("div",{className:"flex items-center gap-1.5 px-3 py-1.5 border-b border-amber-700/30 bg-amber-900/10",children:(0,v.jsx)("span",{className:"text-[9px] font-mono text-amber-500/70 uppercase tracking-widest",children:"Evaluator"})}),(0,v.jsx)("div",{className:"px-3 py-2.5 text-zinc-300 text-[12px] leading-relaxed",children:(0,au.renderTextContent)(e)}),d&&(0,v.jsx)("button",{onClick:()=>c(a=>!a),className:"w-full text-[10px] text-zinc-500 hover:text-zinc-300 py-1.5 border-t border-zinc-800/60 transition-colors flex items-center justify-center gap-1",children:b?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(aE,{size:10})," Show less"]}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ae.ChevronDown,{size:10})," Show full plan"]})})]})})}function oK(a){let b=[...a];for(let a=b.length-1;a>=0;a--)if("step_progress"===b[a].kind&&"running"===b[a].stepStatus){b[a]={...b[a],stepStatus:"complete"};break}return b}let oL={role:"assistant",content:'Hi! I\'m the Synapse Builder. Tell me what kind of agent or orchestration you\'d like to build, and I\'ll ask any clarifying questions before creating it.\n\nFor example:\n- *"Build a research workflow that searches the web and writes a summary to the vault"*\n- *"Create an agent that monitors my emails and drafts replies"*',kind:"text"};function oM({isOpen:a,onClose:b,agents:c,availableModels:d,currentOrchestrationId:e,onOrchestrationSaved:f,onAgentSaved:g,sessionKey:h}){let i,j,k,[l,m]=(0,w.useState)([oL]),[n,o]=(0,w.useState)(new Set),[p,q]=(0,w.useState)(!0),[r,s]=(0,w.useState)(""),[t,u]=(0,w.useState)(""),[x,y]=(0,w.useState)(!1),[z,A]=(0,w.useState)(null),[B,C]=(0,w.useState)(!1),[E,F]=(0,w.useState)(null),G=(0,w.useRef)(null),H=(0,w.useRef)(null);(0,w.useEffect)(()=>{void 0!==h&&(m([oL]),o(new Set),q(!0),u(""),C(!1),F(null))},[h]),(0,w.useEffect)(()=>{G.current?.scrollIntoView({behavior:"smooth"})},[l]);let I=async()=>{let a=t.trim();if(!a||x)return;let b={role:"user",content:a,kind:"text"},c=l.filter(a=>"text"===a.kind||void 0===a.kind).map(a=>({role:a.role,content:a.content}));m(a=>[...a,b]),u(""),y(!0),A("Thinking…"),E&&F(null);try{let b=E?await fetch("/api/builder/resume",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({run_id:E.run_id,response:{[E.field]:a},model:r||void 0})}):await fetch("/api/builder/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:a,history:c,selected_agent_ids:Array.from(n),can_create_agents:p,model:r||void 0,current_orchestration_id:e})});if(!b.ok||!b.body)throw Error(`HTTP ${b.status}`);let d=b.body.getReader(),h=new TextDecoder,i="";for(;;){let{done:a,value:b}=await d.read();if(a)break;let c=(i+=h.decode(b,{stream:!0})).split("\n");for(let a of(i=c.pop()||"",c)){let b;if(a.startsWith("data: ")){try{b=JSON.parse(a.slice(6))}catch{continue}switch(b.type){case"thinking":{let a=b.message||"";if(a.startsWith("Running: ")){let b=a.replace("Running: ","");m(a=>[...oK(a),{role:"assistant",kind:"step_progress",content:"",stepName:b,stepStatus:"running"}]),A(b)}else A("Processing…");break}case"tool_call":m(a=>[...a,{role:"assistant",kind:"tool_call",content:"",toolName:b.tool_name,toolArgs:b.args||{}}]),A(`🔧 ${b.tool_name.replace(/_/g," ")}…`);break;case"tool_result":m(a=>[...a,{role:"assistant",kind:"tool_result",content:"",toolName:b.tool_name,toolPreview:b.result||b.preview||""}]),A(`✓ ${(b.tool_name??"tool").replace(/_/g," ")}`);break;case"step_complete":m(a=>oK(a));break;case"routing_decision":m(a=>[...a,{role:"assistant",kind:"routing",content:"",routingDecision:b.decision}]);break;case"orchestration_saved":f(b.orchestration),m(a=>[...oK(a),{role:"assistant",kind:"banner_orch",content:"",bannerText:b.orchestration?.name??b.orchestration?.id,orchestration:b.orchestration}]);break;case"agent_saved":g(b.agent),m(a=>[...a,{role:"assistant",kind:"banner_agent",content:"",bannerText:`✓ Agent "${b.agent?.name??b.agent?.id}" saved`}]);break;case"human_input_required":{A(null);let a=Array.isArray(b.fields)&&b.fields.length>0?b.fields[0]?.name??"answer":"answer";F({run_id:b.run_id,field:a}),m(a=>[...oK(a),{role:"assistant",kind:"human_prompt",content:b.prompt||""}]);break}case"final":A(null),m(a=>[...oK(a),{role:"assistant",kind:"text",content:b.response}]);break;case"error":A(null),m(a=>[...oK(a),{role:"assistant",kind:"text",content:`Error: ${b.message}`}])}}}}}catch(a){m(b=>[...oK(b),{role:"assistant",kind:"text",content:`Error: ${a.message}`}])}finally{m(a=>oK(a)),y(!1),A(null),H.current?.focus()}},J=c.filter(a=>"synapse_builder"!==a.id),K=J.filter(a=>n.has(a.id)).map(a=>a.name);return a?(0,v.jsxs)("div",{className:"fixed inset-y-0 right-0 z-50 w-[620px] bg-zinc-950 border-l border-zinc-800 shadow-2xl flex flex-col",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-zinc-800 shrink-0",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)(ah.Sparkles,{size:15,className:"text-purple-400"}),(0,v.jsx)("span",{className:"text-sm font-semibold text-zinc-100",children:"AI Builder"})]}),(0,v.jsx)("button",{onClick:b,className:"text-zinc-500 hover:text-zinc-300 transition-colors",children:(0,v.jsx)(az.X,{size:16})})]}),(0,v.jsxs)("div",{className:"flex-1 overflow-y-auto px-5 py-4 space-y-3 font-sans",children:[(i=[],j=[],l.forEach((a,b)=>{"step_progress"===a.kind||"tool_call"===a.kind||"tool_result"===a.kind||"routing"===a.kind?j.push(a):(j.length>0&&(i.push({type:"activity",events:[...j]}),j=[]),i.push({type:"single",msg:a,idx:b}))}),j.length>0&&i.push({type:"activity",events:j}),k=i.length-1,i.map((a,c)=>{if("activity"===a.type){let b=x&&c===k;return(0,v.jsx)(oH,{events:a.events,isLive:b},`ag-${c}`)}let{msg:d,idx:e}=a;return"banner_orch"===d.kind?(0,v.jsxs)("div",{className:"rounded-xl border border-emerald-700/50 bg-emerald-900/20 overflow-hidden",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2.5 px-4 py-3 border-b border-emerald-700/30",children:[(0,v.jsx)(W,{size:15,className:"text-emerald-400 shrink-0"}),(0,v.jsxs)("div",{className:"min-w-0",children:[(0,v.jsx)("p",{className:"text-sm font-semibold text-emerald-300",children:"Orchestration built!"}),(0,v.jsxs)("p",{className:"text-[11px] text-emerald-600 truncate",children:["“",d.bannerText,"” is ready in the canvas"]})]})]}),(0,v.jsx)("div",{className:"px-4 py-2.5",children:(0,v.jsxs)("button",{onClick:b,className:"flex items-center gap-1.5 text-[11px] text-emerald-400 hover:text-emerald-300 transition-colors font-medium",children:["View in Canvas ",(0,v.jsx)(oG,{size:11})]})})]},e):"banner_agent"===d.kind?(0,v.jsx)("div",{className:"flex justify-center",children:(0,v.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 rounded-full bg-zinc-800/60 border border-zinc-700/40 text-zinc-500 text-[10px]",children:[(0,v.jsx)(W,{size:10,className:"text-emerald-500"}),d.bannerText]})},e):"human_prompt"===d.kind?(0,v.jsx)(oJ,{content:d.content},e):"user"===d.role?(0,v.jsx)("div",{className:"flex justify-end",children:(0,v.jsx)("div",{className:"max-w-[80%] px-4 py-2.5 rounded-2xl rounded-br-sm bg-blue-600 text-white text-sm whitespace-pre-wrap",children:d.content})},e):(0,v.jsx)("div",{className:"flex justify-start",children:(0,v.jsx)("div",{className:"max-w-[88%] px-4 py-3 rounded-2xl rounded-bl-sm bg-zinc-800/80 text-zinc-200 text-sm",children:(0,au.renderTextContent)(d.content)})},e)})),x&&z&&(0,v.jsxs)("div",{className:"flex items-center gap-2 pl-1",children:[(0,v.jsx)("div",{className:"w-1.5 h-1.5 rounded-full bg-purple-500/70 animate-pulse shrink-0"}),(0,v.jsx)("span",{className:"text-[11px] text-zinc-500 font-mono",children:z})]}),(0,v.jsx)("div",{ref:G})]}),(0,v.jsxs)("div",{className:"border-t border-zinc-800 shrink-0",children:[(0,v.jsxs)("button",{className:"w-full flex items-center justify-between px-5 py-2.5 hover:bg-zinc-900/60 transition-colors",onClick:()=>C(a=>!a),children:[(0,v.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,v.jsx)(D.Bot,{size:13,className:"text-zinc-500 shrink-0"}),0!==K.length||p?(0,v.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[K.map(a=>(0,v.jsx)("span",{className:"text-[11px] px-2 py-0.5 rounded-full bg-purple-900/50 text-purple-300 border border-purple-700/40",children:a},a)),p&&(0,v.jsxs)("span",{className:"text-[11px] px-2 py-0.5 rounded-full bg-emerald-900/50 text-emerald-400 border border-emerald-700/40 flex items-center gap-1",children:[(0,v.jsx)(ac.Plus,{size:9})," new agents"]})]}):(0,v.jsx)("span",{className:"text-xs text-zinc-500",children:"Select agents to include"})]}),B?(0,v.jsx)(ae.ChevronDown,{size:13,className:"text-zinc-500 shrink-0 ml-2"}):(0,v.jsx)(aE,{size:13,className:"text-zinc-500 shrink-0 ml-2"})]}),B&&(0,v.jsxs)("div",{className:"px-4 pb-3 pt-1 max-h-56 overflow-y-auto border-t border-zinc-800/60",children:[(0,v.jsxs)("button",{onClick:()=>q(a=>!a),className:`mb-2 w-full flex items-center gap-2.5 px-3 py-2 rounded-lg border text-left transition-all ${p?"bg-emerald-900/30 border-emerald-600/60 ring-1 ring-emerald-600/30":"bg-zinc-900 border-zinc-700/60 hover:border-zinc-600 hover:bg-zinc-800/60"}`,children:[(0,v.jsx)("div",{className:`w-3.5 h-3.5 rounded border flex items-center justify-center shrink-0 transition-colors ${p?"bg-emerald-600 border-emerald-600":"border-zinc-600"}`,children:p&&(0,v.jsx)("svg",{width:"8",height:"6",viewBox:"0 0 8 6",fill:"none",children:(0,v.jsx)("path",{d:"M1 3L3 5L7 1",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,v.jsx)("span",{className:"text-xs text-zinc-400",children:"Create new agents if needed"})]}),0===J.length?(0,v.jsx)("p",{className:"text-xs text-zinc-600 px-1",children:"No agents configured yet."}):(0,v.jsx)("div",{className:"grid grid-cols-2 gap-2",children:J.map(a=>{let b=n.has(a.id);return(0,v.jsxs)("button",{onClick:()=>{var b;return b=a.id,void o(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:`flex items-start gap-2.5 px-3 py-2.5 rounded-lg border text-left transition-all ${b?"bg-purple-900/30 border-purple-600/60 ring-1 ring-purple-600/30":"bg-zinc-900 border-zinc-700/60 hover:border-zinc-600 hover:bg-zinc-800/60"}`,children:[(0,v.jsx)("div",{className:`mt-0.5 w-3.5 h-3.5 rounded border flex items-center justify-center shrink-0 transition-colors ${b?"bg-purple-600 border-purple-600":"border-zinc-600"}`,children:b&&(0,v.jsx)("svg",{width:"8",height:"6",viewBox:"0 0 8 6",fill:"none",children:(0,v.jsx)("path",{d:"M1 3L3 5L7 1",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,v.jsxs)("div",{className:"min-w-0",children:[(0,v.jsx)("p",{className:"text-xs font-medium text-zinc-200 truncate",children:a.name}),a.description?(0,v.jsx)("p",{className:"text-[10px] text-zinc-500 mt-0.5 line-clamp-2 leading-relaxed",children:a.description}):(0,v.jsx)("span",{className:`text-[10px] px-1.5 py-0.5 rounded border mt-0.5 inline-block ${oI[a.type||"conversational"]??"bg-zinc-800 text-zinc-400 border-zinc-700/40"}`,children:a.type||"conversational"})]})]},a.id)})})]})]}),(0,v.jsxs)("div",{className:"px-4 pb-4 pt-3 border-t border-zinc-800 shrink-0 space-y-2.5",children:[(0,v.jsxs)("div",{className:"flex items-end gap-2",children:[(0,v.jsx)("textarea",{ref:H,value:t,onChange:a=>u(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||(a.preventDefault(),I())},placeholder:E?"Answer the question above…":"Describe what you want to build…",rows:2,disabled:x,className:"flex-1 bg-zinc-900 border border-zinc-700 rounded-xl px-3.5 py-2.5 text-sm text-zinc-200 placeholder-zinc-600 outline-none focus:border-purple-500/60 resize-none disabled:opacity-50 transition-colors font-sans"}),(0,v.jsx)("button",{onClick:I,disabled:!t.trim()||x,className:"flex items-center justify-center w-9 h-9 rounded-xl bg-purple-600 hover:bg-purple-500 disabled:opacity-40 disabled:cursor-not-allowed text-white transition-colors shrink-0",children:x?(0,v.jsx)(Q.Loader2,{size:15,className:"animate-spin"}):(0,v.jsx)(oF.Send,{size:15})})]}),(0,v.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,v.jsx)("span",{className:"text-[10px] text-zinc-600 shrink-0",children:"Model"}),(0,v.jsxs)("select",{value:r,onChange:a=>s(a.target.value),className:"bg-transparent text-[10px] text-zinc-500 hover:text-zinc-300 outline-none cursor-pointer transition-colors max-w-[160px] truncate",children:[(0,v.jsx)("option",{value:"",className:"bg-zinc-900 text-zinc-300",children:"Default"}),d.map(a=>(0,v.jsx)("option",{value:a,className:"bg-zinc-900 text-zinc-300",children:a},a))]}),(0,v.jsx)("span",{className:"text-[10px] text-zinc-700 ml-auto",children:"Enter to send · Shift+Enter for newline"})]})]})]}):null}let oN={agent:{label:"Agent",color:"#3b82f6",icon:"Bot"},llm:{label:"LLM",color:"#14b8a6",icon:"Zap"},tool:{label:"Tool",color:"#a855f7",icon:"Wrench"},evaluator:{label:"Evaluator",color:"#10b981",icon:"Scale"},parallel:{label:"Parallel",color:"#8b5cf6",icon:"GitBranch"},merge:{label:"Merge",color:"#ec4899",icon:"GitMerge"},loop:{label:"Loop",color:"#f59e0b",icon:"RefreshCw"},human:{label:"Human",color:"#ef4444",icon:"User"},transform:{label:"Transform",color:"#6366f1",icon:"Code"},end:{label:"End",color:"#6b7280",icon:"Square"}};function oO(a){if("string"==typeof a||"number"==typeof a)return""+a;let b="";if(Array.isArray(a))for(let c=0,d;c<a.length;c++)""!==(d=oO(a[c]))&&(b+=(b&&" ")+d);else for(let c in a)a[c]&&(b+=(b&&" ")+c);return b}var oP={value:()=>{}};function oQ(){for(var a,b=0,c=arguments.length,d={};b<c;++b){if(!(a=arguments[b]+"")||a in d||/[\s.]/.test(a))throw Error("illegal type: "+a);d[a]=[]}return new oR(d)}function oR(a){this._=a}function oS(a,b,c){for(var d=0,e=a.length;d<e;++d)if(a[d].name===b){a[d]=oP,a=a.slice(0,d).concat(a.slice(d+1));break}return null!=c&&a.push({name:b,value:c}),a}function oT(){}function oU(a){return null==a?oT:function(){return this.querySelector(a)}}function oV(){return[]}function oW(a){return null==a?oV:function(){return this.querySelectorAll(a)}}function oX(a){return function(){return this.matches(a)}}function oY(a){return function(b){return b.matches(a)}}oR.prototype=oQ.prototype={constructor:oR,on:function(a,b){var c,d=this._,e=(a+"").trim().split(/^|\s+/).map(function(a){var b="",c=a.indexOf(".");if(c>=0&&(b=a.slice(c+1),a=a.slice(0,c)),a&&!d.hasOwnProperty(a))throw Error("unknown type: "+a);return{type:a,name:b}}),f=-1,g=e.length;if(arguments.length<2){for(;++f<g;)if((c=(a=e[f]).type)&&(c=function(a,b){for(var c,d=0,e=a.length;d<e;++d)if((c=a[d]).name===b)return c.value}(d[c],a.name)))return c;return}if(null!=b&&"function"!=typeof b)throw Error("invalid callback: "+b);for(;++f<g;)if(c=(a=e[f]).type)d[c]=oS(d[c],a.name,b);else if(null==b)for(c in d)d[c]=oS(d[c],a.name,null);return this},copy:function(){var a={},b=this._;for(var c in b)a[c]=b[c].slice();return new oR(a)},call:function(a,b){if((c=arguments.length-2)>0)for(var c,d,e=Array(c),f=0;f<c;++f)e[f]=arguments[f+2];if(!this._.hasOwnProperty(a))throw Error("unknown type: "+a);for(d=this._[a],f=0,c=d.length;f<c;++f)d[f].value.apply(b,e)},apply:function(a,b,c){if(!this._.hasOwnProperty(a))throw Error("unknown type: "+a);for(var d=this._[a],e=0,f=d.length;e<f;++e)d[e].value.apply(b,c)}};var oZ=Array.prototype.find;function o$(){return this.firstElementChild}var o_=Array.prototype.filter;function o0(){return Array.from(this.children)}function o1(a){return Array(a.length)}function o2(a,b){this.ownerDocument=a.ownerDocument,this.namespaceURI=a.namespaceURI,this._next=null,this._parent=a,this.__data__=b}function o3(a,b,c,d,e,f){for(var g,h=0,i=b.length,j=f.length;h<j;++h)(g=b[h])?(g.__data__=f[h],d[h]=g):c[h]=new o2(a,f[h]);for(;h<i;++h)(g=b[h])&&(e[h]=g)}function o4(a,b,c,d,e,f,g){var h,i,j,k=new Map,l=b.length,m=f.length,n=Array(l);for(h=0;h<l;++h)(i=b[h])&&(n[h]=j=g.call(i,i.__data__,h,b)+"",k.has(j)?e[h]=i:k.set(j,i));for(h=0;h<m;++h)j=g.call(a,f[h],h,f)+"",(i=k.get(j))?(d[h]=i,i.__data__=f[h],k.delete(j)):c[h]=new o2(a,f[h]);for(h=0;h<l;++h)(i=b[h])&&k.get(n[h])===i&&(e[h]=i)}function o5(a){return a.__data__}function o6(a,b){return a<b?-1:a>b?1:a>=b?0:NaN}o2.prototype={constructor:o2,appendChild:function(a){return this._parent.insertBefore(a,this._next)},insertBefore:function(a,b){return this._parent.insertBefore(a,b)},querySelector:function(a){return this._parent.querySelector(a)},querySelectorAll:function(a){return this._parent.querySelectorAll(a)}};var o7="http://www.w3.org/1999/xhtml";let o8={svg:"http://www.w3.org/2000/svg",xhtml:o7,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function o9(a){var b=a+="",c=b.indexOf(":");return c>=0&&"xmlns"!==(b=a.slice(0,c))&&(a=a.slice(c+1)),o8.hasOwnProperty(b)?{space:o8[b],local:a}:a}function pa(a){return a.ownerDocument&&a.ownerDocument.defaultView||a.document&&a||a.defaultView}function pb(a,b){return a.style.getPropertyValue(b)||pa(a).getComputedStyle(a,null).getPropertyValue(b)}function pc(a){return a.trim().split(/^|\s+/)}function pd(a){return a.classList||new pe(a)}function pe(a){this._node=a,this._names=pc(a.getAttribute("class")||"")}function pf(a,b){for(var c=pd(a),d=-1,e=b.length;++d<e;)c.add(b[d])}function pg(a,b){for(var c=pd(a),d=-1,e=b.length;++d<e;)c.remove(b[d])}function ph(){this.textContent=""}function pi(){this.innerHTML=""}function pj(){this.nextSibling&&this.parentNode.appendChild(this)}function pk(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function pl(a){var b=o9(a);return(b.local?function(a){return function(){return this.ownerDocument.createElementNS(a.space,a.local)}}:function(a){return function(){var b=this.ownerDocument,c=this.namespaceURI;return c===o7&&b.documentElement.namespaceURI===o7?b.createElement(a):b.createElementNS(c,a)}})(b)}function pm(){return null}function pn(){var a=this.parentNode;a&&a.removeChild(this)}function po(){var a=this.cloneNode(!1),b=this.parentNode;return b?b.insertBefore(a,this.nextSibling):a}function pp(){var a=this.cloneNode(!0),b=this.parentNode;return b?b.insertBefore(a,this.nextSibling):a}function pq(a){return function(){var b=this.__on;if(b){for(var c,d=0,e=-1,f=b.length;d<f;++d)(c=b[d],a.type&&c.type!==a.type||c.name!==a.name)?b[++e]=c:this.removeEventListener(c.type,c.listener,c.options);++e?b.length=e:delete this.__on}}}function pr(a,b,c){return function(){var d,e=this.__on,f=function(a){b.call(this,a,this.__data__)};if(e){for(var g=0,h=e.length;g<h;++g)if((d=e[g]).type===a.type&&d.name===a.name){this.removeEventListener(d.type,d.listener,d.options),this.addEventListener(d.type,d.listener=f,d.options=c),d.value=b;return}}this.addEventListener(a.type,f,c),d={type:a.type,name:a.name,value:b,listener:f,options:c},e?e.push(d):this.__on=[d]}}function ps(a,b,c){var d=pa(a),e=d.CustomEvent;"function"==typeof e?e=new e(b,c):(e=d.document.createEvent("Event"),c?(e.initEvent(b,c.bubbles,c.cancelable),e.detail=c.detail):e.initEvent(b,!1,!1)),a.dispatchEvent(e)}pe.prototype={add:function(a){0>this._names.indexOf(a)&&(this._names.push(a),this._node.setAttribute("class",this._names.join(" ")))},remove:function(a){var b=this._names.indexOf(a);b>=0&&(this._names.splice(b,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(a){return this._names.indexOf(a)>=0}};var pt=[null];function pu(a,b){this._groups=a,this._parents=b}function pv(){return new pu([[document.documentElement]],pt)}function pw(a){return"string"==typeof a?new pu([[document.querySelector(a)]],[document.documentElement]):new pu([[a]],pt)}function px(a,b){if(a=function(a){let b;for(;b=a.sourceEvent;)a=b;return a}(a),void 0===b&&(b=a.currentTarget),b){var c=b.ownerSVGElement||b;if(c.createSVGPoint){var d=c.createSVGPoint();return d.x=a.clientX,d.y=a.clientY,[(d=d.matrixTransform(b.getScreenCTM().inverse())).x,d.y]}if(b.getBoundingClientRect){var e=b.getBoundingClientRect();return[a.clientX-e.left-b.clientLeft,a.clientY-e.top-b.clientTop]}}return[a.pageX,a.pageY]}pu.prototype=pv.prototype={constructor:pu,select:function(a){"function"!=typeof a&&(a=oU(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g,h=b[e],i=h.length,j=d[e]=Array(i),k=0;k<i;++k)(f=h[k])&&(g=a.call(f,f.__data__,k,h))&&("__data__"in f&&(g.__data__=f.__data__),j[k]=g);return new pu(d,this._parents)},selectAll:function(a){if("function"==typeof a){var b;b=a,a=function(){var a;return a=b.apply(this,arguments),null==a?[]:Array.isArray(a)?a:Array.from(a)}}else a=oW(a);for(var c=this._groups,d=c.length,e=[],f=[],g=0;g<d;++g)for(var h,i=c[g],j=i.length,k=0;k<j;++k)(h=i[k])&&(e.push(a.call(h,h.__data__,k,i)),f.push(h));return new pu(e,f)},selectChild:function(a){var b;return this.select(null==a?o$:(b="function"==typeof a?a:oY(a),function(){return oZ.call(this.children,b)}))},selectChildren:function(a){var b;return this.selectAll(null==a?o0:(b="function"==typeof a?a:oY(a),function(){return o_.call(this.children,b)}))},filter:function(a){"function"!=typeof a&&(a=oX(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g=b[e],h=g.length,i=d[e]=[],j=0;j<h;++j)(f=g[j])&&a.call(f,f.__data__,j,g)&&i.push(f);return new pu(d,this._parents)},data:function(a,b){if(!arguments.length)return Array.from(this,o5);var c=b?o4:o3,d=this._parents,e=this._groups;"function"!=typeof a&&(s=a,a=function(){return s});for(var f=e.length,g=Array(f),h=Array(f),i=Array(f),j=0;j<f;++j){var k=d[j],l=e[j],m=l.length,n="object"==typeof(r=a.call(k,k&&k.__data__,j,d))&&"length"in r?r:Array.from(r),o=n.length,p=h[j]=Array(o),q=g[j]=Array(o);c(k,l,p,q,i[j]=Array(m),n,b);for(var r,s,t,u,v=0,w=0;v<o;++v)if(t=p[v]){for(v>=w&&(w=v+1);!(u=q[w])&&++w<o;);t._next=u||null}}return(g=new pu(g,d))._enter=h,g._exit=i,g},enter:function(){return new pu(this._enter||this._groups.map(o1),this._parents)},exit:function(){return new pu(this._exit||this._groups.map(o1),this._parents)},join:function(a,b,c){var d=this.enter(),e=this,f=this.exit();return"function"==typeof a?(d=a(d))&&(d=d.selection()):d=d.append(a+""),null!=b&&(e=b(e))&&(e=e.selection()),null==c?f.remove():c(f),d&&e?d.merge(e).order():e},merge:function(a){for(var b=a.selection?a.selection():a,c=this._groups,d=b._groups,e=c.length,f=d.length,g=Math.min(e,f),h=Array(e),i=0;i<g;++i)for(var j,k=c[i],l=d[i],m=k.length,n=h[i]=Array(m),o=0;o<m;++o)(j=k[o]||l[o])&&(n[o]=j);for(;i<e;++i)h[i]=c[i];return new pu(h,this._parents)},selection:function(){return this},order:function(){for(var a=this._groups,b=-1,c=a.length;++b<c;)for(var d,e=a[b],f=e.length-1,g=e[f];--f>=0;)(d=e[f])&&(g&&4^d.compareDocumentPosition(g)&&g.parentNode.insertBefore(d,g),g=d);return this},sort:function(a){function b(b,c){return b&&c?a(b.__data__,c.__data__):!b-!c}a||(a=o6);for(var c=this._groups,d=c.length,e=Array(d),f=0;f<d;++f){for(var g,h=c[f],i=h.length,j=e[f]=Array(i),k=0;k<i;++k)(g=h[k])&&(j[k]=g);j.sort(b)}return new pu(e,this._parents).order()},call:function(){var a=arguments[0];return arguments[0]=this,a.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var a=this._groups,b=0,c=a.length;b<c;++b)for(var d=a[b],e=0,f=d.length;e<f;++e){var g=d[e];if(g)return g}return null},size:function(){let a=0;for(let b of this)++a;return a},empty:function(){return!this.node()},each:function(a){for(var b=this._groups,c=0,d=b.length;c<d;++c)for(var e,f=b[c],g=0,h=f.length;g<h;++g)(e=f[g])&&a.call(e,e.__data__,g,f);return this},attr:function(a,b){var c=o9(a);if(arguments.length<2){var d=this.node();return c.local?d.getAttributeNS(c.space,c.local):d.getAttribute(c)}return this.each((null==b?c.local?function(a){return function(){this.removeAttributeNS(a.space,a.local)}}:function(a){return function(){this.removeAttribute(a)}}:"function"==typeof b?c.local?function(a,b){return function(){var c=b.apply(this,arguments);null==c?this.removeAttributeNS(a.space,a.local):this.setAttributeNS(a.space,a.local,c)}}:function(a,b){return function(){var c=b.apply(this,arguments);null==c?this.removeAttribute(a):this.setAttribute(a,c)}}:c.local?function(a,b){return function(){this.setAttributeNS(a.space,a.local,b)}}:function(a,b){return function(){this.setAttribute(a,b)}})(c,b))},style:function(a,b,c){return arguments.length>1?this.each((null==b?function(a){return function(){this.style.removeProperty(a)}}:"function"==typeof b?function(a,b,c){return function(){var d=b.apply(this,arguments);null==d?this.style.removeProperty(a):this.style.setProperty(a,d,c)}}:function(a,b,c){return function(){this.style.setProperty(a,b,c)}})(a,b,null==c?"":c)):pb(this.node(),a)},property:function(a,b){return arguments.length>1?this.each((null==b?function(a){return function(){delete this[a]}}:"function"==typeof b?function(a,b){return function(){var c=b.apply(this,arguments);null==c?delete this[a]:this[a]=c}}:function(a,b){return function(){this[a]=b}})(a,b)):this.node()[a]},classed:function(a,b){var c=pc(a+"");if(arguments.length<2){for(var d=pd(this.node()),e=-1,f=c.length;++e<f;)if(!d.contains(c[e]))return!1;return!0}return this.each(("function"==typeof b?function(a,b){return function(){(b.apply(this,arguments)?pf:pg)(this,a)}}:b?function(a){return function(){pf(this,a)}}:function(a){return function(){pg(this,a)}})(c,b))},text:function(a){return arguments.length?this.each(null==a?ph:("function"==typeof a?function(a){return function(){var b=a.apply(this,arguments);this.textContent=null==b?"":b}}:function(a){return function(){this.textContent=a}})(a)):this.node().textContent},html:function(a){return arguments.length?this.each(null==a?pi:("function"==typeof a?function(a){return function(){var b=a.apply(this,arguments);this.innerHTML=null==b?"":b}}:function(a){return function(){this.innerHTML=a}})(a)):this.node().innerHTML},raise:function(){return this.each(pj)},lower:function(){return this.each(pk)},append:function(a){var b="function"==typeof a?a:pl(a);return this.select(function(){return this.appendChild(b.apply(this,arguments))})},insert:function(a,b){var c="function"==typeof a?a:pl(a),d=null==b?pm:"function"==typeof b?b:oU(b);return this.select(function(){return this.insertBefore(c.apply(this,arguments),d.apply(this,arguments)||null)})},remove:function(){return this.each(pn)},clone:function(a){return this.select(a?pp:po)},datum:function(a){return arguments.length?this.property("__data__",a):this.node().__data__},on:function(a,b,c){var d,e,f=(a+"").trim().split(/^|\s+/).map(function(a){var b="",c=a.indexOf(".");return c>=0&&(b=a.slice(c+1),a=a.slice(0,c)),{type:a,name:b}}),g=f.length;if(arguments.length<2){var h=this.node().__on;if(h){for(var i,j=0,k=h.length;j<k;++j)for(d=0,i=h[j];d<g;++d)if((e=f[d]).type===i.type&&e.name===i.name)return i.value}return}for(d=0,h=b?pr:pq;d<g;++d)this.each(h(f[d],b,c));return this},dispatch:function(a,b){return this.each(("function"==typeof b?function(a,b){return function(){return ps(this,a,b.apply(this,arguments))}}:function(a,b){return function(){return ps(this,a,b)}})(a,b))},[Symbol.iterator]:function*(){for(var a=this._groups,b=0,c=a.length;b<c;++b)for(var d,e=a[b],f=0,g=e.length;f<g;++f)(d=e[f])&&(yield d)}};let py={passive:!1},pz={capture:!0,passive:!1};function pA(a){a.stopImmediatePropagation()}function pB(a){a.preventDefault(),a.stopImmediatePropagation()}function pC(a){var b=a.document.documentElement,c=pw(a).on("dragstart.drag",pB,pz);"onselectstart"in b?c.on("selectstart.drag",pB,pz):(b.__noselect=b.style.MozUserSelect,b.style.MozUserSelect="none")}function pD(a,b){var c=a.document.documentElement,d=pw(a).on("dragstart.drag",null);b&&(d.on("click.drag",pB,pz),setTimeout(function(){d.on("click.drag",null)},0)),"onselectstart"in c?d.on("selectstart.drag",null):(c.style.MozUserSelect=c.__noselect,delete c.__noselect)}let pE=a=>()=>a;function pF(a,{sourceEvent:b,subject:c,target:d,identifier:e,active:f,x:g,y:h,dx:i,dy:j,dispatch:k}){Object.defineProperties(this,{type:{value:a,enumerable:!0,configurable:!0},sourceEvent:{value:b,enumerable:!0,configurable:!0},subject:{value:c,enumerable:!0,configurable:!0},target:{value:d,enumerable:!0,configurable:!0},identifier:{value:e,enumerable:!0,configurable:!0},active:{value:f,enumerable:!0,configurable:!0},x:{value:g,enumerable:!0,configurable:!0},y:{value:h,enumerable:!0,configurable:!0},dx:{value:i,enumerable:!0,configurable:!0},dy:{value:j,enumerable:!0,configurable:!0},_:{value:k}})}function pG(a){return!a.ctrlKey&&!a.button}function pH(){return this.parentNode}function pI(a,b){return null==b?{x:a.x,y:a.y}:b}function pJ(){return navigator.maxTouchPoints||"ontouchstart"in this}function pK(){var a,b,c,d,e=pG,f=pH,g=pI,h=pJ,i={},j=oQ("start","drag","end"),k=0,l=0;function m(a){a.on("mousedown.drag",n).filter(h).on("touchstart.drag",q).on("touchmove.drag",r,py).on("touchend.drag touchcancel.drag",s).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function n(g,h){if(!d&&e.call(this,g,h)){var i=t(this,f.call(this,g,h),g,h,"mouse");i&&(pw(g.view).on("mousemove.drag",o,pz).on("mouseup.drag",p,pz),pC(g.view),pA(g),c=!1,a=g.clientX,b=g.clientY,i("start",g))}}function o(d){if(pB(d),!c){var e=d.clientX-a,f=d.clientY-b;c=e*e+f*f>l}i.mouse("drag",d)}function p(a){pw(a.view).on("mousemove.drag mouseup.drag",null),pD(a.view,c),pB(a),i.mouse("end",a)}function q(a,b){if(e.call(this,a,b)){var c,d,g=a.changedTouches,h=f.call(this,a,b),i=g.length;for(c=0;c<i;++c)(d=t(this,h,a,b,g[c].identifier,g[c]))&&(pA(a),d("start",a,g[c]))}}function r(a){var b,c,d=a.changedTouches,e=d.length;for(b=0;b<e;++b)(c=i[d[b].identifier])&&(pB(a),c("drag",a,d[b]))}function s(a){var b,c,e=a.changedTouches,f=e.length;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),b=0;b<f;++b)(c=i[e[b].identifier])&&(pA(a),c("end",a,e[b]))}function t(a,b,c,d,e,f){var h,l,n,o=j.copy(),p=px(f||c,b);if(null!=(n=g.call(a,new pF("beforestart",{sourceEvent:c,target:m,identifier:e,active:k,x:p[0],y:p[1],dx:0,dy:0,dispatch:o}),d)))return h=n.x-p[0]||0,l=n.y-p[1]||0,function c(f,g,j){var q,r=p;switch(f){case"start":i[e]=c,q=k++;break;case"end":delete i[e],--k;case"drag":p=px(j||g,b),q=k}o.call(f,a,new pF(f,{sourceEvent:g,subject:n,target:m,identifier:e,active:q,x:p[0]+h,y:p[1]+l,dx:p[0]-r[0],dy:p[1]-r[1],dispatch:o}),d)}}return m.filter=function(a){return arguments.length?(e="function"==typeof a?a:pE(!!a),m):e},m.container=function(a){return arguments.length?(f="function"==typeof a?a:pE(a),m):f},m.subject=function(a){return arguments.length?(g="function"==typeof a?a:pE(a),m):g},m.touchable=function(a){return arguments.length?(h="function"==typeof a?a:pE(!!a),m):h},m.on=function(){var a=j.on.apply(j,arguments);return a===j?m:a},m.clickDistance=function(a){return arguments.length?(l=(a*=1)*a,m):Math.sqrt(l)},m}function pL(a){return((a=Math.exp(a))+1/a)/2}pF.prototype.on=function(){var a=this._.on.apply(this._,arguments);return a===this._?this:a};let pM=function a(b,c,d){function e(a,e){var f,g,h=a[0],i=a[1],j=a[2],k=e[0],l=e[1],m=e[2],n=k-h,o=l-i,p=n*n+o*o;if(p<1e-12)g=Math.log(m/j)/b,f=function(a){return[h+a*n,i+a*o,j*Math.exp(b*a*g)]};else{var q=Math.sqrt(p),r=(m*m-j*j+d*p)/(2*j*c*q),s=(m*m-j*j-d*p)/(2*m*c*q),t=Math.log(Math.sqrt(r*r+1)-r);g=(Math.log(Math.sqrt(s*s+1)-s)-t)/b,f=function(a){var d,e,f=a*g,k=pL(t),l=j/(c*q)*(k*(((d=Math.exp(2*(d=b*f+t)))-1)/(d+1))-((e=Math.exp(e=t))-1/e)/2);return[h+l*n,i+l*o,j*k/pL(b*f+t)]}}return f.duration=1e3*g*b/Math.SQRT2,f}return e.rho=function(b){var c=Math.max(.001,+b),d=c*c;return a(c,d,d*d)},e}(Math.SQRT2,2,4);var pN,pO,pP,pQ,pR,pS,pT,pU,pV,pW,pX,pY=0,pZ=0,p$=0,p_=0,p0=0,p1=0,p2="object"==typeof performance&&performance.now?performance:Date,p3=function(a){setTimeout(a,17)};function p4(){return p0||(p3(p5),p0=p2.now()+p1)}function p5(){p0=0}function p6(){this._call=this._time=this._next=null}function p7(a,b,c){var d=new p6;return d.restart(a,b,c),d}function p8(){p0=(p_=p2.now())+p1,pY=pZ=0;try{p4(),++pY;for(var a,b=pW;b;)(a=p0-b._time)>=0&&b._call.call(void 0,a),b=b._next;--pY}finally{pY=0,function(){for(var a,b,c=pW,d=1/0;c;)c._call?(d>c._time&&(d=c._time),a=c,c=c._next):(b=c._next,c._next=null,c=a?a._next=b:pW=b);pX=a,qa(d)}(),p0=0}}function p9(){var a=p2.now(),b=a-p_;b>1e3&&(p1-=b,p_=a)}function qa(a){!pY&&(pZ&&(pZ=clearTimeout(pZ)),a-p0>24?(a<1/0&&(pZ=setTimeout(p8,a-p2.now()-p1)),p$&&(p$=clearInterval(p$))):(p$||(p_=p2.now(),p$=setInterval(p9,1e3)),pY=1,p3(p8)))}function qb(a,b,c){var d=new p6;return b=null==b?0:+b,d.restart(c=>{d.stop(),a(c+b)},b,c),d}p6.prototype=p7.prototype={constructor:p6,restart:function(a,b,c){if("function"!=typeof a)throw TypeError("callback is not a function");c=(null==c?p4():+c)+(null==b?0:+b),this._next||pX===this||(pX?pX._next=this:pW=this,pX=this),this._call=a,this._time=c,qa()},stop:function(){this._call&&(this._call=null,this._time=1/0,qa())}};var qc=oQ("start","end","cancel","interrupt"),qd=[];function qe(a,b,c,d,e,f){var g=a.__transition;if(g){if(c in g)return}else a.__transition={};!function(a,b,c){var d,e=a.__transition;function f(i){var j,k,l,m;if(1!==c.state)return h();for(j in e)if((m=e[j]).name===c.name){if(3===m.state)return qb(f);4===m.state?(m.state=6,m.timer.stop(),m.on.call("interrupt",a,a.__data__,m.index,m.group),delete e[j]):+j<b&&(m.state=6,m.timer.stop(),m.on.call("cancel",a,a.__data__,m.index,m.group),delete e[j])}if(qb(function(){3===c.state&&(c.state=4,c.timer.restart(g,c.delay,c.time),g(i))}),c.state=2,c.on.call("start",a,a.__data__,c.index,c.group),2===c.state){for(j=0,c.state=3,d=Array(l=c.tween.length),k=-1;j<l;++j)(m=c.tween[j].value.call(a,a.__data__,c.index,c.group))&&(d[++k]=m);d.length=k+1}}function g(b){for(var e=b<c.duration?c.ease.call(null,b/c.duration):(c.timer.restart(h),c.state=5,1),f=-1,g=d.length;++f<g;)d[f].call(a,e);5===c.state&&(c.on.call("end",a,a.__data__,c.index,c.group),h())}function h(){for(var d in c.state=6,c.timer.stop(),delete e[b],e)return;delete a.__transition}e[b]=c,c.timer=p7(function(a){c.state=1,c.timer.restart(f,c.delay,c.time),c.delay<=a&&f(a-c.delay)},0,c.time)}(a,c,{name:b,index:d,group:e,on:qc,tween:qd,time:f.time,delay:f.delay,duration:f.duration,ease:f.ease,timer:null,state:0})}function qf(a,b){var c=qh(a,b);if(c.state>0)throw Error("too late; already scheduled");return c}function qg(a,b){var c=qh(a,b);if(c.state>3)throw Error("too late; already running");return c}function qh(a,b){var c=a.__transition;if(!c||!(c=c[b]))throw Error("transition not found");return c}function qi(a,b){var c,d,e,f=a.__transition,g=!0;if(f){for(e in b=null==b?null:b+"",f){if((c=f[e]).name!==b){g=!1;continue}d=c.state>2&&c.state<5,c.state=6,c.timer.stop(),c.on.call(d?"interrupt":"cancel",a,a.__data__,c.index,c.group),delete f[e]}g&&delete a.__transition}}function qj(a,b){return a*=1,b*=1,function(c){return a*(1-c)+b*c}}var qk=180/Math.PI,ql={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function qm(a,b,c,d,e,f){var g,h,i;return(g=Math.sqrt(a*a+b*b))&&(a/=g,b/=g),(i=a*c+b*d)&&(c-=a*i,d-=b*i),(h=Math.sqrt(c*c+d*d))&&(c/=h,d/=h,i/=h),a*d<b*c&&(a=-a,b=-b,i=-i,g=-g),{translateX:e,translateY:f,rotate:Math.atan2(b,a)*qk,skewX:Math.atan(i)*qk,scaleX:g,scaleY:h}}function qn(a,b,c,d){function e(a){return a.length?a.pop()+" ":""}return function(f,g){var h,i,j,k,l=[],m=[];return f=a(f),g=a(g),!function(a,d,e,f,g,h){if(a!==e||d!==f){var i=g.push("translate(",null,b,null,c);h.push({i:i-4,x:qj(a,e)},{i:i-2,x:qj(d,f)})}else(e||f)&&g.push("translate("+e+b+f+c)}(f.translateX,f.translateY,g.translateX,g.translateY,l,m),h=f.rotate,i=g.rotate,h!==i?(h-i>180?i+=360:i-h>180&&(h+=360),m.push({i:l.push(e(l)+"rotate(",null,d)-2,x:qj(h,i)})):i&&l.push(e(l)+"rotate("+i+d),j=f.skewX,k=g.skewX,j!==k?m.push({i:l.push(e(l)+"skewX(",null,d)-2,x:qj(j,k)}):k&&l.push(e(l)+"skewX("+k+d),!function(a,b,c,d,f,g){if(a!==c||b!==d){var h=f.push(e(f)+"scale(",null,",",null,")");g.push({i:h-4,x:qj(a,c)},{i:h-2,x:qj(b,d)})}else(1!==c||1!==d)&&f.push(e(f)+"scale("+c+","+d+")")}(f.scaleX,f.scaleY,g.scaleX,g.scaleY,l,m),f=g=null,function(a){for(var b,c=-1,d=m.length;++c<d;)l[(b=m[c]).i]=b.x(a);return l.join("")}}}var qo=qn(function(a){let b=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(a+"");return b.isIdentity?ql:qm(b.a,b.b,b.c,b.d,b.e,b.f)},"px, ","px)","deg)"),qp=qn(function(a){return null==a?ql:(m||(m=document.createElementNS("http://www.w3.org/2000/svg","g")),m.setAttribute("transform",a),a=m.transform.baseVal.consolidate())?qm((a=a.matrix).a,a.b,a.c,a.d,a.e,a.f):ql},", ",")",")");function qq(a,b,c){var d=a._id;return a.each(function(){var a=qg(this,d);(a.value||(a.value={}))[b]=c.apply(this,arguments)}),function(a){return qh(a,d).value[b]}}function qr(a,b,c){a.prototype=b.prototype=c,c.constructor=a}function qs(a,b){var c=Object.create(a.prototype);for(var d in b)c[d]=b[d];return c}function qt(){}var qu="\\s*([+-]?\\d+)\\s*",qv="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",qw="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",qx=/^#([0-9a-f]{3,8})$/,qy=RegExp(`^rgb\\(${qu},${qu},${qu}\\)$`),qz=RegExp(`^rgb\\(${qw},${qw},${qw}\\)$`),qA=RegExp(`^rgba\\(${qu},${qu},${qu},${qv}\\)$`),qB=RegExp(`^rgba\\(${qw},${qw},${qw},${qv}\\)$`),qC=RegExp(`^hsl\\(${qv},${qw},${qw}\\)$`),qD=RegExp(`^hsla\\(${qv},${qw},${qw},${qv}\\)$`),qE={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function qF(){return this.rgb().formatHex()}function qG(){return this.rgb().formatRgb()}function qH(a){var b,c;return a=(a+"").trim().toLowerCase(),(b=qx.exec(a))?(c=b[1].length,b=parseInt(b[1],16),6===c?qI(b):3===c?new qL(b>>8&15|b>>4&240,b>>4&15|240&b,(15&b)<<4|15&b,1):8===c?qJ(b>>24&255,b>>16&255,b>>8&255,(255&b)/255):4===c?qJ(b>>12&15|b>>8&240,b>>8&15|b>>4&240,b>>4&15|240&b,((15&b)<<4|15&b)/255):null):(b=qy.exec(a))?new qL(b[1],b[2],b[3],1):(b=qz.exec(a))?new qL(255*b[1]/100,255*b[2]/100,255*b[3]/100,1):(b=qA.exec(a))?qJ(b[1],b[2],b[3],b[4]):(b=qB.exec(a))?qJ(255*b[1]/100,255*b[2]/100,255*b[3]/100,b[4]):(b=qC.exec(a))?qR(b[1],b[2]/100,b[3]/100,1):(b=qD.exec(a))?qR(b[1],b[2]/100,b[3]/100,b[4]):qE.hasOwnProperty(a)?qI(qE[a]):"transparent"===a?new qL(NaN,NaN,NaN,0):null}function qI(a){return new qL(a>>16&255,a>>8&255,255&a,1)}function qJ(a,b,c,d){return d<=0&&(a=b=c=NaN),new qL(a,b,c,d)}function qK(a,b,c,d){var e;return 1==arguments.length?((e=a)instanceof qt||(e=qH(e)),e)?new qL((e=e.rgb()).r,e.g,e.b,e.opacity):new qL:new qL(a,b,c,null==d?1:d)}function qL(a,b,c,d){this.r=+a,this.g=+b,this.b=+c,this.opacity=+d}function qM(){return`#${qQ(this.r)}${qQ(this.g)}${qQ(this.b)}`}function qN(){let a=qO(this.opacity);return`${1===a?"rgb(":"rgba("}${qP(this.r)}, ${qP(this.g)}, ${qP(this.b)}${1===a?")":`, ${a})`}`}function qO(a){return isNaN(a)?1:Math.max(0,Math.min(1,a))}function qP(a){return Math.max(0,Math.min(255,Math.round(a)||0))}function qQ(a){return((a=qP(a))<16?"0":"")+a.toString(16)}function qR(a,b,c,d){return d<=0?a=b=c=NaN:c<=0||c>=1?a=b=NaN:b<=0&&(a=NaN),new qT(a,b,c,d)}function qS(a){if(a instanceof qT)return new qT(a.h,a.s,a.l,a.opacity);if(a instanceof qt||(a=qH(a)),!a)return new qT;if(a instanceof qT)return a;var b=(a=a.rgb()).r/255,c=a.g/255,d=a.b/255,e=Math.min(b,c,d),f=Math.max(b,c,d),g=NaN,h=f-e,i=(f+e)/2;return h?(g=b===f?(c-d)/h+(c<d)*6:c===f?(d-b)/h+2:(b-c)/h+4,h/=i<.5?f+e:2-f-e,g*=60):h=i>0&&i<1?0:g,new qT(g,h,i,a.opacity)}function qT(a,b,c,d){this.h=+a,this.s=+b,this.l=+c,this.opacity=+d}function qU(a){return(a=(a||0)%360)<0?a+360:a}function qV(a){return Math.max(0,Math.min(1,a||0))}function qW(a,b,c){return(a<60?b+(c-b)*a/60:a<180?c:a<240?b+(c-b)*(240-a)/60:b)*255}function qX(a,b,c,d,e){var f=a*a,g=f*a;return((1-3*a+3*f-g)*b+(4-6*f+3*g)*c+(1+3*a+3*f-3*g)*d+g*e)/6}qr(qt,qH,{copy(a){return Object.assign(new this.constructor,this,a)},displayable(){return this.rgb().displayable()},hex:qF,formatHex:qF,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return qS(this).formatHsl()},formatRgb:qG,toString:qG}),qr(qL,qK,qs(qt,{brighter(a){return a=null==a?1.4285714285714286:Math.pow(1.4285714285714286,a),new qL(this.r*a,this.g*a,this.b*a,this.opacity)},darker(a){return a=null==a?.7:Math.pow(.7,a),new qL(this.r*a,this.g*a,this.b*a,this.opacity)},rgb(){return this},clamp(){return new qL(qP(this.r),qP(this.g),qP(this.b),qO(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:qM,formatHex:qM,formatHex8:function(){return`#${qQ(this.r)}${qQ(this.g)}${qQ(this.b)}${qQ((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:qN,toString:qN})),qr(qT,function(a,b,c,d){return 1==arguments.length?qS(a):new qT(a,b,c,null==d?1:d)},qs(qt,{brighter(a){return a=null==a?1.4285714285714286:Math.pow(1.4285714285714286,a),new qT(this.h,this.s,this.l*a,this.opacity)},darker(a){return a=null==a?.7:Math.pow(.7,a),new qT(this.h,this.s,this.l*a,this.opacity)},rgb(){var a=this.h%360+(this.h<0)*360,b=isNaN(a)||isNaN(this.s)?0:this.s,c=this.l,d=c+(c<.5?c:1-c)*b,e=2*c-d;return new qL(qW(a>=240?a-240:a+120,e,d),qW(a,e,d),qW(a<120?a+240:a-120,e,d),this.opacity)},clamp(){return new qT(qU(this.h),qV(this.s),qV(this.l),qO(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 a=qO(this.opacity);return`${1===a?"hsl(":"hsla("}${qU(this.h)}, ${100*qV(this.s)}%, ${100*qV(this.l)}%${1===a?")":`, ${a})`}`}}));let qY=a=>()=>a;function qZ(a,b){var c=b-a;return c?function(b){return a+b*c}:qY(isNaN(a)?b:a)}let q$=function a(b){var c,d=1==(c=+b)?qZ:function(a,b){var d,e,f;return b-a?(d=a,e=b,d=Math.pow(d,f=c),e=Math.pow(e,f)-d,f=1/f,function(a){return Math.pow(d+a*e,f)}):qY(isNaN(a)?b:a)};function e(a,b){var c=d((a=qK(a)).r,(b=qK(b)).r),e=d(a.g,b.g),f=d(a.b,b.b),g=qZ(a.opacity,b.opacity);return function(b){return a.r=c(b),a.g=e(b),a.b=f(b),a.opacity=g(b),a+""}}return e.gamma=a,e}(1);function q_(a){return function(b){var c,d,e=b.length,f=Array(e),g=Array(e),h=Array(e);for(c=0;c<e;++c)d=qK(b[c]),f[c]=d.r||0,g[c]=d.g||0,h[c]=d.b||0;return f=a(f),g=a(g),h=a(h),d.opacity=1,function(a){return d.r=f(a),d.g=g(a),d.b=h(a),d+""}}}q_(function(a){var b=a.length-1;return function(c){var d=c<=0?c=0:c>=1?(c=1,b-1):Math.floor(c*b),e=a[d],f=a[d+1],g=d>0?a[d-1]:2*e-f,h=d<b-1?a[d+2]:2*f-e;return qX((c-d/b)*b,g,e,f,h)}}),q_(function(a){var b=a.length;return function(c){var d=Math.floor(((c%=1)<0?++c:c)*b),e=a[(d+b-1)%b],f=a[d%b],g=a[(d+1)%b],h=a[(d+2)%b];return qX((c-d/b)*b,e,f,g,h)}});var q0=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,q1=RegExp(q0.source,"g");function q2(a,b){var c,d,e,f,g,h=q0.lastIndex=q1.lastIndex=0,i=-1,j=[],k=[];for(a+="",b+="";(e=q0.exec(a))&&(f=q1.exec(b));)(g=f.index)>h&&(g=b.slice(h,g),j[i]?j[i]+=g:j[++i]=g),(e=e[0])===(f=f[0])?j[i]?j[i]+=f:j[++i]=f:(j[++i]=null,k.push({i:i,x:qj(e,f)})),h=q1.lastIndex;return h<b.length&&(g=b.slice(h),j[i]?j[i]+=g:j[++i]=g),j.length<2?k[0]?(c=k[0].x,function(a){return c(a)+""}):(d=b,function(){return d}):(b=k.length,function(a){for(var c,d=0;d<b;++d)j[(c=k[d]).i]=c.x(a);return j.join("")})}function q3(a,b){var c;return("number"==typeof b?qj:b instanceof qH?q$:(c=qH(b))?(b=c,q$):q2)(a,b)}var q4=pv.prototype.constructor;function q5(a){return function(){this.style.removeProperty(a)}}var q6=0;function q7(a,b,c,d){this._groups=a,this._parents=b,this._name=c,this._id=d}var q8=pv.prototype;q7.prototype=(function(a){return pv().transition(a)}).prototype={constructor:q7,select:function(a){var b=this._name,c=this._id;"function"!=typeof a&&(a=oU(a));for(var d=this._groups,e=d.length,f=Array(e),g=0;g<e;++g)for(var h,i,j=d[g],k=j.length,l=f[g]=Array(k),m=0;m<k;++m)(h=j[m])&&(i=a.call(h,h.__data__,m,j))&&("__data__"in h&&(i.__data__=h.__data__),l[m]=i,qe(l[m],b,c,m,l,qh(h,c)));return new q7(f,this._parents,b,c)},selectAll:function(a){var b=this._name,c=this._id;"function"!=typeof a&&(a=oW(a));for(var d=this._groups,e=d.length,f=[],g=[],h=0;h<e;++h)for(var i,j=d[h],k=j.length,l=0;l<k;++l)if(i=j[l]){for(var m,n=a.call(i,i.__data__,l,j),o=qh(i,c),p=0,q=n.length;p<q;++p)(m=n[p])&&qe(m,b,c,p,n,o);f.push(n),g.push(i)}return new q7(f,g,b,c)},selectChild:q8.selectChild,selectChildren:q8.selectChildren,filter:function(a){"function"!=typeof a&&(a=oX(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g=b[e],h=g.length,i=d[e]=[],j=0;j<h;++j)(f=g[j])&&a.call(f,f.__data__,j,g)&&i.push(f);return new q7(d,this._parents,this._name,this._id)},merge:function(a){if(a._id!==this._id)throw Error();for(var b=this._groups,c=a._groups,d=b.length,e=c.length,f=Math.min(d,e),g=Array(d),h=0;h<f;++h)for(var i,j=b[h],k=c[h],l=j.length,m=g[h]=Array(l),n=0;n<l;++n)(i=j[n]||k[n])&&(m[n]=i);for(;h<d;++h)g[h]=b[h];return new q7(g,this._parents,this._name,this._id)},selection:function(){return new q4(this._groups,this._parents)},transition:function(){for(var a=this._name,b=this._id,c=++q6,d=this._groups,e=d.length,f=0;f<e;++f)for(var g,h=d[f],i=h.length,j=0;j<i;++j)if(g=h[j]){var k=qh(g,b);qe(g,a,c,j,h,{time:k.time+k.delay+k.duration,delay:0,duration:k.duration,ease:k.ease})}return new q7(d,this._parents,a,c)},call:q8.call,nodes:q8.nodes,node:q8.node,size:q8.size,empty:q8.empty,each:q8.each,on:function(a,b){var c,d,e,f,g,h,i=this._id;return arguments.length<2?qh(this.node(),i).on.on(a):this.each((c=i,d=a,e=b,h=(d+"").trim().split(/^|\s+/).every(function(a){var b=a.indexOf(".");return b>=0&&(a=a.slice(0,b)),!a||"start"===a})?qf:qg,function(){var a=h(this,c),b=a.on;b!==f&&(g=(f=b).copy()).on(d,e),a.on=g}))},attr:function(a,b){var c=o9(a),d="transform"===c?qp:q3;return this.attrTween(a,"function"==typeof b?(c.local?function(a,b,c){var d,e,f;return function(){var g,h,i=c(this);return null==i?void this.removeAttributeNS(a.space,a.local):(g=this.getAttributeNS(a.space,a.local))===(h=i+"")?null:g===d&&h===e?f:(e=h,f=b(d=g,i))}}:function(a,b,c){var d,e,f;return function(){var g,h,i=c(this);return null==i?void this.removeAttribute(a):(g=this.getAttribute(a))===(h=i+"")?null:g===d&&h===e?f:(e=h,f=b(d=g,i))}})(c,d,qq(this,"attr."+a,b)):null==b?(c.local?function(a){return function(){this.removeAttributeNS(a.space,a.local)}}:function(a){return function(){this.removeAttribute(a)}})(c):(c.local?function(a,b,c){var d,e,f=c+"";return function(){var g=this.getAttributeNS(a.space,a.local);return g===f?null:g===d?e:e=b(d=g,c)}}:function(a,b,c){var d,e,f=c+"";return function(){var g=this.getAttribute(a);return g===f?null:g===d?e:e=b(d=g,c)}})(c,d,b))},attrTween:function(a,b){var c="attr."+a;if(arguments.length<2)return(c=this.tween(c))&&c._value;if(null==b)return this.tween(c,null);if("function"!=typeof b)throw Error();var d=o9(a);return this.tween(c,(d.local?function(a,b){var c,d;function e(){var e=b.apply(this,arguments);return e!==d&&(c=(d=e)&&function(b){this.setAttributeNS(a.space,a.local,e.call(this,b))}),c}return e._value=b,e}:function(a,b){var c,d;function e(){var e=b.apply(this,arguments);return e!==d&&(c=(d=e)&&function(b){this.setAttribute(a,e.call(this,b))}),c}return e._value=b,e})(d,b))},style:function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y="transform"==(a+="")?qo:q3;return null==b?this.styleTween(a,(d=a,function(){var a=pb(this,d),b=(this.style.removeProperty(d),pb(this,d));return a===b?null:a===e&&b===f?g:g=y(e=a,f=b)})).on("end.style."+a,q5(a)):"function"==typeof b?this.styleTween(a,(h=a,i=qq(this,"style."+a,b),function(){var a=pb(this,h),b=i(this),c=b+"";return null==b&&(this.style.removeProperty(h),c=b=pb(this,h)),a===c?null:a===j&&c===k?l:(k=c,l=y(j=a,b))})).each((m=this._id,t="end."+(s="style."+(n=a)),function(){var a=qg(this,m),b=a.on,c=null==a.value[s]?r||(r=q5(n)):void 0;(b!==o||q!==c)&&(p=(o=b).copy()).on(t,q=c),a.on=p})):this.styleTween(a,(u=a,x=b+"",function(){var a=pb(this,u);return a===x?null:a===v?w:w=y(v=a,b)}),c).on("end.style."+a,null)},styleTween:function(a,b,c){var d="style."+(a+="");if(arguments.length<2)return(d=this.tween(d))&&d._value;if(null==b)return this.tween(d,null);if("function"!=typeof b)throw Error();return this.tween(d,function(a,b,c){var d,e;function f(){var f=b.apply(this,arguments);return f!==e&&(d=(e=f)&&function(b){this.style.setProperty(a,f.call(this,b),c)}),d}return f._value=b,f}(a,b,null==c?"":c))},text:function(a){var b,c;return this.tween("text","function"==typeof a?(b=qq(this,"text",a),function(){var a=b(this);this.textContent=null==a?"":a}):(c=null==a?"":a+"",function(){this.textContent=c}))},textTween:function(a){var b="text";if(arguments.length<1)return(b=this.tween(b))&&b._value;if(null==a)return this.tween(b,null);if("function"!=typeof a)throw Error();return this.tween(b,function(a){var b,c;function d(){var d=a.apply(this,arguments);return d!==c&&(b=(c=d)&&function(a){this.textContent=d.call(this,a)}),b}return d._value=a,d}(a))},remove:function(){var a;return this.on("end.remove",(a=this._id,function(){var b=this.parentNode;for(var c in this.__transition)if(+c!==a)return;b&&b.removeChild(this)}))},tween:function(a,b){var c=this._id;if(a+="",arguments.length<2){for(var d,e=qh(this.node(),c).tween,f=0,g=e.length;f<g;++f)if((d=e[f]).name===a)return d.value;return null}return this.each((null==b?function(a,b){var c,d;return function(){var e=qg(this,a),f=e.tween;if(f!==c){d=c=f;for(var g=0,h=d.length;g<h;++g)if(d[g].name===b){(d=d.slice()).splice(g,1);break}}e.tween=d}}:function(a,b,c){var d,e;if("function"!=typeof c)throw Error();return function(){var f=qg(this,a),g=f.tween;if(g!==d){e=(d=g).slice();for(var h={name:b,value:c},i=0,j=e.length;i<j;++i)if(e[i].name===b){e[i]=h;break}i===j&&e.push(h)}f.tween=e}})(c,a,b))},delay:function(a){var b=this._id;return arguments.length?this.each(("function"==typeof a?function(a,b){return function(){qf(this,a).delay=+b.apply(this,arguments)}}:function(a,b){return b*=1,function(){qf(this,a).delay=b}})(b,a)):qh(this.node(),b).delay},duration:function(a){var b=this._id;return arguments.length?this.each(("function"==typeof a?function(a,b){return function(){qg(this,a).duration=+b.apply(this,arguments)}}:function(a,b){return b*=1,function(){qg(this,a).duration=b}})(b,a)):qh(this.node(),b).duration},ease:function(a){var b=this._id;return arguments.length?this.each(function(a,b){if("function"!=typeof b)throw Error();return function(){qg(this,a).ease=b}}(b,a)):qh(this.node(),b).ease},easeVarying:function(a){var b;if("function"!=typeof a)throw Error();return this.each((b=this._id,function(){var c=a.apply(this,arguments);if("function"!=typeof c)throw Error();qg(this,b).ease=c}))},end:function(){var a,b,c=this,d=c._id,e=c.size();return new Promise(function(f,g){var h={value:g},i={value:function(){0==--e&&f()}};c.each(function(){var c=qg(this,d),e=c.on;e!==a&&((b=(a=e).copy())._.cancel.push(h),b._.interrupt.push(h),b._.end.push(i)),c.on=b}),0===e&&f()})},[Symbol.iterator]:q8[Symbol.iterator]};var q9={time:null,delay:0,duration:250,ease:function(a){return((a*=2)<=1?a*a*a:(a-=2)*a*a+2)/2}};pv.prototype.interrupt=function(a){return this.each(function(){qi(this,a)})},pv.prototype.transition=function(a){var b,c;a instanceof q7?(b=a._id,a=a._name):(b=++q6,(c=q9).time=p4(),a=null==a?null:a+"");for(var d=this._groups,e=d.length,f=0;f<e;++f)for(var g,h=d[f],i=h.length,j=0;j<i;++j)(g=h[j])&&qe(g,a,b,j,h,c||function(a,b){for(var c;!(c=a.__transition)||!(c=c[b]);)if(!(a=a.parentNode))throw Error(`transition ${b} not found`);return c}(g,b));return new q7(d,this._parents,a,b)};let ra=a=>()=>a;function rb(a,{sourceEvent:b,target:c,transform:d,dispatch:e}){Object.defineProperties(this,{type:{value:a,enumerable:!0,configurable:!0},sourceEvent:{value:b,enumerable:!0,configurable:!0},target:{value:c,enumerable:!0,configurable:!0},transform:{value:d,enumerable:!0,configurable:!0},_:{value:e}})}function rc(a,b,c){this.k=a,this.x=b,this.y=c}rc.prototype={constructor:rc,scale:function(a){return 1===a?this:new rc(this.k*a,this.x,this.y)},translate:function(a,b){return 0===a&0===b?this:new rc(this.k,this.x+this.k*a,this.y+this.k*b)},apply:function(a){return[a[0]*this.k+this.x,a[1]*this.k+this.y]},applyX:function(a){return a*this.k+this.x},applyY:function(a){return a*this.k+this.y},invert:function(a){return[(a[0]-this.x)/this.k,(a[1]-this.y)/this.k]},invertX:function(a){return(a-this.x)/this.k},invertY:function(a){return(a-this.y)/this.k},rescaleX:function(a){return a.copy().domain(a.range().map(this.invertX,this).map(a.invert,a))},rescaleY:function(a){return a.copy().domain(a.range().map(this.invertY,this).map(a.invert,a))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var rd=new rc(1,0,0);function re(a){for(;!a.__zoom;)if(!(a=a.parentNode))return rd;return a.__zoom}function rf(a){a.stopImmediatePropagation()}function rg(a){a.preventDefault(),a.stopImmediatePropagation()}function rh(a){return(!a.ctrlKey||"wheel"===a.type)&&!a.button}function ri(){var a=this;return a instanceof SVGElement?(a=a.ownerSVGElement||a).hasAttribute("viewBox")?[[(a=a.viewBox.baseVal).x,a.y],[a.x+a.width,a.y+a.height]]:[[0,0],[a.width.baseVal.value,a.height.baseVal.value]]:[[0,0],[a.clientWidth,a.clientHeight]]}function rj(){return this.__zoom||rd}function rk(a){return-a.deltaY*(1===a.deltaMode?.05:a.deltaMode?1:.002)*(a.ctrlKey?10:1)}function rl(){return navigator.maxTouchPoints||"ontouchstart"in this}function rm(a,b,c){var d=a.invertX(b[0][0])-c[0][0],e=a.invertX(b[1][0])-c[1][0],f=a.invertY(b[0][1])-c[0][1],g=a.invertY(b[1][1])-c[1][1];return a.translate(e>d?(d+e)/2:Math.min(0,d)||Math.max(0,e),g>f?(f+g)/2:Math.min(0,f)||Math.max(0,g))}function rn(){var a,b,c,d=rh,e=ri,f=rm,g=rk,h=rl,i=[0,1/0],j=[[-1/0,-1/0],[1/0,1/0]],k=250,l=pM,m=oQ("start","zoom","end"),n=0,o=10;function p(a){a.property("__zoom",rj).on("wheel.zoom",w,{passive:!1}).on("mousedown.zoom",x).on("dblclick.zoom",y).filter(h).on("touchstart.zoom",z).on("touchmove.zoom",A).on("touchend.zoom touchcancel.zoom",B).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function q(a,b){return(b=Math.max(i[0],Math.min(i[1],b)))===a.k?a:new rc(b,a.x,a.y)}function r(a,b,c){var d=b[0]-c[0]*a.k,e=b[1]-c[1]*a.k;return d===a.x&&e===a.y?a:new rc(a.k,d,e)}function s(a){return[(+a[0][0]+ +a[1][0])/2,(+a[0][1]+ +a[1][1])/2]}function t(a,b,c,d){a.on("start.zoom",function(){u(this,arguments).event(d).start()}).on("interrupt.zoom end.zoom",function(){u(this,arguments).event(d).end()}).tween("zoom",function(){var a=arguments,f=u(this,a).event(d),g=e.apply(this,a),h=null==c?s(g):"function"==typeof c?c.apply(this,a):c,i=Math.max(g[1][0]-g[0][0],g[1][1]-g[0][1]),j=this.__zoom,k="function"==typeof b?b.apply(this,a):b,m=l(j.invert(h).concat(i/j.k),k.invert(h).concat(i/k.k));return function(a){if(1===a)a=k;else{var b=m(a),c=i/b[2];a=new rc(c,h[0]-b[0]*c,h[1]-b[1]*c)}f.zoom(null,a)}})}function u(a,b,c){return!c&&a.__zooming||new v(a,b)}function v(a,b){this.that=a,this.args=b,this.active=0,this.sourceEvent=null,this.extent=e.apply(a,b),this.taps=0}function w(a,...b){if(d.apply(this,arguments)){var c=u(this,b).event(a),e=this.__zoom,h=Math.max(i[0],Math.min(i[1],e.k*Math.pow(2,g.apply(this,arguments)))),k=px(a);if(c.wheel)(c.mouse[0][0]!==k[0]||c.mouse[0][1]!==k[1])&&(c.mouse[1]=e.invert(c.mouse[0]=k)),clearTimeout(c.wheel);else{if(e.k===h)return;c.mouse=[k,e.invert(k)],qi(this),c.start()}rg(a),c.wheel=setTimeout(function(){c.wheel=null,c.end()},150),c.zoom("mouse",f(r(q(e,h),c.mouse[0],c.mouse[1]),c.extent,j))}}function x(a,...b){if(!c&&d.apply(this,arguments)){var e=a.currentTarget,g=u(this,b,!0).event(a),h=pw(a.view).on("mousemove.zoom",function(a){if(rg(a),!g.moved){var b=a.clientX-k,c=a.clientY-l;g.moved=b*b+c*c>n}g.event(a).zoom("mouse",f(r(g.that.__zoom,g.mouse[0]=px(a,e),g.mouse[1]),g.extent,j))},!0).on("mouseup.zoom",function(a){h.on("mousemove.zoom mouseup.zoom",null),pD(a.view,g.moved),rg(a),g.event(a).end()},!0),i=px(a,e),k=a.clientX,l=a.clientY;pC(a.view),rf(a),g.mouse=[i,this.__zoom.invert(i)],qi(this),g.start()}}function y(a,...b){if(d.apply(this,arguments)){var c=this.__zoom,g=px(a.changedTouches?a.changedTouches[0]:a,this),h=c.invert(g),i=c.k*(a.shiftKey?.5:2),l=f(r(q(c,i),g,h),e.apply(this,b),j);rg(a),k>0?pw(this).transition().duration(k).call(t,l,g,a):pw(this).call(p.transform,l,g,a)}}function z(c,...e){if(d.apply(this,arguments)){var f,g,h,i,j=c.touches,k=j.length,l=u(this,e,c.changedTouches.length===k).event(c);for(rf(c),g=0;g<k;++g)i=[i=px(h=j[g],this),this.__zoom.invert(i),h.identifier],l.touch0?l.touch1||l.touch0[2]===i[2]||(l.touch1=i,l.taps=0):(l.touch0=i,f=!0,l.taps=1+!!a);a&&(a=clearTimeout(a)),f&&(l.taps<2&&(b=i[0],a=setTimeout(function(){a=null},500)),qi(this),l.start())}}function A(a,...b){if(this.__zooming){var c,d,e,g,h=u(this,b).event(a),i=a.changedTouches,k=i.length;for(rg(a),c=0;c<k;++c)e=px(d=i[c],this),h.touch0&&h.touch0[2]===d.identifier?h.touch0[0]=e:h.touch1&&h.touch1[2]===d.identifier&&(h.touch1[0]=e);if(d=h.that.__zoom,h.touch1){var l=h.touch0[0],m=h.touch0[1],n=h.touch1[0],o=h.touch1[1],p=(p=n[0]-l[0])*p+(p=n[1]-l[1])*p,s=(s=o[0]-m[0])*s+(s=o[1]-m[1])*s;d=q(d,Math.sqrt(p/s)),e=[(l[0]+n[0])/2,(l[1]+n[1])/2],g=[(m[0]+o[0])/2,(m[1]+o[1])/2]}else{if(!h.touch0)return;e=h.touch0[0],g=h.touch0[1]}h.zoom("touch",f(r(d,e,g),h.extent,j))}}function B(a,...d){if(this.__zooming){var e,f,g=u(this,d).event(a),h=a.changedTouches,i=h.length;for(rf(a),c&&clearTimeout(c),c=setTimeout(function(){c=null},500),e=0;e<i;++e)f=h[e],g.touch0&&g.touch0[2]===f.identifier?delete g.touch0:g.touch1&&g.touch1[2]===f.identifier&&delete g.touch1;if(g.touch1&&!g.touch0&&(g.touch0=g.touch1,delete g.touch1),g.touch0)g.touch0[1]=this.__zoom.invert(g.touch0[0]);else if(g.end(),2===g.taps&&(f=px(f,this),Math.hypot(b[0]-f[0],b[1]-f[1])<o)){var j=pw(this).on("dblclick.zoom");j&&j.apply(this,arguments)}}}return p.transform=function(a,b,c,d){var e=a.selection?a.selection():a;e.property("__zoom",rj),a!==e?t(a,b,c,d):e.interrupt().each(function(){u(this,arguments).event(d).start().zoom(null,"function"==typeof b?b.apply(this,arguments):b).end()})},p.scaleBy=function(a,b,c,d){p.scaleTo(a,function(){var a=this.__zoom.k,c="function"==typeof b?b.apply(this,arguments):b;return a*c},c,d)},p.scaleTo=function(a,b,c,d){p.transform(a,function(){var a=e.apply(this,arguments),d=this.__zoom,g=null==c?s(a):"function"==typeof c?c.apply(this,arguments):c,h=d.invert(g),i="function"==typeof b?b.apply(this,arguments):b;return f(r(q(d,i),g,h),a,j)},c,d)},p.translateBy=function(a,b,c,d){p.transform(a,function(){return f(this.__zoom.translate("function"==typeof b?b.apply(this,arguments):b,"function"==typeof c?c.apply(this,arguments):c),e.apply(this,arguments),j)},null,d)},p.translateTo=function(a,b,c,d,g){p.transform(a,function(){var a=e.apply(this,arguments),g=this.__zoom,h=null==d?s(a):"function"==typeof d?d.apply(this,arguments):d;return f(rd.translate(h[0],h[1]).scale(g.k).translate("function"==typeof b?-b.apply(this,arguments):-b,"function"==typeof c?-c.apply(this,arguments):-c),a,j)},d,g)},v.prototype={event:function(a){return a&&(this.sourceEvent=a),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(a,b){return this.mouse&&"mouse"!==a&&(this.mouse[1]=b.invert(this.mouse[0])),this.touch0&&"touch"!==a&&(this.touch0[1]=b.invert(this.touch0[0])),this.touch1&&"touch"!==a&&(this.touch1[1]=b.invert(this.touch1[0])),this.that.__zoom=b,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(a){var b=pw(this.that).datum();m.call(a,this.that,new rb(a,{sourceEvent:this.sourceEvent,target:p,type:a,transform:this.that.__zoom,dispatch:m}),b)}},p.wheelDelta=function(a){return arguments.length?(g="function"==typeof a?a:ra(+a),p):g},p.filter=function(a){return arguments.length?(d="function"==typeof a?a:ra(!!a),p):d},p.touchable=function(a){return arguments.length?(h="function"==typeof a?a:ra(!!a),p):h},p.extent=function(a){return arguments.length?(e="function"==typeof a?a:ra([[+a[0][0],+a[0][1]],[+a[1][0],+a[1][1]]]),p):e},p.scaleExtent=function(a){return arguments.length?(i[0]=+a[0],i[1]=+a[1],p):[i[0],i[1]]},p.translateExtent=function(a){return arguments.length?(j[0][0]=+a[0][0],j[1][0]=+a[1][0],j[0][1]=+a[0][1],j[1][1]=+a[1][1],p):[[j[0][0],j[0][1]],[j[1][0],j[1][1]]]},p.constrain=function(a){return arguments.length?(f=a,p):f},p.duration=function(a){return arguments.length?(k=+a,p):k},p.interpolate=function(a){return arguments.length?(l=a,p):l},p.on=function(){var a=m.on.apply(m,arguments);return a===m?p:a},p.clickDistance=function(a){return arguments.length?(n=(a*=1)*a,p):Math.sqrt(n)},p.tapDistance=function(a){return arguments.length?(o=+a,p):o},p}function ro(a,b){var c,d,e=typeof b;return null==b||"boolean"===e?qY(b):("number"===e?qj:"string"===e?(d=qH(b))?(b=d,q$):q2:b instanceof qH?q$:b instanceof Date?function(a,b){var c=new Date;return a*=1,b*=1,function(d){return c.setTime(a*(1-d)+b*d),c}}:!ArrayBuffer.isView(c=b)||c instanceof DataView?Array.isArray(b)?function(a,b){var c,d=b?b.length:0,e=a?Math.min(d,a.length):0,f=Array(e),g=Array(d);for(c=0;c<e;++c)f[c]=ro(a[c],b[c]);for(;c<d;++c)g[c]=b[c];return function(a){for(c=0;c<e;++c)g[c]=f[c](a);return g}}:"function"!=typeof b.valueOf&&"function"!=typeof b.toString||isNaN(b)?function(a,b){var c,d={},e={};for(c in(null===a||"object"!=typeof a)&&(a={}),(null===b||"object"!=typeof b)&&(b={}),b)c in a?d[c]=ro(a[c],b[c]):e[c]=b[c];return function(a){for(c in d)e[c]=d[c](a);return e}}:qj:function(a,b){b||(b=[]);var c,d=a?Math.min(b.length,a.length):0,e=b.slice();return function(f){for(c=0;c<d;++c)e[c]=a[c]*(1-f)+b[c]*f;return e}})(a,b)}re.prototype=rc.prototype;let rp=[[-1/0,-1/0],[1/0,1/0]],rq=["Enter"," ","Escape"],rr={"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:a,x:b,y:c})=>`Moved selected node ${a}. New position, x: ${b}, y: ${c}`,"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"};(e=n||(n={})).Strict="strict",e.Loose="loose",(f=o||(o={})).Free="free",f.Vertical="vertical",f.Horizontal="horizontal",(g=p||(p={})).Partial="partial",g.Full="full";let rs={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};(h=q||(q={})).Bezier="default",h.Straight="straight",h.Step="step",h.SmoothStep="smoothstep",h.SimpleBezier="simplebezier",(i=r||(r={})).Arrow="arrow",i.ArrowClosed="arrowclosed",(j=s||(s={})).Left="left",j.Top="top",j.Right="right",j.Bottom="bottom";let rt={[s.Left]:s.Right,[s.Right]:s.Left,[s.Top]:s.Bottom,[s.Bottom]:s.Top};function ru(a){return null===a?null:a?"valid":"invalid"}let rv=a=>"id"in a&&"source"in a&&"target"in a,rw=a=>"id"in a&&"internals"in a&&!("source"in a)&&!("target"in a),rx=(a,b=[0,0])=>{let{width:c,height:d}=rZ(a),e=a.origin??b,f=c*e[0],g=d*e[1];return{x:a.position.x-f,y:a.position.y-g}},ry=(a,b={})=>{let c={x:1/0,y:1/0,x2:-1/0,y2:-1/0},d=!1;return a.forEach(a=>{(void 0===b.filter||b.filter(a))&&(c=rI(c,rM(a)),d=!0)}),d?rK(c):{x:0,y:0,width:0,height:0}},rz=(a,b,[c,d,e]=[0,0,1],f=!1,g=!1)=>{let h={...rT(b,[c,d,e]),width:b.width/e,height:b.height/e},i=[];for(let b of a.values()){let{measured:a,selectable:c=!0,hidden:d=!1}=b;if(g&&!c||d)continue;let e=a.width??b.width??b.initialWidth??null,j=a.height??b.height??b.initialHeight??null,k=rO(h,rL(b)),l=(e??0)*(j??0),m=f&&k>0;(!b.internals.handleBounds||m||k>=l||b.dragging)&&i.push(b)}return i};async function rA({nodes:a,width:b,height:c,panZoom:d,minZoom:e,maxZoom:f},g){let h,i;if(0===a.size)return Promise.resolve(!0);let j=rW(ry((h=new Map,i=g?.nodes?new Set(g.nodes.map(a=>a.id)):null,a.forEach(a=>{a.measured.width&&a.measured.height&&(g?.includeHiddenNodes||!a.hidden)&&(!i||i.has(a.id))&&h.set(a.id,a)}),h)),b,c,g?.minZoom??e,g?.maxZoom??f,g?.padding??.1);return await d.setViewport(j,{duration:g?.duration,ease:g?.ease,interpolate:g?.interpolate}),Promise.resolve(!0)}function rB({nodeId:a,nextPosition:b,nodeLookup:c,nodeOrigin:d=[0,0],nodeExtent:e,onError:f}){let g=c.get(a),h=g.parentId?c.get(g.parentId):void 0,{x:i,y:j}=h?h.internals.positionAbsolute:{x:0,y:0},k=g.origin??d,l=g.extent||e;if("parent"!==g.extent||g.expandParent)h&&rY(g.extent)&&(l=[[g.extent[0][0]+i,g.extent[0][1]+j],[g.extent[1][0]+i,g.extent[1][1]+j]]);else if(h){let a=h.measured.width,b=h.measured.height;a&&b&&(l=[[i,j],[i+a,j+b]])}else f?.("005","Only child nodes can use a parent extent.");let m=rY(l)?rE(b,l,g.measured):b;return(void 0===g.measured.width||void 0===g.measured.height)&&f?.("015","It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."),{position:{x:m.x-i+(g.measured.width??0)*k[0],y:m.y-j+(g.measured.height??0)*k[1]},positionAbsolute:m}}async function rC({nodesToRemove:a=[],edgesToRemove:b=[],nodes:c,edges:d,onBeforeDelete:e}){let f,g=new Set(a.map(a=>a.id)),h=[];for(let a of c){if(!1===a.deletable)continue;let b=g.has(a.id),c=!b&&a.parentId&&h.find(b=>b.id===a.parentId);(b||c)&&h.push(a)}let i=new Set(b.map(a=>a.id)),j=d.filter(a=>!1!==a.deletable),k=(f=new Set,h.forEach(a=>{f.add(a.id)}),j.filter(a=>f.has(a.source)||f.has(a.target)));for(let a of j)i.has(a.id)&&!k.find(b=>b.id===a.id)&&k.push(a);if(!e)return{edges:k,nodes:h};let l=await e({nodes:h,edges:k});return"boolean"==typeof l?l?{edges:k,nodes:h}:{edges:[],nodes:[]}:l}let rD=(a,b=0,c=1)=>Math.min(Math.max(a,b),c),rE=(a={x:0,y:0},b,c)=>({x:rD(a.x,b[0][0],b[1][0]-(c?.width??0)),y:rD(a.y,b[0][1],b[1][1]-(c?.height??0))});function rF(a,b,c){let{width:d,height:e}=rZ(c),{x:f,y:g}=c.internals.positionAbsolute;return rE(a,[[f,g],[f+d,g+e]],b)}let rG=(a,b,c)=>a<b?rD(Math.abs(a-b),1,b)/b:a>c?-rD(Math.abs(a-c),1,b)/b:0,rH=(a,b,c=15,d=40)=>[rG(a.x,d,b.width-d)*c,rG(a.y,d,b.height-d)*c],rI=(a,b)=>({x:Math.min(a.x,b.x),y:Math.min(a.y,b.y),x2:Math.max(a.x2,b.x2),y2:Math.max(a.y2,b.y2)}),rJ=({x:a,y:b,width:c,height:d})=>({x:a,y:b,x2:a+c,y2:b+d}),rK=({x:a,y:b,x2:c,y2:d})=>({x:a,y:b,width:c-a,height:d-b}),rL=(a,b=[0,0])=>{let{x:c,y:d}=rw(a)?a.internals.positionAbsolute:rx(a,b);return{x:c,y:d,width:a.measured?.width??a.width??a.initialWidth??0,height:a.measured?.height??a.height??a.initialHeight??0}},rM=(a,b=[0,0])=>{let{x:c,y:d}=rw(a)?a.internals.positionAbsolute:rx(a,b);return{x:c,y:d,x2:c+(a.measured?.width??a.width??a.initialWidth??0),y2:d+(a.measured?.height??a.height??a.initialHeight??0)}},rN=(a,b)=>rK(rI(rJ(a),rJ(b))),rO=(a,b)=>Math.ceil(Math.max(0,Math.min(a.x+a.width,b.x+b.width)-Math.max(a.x,b.x))*Math.max(0,Math.min(a.y+a.height,b.y+b.height)-Math.max(a.y,b.y))),rP=a=>rQ(a.width)&&rQ(a.height)&&rQ(a.x)&&rQ(a.y),rQ=a=>!isNaN(a)&&isFinite(a),rR=(a,b)=>{},rS=(a,b=[1,1])=>({x:b[0]*Math.round(a.x/b[0]),y:b[1]*Math.round(a.y/b[1])}),rT=({x:a,y:b},[c,d,e],f=!1,g=[1,1])=>{let h={x:(a-c)/e,y:(b-d)/e};return f?rS(h,g):h},rU=({x:a,y:b},[c,d,e])=>({x:a*e+c,y:b*e+d});function rV(a,b){if("number"==typeof a)return Math.floor((b-b/(1+a))*.5);if("string"==typeof a&&a.endsWith("px")){let b=parseFloat(a);if(!Number.isNaN(b))return Math.floor(b)}if("string"==typeof a&&a.endsWith("%")){let c=parseFloat(a);if(!Number.isNaN(c))return Math.floor(b*c*.01)}return console.error(`[React Flow] The padding value "${a}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let rW=(a,b,c,d,e,f)=>{let g=function(a,b,c){if("string"==typeof a||"number"==typeof a){let d=rV(a,c),e=rV(a,b);return{top:d,right:e,bottom:d,left:e,x:2*e,y:2*d}}if("object"==typeof a){let d=rV(a.top??a.y??0,c),e=rV(a.bottom??a.y??0,c),f=rV(a.left??a.x??0,b),g=rV(a.right??a.x??0,b);return{top:d,right:g,bottom:e,left:f,x:f+g,y:d+e}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(f,b,c),h=rD(Math.min((b-g.x)/a.width,(c-g.y)/a.height),d,e),i=a.x+a.width/2,j=a.y+a.height/2,k=b/2-i*h,l=c/2-j*h,m=function(a,b,c,d,e,f){let{x:g,y:h}=rU(a,[b,c,d]),{x:i,y:j}=rU({x:a.x+a.width,y:a.y+a.height},[b,c,d]);return{left:Math.floor(g),top:Math.floor(h),right:Math.floor(e-i),bottom:Math.floor(f-j)}}(a,k,l,h,b,c),n={left:Math.min(m.left-g.left,0),top:Math.min(m.top-g.top,0),right:Math.min(m.right-g.right,0),bottom:Math.min(m.bottom-g.bottom,0)};return{x:k-n.left+n.right,y:l-n.top+n.bottom,zoom:h}},rX=()=>"u">typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function rY(a){return null!=a&&"parent"!==a}function rZ(a){return{width:a.measured?.width??a.width??a.initialWidth??0,height:a.measured?.height??a.height??a.initialHeight??0}}function r$(a){return(a.measured?.width??a.width??a.initialWidth)!==void 0&&(a.measured?.height??a.height??a.initialHeight)!==void 0}function r_(a,b={width:0,height:0},c,d,e){let f={...a},g=d.get(c);if(g){let a=g.origin||e;f.x+=g.internals.positionAbsolute.x-(b.width??0)*a[0],f.y+=g.internals.positionAbsolute.y-(b.height??0)*a[1]}return f}function r0(a,b){if(a.size!==b.size)return!1;for(let c of a)if(!b.has(c))return!1;return!0}function r1(a,{snapGrid:b=[0,0],snapToGrid:c=!1,transform:d,containerBounds:e}){let{x:f,y:g}=r6(a),h=rT({x:f-(e?.left??0),y:g-(e?.top??0)},d),{x:i,y:j}=c?rS(h,b):h;return{xSnapped:i,ySnapped:j,...h}}let r2=a=>({width:a.offsetWidth,height:a.offsetHeight}),r3=a=>a?.getRootNode?.()||window?.document,r4=["INPUT","SELECT","TEXTAREA"];function r5(a){let b=a.composedPath?.()?.[0]||a.target;return b?.nodeType===1&&(r4.includes(b.nodeName)||b.hasAttribute("contenteditable")||!!b.closest(".nokey"))}let r6=(a,b)=>{let c="clientX"in a,d=c?a.clientX:a.touches?.[0].clientX,e=c?a.clientY:a.touches?.[0].clientY;return{x:d-(b?.left??0),y:e-(b?.top??0)}},r7=(a,b,c,d,e)=>{let f=b.querySelectorAll(`.${a}`);return f&&f.length?Array.from(f).map(b=>{let f=b.getBoundingClientRect();return{id:b.getAttribute("data-handleid"),type:a,nodeId:e,position:b.getAttribute("data-handlepos"),x:(f.left-c.left)/d,y:(f.top-c.top)/d,...r2(b)}}):null};function r8({sourceX:a,sourceY:b,targetX:c,targetY:d,sourceControlX:e,sourceControlY:f,targetControlX:g,targetControlY:h}){let i=.125*a+.375*e+.375*g+.125*c,j=.125*b+.375*f+.375*h+.125*d,k=Math.abs(i-a),l=Math.abs(j-b);return[i,j,k,l]}function r9(a,b){return a>=0?.5*a:25*b*Math.sqrt(-a)}function sa({pos:a,x1:b,y1:c,x2:d,y2:e,c:f}){switch(a){case s.Left:return[b-r9(b-d,f),c];case s.Right:return[b+r9(d-b,f),c];case s.Top:return[b,c-r9(c-e,f)];case s.Bottom:return[b,c+r9(e-c,f)]}}function sb({sourceX:a,sourceY:b,sourcePosition:c=s.Bottom,targetX:d,targetY:e,targetPosition:f=s.Top,curvature:g=.25}){let[h,i]=sa({pos:c,x1:a,y1:b,x2:d,y2:e,c:g}),[j,k]=sa({pos:f,x1:d,y1:e,x2:a,y2:b,c:g}),[l,m,n,o]=r8({sourceX:a,sourceY:b,targetX:d,targetY:e,sourceControlX:h,sourceControlY:i,targetControlX:j,targetControlY:k});return[`M${a},${b} C${h},${i} ${j},${k} ${d},${e}`,l,m,n,o]}function sc({sourceX:a,sourceY:b,targetX:c,targetY:d}){let e=Math.abs(c-a)/2,f=Math.abs(d-b)/2;return[c<a?c+e:c-e,d<b?d+f:d-f,e,f]}let sd=({source:a,sourceHandle:b,target:c,targetHandle:d})=>`xy-edge__${a}${b||""}-${c}${d||""}`,se=(a,b,c={})=>{let d,e;if(!a.source||!a.target)return rR("006","Can't create edge. An edge needs a source and a target."),b;let f=c.getEdgeId||sd;return(e=d=rv(a)?{...a}:{...a,id:f(a)},b.some(a=>a.source===e.source&&a.target===e.target&&(a.sourceHandle===e.sourceHandle||!a.sourceHandle&&!e.sourceHandle)&&(a.targetHandle===e.targetHandle||!a.targetHandle&&!e.targetHandle)))?b:(null===d.sourceHandle&&delete d.sourceHandle,null===d.targetHandle&&delete d.targetHandle,b.concat(d))};function sf({sourceX:a,sourceY:b,targetX:c,targetY:d}){let[e,f,g,h]=sc({sourceX:a,sourceY:b,targetX:c,targetY:d});return[`M ${a},${b}L ${c},${d}`,e,f,g,h]}let sg={[s.Left]:{x:-1,y:0},[s.Right]:{x:1,y:0},[s.Top]:{x:0,y:-1},[s.Bottom]:{x:0,y:1}},sh=({source:a,sourcePosition:b=s.Bottom,target:c})=>b===s.Left||b===s.Right?a.x<c.x?{x:1,y:0}:{x:-1,y:0}:a.y<c.y?{x:0,y:1}:{x:0,y:-1},si=(a,b)=>Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2));function sj({sourceX:a,sourceY:b,sourcePosition:c=s.Bottom,targetX:d,targetY:e,targetPosition:f=s.Top,borderRadius:g=5,centerX:h,centerY:i,offset:j=20,stepPosition:k=.5}){let[l,m,n,o,p]=function({source:a,sourcePosition:b=s.Bottom,target:c,targetPosition:d=s.Top,center:e,offset:f,stepPosition:g}){let h,i,j=sg[b],k=sg[d],l={x:a.x+j.x*f,y:a.y+j.y*f},m={x:c.x+k.x*f,y:c.y+k.y*f},n=sh({source:l,sourcePosition:b,target:m}),o=0!==n.x?"x":"y",p=n[o],q=[],r={x:0,y:0},t={x:0,y:0},[,,u,v]=sc({sourceX:a.x,sourceY:a.y,targetX:c.x,targetY:c.y});if(j[o]*k[o]==-1){"x"===o?(h=e.x??l.x+(m.x-l.x)*g,i=e.y??(l.y+m.y)/2):(h=e.x??(l.x+m.x)/2,i=e.y??l.y+(m.y-l.y)*g);let a=[{x:h,y:l.y},{x:h,y:m.y}],b=[{x:l.x,y:i},{x:m.x,y:i}];q=j[o]===p?"x"===o?a:b:"x"===o?b:a}else{let e=[{x:l.x,y:m.y}],g=[{x:m.x,y:l.y}];if(q="x"===o?j.x===p?g:e:j.y===p?e:g,b===d){let b=Math.abs(a[o]-c[o]);if(b<=f){let d=Math.min(f-1,f-b);j[o]===p?r[o]=(l[o]>a[o]?-1:1)*d:t[o]=(m[o]>c[o]?-1:1)*d}}if(b!==d){let a="x"===o?"y":"x",b=j[o]===k[a],c=l[a]>m[a],d=l[a]<m[a];(1===j[o]&&(!b&&c||b&&d)||1!==j[o]&&(!b&&d||b&&c))&&(q="x"===o?e:g)}let n={x:l.x+r.x,y:l.y+r.y},s={x:m.x+t.x,y:m.y+t.y};Math.max(Math.abs(n.x-q[0].x),Math.abs(s.x-q[0].x))>=Math.max(Math.abs(n.y-q[0].y),Math.abs(s.y-q[0].y))?(h=(n.x+s.x)/2,i=q[0].y):(h=q[0].x,i=(n.y+s.y)/2)}return[[a,{x:l.x+r.x,y:l.y+r.y},...q,{x:m.x+t.x,y:m.y+t.y},c],h,i,u,v]}({source:{x:a,y:b},sourcePosition:c,target:{x:d,y:e},targetPosition:f,center:{x:h,y:i},offset:j,stepPosition:k});return[l.reduce((a,b,c)=>a+(c>0&&c<l.length-1?function(a,b,c,d){let e=Math.min(si(a,b)/2,si(b,c)/2,d),{x:f,y:g}=b;if(a.x===f&&f===c.x||a.y===g&&g===c.y)return`L${f} ${g}`;if(a.y===g){let b=a.x<c.x?-1:1,d=a.y<c.y?1:-1;return`L ${f+e*b},${g}Q ${f},${g} ${f},${g+e*d}`}let h=a.x<c.x?1:-1,i=a.y<c.y?-1:1;return`L ${f},${g+e*i}Q ${f},${g} ${f+e*h},${g}`}(l[c-1],b,l[c+1],g):`${0===c?"M":"L"}${b.x} ${b.y}`),""),m,n,o,p]}function sk(a){return a&&!!(a.internals.handleBounds||a.handles?.length)&&!!(a.measured.width||a.width||a.initialWidth)}function sl(a){if(!a)return null;let b=[],c=[];for(let d of a)d.width=d.width??1,d.height=d.height??1,"source"===d.type?b.push(d):"target"===d.type&&c.push(d);return{source:b,target:c}}function sm(a,b,c=s.Left,d=!1){let e=(b?.x??0)+a.internals.positionAbsolute.x,f=(b?.y??0)+a.internals.positionAbsolute.y,{width:g,height:h}=b??rZ(a);if(d)return{x:e+g/2,y:f+h/2};switch(b?.position??c){case s.Top:return{x:e+g/2,y:f};case s.Right:return{x:e+g,y:f+h/2};case s.Bottom:return{x:e+g/2,y:f+h};case s.Left:return{x:e,y:f+h/2}}}function sn(a,b){return a&&(b?a.find(a=>a.id===b):a[0])||null}function so(a,b){if(!a)return"";if("string"==typeof a)return a;let c=b?`${b}__`:"";return`${c}${Object.keys(a).sort().map(b=>`${b}=${a[b]}`).join("&")}`}let sp={nodeOrigin:[0,0],nodeExtent:rp,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},sq={...sp,checkEquality:!0};function sr(a,b){let c={...a};for(let a in b)void 0!==b[a]&&(c[a]=b[a]);return c}function ss(a){return"manual"===a}function st(a,b,c,d={}){let e=sr(sq,d),f={i:0},g=new Map(b),h=e?.elevateNodesOnSelect&&!ss(e.zIndexMode)?1e3:0,i=a.length>0;for(let j of(b.clear(),c.clear(),a)){let a=g.get(j.id);if(e.checkEquality&&j===a?.internals.userNode)b.set(j.id,a);else{let c=rE(rx(j,e.nodeOrigin),rY(j.extent)?j.extent:e.nodeExtent,rZ(j));a={...e.defaults,...j,measured:{width:j.measured?.width,height:j.measured?.height},internals:{positionAbsolute:c,handleBounds:function(a,b){if(!a.handles)return a.measured?b?.internals.handleBounds:void 0;let c=[],d=[];for(let b of a.handles){let e={id:b.id,width:b.width??1,height:b.height??1,nodeId:a.id,x:b.x,y:b.y,position:b.position,type:b.type};"source"===b.type?c.push(e):"target"===b.type&&d.push(e)}return{source:c,target:d}}(j,a),z:sv(j,h,e.zIndexMode),userNode:j}},b.set(j.id,a)}void 0!==a.measured&&void 0!==a.measured.width&&void 0!==a.measured.height||a.hidden||(i=!1),j.parentId&&su(a,b,c,d,f)}return i}function su(a,b,c,d,e){let{elevateNodesOnSelect:f,nodeOrigin:g,nodeExtent:h,zIndexMode:i}=sr(sp,d),j=a.parentId,k=b.get(j);if(!k)return void console.warn(`Parent node ${j} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(a,b){if(!a.parentId)return;let c=b.get(a.parentId);c?c.set(a.id,a):b.set(a.parentId,new Map([[a.id,a]]))}(a,c),e&&!k.parentId&&void 0===k.internals.rootParentIndex&&"auto"===i&&(k.internals.rootParentIndex=++e.i,k.internals.z=k.internals.z+10*e.i),e&&void 0!==k.internals.rootParentIndex&&(e.i=k.internals.rootParentIndex);let{x:l,y:m,z:n}=function(a,b,c,d,e,f){let{x:g,y:h}=b.internals.positionAbsolute,i=rZ(a),j=rx(a,c),k=rY(a.extent)?rE(j,a.extent,i):j,l=rE({x:g+k.x,y:h+k.y},d,i);"parent"===a.extent&&(l=rF(l,i,b));let m=sv(a,e,f),n=b.internals.z??0;return{x:l.x,y:l.y,z:n>=m?n+1:m}}(a,k,g,h,f&&!ss(i)?1e3:0,i),{positionAbsolute:o}=a.internals,p=l!==o.x||m!==o.y;(p||n!==a.internals.z)&&b.set(a.id,{...a,internals:{...a.internals,positionAbsolute:p?{x:l,y:m}:o,z:n}})}function sv(a,b,c){let d=rQ(a.zIndex)?a.zIndex:0;return ss(c)?d:d+(a.selected?b:0)}function sw(a,b,c,d=[0,0]){let e=[],f=new Map;for(let c of a){let a=b.get(c.parentId);if(!a)continue;let d=rN(f.get(c.parentId)?.expandedRect??rL(a),c.rect);f.set(c.parentId,{expandedRect:d,parent:a})}return f.size>0&&f.forEach(({expandedRect:b,parent:f},g)=>{let h=f.internals.positionAbsolute,i=rZ(f),j=f.origin??d,k=b.x<h.x?Math.round(Math.abs(h.x-b.x)):0,l=b.y<h.y?Math.round(Math.abs(h.y-b.y)):0,m=Math.max(i.width,Math.round(b.width)),n=Math.max(i.height,Math.round(b.height)),o=(m-i.width)*j[0],p=(n-i.height)*j[1];(k>0||l>0||o||p)&&(e.push({id:g,type:"position",position:{x:f.position.x-k+o,y:f.position.y-l+p}}),c.get(g)?.forEach(b=>{a.some(a=>a.id===b.id)||e.push({id:b.id,type:"position",position:{x:b.position.x+k,y:b.position.y+l}})})),(i.width<b.width||i.height<b.height||k||l)&&e.push({id:g,type:"dimensions",setAttributes:!0,dimensions:{width:m+(k?j[0]*k-o:0),height:n+(l?j[1]*l-p:0)}})}),e}async function sx({delta:a,panZoom:b,transform:c,translateExtent:d,width:e,height:f}){if(!b||!a.x&&!a.y)return Promise.resolve(!1);let g=await b.setViewportConstrained({x:c[0]+a.x,y:c[1]+a.y,zoom:c[2]},[[0,0],[e,f]],d);return Promise.resolve(!!g&&(g.x!==c[0]||g.y!==c[1]||g.k!==c[2]))}function sy(a,b,c,d,e,f){let g=e,h=d.get(g)||new Map;d.set(g,h.set(c,b)),g=`${e}-${a}`;let i=d.get(g)||new Map;if(d.set(g,i.set(c,b)),f){g=`${e}-${a}-${f}`;let h=d.get(g)||new Map;d.set(g,h.set(c,b))}}function sz(a,b,c){for(let d of(a.clear(),b.clear(),c)){let{source:c,target:e,sourceHandle:f=null,targetHandle:g=null}=d,h={edgeId:d.id,source:c,target:e,sourceHandle:f,targetHandle:g},i=`${c}-${f}--${e}-${g}`;sy("source",h,`${e}-${g}--${c}-${f}`,a,c,f),sy("target",h,i,a,e,g),b.set(d.id,d)}}function sA(a,b,c){let d=a;do{if(d?.matches?.(b))return!0;if(d===c)break;d=d?.parentElement}while(d)return!1}function sB({nodeId:a,dragItems:b,nodeLookup:c,dragging:d=!0}){let e=[];for(let[a,f]of b){let b=c.get(a)?.internals.userNode;b&&e.push({...b,position:f.position,dragging:d})}if(!a)return[e[0],e];let f=c.get(a)?.internals.userNode;return[f?{...f,position:b.get(a)?.position||f.position,dragging:d}:e[0],e]}function sC(a,b,c,d,e,f=!1){let g=d.get(a);if(!g)return null;let h="strict"===e?g.internals.handleBounds?.[b]:[...g.internals.handleBounds?.source??[],...g.internals.handleBounds?.target??[]],i=(c?h?.find(a=>a.id===c):h?.[0])??null;return i&&f?{...i,...sm(g,i,i.position,!0)}:i}function sD(a,b){return a?a:b?.classList.contains("target")?"target":b?.classList.contains("source")?"source":null}let sE=()=>!0;function sF(a,{handle:b,connectionMode:c,fromNodeId:d,fromHandleId:e,fromType:f,doc:g,lib:h,flowId:i,isValidConnection:j=sE,nodeLookup:k}){let l="target"===f,m=b?g.querySelector(`.${h}-flow__handle[data-id="${i}-${b?.nodeId}-${b?.id}-${b?.type}"]`):null,{x:o,y:p}=r6(a),q=g.elementFromPoint(o,p),r=q?.classList.contains(`${h}-flow__handle`)?q:m,s={handleDomNode:r,isValid:!1,connection:null,toHandle:null};if(r){let a=sD(void 0,r),b=r.getAttribute("data-nodeid"),f=r.getAttribute("data-handleid"),g=r.classList.contains("connectable"),h=r.classList.contains("connectableend");if(!b||!a)return s;let i={source:l?b:d,sourceHandle:l?f:e,target:l?d:b,targetHandle:l?e:f};s.connection=i,s.isValid=g&&h&&(c===n.Strict?l&&"source"===a||!l&&"target"===a:b!==d||f!==e)&&j(i),s.toHandle=sC(b,a,f,k,c,!0)}return s}let sG=function(a,{connectionMode:b,connectionRadius:c,handleId:d,nodeId:e,edgeUpdaterType:f,isTarget:g,domNode:h,nodeLookup:i,lib:j,autoPanOnConnect:k,flowId:l,panBy:m,cancelConnection:n,onConnectStart:o,onConnect:p,onConnectEnd:q,isValidConnection:r=sE,onReconnectEnd:t,updateConnection:u,getTransform:v,getFromHandle:w,autoPanSpeed:x,dragThreshold:y=1,handleDomNode:z}){let A,B=r3(a.target),C=0,{x:D,y:E}=r6(a),F=sD(f,z),G=h?.getBoundingClientRect(),H=!1;if(!G||!F)return;let I=sC(e,F,d,i,b);if(!I)return;let J=r6(a,G),K=!1,L=null,M=!1,N=null,O={...I,nodeId:e,type:F,position:I.position},P=i.get(e),Q={inProgress:!0,isValid:null,from:sm(P,O,s.Left,!0),fromHandle:O,fromPosition:O.position,fromNode:P,to:J,toHandle:null,toPosition:rt[O.position],toNode:null,pointer:J};function R(){H=!0,u(Q),o?.(a,{nodeId:e,handleId:d,handleType:F})}function S(a){var f,h;let n;if(!H){let{x:b,y:c}=r6(a),d=b-D,e=c-E;if(!(d*d+e*e>y*y))return;R()}if(!w()||!O)return void T(a);let o=v();A=function(a,b,c,d){let e=[],f=1/0;for(let g of function(a,b,c){let d=[],e={x:a.x-c,y:a.y-c,width:2*c,height:2*c};for(let a of b.values())rO(e,rL(a))>0&&d.push(a);return d}(a,c,b+250))for(let c of[...g.internals.handleBounds?.source??[],...g.internals.handleBounds?.target??[]]){if(d.nodeId===c.nodeId&&d.type===c.type&&d.id===c.id)continue;let{x:h,y:i}=sm(g,c,c.position,!0),j=Math.sqrt(Math.pow(h-a.x,2)+Math.pow(i-a.y,2));j>b||(j<f?(e=[{...c,x:h,y:i}],f=j):j===f&&e.push({...c,x:h,y:i}))}if(!e.length)return null;if(e.length>1){let a="source"===d.type?"target":"source";return e.find(b=>b.type===a)??e[0]}return e[0]}(rT(J=r6(a,G),o,!1,[1,1]),c,i,O),K||(!function a(){if(!k||!G)return;let[b,c]=rH(J,G,x);m({x:b,y:c}),C=requestAnimationFrame(a)}(),K=!0);let p=sF(a,{handle:A,connectionMode:b,fromNodeId:e,fromHandleId:d,fromType:g?"target":"source",isValidConnection:r,doc:B,lib:j,flowId:l,nodeLookup:i});N=p.handleDomNode,L=p.connection,f=!!A,h=p.isValid,n=null,h?n=!0:f&&!h&&(n=!1),M=n;let q=i.get(e),t=q?sm(q,O,s.Left,!0):Q.from,z={...Q,from:t,isValid:M,to:p.toHandle&&M?rU({x:p.toHandle.x,y:p.toHandle.y},o):J,toHandle:p.toHandle,toPosition:M&&p.toHandle?p.toHandle.position:rt[O.position],toNode:p.toHandle?i.get(p.toHandle.nodeId):null,pointer:J};u(z),Q=z}function T(a){if(!("touches"in a)||!(a.touches.length>0)){if(H){(A||N)&&L&&M&&p?.(L);let{inProgress:b,...c}=Q,d={...c,toPosition:Q.toHandle?Q.toPosition:null};q?.(a,d),f&&t?.(a,d)}n(),cancelAnimationFrame(C),K=!1,M=!1,L=null,N=null,B.removeEventListener("mousemove",S),B.removeEventListener("mouseup",T),B.removeEventListener("touchmove",S),B.removeEventListener("touchend",T)}}0===y&&R(),B.addEventListener("mousemove",S),B.addEventListener("mouseup",T),B.addEventListener("touchmove",S),B.addEventListener("touchend",T)},sH=a=>({x:a.x,y:a.y,zoom:a.k}),sI=({x:a,y:b,zoom:c})=>rd.translate(a,b).scale(c),sJ=(a,b)=>a.target.closest(`.${b}`),sK=(a,b)=>2===b&&Array.isArray(a)&&a.includes(2),sL=a=>((a*=2)<=1?a*a*a:(a-=2)*a*a+2)/2,sM=(a,b=0,c=sL,d=()=>{})=>{let e="number"==typeof b&&b>0;return e||d(),e?a.transition().duration(b).ease(c).on("end",d):a},sN=a=>{let b=a.ctrlKey&&rX()?10:1;return-a.deltaY*(1===a.deltaMode?.05:a.deltaMode?1:.002)*b};function sO(a){let b=a.includes("right")||a.includes("left"),c=a.includes("bottom")||a.includes("top");return{isHorizontal:b,isVertical:c,affectsX:a.includes("left"),affectsY:a.includes("top")}}function sP(a,b){return Math.max(0,b-a)}function sQ(a,b){return Math.max(0,a-b)}function sR(a,b,c){return Math.max(0,b-a,a-c)}(k=t||(t={})).Line="line",k.Handle="handle";let sS={width:0,height:0,x:0,y:0},sT={...sS,pointerX:0,pointerY:0,aspectRatio:1};var sU=a.i(64442);let sV={get url(){return`file://${a.P("node_modules/zustand/esm/vanilla.mjs")}`}},sW=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a)),destroy:()=>{(sV.env?sV.env.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),c.clear()}},g=b=a(d,e,f);return f},{useDebugValue:sX}=w.default,{useSyncExternalStoreWithSelector:sY}=sU.default,sZ=a=>a;function s$(a,b=sZ,c){let d=sY(a.subscribe,a.getState,a.getServerState||a.getInitialState,b,c);return sX(d),d}let s_=(a,b)=>{let c=a?sW(a):sW,d=(a,d=b)=>s$(c,a,d);return Object.assign(d,c),d};function s0(a,b){if(Object.is(a,b))return!0;if("object"!=typeof a||null===a||"object"!=typeof b||null===b)return!1;if(a instanceof Map&&b instanceof Map){if(a.size!==b.size)return!1;for(let[c,d]of a)if(!Object.is(d,b.get(c)))return!1;return!0}if(a instanceof Set&&b instanceof Set){if(a.size!==b.size)return!1;for(let c of a)if(!b.has(c))return!1;return!0}let c=Object.keys(a);if(c.length!==Object.keys(b).length)return!1;for(let d of c)if(!Object.prototype.hasOwnProperty.call(b,d)||!Object.is(a[d],b[d]))return!1;return!0}let s1=(0,w.createContext)(null),s2=s1.Provider,s3="[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001";function s4(a,b){let c=(0,w.useContext)(s1);if(null===c)throw Error(s3);return s$(c,a,b)}function s5(){let a=(0,w.useContext)(s1);if(null===a)throw Error(s3);return(0,w.useMemo)(()=>({getState:a.getState,setState:a.setState,subscribe:a.subscribe}),[a])}let s6={display:"none"},s7={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},s8="react-flow__node-desc",s9="react-flow__edge-desc",ta=a=>a.ariaLiveMessage,tb=a=>a.ariaLabelConfig;function tc({rfId:a}){let b=s4(ta);return(0,v.jsx)("div",{id:`react-flow__aria-live-${a}`,"aria-live":"assertive","aria-atomic":"true",style:s7,children:b})}function td({rfId:a,disableKeyboardA11y:b}){let c=s4(tb);return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("div",{id:`${s8}-${a}`,style:s6,children:b?c["node.a11yDescription.default"]:c["node.a11yDescription.keyboardDisabled"]}),(0,v.jsx)("div",{id:`${s9}-${a}`,style:s6,children:c["edge.a11yDescription.default"]}),!b&&(0,v.jsx)(tc,{rfId:a})]})}let te=(0,w.forwardRef)(({position:a="top-left",children:b,className:c,style:d,...e},f)=>{let g=`${a}`.split("-");return(0,v.jsx)("div",{className:oO(["react-flow__panel",c,...g]),style:d,ref:f,...e,children:b})});function tf({proOptions:a,position:b="bottom-right"}){return a?.hideAttribution?null:(0,v.jsx)(te,{position:b,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:(0,v.jsx)("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}te.displayName="Panel";let tg=a=>{let b=[],c=[];for(let[,c]of a.nodeLookup)c.selected&&b.push(c.internals.userNode);for(let[,b]of a.edgeLookup)b.selected&&c.push(b);return{selectedNodes:b,selectedEdges:c}},th=a=>a.id;function ti(a,b){return s0(a.selectedNodes.map(th),b.selectedNodes.map(th))&&s0(a.selectedEdges.map(th),b.selectedEdges.map(th))}function tj({onSelectionChange:a}){let b=s5(),{selectedNodes:c,selectedEdges:d}=s4(tg,ti);return(0,w.useEffect)(()=>{let e={nodes:c,edges:d};a?.(e),b.getState().onSelectionChangeHandlers.forEach(a=>a(e))},[c,d,a]),null}let tk=a=>!!a.onSelectionChangeHandlers;function tl({onSelectionChange:a}){let b=s4(tk);return a||b?(0,v.jsx)(tj,{onSelectionChange:a}):null}let tm=[0,0],tn={x:0,y:0,zoom:1},to=["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","rfId"],tp=a=>({setNodes:a.setNodes,setEdges:a.setEdges,setMinZoom:a.setMinZoom,setMaxZoom:a.setMaxZoom,setTranslateExtent:a.setTranslateExtent,setNodeExtent:a.setNodeExtent,reset:a.reset,setDefaultNodesAndEdges:a.setDefaultNodesAndEdges}),tq={translateExtent:rp,nodeOrigin:tm,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function tr(a){let{setNodes:b,setEdges:c,setMinZoom:d,setMaxZoom:e,setTranslateExtent:f,setNodeExtent:g,reset:h,setDefaultNodesAndEdges:i}=s4(tp,s0),j=s5();(0,w.useEffect)(()=>(i(a.defaultNodes,a.defaultEdges),()=>{k.current=tq,h()}),[]);let k=(0,w.useRef)(tq);return(0,w.useEffect)(()=>{for(let h of to){let i=a[h];if(i!==k.current[h]&&void 0!==a[h])if("nodes"===h)b(i);else if("edges"===h)c(i);else if("minZoom"===h)d(i);else if("maxZoom"===h)e(i);else if("translateExtent"===h)f(i);else if("nodeExtent"===h)g(i);else if("ariaLabelConfig"===h)j.setState({ariaLabelConfig:{...rr,...i||{}}});else"fitView"===h?j.setState({fitViewQueued:i}):"fitViewOptions"===h?j.setState({fitViewOptions:i}):j.setState({[h]:i})}k.current=a},to.map(b=>a[b])),null}let ts="u">typeof document?document:null;function tt(a=null,b={target:ts,actInsideInputWithModifier:!0}){let[c,d]=(0,w.useState)(!1),e=(0,w.useRef)(!1),f=(0,w.useRef)(new Set([])),[g,h]=(0,w.useMemo)(()=>{if(null!==a){let b=(Array.isArray(a)?a:[a]).filter(a=>"string"==typeof a).map(a=>a.replace("+","\n").replace("\n\n","\n+").split("\n")),c=b.reduce((a,b)=>a.concat(...b),[]);return[b,c]}return[[],[]]},[a]);return(0,w.useEffect)(()=>{let c=b?.target??ts,i=b?.actInsideInputWithModifier??!0;if(null!==a){let a=a=>{if(e.current=a.ctrlKey||a.metaKey||a.shiftKey||a.altKey,(!e.current||e.current&&!i)&&r5(a))return!1;let c=tv(a.code,h);if(f.current.add(a[c]),tu(g,f.current,!1)){let c=a.composedPath?.()?.[0]||a.target,f=c?.nodeName==="BUTTON"||c?.nodeName==="A";!1!==b.preventDefault&&(e.current||!f)&&a.preventDefault(),d(!0)}},j=a=>{let b=tv(a.code,h);tu(g,f.current,!0)?(d(!1),f.current.clear()):f.current.delete(a[b]),"Meta"===a.key&&f.current.clear(),e.current=!1},k=()=>{f.current.clear(),d(!1)};return c?.addEventListener("keydown",a),c?.addEventListener("keyup",j),window.addEventListener("blur",k),window.addEventListener("contextmenu",k),()=>{c?.removeEventListener("keydown",a),c?.removeEventListener("keyup",j),window.removeEventListener("blur",k),window.removeEventListener("contextmenu",k)}}},[a,d]),c}function tu(a,b,c){return a.filter(a=>c||a.length===b.size).some(a=>a.every(a=>b.has(a)))}function tv(a,b){return b.includes(a)?"code":"key"}function tw(a,b){let c=[],d=new Map,e=[];for(let b of a)if("add"===b.type){e.push(b);continue}else if("remove"===b.type||"replace"===b.type)d.set(b.id,[b]);else{let a=d.get(b.id);a?a.push(b):d.set(b.id,[b])}for(let a of b){let b=d.get(a.id);if(!b){c.push(a);continue}if("remove"===b[0].type)continue;if("replace"===b[0].type){c.push({...b[0].item});continue}let e={...a};for(let a of b){var f=a,g=e;switch(f.type){case"select":g.selected=f.selected;break;case"position":void 0!==f.position&&(g.position=f.position),void 0!==f.dragging&&(g.dragging=f.dragging);break;case"dimensions":void 0!==f.dimensions&&(g.measured={...f.dimensions},f.setAttributes&&((!0===f.setAttributes||"width"===f.setAttributes)&&(g.width=f.dimensions.width),(!0===f.setAttributes||"height"===f.setAttributes)&&(g.height=f.dimensions.height))),"boolean"==typeof f.resizing&&(g.resizing=f.resizing)}}c.push(e)}return e.length&&e.forEach(a=>{void 0!==a.index?c.splice(a.index,0,{...a.item}):c.push({...a.item})}),c}function tx(a,b){return{id:a,type:"select",selected:b}}function ty(a,b=new Set,c=!1){let d=[];for(let[e,f]of a){let a=b.has(e);(void 0!==f.selected||a)&&f.selected!==a&&(c&&(f.selected=a),d.push(tx(f.id,a)))}return d}function tz({items:a=[],lookup:b}){let c=[],d=new Map(a.map(a=>[a.id,a]));for(let[d,e]of a.entries()){let a=b.get(e.id),f=a?.internals?.userNode??a;void 0!==f&&f!==e&&c.push({id:e.id,item:e,type:"replace"}),void 0===f&&c.push({item:e,type:"add",index:d})}for(let[a]of b)void 0===d.get(a)&&c.push({id:a,type:"remove"});return c}function tA(a){return{id:a.id,type:"remove"}}let tB=a=>"id"in a&&"position"in a&&!("source"in a)&&!("target"in a);function tC(a){return(0,w.forwardRef)(a)}let tD=w.useEffect;function tE(a){let[b,c]=(0,w.useState)(BigInt(0)),[d]=(0,w.useState)(()=>{var a;let b;return a=()=>c(a=>a+BigInt(1)),b=[],{get:()=>b,reset:()=>{b=[]},push:c=>{b.push(c),a()}}});return tD(()=>{let b=d.get();b.length&&(a(b),d.reset())},[b]),d}let tF=(0,w.createContext)(null);function tG({children:a}){let b=s5(),c=tE((0,w.useCallback)(a=>{let{nodes:c=[],setNodes:d,hasDefaultNodes:e,onNodesChange:f,nodeLookup:g,fitViewQueued:h,onNodesChangeMiddlewareMap:i}=b.getState(),j=c;for(let b of a)j="function"==typeof b?b(j):b;let k=tz({items:j,lookup:g});for(let a of i.values())k=a(k);e&&d(j),k.length>0?f?.(k):h&&window.requestAnimationFrame(()=>{let{fitViewQueued:a,nodes:c,setNodes:d}=b.getState();a&&d(c)})},[])),d=tE((0,w.useCallback)(a=>{let{edges:c=[],setEdges:d,hasDefaultEdges:e,onEdgesChange:f,edgeLookup:g}=b.getState(),h=c;for(let b of a)h="function"==typeof b?b(h):b;e?d(h):f&&f(tz({items:h,lookup:g}))},[])),e=(0,w.useMemo)(()=>({nodeQueue:c,edgeQueue:d}),[]);return(0,v.jsx)(tF.Provider,{value:e,children:a})}let tH=a=>!!a.panZoom;function tI(){let a,b=(a=s5(),(0,w.useMemo)(()=>({zoomIn:b=>{let{panZoom:c}=a.getState();return c?c.scaleBy(1.2,{duration:b?.duration}):Promise.resolve(!1)},zoomOut:b=>{let{panZoom:c}=a.getState();return c?c.scaleBy(1/1.2,{duration:b?.duration}):Promise.resolve(!1)},zoomTo:(b,c)=>{let{panZoom:d}=a.getState();return d?d.scaleTo(b,{duration:c?.duration}):Promise.resolve(!1)},getZoom:()=>a.getState().transform[2],setViewport:async(b,c)=>{let{transform:[d,e,f],panZoom:g}=a.getState();return g?(await g.setViewport({x:b.x??d,y:b.y??e,zoom:b.zoom??f},c),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{let[b,c,d]=a.getState().transform;return{x:b,y:c,zoom:d}},setCenter:async(b,c,d)=>a.getState().setCenter(b,c,d),fitBounds:async(b,c)=>{let{width:d,height:e,minZoom:f,maxZoom:g,panZoom:h}=a.getState(),i=rW(b,d,e,f,g,c?.padding??.1);return h?(await h.setViewport(i,{duration:c?.duration,ease:c?.ease,interpolate:c?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(b,c={})=>{let{transform:d,snapGrid:e,snapToGrid:f,domNode:g}=a.getState();if(!g)return b;let{x:h,y:i}=g.getBoundingClientRect(),j={x:b.x-h,y:b.y-i},k=c.snapGrid??e;return rT(j,d,c.snapToGrid??f,k)},flowToScreenPosition:b=>{let{transform:c,domNode:d}=a.getState();if(!d)return b;let{x:e,y:f}=d.getBoundingClientRect(),g=rU(b,c);return{x:g.x+e,y:g.y+f}}}),[])),c=s5(),d=function(){let a=(0,w.useContext)(tF);if(!a)throw Error("useBatchContext must be used within a BatchProvider");return a}(),e=s4(tH),f=(0,w.useMemo)(()=>{let a=a=>c.getState().nodeLookup.get(a),b=a=>{d.nodeQueue.push(a)},e=a=>{d.edgeQueue.push(a)},f=a=>{let{nodeLookup:b,nodeOrigin:d}=c.getState(),e=tB(a)?a:b.get(a.id),f=e.parentId?r_(e.position,e.measured,e.parentId,b,d):e.position;return rL({...e,position:f,width:e.measured?.width??e.width,height:e.measured?.height??e.height})},g=(a,c,d={replace:!1})=>{b(b=>b.map(b=>{if(b.id===a){let a="function"==typeof c?c(b):c;return d.replace&&tB(a)?a:{...b,...a}}return b}))},h=(a,b,c={replace:!1})=>{e(d=>d.map(d=>{if(d.id===a){let a="function"==typeof b?b(d):b;return c.replace&&rv(a)?a:{...d,...a}}return d}))};return{getNodes:()=>c.getState().nodes.map(a=>({...a})),getNode:b=>a(b)?.internals.userNode,getInternalNode:a,getEdges:()=>{let{edges:a=[]}=c.getState();return a.map(a=>({...a}))},getEdge:a=>c.getState().edgeLookup.get(a),setNodes:b,setEdges:e,addNodes:a=>{let b=Array.isArray(a)?a:[a];d.nodeQueue.push(a=>[...a,...b])},addEdges:a=>{let b=Array.isArray(a)?a:[a];d.edgeQueue.push(a=>[...a,...b])},toObject:()=>{let{nodes:a=[],edges:b=[],transform:d}=c.getState(),[e,f,g]=d;return{nodes:a.map(a=>({...a})),edges:b.map(a=>({...a})),viewport:{x:e,y:f,zoom:g}}},deleteElements:async({nodes:a=[],edges:b=[]})=>{let{nodes:d,edges:e,onNodesDelete:f,onEdgesDelete:g,triggerNodeChanges:h,triggerEdgeChanges:i,onDelete:j,onBeforeDelete:k}=c.getState(),{nodes:l,edges:m}=await rC({nodesToRemove:a,edgesToRemove:b,nodes:d,edges:e,onBeforeDelete:k}),n=m.length>0,o=l.length>0;if(n){let a=m.map(tA);g?.(m),i(a)}if(o){let a=l.map(tA);f?.(l),h(a)}return(o||n)&&j?.({nodes:l,edges:m}),{deletedNodes:l,deletedEdges:m}},getIntersectingNodes:(a,b=!0,d)=>{let e=rP(a),g=e?a:f(a),h=void 0!==d;return g?(d||c.getState().nodes).filter(d=>{let f=c.getState().nodeLookup.get(d.id);if(f&&!e&&(d.id===a.id||!f.internals.positionAbsolute))return!1;let i=rL(h?d:f),j=rO(i,g);return b&&j>0||j>=i.width*i.height||j>=g.width*g.height}):[]},isNodeIntersecting:(a,b,c=!0)=>{let d=rP(a)?a:f(a);if(!d)return!1;let e=rO(d,b);return c&&e>0||e>=b.width*b.height||e>=d.width*d.height},updateNode:g,updateNodeData:(a,b,c={replace:!1})=>{g(a,a=>{let d="function"==typeof b?b(a):b;return c.replace?{...a,data:d}:{...a,data:{...a.data,...d}}},c)},updateEdge:h,updateEdgeData:(a,b,c={replace:!1})=>{h(a,a=>{let d="function"==typeof b?b(a):b;return c.replace?{...a,data:d}:{...a,data:{...a.data,...d}}},c)},getNodesBounds:a=>{let{nodeLookup:b,nodeOrigin:d}=c.getState();return((a,b={nodeOrigin:[0,0]})=>0===a.length?{x:0,y:0,width:0,height:0}:rK(a.reduce((a,c)=>{let d="string"==typeof c,e=b.nodeLookup||d?void 0:c;return b.nodeLookup&&(e=d?b.nodeLookup.get(c):rw(c)?c:b.nodeLookup.get(c.id)),rI(a,e?rM(e,b.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})))(a,{nodeLookup:b,nodeOrigin:d})},getHandleConnections:({type:a,id:b,nodeId:d})=>Array.from(c.getState().connectionLookup.get(`${d}-${a}${b?`-${b}`:""}`)?.values()??[]),getNodeConnections:({type:a,handleId:b,nodeId:d})=>Array.from(c.getState().connectionLookup.get(`${d}${a?b?`-${a}-${b}`:`-${a}`:""}`)?.values()??[]),fitView:async a=>{let b,e,f=c.getState().fitViewResolver??{promise:new Promise((a,c)=>{b=a,e=c}),resolve:b,reject:e};return c.setState({fitViewQueued:!0,fitViewOptions:a,fitViewResolver:f}),d.nodeQueue.push(a=>[...a]),f.promise}}},[]);return(0,w.useMemo)(()=>({...f,...b,viewportInitialized:e}),[e])}let tJ=a=>a.selected,tK,tL={position:"absolute",width:"100%",height:"100%",top:0,left:0},tM=a=>({userSelectionActive:a.userSelectionActive,lib:a.lib,connectionInProgress:a.connection.inProgress});function tN({onPaneContextMenu:a,zoomOnScroll:b=!0,zoomOnPinch:c=!0,panOnScroll:d=!1,panOnScrollSpeed:e=.5,panOnScrollMode:f=o.Free,zoomOnDoubleClick:g=!0,panOnDrag:h=!0,defaultViewport:i,translateExtent:j,minZoom:k,maxZoom:l,zoomActivationKeyCode:m,preventScrolling:n=!0,children:p,noWheelClassName:q,noPanClassName:r,onViewportChange:s,isControlledViewport:t,paneClickDistance:u,selectionOnDrag:x}){let y,z=s5(),A=(0,w.useRef)(null),{userSelectionActive:B,lib:C,connectionInProgress:D}=s4(tM,s0),E=tt(m),F=(0,w.useRef)();y=s5(),(0,w.useEffect)(()=>{let a=()=>{if(!A.current||!(A.current.checkVisibility?.()??!0))return!1;let a=r2(A.current);(0===a.height||0===a.width)&&y.getState().onError?.("004","The React Flow parent container needs a width and a height to render the graph."),y.setState({width:a.width||500,height:a.height||500})};if(A.current){a(),window.addEventListener("resize",a);let b=new ResizeObserver(()=>a());return b.observe(A.current),()=>{window.removeEventListener("resize",a),b&&A.current&&b.unobserve(A.current)}}},[]);let G=(0,w.useCallback)(a=>{s?.({x:a[0],y:a[1],zoom:a[2]}),t||z.setState({transform:a})},[s,t]);return(0,w.useEffect)(()=>{if(A.current){F.current=function({domNode:a,minZoom:b,maxZoom:c,translateExtent:d,viewport:e,onPanZoom:f,onPanZoomStart:g,onPanZoomEnd:h,onDraggingChange:i}){let j={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},k=a.getBoundingClientRect(),l=rn().scaleExtent([b,c]).translateExtent(d),m=pw(a).call(l);s({x:e.x,y:e.y,zoom:rD(e.zoom,b,c)},[[0,0],[k.width,k.height]],d);let n=m.on("wheel.zoom"),p=m.on("dblclick.zoom");function q(a,b){return m?new Promise(c=>{l?.interpolate(b?.interpolate==="linear"?ro:pM).transform(sM(m,b?.duration,b?.ease,()=>c(!0)),a)}):Promise.resolve(!1)}function r(){l.on("zoom",null)}async function s(a,b,c){let d=sI(a),e=l?.constrain()(d,b,c);return e&&await q(e),new Promise(a=>a(e))}return l.wheelDelta(sN),{update:function({noWheelClassName:a,noPanClassName:b,onPaneContextMenu:c,userSelectionActive:d,panOnScroll:e,panOnDrag:k,panOnScrollMode:q,panOnScrollSpeed:s,preventScrolling:t,zoomOnPinch:u,zoomOnScroll:v,zoomOnDoubleClick:w,zoomActivationKeyPressed:x,lib:y,onTransformChange:z,connectionInProgress:A,paneClickDistance:B,selectionOnDrag:C}){d&&!j.isZoomingOrPanning&&r();let D=e&&!x&&!d;l.clickDistance(C?1/0:!rQ(B)||B<0?0:B);let E=D?function({zoomPanValues:a,noWheelClassName:b,d3Selection:c,d3Zoom:d,panOnScrollMode:e,panOnScrollSpeed:f,zoomOnPinch:g,onPanZoomStart:h,onPanZoom:i,onPanZoomEnd:j}){return k=>{if(sJ(k,b))return k.ctrlKey&&k.preventDefault(),!1;k.preventDefault(),k.stopImmediatePropagation();let l=c.property("__zoom").k||1;if(k.ctrlKey&&g){let a=px(k),b=l*Math.pow(2,sN(k));d.scaleTo(c,b,a,k);return}let m=1===k.deltaMode?20:1,n=e===o.Vertical?0:k.deltaX*m,p=e===o.Horizontal?0:k.deltaY*m;!rX()&&k.shiftKey&&e!==o.Vertical&&(n=k.deltaY*m,p=0),d.translateBy(c,-(n/l)*f,-(p/l)*f,{internal:!0});let q=sH(c.property("__zoom"));clearTimeout(a.panScrollTimeout),a.isPanScrolling?(i?.(k,q),a.panScrollTimeout=setTimeout(()=>{j?.(k,q),a.isPanScrolling=!1},150)):(a.isPanScrolling=!0,h?.(k,q))}}({zoomPanValues:j,noWheelClassName:a,d3Selection:m,d3Zoom:l,panOnScrollMode:q,panOnScrollSpeed:s,zoomOnPinch:u,onPanZoomStart:g,onPanZoom:f,onPanZoomEnd:h}):function({noWheelClassName:a,preventScrolling:b,d3ZoomHandler:c}){return function(d,e){let f="wheel"===d.type,g=!b&&f&&!d.ctrlKey,h=sJ(d,a);if(d.ctrlKey&&f&&h&&d.preventDefault(),g||h)return null;d.preventDefault(),c.call(this,d,e)}}({noWheelClassName:a,preventScrolling:t,d3ZoomHandler:n});if(m.on("wheel.zoom",E,{passive:!1}),!d){let a=function({zoomPanValues:a,onDraggingChange:b,onPanZoomStart:c}){return d=>{if(d.sourceEvent?.internal)return;let e=sH(d.transform);a.mouseButton=d.sourceEvent?.button||0,a.isZoomingOrPanning=!0,a.prevViewport=e,d.sourceEvent?.type==="mousedown"&&b(!0),c&&c?.(d.sourceEvent,e)}}({zoomPanValues:j,onDraggingChange:i,onPanZoomStart:g});l.on("start",a);let b=function({zoomPanValues:a,panOnDrag:b,onPaneContextMenu:c,onTransformChange:d,onPanZoom:e}){return f=>{a.usedRightMouseButton=!!(c&&sK(b,a.mouseButton??0)),f.sourceEvent?.sync||d([f.transform.x,f.transform.y,f.transform.k]),e&&!f.sourceEvent?.internal&&e?.(f.sourceEvent,sH(f.transform))}}({zoomPanValues:j,panOnDrag:k,onPaneContextMenu:!!c,onPanZoom:f,onTransformChange:z});l.on("zoom",b);let d=function({zoomPanValues:a,panOnDrag:b,panOnScroll:c,onDraggingChange:d,onPanZoomEnd:e,onPaneContextMenu:f}){return g=>{if(!g.sourceEvent?.internal&&(a.isZoomingOrPanning=!1,f&&sK(b,a.mouseButton??0)&&!a.usedRightMouseButton&&g.sourceEvent&&f(g.sourceEvent),a.usedRightMouseButton=!1,d(!1),e)){let b=sH(g.transform);a.prevViewport=b,clearTimeout(a.timerId),a.timerId=setTimeout(()=>{e?.(g.sourceEvent,b)},150*!!c)}}}({zoomPanValues:j,panOnDrag:k,panOnScroll:e,onPaneContextMenu:c,onPanZoomEnd:h,onDraggingChange:i});l.on("end",d)}let F=function({zoomActivationKeyPressed:a,zoomOnScroll:b,zoomOnPinch:c,panOnDrag:d,panOnScroll:e,zoomOnDoubleClick:f,userSelectionActive:g,noWheelClassName:h,noPanClassName:i,lib:j,connectionInProgress:k}){return l=>{let m=a||b,n=c&&l.ctrlKey,o="wheel"===l.type;if(1===l.button&&"mousedown"===l.type&&(sJ(l,`${j}-flow__node`)||sJ(l,`${j}-flow__edge`)))return!0;if(!d&&!m&&!e&&!f&&!c||g||k&&!o||sJ(l,h)&&o||sJ(l,i)&&(!o||e&&o&&!a)||!c&&l.ctrlKey&&o)return!1;if(!c&&"touchstart"===l.type&&l.touches?.length>1)return l.preventDefault(),!1;if(!m&&!e&&!n&&o||!d&&("mousedown"===l.type||"touchstart"===l.type)||Array.isArray(d)&&!d.includes(l.button)&&"mousedown"===l.type)return!1;let p=Array.isArray(d)&&d.includes(l.button)||!l.button||l.button<=1;return(!l.ctrlKey||o)&&p}}({zoomActivationKeyPressed:x,panOnDrag:k,zoomOnScroll:v,panOnScroll:e,zoomOnDoubleClick:w,zoomOnPinch:u,userSelectionActive:d,noPanClassName:b,noWheelClassName:a,lib:y,connectionInProgress:A});l.filter(F),w?m.on("dblclick.zoom",p):m.on("dblclick.zoom",null)},destroy:r,setViewport:async function a(a,b){let c=sI(a);return await q(c,b),new Promise(a=>a(c))},setViewportConstrained:s,getViewport:function(){let a=m?re(m.node()):{x:0,y:0,k:1};return{x:a.x,y:a.y,zoom:a.k}},scaleTo:function(a,b){return m?new Promise(c=>{l?.interpolate(b?.interpolate==="linear"?ro:pM).scaleTo(sM(m,b?.duration,b?.ease,()=>c(!0)),a)}):Promise.resolve(!1)},scaleBy:function(a,b){return m?new Promise(c=>{l?.interpolate(b?.interpolate==="linear"?ro:pM).scaleBy(sM(m,b?.duration,b?.ease,()=>c(!0)),a)}):Promise.resolve(!1)},setScaleExtent:function(a){l?.scaleExtent(a)},setTranslateExtent:function(a){l?.translateExtent(a)},syncViewport:function(a){if(m){let b=sI(a),c=m.property("__zoom");(c.k!==a.zoom||c.x!==a.x||c.y!==a.y)&&l?.transform(m,b,null,{sync:!0})}},setClickDistance:function(a){let b=!rQ(a)||a<0?0:a;l?.clickDistance(b)}}}({domNode:A.current,minZoom:k,maxZoom:l,translateExtent:j,viewport:i,onDraggingChange:a=>z.setState(b=>b.paneDragging===a?b:{paneDragging:a}),onPanZoomStart:(a,b)=>{let{onViewportChangeStart:c,onMoveStart:d}=z.getState();d?.(a,b),c?.(b)},onPanZoom:(a,b)=>{let{onViewportChange:c,onMove:d}=z.getState();d?.(a,b),c?.(b)},onPanZoomEnd:(a,b)=>{let{onViewportChangeEnd:c,onMoveEnd:d}=z.getState();d?.(a,b),c?.(b)}});let{x:a,y:b,zoom:c}=F.current.getViewport();return z.setState({panZoom:F.current,transform:[a,b,c],domNode:A.current.closest(".react-flow")}),()=>{F.current?.destroy()}}},[]),(0,w.useEffect)(()=>{F.current?.update({onPaneContextMenu:a,zoomOnScroll:b,zoomOnPinch:c,panOnScroll:d,panOnScrollSpeed:e,panOnScrollMode:f,zoomOnDoubleClick:g,panOnDrag:h,zoomActivationKeyPressed:E,preventScrolling:n,noPanClassName:r,userSelectionActive:B,noWheelClassName:q,lib:C,onTransformChange:G,connectionInProgress:D,selectionOnDrag:x,paneClickDistance:u})},[a,b,c,d,e,f,g,h,E,n,r,B,q,C,G,D,x,u]),(0,v.jsx)("div",{className:"react-flow__renderer",ref:A,style:tL,children:p})}let tO=a=>({userSelectionActive:a.userSelectionActive,userSelectionRect:a.userSelectionRect});function tP(){let{userSelectionActive:a,userSelectionRect:b}=s4(tO,s0);return a&&b?(0,v.jsx)("div",{className:"react-flow__selection react-flow__container",style:{width:b.width,height:b.height,transform:`translate(${b.x}px, ${b.y}px)`}}):null}let tQ=(a,b)=>c=>{c.target===b.current&&a?.(c)},tR=a=>({userSelectionActive:a.userSelectionActive,elementsSelectable:a.elementsSelectable,connectionInProgress:a.connection.inProgress,dragging:a.paneDragging});function tS({isSelecting:a,selectionKeyPressed:b,selectionMode:c=p.Full,panOnDrag:d,paneClickDistance:e,selectionOnDrag:f,onSelectionStart:g,onSelectionEnd:h,onPaneClick:i,onPaneContextMenu:j,onPaneScroll:k,onPaneMouseEnter:l,onPaneMouseMove:m,onPaneMouseLeave:n,children:o}){let q=s5(),{userSelectionActive:r,elementsSelectable:s,dragging:t,connectionInProgress:u}=s4(tR,s0),x=s&&(a||r),y=(0,w.useRef)(null),z=(0,w.useRef)(),A=(0,w.useRef)(new Set),B=(0,w.useRef)(new Set),C=(0,w.useRef)(!1),D=a=>{if(C.current||u){C.current=!1;return}i?.(a),q.getState().resetSelectedElements(),q.setState({nodesSelectionActive:!1})},E=!0===d||Array.isArray(d)&&d.includes(0);return(0,v.jsxs)("div",{className:oO(["react-flow__pane",{draggable:E,dragging:t,selection:a}]),onClick:x?void 0:tQ(D,y),onContextMenu:tQ(a=>{Array.isArray(d)&&d?.includes(2)?a.preventDefault():j?.(a)},y),onWheel:tQ(k?a=>k(a):void 0,y),onPointerEnter:x?void 0:l,onPointerMove:x?a=>{let{userSelectionRect:d,transform:f,nodeLookup:h,edgeLookup:i,connectionLookup:j,triggerNodeChanges:k,triggerEdgeChanges:l,defaultEdgeOptions:m,resetSelectedElements:n}=q.getState();if(!z.current||!d)return;let{x:o,y:r}=r6(a.nativeEvent,z.current),{startX:s,startY:t}=d;if(!C.current){if(Math.hypot(o-s,r-t)<=(b?0:e))return;n(),g?.(a)}C.current=!0;let u={startX:s,startY:t,x:o<s?o:s,y:r<t?r:t,width:Math.abs(o-s),height:Math.abs(r-t)},v=A.current,w=B.current;A.current=new Set(rz(h,u,f,c===p.Partial,!0).map(a=>a.id)),B.current=new Set;let x=m?.selectable??!0;for(let a of A.current){let b=j.get(a);if(b)for(let{edgeId:a}of b.values()){let b=i.get(a);b&&(b.selectable??x)&&B.current.add(a)}}r0(v,A.current)||k(ty(h,A.current,!0)),r0(w,B.current)||l(ty(i,B.current)),q.setState({userSelectionRect:u,userSelectionActive:!0,nodesSelectionActive:!1})}:m,onPointerUp:x?a=>{0===a.button&&(a.target?.releasePointerCapture?.(a.pointerId),!r&&a.target===y.current&&q.getState().userSelectionRect&&D?.(a),q.setState({userSelectionActive:!1,userSelectionRect:null}),C.current&&(h?.(a),q.setState({nodesSelectionActive:A.current.size>0})))}:void 0,onPointerDownCapture:x?c=>{let{domNode:d}=q.getState();if(z.current=d?.getBoundingClientRect(),!z.current)return;let e=c.target===y.current;if(!e&&c.target.closest(".nokey")||!a||!(f&&e||b)||0!==c.button||!c.isPrimary)return;c.target?.setPointerCapture?.(c.pointerId),C.current=!1;let{x:g,y:h}=r6(c.nativeEvent,z.current);q.setState({userSelectionRect:{width:0,height:0,startX:g,startY:h,x:g,y:h}}),e||(c.stopPropagation(),c.preventDefault())}:void 0,onClickCapture:x?a=>{C.current&&(a.stopPropagation(),C.current=!1)}:void 0,onPointerLeave:n,ref:y,style:tL,children:[o,(0,v.jsx)(tP,{})]})}function tT({id:a,store:b,unselect:c=!1,nodeRef:d}){let e,{addSelectedNodes:f,unselectNodesAndEdges:g,multiSelectionActive:h,nodeLookup:i,onError:j}=b.getState(),k=i.get(a);k?(b.setState({nodesSelectionActive:!1}),k.selected?(c||k.selected&&h)&&(g({nodes:[k],edges:[]}),requestAnimationFrame(()=>d?.current?.blur())):f([a])):j?.("012",(e=a,`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.`))}function tU({nodeRef:a,disabled:b=!1,noDragClassName:c,handleSelector:d,nodeId:e,isSelectable:f,nodeClickDistance:g}){let h=s5(),[i,j]=(0,w.useState)(!1),k=(0,w.useRef)();return(0,w.useEffect)(()=>{k.current=function({onNodeMouseDown:a,getStoreItems:b,onDragStart:c,onDrag:d,onDragStop:e}){let f={x:null,y:null},g=0,h=new Map,i=!1,j={x:0,y:0},k=null,l=!1,m=null,n=!1,o=!1,p=null;return{update:function({noDragClassName:q,handleSelector:r,domNode:s,isSelectable:t,nodeId:u,nodeClickDistance:v=0}){function w({x:a,y:c}){let{nodeLookup:e,nodeExtent:g,snapGrid:i,snapToGrid:j,nodeOrigin:k,onNodeDrag:l,onSelectionDrag:m,onError:n,updateNodePositions:q}=b();f={x:a,y:c};let r=!1,s=h.size>1,t=s&&g?rJ(ry(h)):null,v=s&&j?function({dragItems:a,snapGrid:b,x:c,y:d}){let e=a.values().next().value;if(!e)return null;let f={x:c-e.distance.x,y:d-e.distance.y},g=rS(f,b);return{x:g.x-f.x,y:g.y-f.y}}({dragItems:h,snapGrid:i,x:a,y:c}):null;for(let[b,d]of h){if(!e.has(b))continue;let f={x:a-d.distance.x,y:c-d.distance.y};j&&(f=v?{x:Math.round(f.x+v.x),y:Math.round(f.y+v.y)}:rS(f,i));let h=null;if(s&&g&&!d.extent&&t){let{positionAbsolute:a}=d.internals,b=a.x-t.x+g[0][0],c=a.x+d.measured.width-t.x2+g[1][0];h=[[b,a.y-t.y+g[0][1]],[c,a.y+d.measured.height-t.y2+g[1][1]]]}let{position:l,positionAbsolute:m}=rB({nodeId:b,nextPosition:f,nodeLookup:e,nodeExtent:h||g,nodeOrigin:k,onError:n});r=r||d.position.x!==l.x||d.position.y!==l.y,d.position=l,d.internals.positionAbsolute=m}if(o=o||r,r&&(q(h,!0),p&&(d||l||!u&&m))){let[a,b]=sB({nodeId:u,dragItems:h,nodeLookup:e});d?.(p,h,a,b),l?.(p,a,b),u||m?.(p,b)}}async function x(){if(!k)return;let{transform:a,panBy:c,autoPanSpeed:d,autoPanOnNodeDrag:e}=b();if(!e){i=!1,cancelAnimationFrame(g);return}let[h,l]=rH(j,k,d);(0!==h||0!==l)&&(f.x=(f.x??0)-h/a[2],f.y=(f.y??0)-l/a[2],await c({x:h,y:l})&&w(f)),g=requestAnimationFrame(x)}function y(d){let{nodeLookup:e,multiSelectionActive:g,nodesDraggable:i,transform:j,snapGrid:m,snapToGrid:n,selectNodesOnDrag:o,onNodeDragStart:p,onSelectionDragStart:q,unselectNodesAndEdges:r}=b();l=!0,o&&t||g||!u||e.get(u)?.selected||r(),t&&o&&u&&a?.(u);let s=r1(d.sourceEvent,{transform:j,snapGrid:m,snapToGrid:n,containerBounds:k});if(f=s,(h=function(a,b,c,d){let e=new Map;for(let[f,g]of a)if((g.selected||g.id===d)&&(!g.parentId||!function a(b,c){if(!b.parentId)return!1;let d=c.get(b.parentId);return!!d&&(!!d.selected||a(d,c))}(g,a))&&(g.draggable||b&&void 0===g.draggable)){let b=a.get(f);b&&e.set(f,{id:f,position:b.position||{x:0,y:0},distance:{x:c.x-b.internals.positionAbsolute.x,y:c.y-b.internals.positionAbsolute.y},extent:b.extent,parentId:b.parentId,origin:b.origin,expandParent:b.expandParent,internals:{positionAbsolute:b.internals.positionAbsolute||{x:0,y:0}},measured:{width:b.measured.width??0,height:b.measured.height??0}})}return e}(e,i,s,u)).size>0&&(c||p||!u&&q)){let[a,b]=sB({nodeId:u,dragItems:h,nodeLookup:e});c?.(d.sourceEvent,h,a,b),p?.(d.sourceEvent,a,b),u||q?.(d.sourceEvent,b)}}m=pw(s);let z=pK().clickDistance(v).on("start",a=>{let{domNode:c,nodeDragThreshold:d,transform:e,snapGrid:g,snapToGrid:h}=b();k=c?.getBoundingClientRect()||null,n=!1,o=!1,p=a.sourceEvent,0===d&&y(a),f=r1(a.sourceEvent,{transform:e,snapGrid:g,snapToGrid:h,containerBounds:k}),j=r6(a.sourceEvent,k)}).on("drag",a=>{let{autoPanOnNodeDrag:c,transform:d,snapGrid:e,snapToGrid:g,nodeDragThreshold:m,nodeLookup:o}=b(),q=r1(a.sourceEvent,{transform:d,snapGrid:e,snapToGrid:g,containerBounds:k});if(p=a.sourceEvent,("touchmove"===a.sourceEvent.type&&a.sourceEvent.touches.length>1||u&&!o.has(u))&&(n=!0),!n){if(!i&&c&&l&&(i=!0,x()),!l){let b=r6(a.sourceEvent,k),c=b.x-j.x,d=b.y-j.y;Math.sqrt(c*c+d*d)>m&&y(a)}(f.x!==q.xSnapped||f.y!==q.ySnapped)&&h&&l&&(j=r6(a.sourceEvent,k),w(q))}}).on("end",a=>{if(l&&!n&&(i=!1,l=!1,cancelAnimationFrame(g),h.size>0)){let{nodeLookup:c,updateNodePositions:d,onNodeDragStop:f,onSelectionDragStop:g}=b();if(o&&(d(h,!1),o=!1),e||f||!u&&g){let[b,d]=sB({nodeId:u,dragItems:h,nodeLookup:c,dragging:!1});e?.(a.sourceEvent,h,b,d),f?.(a.sourceEvent,b,d),u||g?.(a.sourceEvent,d)}}}).filter(a=>{let b=a.target;return!a.button&&(!q||!sA(b,`.${q}`,s))&&(!r||sA(b,r,s))});m.call(z)},destroy:function(){m?.on(".drag",null)}}}({getStoreItems:()=>h.getState(),onNodeMouseDown:b=>{tT({id:b,store:h,nodeRef:a})},onDragStart:()=>{j(!0)},onDragStop:()=>{j(!1)}})},[]),(0,w.useEffect)(()=>{if(!b&&a.current&&k.current)return k.current.update({noDragClassName:c,handleSelector:d,domNode:a.current,isSelectable:f,nodeId:e,nodeClickDistance:g}),()=>{k.current?.destroy()}},[c,d,b,f,a,e,g]),i}function tV(){let a=s5();return(0,w.useCallback)(b=>{let{nodeExtent:c,snapToGrid:d,snapGrid:e,nodesDraggable:f,onError:g,updateNodePositions:h,nodeLookup:i,nodeOrigin:j}=a.getState(),k=new Map,l=a=>a.selected&&(a.draggable||f&&void 0===a.draggable),m=d?e[0]:5,n=d?e[1]:5,o=b.direction.x*m*b.factor,p=b.direction.y*n*b.factor;for(let[,a]of i){if(!l(a))continue;let b={x:a.internals.positionAbsolute.x+o,y:a.internals.positionAbsolute.y+p};d&&(b=rS(b,e));let{position:f,positionAbsolute:h}=rB({nodeId:a.id,nextPosition:b,nodeLookup:i,nodeExtent:c,nodeOrigin:j,onError:g});a.position=f,a.internals.positionAbsolute=h,k.set(a.id,a)}h(k)},[])}let tW=(0,w.createContext)(null),tX=tW.Provider;tW.Consumer;let tY=()=>(0,w.useContext)(tW),tZ=a=>({connectOnClick:a.connectOnClick,noPanClassName:a.noPanClassName,rfId:a.rfId}),t$=(0,w.memo)(tC(function({type:a="source",position:b=s.Top,isValidConnection:c,isConnectable:d=!0,isConnectableStart:e=!0,isConnectableEnd:f=!0,id:g,onConnect:h,children:i,className:j,onMouseDown:k,onTouchStart:l,...m},o){let p=g||null,q="target"===a,r=s5(),t=tY(),{connectOnClick:u,noPanClassName:w,rfId:x}=s4(tZ,s0),{connectingFrom:y,connectingTo:z,clickConnecting:A,isPossibleEndHandle:B,connectionInProcess:C,clickConnectionInProcess:D,valid:E}=s4(b=>{let{connectionClickStartHandle:c,connectionMode:d,connection:e}=b,{fromHandle:f,toHandle:g,isValid:h}=e,i=g?.nodeId===t&&g?.id===p&&g?.type===a;return{connectingFrom:f?.nodeId===t&&f?.id===p&&f?.type===a,connectingTo:i,clickConnecting:c?.nodeId===t&&c?.id===p&&c?.type===a,isPossibleEndHandle:d===n.Strict?f?.type!==a:t!==f?.nodeId||p!==f?.id,connectionInProcess:!!f,clickConnectionInProcess:!!c,valid:i&&h}},s0);t||r.getState().onError?.("010","Handle: No node id found. Make sure to only use a Handle inside a custom Node.");let F=a=>{let{defaultEdgeOptions:b,onConnect:c,hasDefaultEdges:d}=r.getState(),e={...b,...a};if(d){let{edges:a,setEdges:b}=r.getState();b(se(e,a))}c?.(e),h?.(e)},G=a=>{if(!t)return;let b="clientX"in a.nativeEvent;if(e&&(b&&0===a.button||!b)){let b=r.getState();sG(a.nativeEvent,{handleDomNode:a.currentTarget,autoPanOnConnect:b.autoPanOnConnect,connectionMode:b.connectionMode,connectionRadius:b.connectionRadius,domNode:b.domNode,nodeLookup:b.nodeLookup,lib:b.lib,isTarget:q,handleId:p,nodeId:t,flowId:b.rfId,panBy:b.panBy,cancelConnection:b.cancelConnection,onConnectStart:b.onConnectStart,onConnectEnd:(...a)=>r.getState().onConnectEnd?.(...a),updateConnection:b.updateConnection,onConnect:F,isValidConnection:c||((...a)=>r.getState().isValidConnection?.(...a)??!0),getTransform:()=>r.getState().transform,getFromHandle:()=>r.getState().connection.fromHandle,autoPanSpeed:b.autoPanSpeed,dragThreshold:b.connectionDragThreshold})}b?k?.(a):l?.(a)};return(0,v.jsx)("div",{"data-handleid":p,"data-nodeid":t,"data-handlepos":b,"data-id":`${x}-${t}-${p}-${a}`,className:oO(["react-flow__handle",`react-flow__handle-${b}`,"nodrag",w,j,{source:!q,target:q,connectable:d,connectablestart:e,connectableend:f,clickconnecting:A,connectingfrom:y,connectingto:z,valid:E,connectionindicator:d&&(!C||B)&&(C||D?f:e)}]),onMouseDown:G,onTouchStart:G,onClick:u?b=>{let{onClickConnectStart:d,onClickConnectEnd:f,connectionClickStartHandle:g,connectionMode:h,isValidConnection:i,lib:j,rfId:k,nodeLookup:l,connection:m}=r.getState();if(!t||!g&&!e)return;if(!g){d?.(b.nativeEvent,{nodeId:t,handleId:p,handleType:a}),r.setState({connectionClickStartHandle:{nodeId:t,type:a,id:p}});return}let n=r3(b.target),o=c||i,{connection:q,isValid:s}=sF(b.nativeEvent,{handle:{nodeId:t,id:p,type:a},connectionMode:h,fromNodeId:g.nodeId,fromHandleId:g.id||null,fromType:g.type,isValidConnection:o,flowId:k,doc:n,lib:j,nodeLookup:l});s&&q&&F(q);let u=structuredClone(m);delete u.inProgress,u.toPosition=u.toHandle?u.toHandle.position:null,f?.(b,u),r.setState({connectionClickStartHandle:null})}:void 0,ref:o,...m,children:i})})),t_={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},t0={input:function({data:a,isConnectable:b,sourcePosition:c=s.Bottom}){return(0,v.jsxs)(v.Fragment,{children:[a?.label,(0,v.jsx)(t$,{type:"source",position:c,isConnectable:b})]})},default:function({data:a,isConnectable:b,targetPosition:c=s.Top,sourcePosition:d=s.Bottom}){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(t$,{type:"target",position:c,isConnectable:b}),a?.label,(0,v.jsx)(t$,{type:"source",position:d,isConnectable:b})]})},output:function({data:a,isConnectable:b,targetPosition:c=s.Top}){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(t$,{type:"target",position:c,isConnectable:b}),a?.label]})},group:function(){return null}},t1=a=>{let{width:b,height:c,x:d,y:e}=ry(a.nodeLookup,{filter:a=>!!a.selected});return{width:rQ(b)?b:null,height:rQ(c)?c:null,userSelectionActive:a.userSelectionActive,transformString:`translate(${a.transform[0]}px,${a.transform[1]}px) scale(${a.transform[2]}) translate(${d}px,${e}px)`}};function t2({onSelectionContextMenu:a,noPanClassName:b,disableKeyboardA11y:c}){let d=s5(),{width:e,height:f,transformString:g,userSelectionActive:h}=s4(t1,s0),i=tV(),j=(0,w.useRef)(null);(0,w.useEffect)(()=>{c||j.current?.focus({preventScroll:!0})},[c]);let k=!h&&null!==e&&null!==f;if(tU({nodeRef:j,disabled:!k}),!k)return null;let l=a?b=>{a(b,d.getState().nodes.filter(a=>a.selected))}:void 0;return(0,v.jsx)("div",{className:oO(["react-flow__nodesselection","react-flow__container",b]),style:{transform:g},children:(0,v.jsx)("div",{ref:j,className:"react-flow__nodesselection-rect",onContextMenu:l,tabIndex:c?void 0:-1,onKeyDown:c?void 0:a=>{Object.prototype.hasOwnProperty.call(t_,a.key)&&(a.preventDefault(),i({direction:t_[a.key],factor:a.shiftKey?4:1}))},style:{width:e,height:f}})})}let t3,t4=a=>({nodesSelectionActive:a.nodesSelectionActive,userSelectionActive:a.userSelectionActive});function t5({children:a,onPaneClick:b,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:e,onPaneContextMenu:f,onPaneScroll:g,paneClickDistance:h,deleteKeyCode:i,selectionKeyCode:j,selectionOnDrag:k,selectionMode:l,onSelectionStart:m,onSelectionEnd:n,multiSelectionKeyCode:o,panActivationKeyCode:p,zoomActivationKeyCode:q,elementsSelectable:r,zoomOnScroll:s,zoomOnPinch:t,panOnScroll:u,panOnScrollSpeed:x,panOnScrollMode:y,zoomOnDoubleClick:z,panOnDrag:A,defaultViewport:B,translateExtent:C,minZoom:D,maxZoom:E,preventScrolling:F,onSelectionContextMenu:G,noWheelClassName:H,noPanClassName:I,disableKeyboardA11y:J,onViewportChange:K,isControlledViewport:L}){let{nodesSelectionActive:M,userSelectionActive:N}=s4(t4,s0),O=tt(j,{target:t3}),P=tt(p,{target:t3}),Q=P||A,R=P||u,S=k&&!0!==Q,T=O||N||S;return!function({deleteKeyCode:a,multiSelectionKeyCode:b}){let c=s5(),{deleteElements:d}=tI(),e=tt(a,{actInsideInputWithModifier:!1}),f=tt(b,{target:tK});(0,w.useEffect)(()=>{if(e){let{edges:a,nodes:b}=c.getState();d({nodes:b.filter(tJ),edges:a.filter(tJ)}),c.setState({nodesSelectionActive:!1})}},[e]),(0,w.useEffect)(()=>{c.setState({multiSelectionActive:f})},[f])}({deleteKeyCode:i,multiSelectionKeyCode:o}),(0,v.jsx)(tN,{onPaneContextMenu:f,elementsSelectable:r,zoomOnScroll:s,zoomOnPinch:t,panOnScroll:R,panOnScrollSpeed:x,panOnScrollMode:y,zoomOnDoubleClick:z,panOnDrag:!O&&Q,defaultViewport:B,translateExtent:C,minZoom:D,maxZoom:E,zoomActivationKeyCode:q,preventScrolling:F,noWheelClassName:H,noPanClassName:I,onViewportChange:K,isControlledViewport:L,paneClickDistance:h,selectionOnDrag:S,children:(0,v.jsxs)(tS,{onSelectionStart:m,onSelectionEnd:n,onPaneClick:b,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:e,onPaneContextMenu:f,onPaneScroll:g,panOnDrag:Q,isSelecting:!!T,selectionMode:l,selectionKeyPressed:O,paneClickDistance:h,selectionOnDrag:S,children:[a,M&&(0,v.jsx)(t2,{onSelectionContextMenu:G,noPanClassName:I,disableKeyboardA11y:J})]})})}t5.displayName="FlowRenderer";let t6=(0,w.memo)(t5),t7=a=>a.updateNodeInternals;var t8=(0,w.memo)(function({id:a,onClick:b,onMouseEnter:c,onMouseMove:d,onMouseLeave:e,onContextMenu:f,onDoubleClick:g,nodesDraggable:h,elementsSelectable:i,nodesConnectable:j,nodesFocusable:k,resizeObserver:l,noDragClassName:m,noPanClassName:n,disableKeyboardA11y:o,rfId:p,nodeTypes:q,nodeClickDistance:r,onError:s}){let t,{node:u,internals:x,isParent:y}=s4(b=>{let c=b.nodeLookup.get(a),d=b.parentLookup.has(a);return{node:c,internals:c.internals,isParent:d}},s0),z=u.type||"default",A=q?.[z]||t0[z];void 0===A&&(s?.("003",(t=z,`Node type "${t}" not found. Using fallback type "default".`)),z="default",A=q?.default||t0.default);let B=!!(u.draggable||h&&void 0===u.draggable),C=!!(u.selectable||i&&void 0===u.selectable),D=!!(u.connectable||j&&void 0===u.connectable),E=!!(u.focusable||k&&void 0===u.focusable),F=s5(),G=r$(u),H=function({node:a,nodeType:b,hasDimensions:c,resizeObserver:d}){let e=s5(),f=(0,w.useRef)(null),g=(0,w.useRef)(null),h=(0,w.useRef)(a.sourcePosition),i=(0,w.useRef)(a.targetPosition),j=(0,w.useRef)(b),k=c&&!!a.internals.handleBounds;return(0,w.useEffect)(()=>{!f.current||a.hidden||k&&g.current===f.current||(g.current&&d?.unobserve(g.current),d?.observe(f.current),g.current=f.current)},[k,a.hidden]),(0,w.useEffect)(()=>()=>{g.current&&(d?.unobserve(g.current),g.current=null)},[]),(0,w.useEffect)(()=>{if(f.current){let c=j.current!==b,d=h.current!==a.sourcePosition,g=i.current!==a.targetPosition;(c||d||g)&&(j.current=b,h.current=a.sourcePosition,i.current=a.targetPosition,e.getState().updateNodeInternals(new Map([[a.id,{id:a.id,nodeElement:f.current,force:!0}]])))}},[a.id,b,a.sourcePosition,a.targetPosition]),f}({node:u,nodeType:z,hasDimensions:G,resizeObserver:l}),I=tU({nodeRef:H,disabled:u.hidden||!B,noDragClassName:m,handleSelector:u.dragHandle,nodeId:a,isSelectable:C,nodeClickDistance:r}),J=tV();if(u.hidden)return null;let K=rZ(u),L=void 0===u.internals.handleBounds?{width:u.width??u.initialWidth??u.style?.width,height:u.height??u.initialHeight??u.style?.height}:{width:u.width??u.style?.width,height:u.height??u.style?.height},M=C||B||b||c||d||e,N=c?a=>c(a,{...x.userNode}):void 0,O=d?a=>d(a,{...x.userNode}):void 0,P=e?a=>e(a,{...x.userNode}):void 0,Q=f?a=>f(a,{...x.userNode}):void 0,R=g?a=>g(a,{...x.userNode}):void 0;return(0,v.jsx)("div",{className:oO(["react-flow__node",`react-flow__node-${z}`,{[n]:B},u.className,{selected:u.selected,selectable:C,parent:y,draggable:B,dragging:I}]),ref:H,style:{zIndex:x.z,transform:`translate(${x.positionAbsolute.x}px,${x.positionAbsolute.y}px)`,pointerEvents:M?"all":"none",visibility:G?"visible":"hidden",...u.style,...L},"data-id":a,"data-testid":`rf__node-${a}`,onMouseEnter:N,onMouseMove:O,onMouseLeave:P,onContextMenu:Q,onClick:c=>{let{selectNodesOnDrag:d,nodeDragThreshold:e}=F.getState();C&&(!d||!B||e>0)&&tT({id:a,store:F,nodeRef:H}),b&&b(c,{...x.userNode})},onDoubleClick:R,onKeyDown:E?b=>{if(!r5(b.nativeEvent)&&!o){if(rq.includes(b.key)&&C)tT({id:a,store:F,unselect:"Escape"===b.key,nodeRef:H});else if(B&&u.selected&&Object.prototype.hasOwnProperty.call(t_,b.key)){b.preventDefault();let{ariaLabelConfig:a}=F.getState();F.setState({ariaLiveMessage:a["node.a11yDescription.ariaLiveMessage"]({direction:b.key.replace("Arrow","").toLowerCase(),x:~~x.positionAbsolute.x,y:~~x.positionAbsolute.y})}),J({direction:t_[b.key],factor:b.shiftKey?4:1})}}}:void 0,tabIndex:E?0:void 0,onFocus:E?()=>{if(o||!H.current?.matches(":focus-visible"))return;let{transform:b,width:c,height:d,autoPanOnNodeFocus:e,setCenter:f}=F.getState();!e||rz(new Map([[a,u]]),{x:0,y:0,width:c,height:d},b,!0).length>0||f(u.position.x+K.width/2,u.position.y+K.height/2,{zoom:b[2]})}:void 0,role:u.ariaRole??(E?"group":void 0),"aria-roledescription":"node","aria-describedby":o?void 0:`${s8}-${p}`,"aria-label":u.ariaLabel,...u.domAttributes,children:(0,v.jsx)(tX,{value:a,children:(0,v.jsx)(A,{id:a,data:u.data,type:z,positionAbsoluteX:x.positionAbsolute.x,positionAbsoluteY:x.positionAbsolute.y,selected:u.selected??!1,selectable:C,draggable:B,deletable:u.deletable??!0,isConnectable:D,sourcePosition:u.sourcePosition,targetPosition:u.targetPosition,dragging:I,dragHandle:u.dragHandle,zIndex:x.z,parentId:u.parentId,...K})})})});let t9=a=>({nodesDraggable:a.nodesDraggable,nodesConnectable:a.nodesConnectable,nodesFocusable:a.nodesFocusable,elementsSelectable:a.elementsSelectable,onError:a.onError});function ua(a){var b;let{nodesDraggable:c,nodesConnectable:d,nodesFocusable:e,elementsSelectable:f,onError:g}=s4(t9,s0),h=(b=a.onlyRenderVisibleElements,s4((0,w.useCallback)(a=>b?rz(a.nodeLookup,{x:0,y:0,width:a.width,height:a.height},a.transform,!0).map(a=>a.id):Array.from(a.nodeLookup.keys()),[b]),s0)),i=function(){let a=s4(t7),[b]=(0,w.useState)(()=>"u"<typeof ResizeObserver?null:new ResizeObserver(b=>{let c=new Map;b.forEach(a=>{let b=a.target.getAttribute("data-id");c.set(b,{id:b,nodeElement:a.target,force:!0})}),a(c)}));return(0,w.useEffect)(()=>()=>{b?.disconnect()},[b]),b}();return(0,v.jsx)("div",{className:"react-flow__nodes",style:tL,children:h.map(b=>(0,v.jsx)(t8,{id:b,nodeTypes:a.nodeTypes,nodeExtent:a.nodeExtent,onClick:a.onNodeClick,onMouseEnter:a.onNodeMouseEnter,onMouseMove:a.onNodeMouseMove,onMouseLeave:a.onNodeMouseLeave,onContextMenu:a.onNodeContextMenu,onDoubleClick:a.onNodeDoubleClick,noDragClassName:a.noDragClassName,noPanClassName:a.noPanClassName,rfId:a.rfId,disableKeyboardA11y:a.disableKeyboardA11y,resizeObserver:i,nodesDraggable:c,nodesConnectable:d,nodesFocusable:e,elementsSelectable:f,nodeClickDistance:a.nodeClickDistance,onError:g},b))})}ua.displayName="NodeRenderer";let ub=(0,w.memo)(ua),uc={[r.Arrow]:({color:a="none",strokeWidth:b=1})=>{let c={strokeWidth:b,...a&&{stroke:a}};return(0,v.jsx)("polyline",{className:"arrow",style:c,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},[r.ArrowClosed]:({color:a="none",strokeWidth:b=1})=>{let c={strokeWidth:b,...a&&{stroke:a,fill:a}};return(0,v.jsx)("polyline",{className:"arrowclosed",style:c,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})}},ud=({id:a,type:b,color:c,width:d=12.5,height:e=12.5,markerUnits:f="strokeWidth",strokeWidth:g,orient:h="auto-start-reverse"})=>{let i,j=(i=s5(),(0,w.useMemo)(()=>{let a;return Object.prototype.hasOwnProperty.call(uc,b)?uc[b]:(i.getState().onError?.("009",(a=b,`Marker type "${a}" doesn't exist.`)),null)},[b]));return j?(0,v.jsx)("marker",{className:"react-flow__arrowhead",id:a,markerWidth:`${d}`,markerHeight:`${e}`,viewBox:"-10 -10 20 20",markerUnits:f,orient:h,refX:"0",refY:"0",children:(0,v.jsx)(j,{color:c,strokeWidth:g})}):null},ue=({defaultColor:a,rfId:b})=>{let c=s4(a=>a.edges),d=s4(a=>a.defaultEdgeOptions),e=(0,w.useMemo)(()=>(function(a,{id:b,defaultColor:c,defaultMarkerStart:d,defaultMarkerEnd:e}){let f=new Set;return a.reduce((a,g)=>([g.markerStart||d,g.markerEnd||e].forEach(d=>{if(d&&"object"==typeof d){let e=so(d,b);f.has(e)||(a.push({id:e,color:d.color||c,...d}),f.add(e))}}),a),[]).sort((a,b)=>a.id.localeCompare(b.id))})(c,{id:b,defaultColor:a,defaultMarkerStart:d?.markerStart,defaultMarkerEnd:d?.markerEnd}),[c,d,b,a]);return e.length?(0,v.jsx)("svg",{className:"react-flow__marker","aria-hidden":"true",children:(0,v.jsx)("defs",{children:e.map(a=>(0,v.jsx)(ud,{id:a.id,type:a.type,color:a.color,width:a.width,height:a.height,markerUnits:a.markerUnits,strokeWidth:a.strokeWidth,orient:a.orient},a.id))})}):null};ue.displayName="MarkerDefinitions";var uf=(0,w.memo)(ue);function ug({x:a,y:b,label:c,labelStyle:d,labelShowBg:e=!0,labelBgStyle:f,labelBgPadding:g=[2,4],labelBgBorderRadius:h=2,children:i,className:j,...k}){let[l,m]=(0,w.useState)({x:1,y:0,width:0,height:0}),n=oO(["react-flow__edge-textwrapper",j]),o=(0,w.useRef)(null);return((0,w.useEffect)(()=>{if(o.current){let a=o.current.getBBox();m({x:a.x,y:a.y,width:a.width,height:a.height})}},[c]),c)?(0,v.jsxs)("g",{transform:`translate(${a-l.width/2} ${b-l.height/2})`,className:n,visibility:l.width?"visible":"hidden",...k,children:[e&&(0,v.jsx)("rect",{width:l.width+2*g[0],x:-g[0],y:-g[1],height:l.height+2*g[1],className:"react-flow__edge-textbg",style:f,rx:h,ry:h}),(0,v.jsx)("text",{className:"react-flow__edge-text",y:l.height/2,dy:"0.3em",ref:o,style:d,children:c}),i]}):null}ug.displayName="EdgeText";let uh=(0,w.memo)(ug);function ui({path:a,labelX:b,labelY:c,label:d,labelStyle:e,labelShowBg:f,labelBgStyle:g,labelBgPadding:h,labelBgBorderRadius:i,interactionWidth:j=20,...k}){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("path",{...k,d:a,fill:"none",className:oO(["react-flow__edge-path",k.className])}),j?(0,v.jsx)("path",{d:a,fill:"none",strokeOpacity:0,strokeWidth:j,className:"react-flow__edge-interaction"}):null,d&&rQ(b)&&rQ(c)?(0,v.jsx)(uh,{x:b,y:c,label:d,labelStyle:e,labelShowBg:f,labelBgStyle:g,labelBgPadding:h,labelBgBorderRadius:i}):null]})}function uj({pos:a,x1:b,y1:c,x2:d,y2:e}){return a===s.Left||a===s.Right?[.5*(b+d),c]:[b,.5*(c+e)]}function uk({sourceX:a,sourceY:b,sourcePosition:c=s.Bottom,targetX:d,targetY:e,targetPosition:f=s.Top}){let[g,h]=uj({pos:c,x1:a,y1:b,x2:d,y2:e}),[i,j]=uj({pos:f,x1:d,y1:e,x2:a,y2:b}),[k,l,m,n]=r8({sourceX:a,sourceY:b,targetX:d,targetY:e,sourceControlX:g,sourceControlY:h,targetControlX:i,targetControlY:j});return[`M${a},${b} C${g},${h} ${i},${j} ${d},${e}`,k,l,m,n]}function ul(a){return(0,w.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,sourcePosition:g,targetPosition:h,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:o,markerEnd:p,markerStart:q,interactionWidth:r})=>{let[s,t,u]=uk({sourceX:c,sourceY:d,sourcePosition:g,targetX:e,targetY:f,targetPosition:h}),w=a.isInternal?void 0:b;return(0,v.jsx)(ui,{id:w,path:s,labelX:t,labelY:u,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:o,markerEnd:p,markerStart:q,interactionWidth:r})})}let um=ul({isInternal:!1}),un=ul({isInternal:!0});function uo(a){return(0,w.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,sourcePosition:n=s.Bottom,targetPosition:o=s.Top,markerEnd:p,markerStart:q,pathOptions:r,interactionWidth:t})=>{let[u,w,x]=sj({sourceX:c,sourceY:d,sourcePosition:n,targetX:e,targetY:f,targetPosition:o,borderRadius:r?.borderRadius,offset:r?.offset,stepPosition:r?.stepPosition}),y=a.isInternal?void 0:b;return(0,v.jsx)(ui,{id:y,path:u,labelX:w,labelY:x,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:p,markerStart:q,interactionWidth:t})})}um.displayName="SimpleBezierEdge",un.displayName="SimpleBezierEdgeInternal";let up=uo({isInternal:!1}),uq=uo({isInternal:!0});function ur(a){return(0,w.memo)(({id:b,...c})=>{let d=a.isInternal?void 0:b;return(0,v.jsx)(up,{...c,id:d,pathOptions:(0,w.useMemo)(()=>({borderRadius:0,offset:c.pathOptions?.offset}),[c.pathOptions?.offset])})})}up.displayName="SmoothStepEdge",uq.displayName="SmoothStepEdgeInternal";let us=ur({isInternal:!1}),ut=ur({isInternal:!0});function uu(a){return(0,w.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:n,markerStart:o,interactionWidth:p})=>{let[q,r,s]=sf({sourceX:c,sourceY:d,targetX:e,targetY:f}),t=a.isInternal?void 0:b;return(0,v.jsx)(ui,{id:t,path:q,labelX:r,labelY:s,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:n,markerStart:o,interactionWidth:p})})}us.displayName="StepEdge",ut.displayName="StepEdgeInternal";let uv=uu({isInternal:!1}),uw=uu({isInternal:!0});function ux(a){return(0,w.memo)(({id:b,sourceX:c,sourceY:d,targetX:e,targetY:f,sourcePosition:g=s.Bottom,targetPosition:h=s.Top,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:o,markerEnd:p,markerStart:q,pathOptions:r,interactionWidth:t})=>{let[u,w,x]=sb({sourceX:c,sourceY:d,sourcePosition:g,targetX:e,targetY:f,targetPosition:h,curvature:r?.curvature}),y=a.isInternal?void 0:b;return(0,v.jsx)(ui,{id:y,path:u,labelX:w,labelY:x,label:i,labelStyle:j,labelShowBg:k,labelBgStyle:l,labelBgPadding:m,labelBgBorderRadius:n,style:o,markerEnd:p,markerStart:q,interactionWidth:t})})}uv.displayName="StraightEdge",uw.displayName="StraightEdgeInternal";let uy=ux({isInternal:!1}),uz=ux({isInternal:!0});uy.displayName="BezierEdge",uz.displayName="BezierEdgeInternal";let uA={default:uz,straight:uw,step:ut,smoothstep:uq,simplebezier:un},uB={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},uC="react-flow__edgeupdater";function uD({position:a,centerX:b,centerY:c,radius:d=10,onMouseDown:e,onMouseEnter:f,onMouseOut:g,type:h}){return(0,v.jsx)("circle",{onMouseDown:e,onMouseEnter:f,onMouseOut:g,className:oO([uC,`${uC}-${h}`]),cx:a===s.Left?b-d:a===s.Right?b+d:b,cy:a===s.Top?c-d:a===s.Bottom?c+d:c,r:d,stroke:"transparent",fill:"transparent"})}function uE({isReconnectable:a,reconnectRadius:b,edge:c,sourceX:d,sourceY:e,targetX:f,targetY:g,sourcePosition:h,targetPosition:i,onReconnect:j,onReconnectStart:k,onReconnectEnd:l,setReconnecting:m,setUpdateHover:n}){let o=s5(),p=(a,b)=>{if(0!==a.button)return;let{autoPanOnConnect:d,domNode:e,connectionMode:f,connectionRadius:g,lib:h,onConnectStart:i,cancelConnection:n,nodeLookup:p,rfId:q,panBy:r,updateConnection:s}=o.getState(),t="target"===b.type;sG(a.nativeEvent,{autoPanOnConnect:d,connectionMode:f,connectionRadius:g,domNode:e,handleId:b.id,nodeId:b.nodeId,nodeLookup:p,isTarget:t,edgeUpdaterType:b.type,lib:h,flowId:q,cancelConnection:n,panBy:r,isValidConnection:(...a)=>o.getState().isValidConnection?.(...a)??!0,onConnect:a=>j?.(c,a),onConnectStart:(d,e)=>{m(!0),k?.(a,c,b.type),i?.(d,e)},onConnectEnd:(...a)=>o.getState().onConnectEnd?.(...a),onReconnectEnd:(a,d)=>{m(!1),l?.(a,c,b.type,d)},updateConnection:s,getTransform:()=>o.getState().transform,getFromHandle:()=>o.getState().connection.fromHandle,dragThreshold:o.getState().connectionDragThreshold,handleDomNode:a.currentTarget})},q=()=>n(!0),r=()=>n(!1);return(0,v.jsxs)(v.Fragment,{children:[(!0===a||"source"===a)&&(0,v.jsx)(uD,{position:h,centerX:d,centerY:e,radius:b,onMouseDown:a=>p(a,{nodeId:c.target,id:c.targetHandle??null,type:"target"}),onMouseEnter:q,onMouseOut:r,type:"source"}),(!0===a||"target"===a)&&(0,v.jsx)(uD,{position:i,centerX:f,centerY:g,radius:b,onMouseDown:a=>p(a,{nodeId:c.source,id:c.sourceHandle??null,type:"source"}),onMouseEnter:q,onMouseOut:r,type:"target"})]})}var uF=(0,w.memo)(function({id:a,edgesFocusable:b,edgesReconnectable:c,elementsSelectable:d,onClick:e,onDoubleClick:f,onContextMenu:g,onMouseEnter:h,onMouseMove:i,onMouseLeave:j,reconnectRadius:k,onReconnect:l,onReconnectStart:m,onReconnectEnd:o,rfId:p,edgeTypes:q,noPanClassName:r,onError:t,disableKeyboardA11y:u}){let x,y=s4(b=>b.edgeLookup.get(a)),z=s4(a=>a.defaultEdgeOptions),A=(y=z?{...z,...y}:y).type||"default",B=q?.[A]||uA[A];void 0===B&&(t?.("011",(x=A,`Edge type "${x}" not found. Using fallback type "default".`)),A="default",B=q?.default||uA.default);let C=!!(y.focusable||b&&void 0===y.focusable),D=void 0!==l&&(y.reconnectable||c&&void 0===y.reconnectable),E=!!(y.selectable||d&&void 0===y.selectable),F=(0,w.useRef)(null),[G,H]=(0,w.useState)(!1),[I,J]=(0,w.useState)(!1),K=s5(),{zIndex:L,sourceX:M,sourceY:N,targetX:O,targetY:P,sourcePosition:Q,targetPosition:R}=s4((0,w.useCallback)(b=>{let c=b.nodeLookup.get(y.source),d=b.nodeLookup.get(y.target);if(!c||!d)return{zIndex:y.zIndex,...uB};let e=function(a){let{sourceNode:b,targetNode:c}=a;if(!sk(b)||!sk(c))return null;let d=b.internals.handleBounds||sl(b.handles),e=c.internals.handleBounds||sl(c.handles),f=sn(d?.source??[],a.sourceHandle),g=sn(a.connectionMode===n.Strict?e?.target??[]:(e?.target??[]).concat(e?.source??[]),a.targetHandle);if(!f||!g)return a.onError?.("008",((a,{id:b,sourceHandle:c,targetHandle:d})=>`Couldn't create edge for ${a} handle id: "${"source"===a?c:d}", edge id: ${b}.`)(!f?"source":"target",{id:a.id,sourceHandle:a.sourceHandle,targetHandle:a.targetHandle})),null;let h=f?.position||s.Bottom,i=g?.position||s.Top,j=sm(b,f,h),k=sm(c,g,i);return{sourceX:j.x,sourceY:j.y,targetX:k.x,targetY:k.y,sourcePosition:h,targetPosition:i}}({id:a,sourceNode:c,targetNode:d,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:b.connectionMode,onError:t});return{zIndex:function({sourceNode:a,targetNode:b,selected:c=!1,zIndex:d=0,elevateOnSelect:e=!1,zIndexMode:f="basic"}){if("manual"===f)return d;let g=Math.max(a.parentId||e&&a.selected?a.internals.z:0,b.parentId||e&&b.selected?b.internals.z:0);return(e&&c?d+1e3:d)+g}({selected:y.selected,zIndex:y.zIndex,sourceNode:c,targetNode:d,elevateOnSelect:b.elevateEdgesOnSelect,zIndexMode:b.zIndexMode}),...e||uB}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),s0),S=(0,w.useMemo)(()=>y.markerStart?`url('#${so(y.markerStart,p)}')`:void 0,[y.markerStart,p]),T=(0,w.useMemo)(()=>y.markerEnd?`url('#${so(y.markerEnd,p)}')`:void 0,[y.markerEnd,p]);if(y.hidden||null===M||null===N||null===O||null===P)return null;let U=f?a=>{f(a,{...y})}:void 0,V=g?a=>{g(a,{...y})}:void 0,W=h?a=>{h(a,{...y})}:void 0,X=i?a=>{i(a,{...y})}:void 0,Y=j?a=>{j(a,{...y})}:void 0;return(0,v.jsx)("svg",{style:{zIndex:L},children:(0,v.jsxs)("g",{className:oO(["react-flow__edge",`react-flow__edge-${A}`,y.className,r,{selected:y.selected,animated:y.animated,inactive:!E&&!e,updating:G,selectable:E}]),onClick:b=>{let{addSelectedEdges:c,unselectNodesAndEdges:d,multiSelectionActive:f}=K.getState();E&&(K.setState({nodesSelectionActive:!1}),y.selected&&f?(d({nodes:[],edges:[y]}),F.current?.blur()):c([a])),e&&e(b,y)},onDoubleClick:U,onContextMenu:V,onMouseEnter:W,onMouseMove:X,onMouseLeave:Y,onKeyDown:C?b=>{if(!u&&rq.includes(b.key)&&E){let{unselectNodesAndEdges:c,addSelectedEdges:d}=K.getState();"Escape"===b.key?(F.current?.blur(),c({edges:[y]})):d([a])}}:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?"group":"img"),"aria-roledescription":"edge","data-id":a,"data-testid":`rf__edge-${a}`,"aria-label":null===y.ariaLabel?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${s9}-${p}`:void 0,ref:F,...y.domAttributes,children:[!I&&(0,v.jsx)(B,{id:a,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:E,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:M,sourceY:N,targetX:O,targetY:P,sourcePosition:Q,targetPosition:R,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:S,markerEnd:T,pathOptions:"pathOptions"in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),D&&(0,v.jsx)(uE,{edge:y,isReconnectable:D,reconnectRadius:k,onReconnect:l,onReconnectStart:m,onReconnectEnd:o,sourceX:M,sourceY:N,targetX:O,targetY:P,sourcePosition:Q,targetPosition:R,setUpdateHover:H,setReconnecting:J})]})})});let uG=a=>({edgesFocusable:a.edgesFocusable,edgesReconnectable:a.edgesReconnectable,elementsSelectable:a.elementsSelectable,connectionMode:a.connectionMode,onError:a.onError});function uH({defaultMarkerColor:a,onlyRenderVisibleElements:b,rfId:c,edgeTypes:d,noPanClassName:e,onReconnect:f,onEdgeContextMenu:g,onEdgeMouseEnter:h,onEdgeMouseMove:i,onEdgeMouseLeave:j,onEdgeClick:k,reconnectRadius:l,onEdgeDoubleClick:m,onReconnectStart:n,onReconnectEnd:o,disableKeyboardA11y:p}){let{edgesFocusable:q,edgesReconnectable:r,elementsSelectable:s,onError:t}=s4(uG,s0),u=s4((0,w.useCallback)(a=>{if(!b)return a.edges.map(a=>a.id);let c=[];if(a.width&&a.height)for(let b of a.edges){let d=a.nodeLookup.get(b.source),e=a.nodeLookup.get(b.target);d&&e&&function({sourceNode:a,targetNode:b,width:c,height:d,transform:e}){let f=rI(rM(a),rM(b));return f.x===f.x2&&(f.x2+=1),f.y===f.y2&&(f.y2+=1),rO({x:-e[0]/e[2],y:-e[1]/e[2],width:c/e[2],height:d/e[2]},rK(f))>0}({sourceNode:d,targetNode:e,width:a.width,height:a.height,transform:a.transform})&&c.push(b.id)}return c},[b]),s0);return(0,v.jsxs)("div",{className:"react-flow__edges",children:[(0,v.jsx)(uf,{defaultColor:a,rfId:c}),u.map(a=>(0,v.jsx)(uF,{id:a,edgesFocusable:q,edgesReconnectable:r,elementsSelectable:s,noPanClassName:e,onReconnect:f,onContextMenu:g,onMouseEnter:h,onMouseMove:i,onMouseLeave:j,onClick:k,reconnectRadius:l,onDoubleClick:m,onReconnectStart:n,onReconnectEnd:o,rfId:c,onError:t,edgeTypes:d,disableKeyboardA11y:p},a))]})}uH.displayName="EdgeRenderer";let uI=(0,w.memo)(uH),uJ=a=>`translate(${a.transform[0]}px,${a.transform[1]}px) scale(${a.transform[2]})`;function uK({children:a}){let b=s4(uJ);return(0,v.jsx)("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:b},children:a})}let uL=a=>a.panZoom?.syncViewport;function uM(a){return a.connection.inProgress?{...a.connection,to:rT(a.connection.to,a.transform)}:{...a.connection}}let uN=a=>({nodesConnectable:a.nodesConnectable,isValid:a.connection.isValid,inProgress:a.connection.inProgress,width:a.width,height:a.height});function uO({containerStyle:a,style:b,type:c,component:d}){let{nodesConnectable:e,width:f,height:g,isValid:h,inProgress:i}=s4(uN,s0);return f&&e&&i?(0,v.jsx)("svg",{style:a,width:f,height:g,className:"react-flow__connectionline react-flow__container",children:(0,v.jsx)("g",{className:oO(["react-flow__connection",ru(h)]),children:(0,v.jsx)(uP,{style:b,type:c,CustomComponent:d,isValid:h})})}):null}let uP=({style:a,type:b=q.Bezier,CustomComponent:c,isValid:d})=>{let{inProgress:e,from:f,fromNode:g,fromHandle:h,fromPosition:i,to:j,toNode:k,toHandle:l,toPosition:m,pointer:n}=s4(uM,s0);if(!e)return;if(c)return(0,v.jsx)(c,{connectionLineType:b,connectionLineStyle:a,fromNode:g,fromHandle:h,fromX:f.x,fromY:f.y,toX:j.x,toY:j.y,fromPosition:i,toPosition:m,connectionStatus:ru(d),toNode:k,toHandle:l,pointer:n});let o="",p={sourceX:f.x,sourceY:f.y,sourcePosition:i,targetX:j.x,targetY:j.y,targetPosition:m};switch(b){case q.Bezier:[o]=sb(p);break;case q.SimpleBezier:[o]=uk(p);break;case q.Step:[o]=sj({...p,borderRadius:0});break;case q.SmoothStep:[o]=sj(p);break;default:[o]=sf(p)}return(0,v.jsx)("path",{d:o,fill:"none",className:"react-flow__connection-path",style:a})};uP.displayName="ConnectionLine";let uQ={};function uR(a=uQ){(0,w.useRef)(a),s5(),(0,w.useEffect)(()=>{},[a])}function uS({nodeTypes:a,edgeTypes:b,onInit:c,onNodeClick:d,onEdgeClick:e,onNodeDoubleClick:f,onEdgeDoubleClick:g,onNodeMouseEnter:h,onNodeMouseMove:i,onNodeMouseLeave:j,onNodeContextMenu:k,onSelectionContextMenu:l,onSelectionStart:m,onSelectionEnd:n,connectionLineType:o,connectionLineStyle:p,connectionLineComponent:q,connectionLineContainerStyle:r,selectionKeyCode:s,selectionOnDrag:t,selectionMode:u,multiSelectionKeyCode:x,panActivationKeyCode:y,zoomActivationKeyCode:z,deleteKeyCode:A,onlyRenderVisibleElements:B,elementsSelectable:C,defaultViewport:D,translateExtent:E,minZoom:F,maxZoom:G,preventScrolling:H,defaultMarkerColor:I,zoomOnScroll:J,zoomOnPinch:K,panOnScroll:L,panOnScrollSpeed:M,panOnScrollMode:N,zoomOnDoubleClick:O,panOnDrag:P,onPaneClick:Q,onPaneMouseEnter:R,onPaneMouseMove:S,onPaneMouseLeave:T,onPaneScroll:U,onPaneContextMenu:V,paneClickDistance:W,nodeClickDistance:X,onEdgeContextMenu:Y,onEdgeMouseEnter:Z,onEdgeMouseMove:$,onEdgeMouseLeave:_,reconnectRadius:aa,onReconnect:ab,onReconnectStart:ac,onReconnectEnd:ad,noDragClassName:ae,noWheelClassName:af,noPanClassName:ag,disableKeyboardA11y:ah,nodeExtent:ai,rfId:aj,viewport:ak,onViewportChange:al}){let am,an,ao,ap;return uR(a),uR(b),s5(),(0,w.useRef)(!1),(0,w.useEffect)(()=>{},[]),am=tI(),an=(0,w.useRef)(!1),(0,w.useEffect)(()=>{!an.current&&am.viewportInitialized&&c&&(setTimeout(()=>c(am),1),an.current=!0)},[c,am.viewportInitialized]),ao=s4(uL),ap=s5(),(0,w.useEffect)(()=>{ak&&(ao?.(ak),ap.setState({transform:[ak.x,ak.y,ak.zoom]}))},[ak,ao]),(0,v.jsx)(t6,{onPaneClick:Q,onPaneMouseEnter:R,onPaneMouseMove:S,onPaneMouseLeave:T,onPaneContextMenu:V,onPaneScroll:U,paneClickDistance:W,deleteKeyCode:A,selectionKeyCode:s,selectionOnDrag:t,selectionMode:u,onSelectionStart:m,onSelectionEnd:n,multiSelectionKeyCode:x,panActivationKeyCode:y,zoomActivationKeyCode:z,elementsSelectable:C,zoomOnScroll:J,zoomOnPinch:K,zoomOnDoubleClick:O,panOnScroll:L,panOnScrollSpeed:M,panOnScrollMode:N,panOnDrag:P,defaultViewport:D,translateExtent:E,minZoom:F,maxZoom:G,onSelectionContextMenu:l,preventScrolling:H,noDragClassName:ae,noWheelClassName:af,noPanClassName:ag,disableKeyboardA11y:ah,onViewportChange:al,isControlledViewport:!!ak,children:(0,v.jsxs)(uK,{children:[(0,v.jsx)(uI,{edgeTypes:b,onEdgeClick:e,onEdgeDoubleClick:g,onReconnect:ab,onReconnectStart:ac,onReconnectEnd:ad,onlyRenderVisibleElements:B,onEdgeContextMenu:Y,onEdgeMouseEnter:Z,onEdgeMouseMove:$,onEdgeMouseLeave:_,reconnectRadius:aa,defaultMarkerColor:I,noPanClassName:ag,disableKeyboardA11y:ah,rfId:aj}),(0,v.jsx)(uO,{style:p,type:o,component:q,containerStyle:r}),(0,v.jsx)("div",{className:"react-flow__edgelabel-renderer"}),(0,v.jsx)(ub,{nodeTypes:a,onNodeClick:d,onNodeDoubleClick:f,onNodeMouseEnter:h,onNodeMouseMove:i,onNodeMouseLeave:j,onNodeContextMenu:k,nodeClickDistance:X,onlyRenderVisibleElements:B,noPanClassName:ag,noDragClassName:ae,disableKeyboardA11y:ah,nodeExtent:ai,rfId:aj}),(0,v.jsx)("div",{className:"react-flow__viewport-portal"})]})})}uS.displayName="GraphView";let uT=(0,w.memo)(uS),uU=({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,width:e,height:f,fitView:g,fitViewOptions:h,minZoom:i=.5,maxZoom:j=2,nodeOrigin:k,nodeExtent:l,zIndexMode:m="basic"}={})=>{let o=new Map,p=new Map,q=new Map,r=new Map,s=d??b??[],t=c??a??[],u=k??[0,0],v=l??rp;sz(q,r,s);let w=st(t,o,p,{nodeOrigin:u,nodeExtent:v,zIndexMode:m}),x=[0,0,1];if(g&&e&&f){let{x:a,y:b,zoom:c}=rW(ry(o,{filter:a=>!!((a.width||a.initialWidth)&&(a.height||a.initialHeight))}),e,f,i,j,h?.padding??.1);x=[a,b,c]}return{rfId:"1",width:e??0,height:f??0,transform:x,nodes:t,nodesInitialized:w,nodeLookup:o,parentLookup:p,edges:s,edgeLookup:r,connectionLookup:q,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==c,hasDefaultEdges:void 0!==d,panZoom:null,minZoom:i,maxZoom:j,translateExtent:rp,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:n.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:u,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:g??!1,fitViewOptions:h,fitViewResolver:null,connection:{...rs},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:rR,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:rr,zIndexMode:m,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}};function uV({initialNodes:a,initialEdges:b,defaultNodes:c,defaultEdges:d,initialWidth:e,initialHeight:f,initialMinZoom:g,initialMaxZoom:h,initialFitViewOptions:i,fitView:j,nodeOrigin:k,nodeExtent:l,zIndexMode:m,children:n}){let[o]=(0,w.useState)(()=>(({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,width:e,height:f,fitView:g,fitViewOptions:h,minZoom:i,maxZoom:j,nodeOrigin:k,nodeExtent:l,zIndexMode:m})=>{let n,o;return n=(n,o)=>{async function p(){let{nodeLookup:a,panZoom:b,fitViewOptions:c,fitViewResolver:d,width:e,height:f,minZoom:g,maxZoom:h}=o();b&&(await rA({nodes:a,width:e,height:f,panZoom:b,minZoom:g,maxZoom:h},c),d?.resolve(!0),n({fitViewResolver:null}))}return{...uU({nodes:a,edges:b,width:e,height:f,fitView:g,fitViewOptions:h,minZoom:i,maxZoom:j,nodeOrigin:k,nodeExtent:l,defaultNodes:c,defaultEdges:d,zIndexMode:m}),setNodes:a=>{let{nodeLookup:b,parentLookup:c,nodeOrigin:d,elevateNodesOnSelect:e,fitViewQueued:f,zIndexMode:g}=o(),h=st(a,b,c,{nodeOrigin:d,nodeExtent:l,elevateNodesOnSelect:e,checkEquality:!0,zIndexMode:g});f&&h?(p(),n({nodes:a,nodesInitialized:h,fitViewQueued:!1,fitViewOptions:void 0})):n({nodes:a,nodesInitialized:h})},setEdges:a=>{let{connectionLookup:b,edgeLookup:c}=o();sz(b,c,a),n({edges:a})},setDefaultNodesAndEdges:(a,b)=>{if(a){let{setNodes:b}=o();b(a),n({hasDefaultNodes:!0})}if(b){let{setEdges:a}=o();a(b),n({hasDefaultEdges:!0})}},updateNodeInternals:a=>{let{triggerNodeChanges:b,nodeLookup:c,parentLookup:d,domNode:e,nodeOrigin:f,nodeExtent:g,debug:h,fitViewQueued:i,zIndexMode:j}=o(),{changes:k,updatedInternals:l}=function(a,b,c,d,e,f,g){let h=d?.querySelector(".xyflow__viewport"),i=!1;if(!h)return{changes:[],updatedInternals:i};let j=[],k=window.getComputedStyle(h),{m22:l}=new window.DOMMatrixReadOnly(k.transform),m=[];for(let d of a.values()){let a=b.get(d.id);if(!a)continue;if(a.hidden){b.set(a.id,{...a,internals:{...a.internals,handleBounds:void 0}}),i=!0;continue}let h=r2(d.nodeElement),k=a.measured.width!==h.width||a.measured.height!==h.height;if(h.width&&h.height&&(k||!a.internals.handleBounds||d.force)){let n=d.nodeElement.getBoundingClientRect(),o=rY(a.extent)?a.extent:f,{positionAbsolute:p}=a.internals;a.parentId&&"parent"===a.extent?p=rF(p,h,b.get(a.parentId)):o&&(p=rE(p,o,h));let q={...a,measured:h,internals:{...a.internals,positionAbsolute:p,handleBounds:{source:r7("source",d.nodeElement,n,l,a.id),target:r7("target",d.nodeElement,n,l,a.id)}}};b.set(a.id,q),a.parentId&&su(q,b,c,{nodeOrigin:e,zIndexMode:g}),i=!0,k&&(j.push({id:a.id,type:"dimensions",dimensions:h}),a.expandParent&&a.parentId&&m.push({id:a.id,parentId:a.parentId,rect:rL(q,e)}))}}if(m.length>0){let a=sw(m,b,c,e);j.push(...a)}return{changes:j,updatedInternals:i}}(a,c,d,e,f,g,j);l&&(!function(a,b,c){let d=sr(sp,c);for(let c of a.values())if(c.parentId)su(c,a,b,d);else{let a=rE(rx(c,d.nodeOrigin),rY(c.extent)?c.extent:d.nodeExtent,rZ(c));c.internals.positionAbsolute=a}}(c,d,{nodeOrigin:f,nodeExtent:g,zIndexMode:j}),i?(p(),n({fitViewQueued:!1,fitViewOptions:void 0})):n({}),k?.length>0&&(h&&console.log("React Flow: trigger node changes",k),b?.(k)))},updateNodePositions:(a,b=!1)=>{let c=[],d=[],{nodeLookup:e,triggerNodeChanges:f,connection:g,updateConnection:h,onNodesChangeMiddlewareMap:i}=o();for(let[f,i]of a){let a=e.get(f),j=!!(a?.expandParent&&a?.parentId&&i?.position),k={id:f,type:"position",position:j?{x:Math.max(0,i.position.x),y:Math.max(0,i.position.y)}:i.position,dragging:b};if(a&&g.inProgress&&g.fromNode.id===a.id){let b=sm(a,g.fromHandle,s.Left,!0);h({...g,from:b})}j&&a.parentId&&c.push({id:f,parentId:a.parentId,rect:{...i.internals.positionAbsolute,width:i.measured.width??0,height:i.measured.height??0}}),d.push(k)}if(c.length>0){let{parentLookup:a,nodeOrigin:b}=o(),f=sw(c,e,a,b);d.push(...f)}for(let a of i.values())d=a(d);f(d)},triggerNodeChanges:a=>{let{onNodesChange:b,setNodes:c,nodes:d,hasDefaultNodes:e,debug:f}=o();a?.length&&(e&&c(tw(a,d)),f&&console.log("React Flow: trigger node changes",a),b?.(a))},triggerEdgeChanges:a=>{let{onEdgesChange:b,setEdges:c,edges:d,hasDefaultEdges:e,debug:f}=o();a?.length&&(e&&c(tw(a,d)),f&&console.log("React Flow: trigger edge changes",a),b?.(a))},addSelectedNodes:a=>{let{multiSelectionActive:b,edgeLookup:c,nodeLookup:d,triggerNodeChanges:e,triggerEdgeChanges:f}=o();b?e(a.map(a=>tx(a,!0))):(e(ty(d,new Set([...a]),!0)),f(ty(c)))},addSelectedEdges:a=>{let{multiSelectionActive:b,edgeLookup:c,nodeLookup:d,triggerNodeChanges:e,triggerEdgeChanges:f}=o();b?f(a.map(a=>tx(a,!0))):(f(ty(c,new Set([...a]))),e(ty(d,new Set,!0)))},unselectNodesAndEdges:({nodes:a,edges:b}={})=>{let{edges:c,nodes:d,nodeLookup:e,triggerNodeChanges:f,triggerEdgeChanges:g}=o(),h=[];for(let b of a||d){if(!b.selected)continue;let a=e.get(b.id);a&&(a.selected=!1),h.push(tx(b.id,!1))}let i=[];for(let a of b||c)a.selected&&i.push(tx(a.id,!1));f(h),g(i)},setMinZoom:a=>{let{panZoom:b,maxZoom:c}=o();b?.setScaleExtent([a,c]),n({minZoom:a})},setMaxZoom:a=>{let{panZoom:b,minZoom:c}=o();b?.setScaleExtent([c,a]),n({maxZoom:a})},setTranslateExtent:a=>{o().panZoom?.setTranslateExtent(a),n({translateExtent:a})},resetSelectedElements:()=>{let{edges:a,nodes:b,triggerNodeChanges:c,triggerEdgeChanges:d,elementsSelectable:e}=o();if(!e)return;let f=b.reduce((a,b)=>b.selected?[...a,tx(b.id,!1)]:a,[]),g=a.reduce((a,b)=>b.selected?[...a,tx(b.id,!1)]:a,[]);c(f),d(g)},setNodeExtent:a=>{let{nodes:b,nodeLookup:c,parentLookup:d,nodeOrigin:e,elevateNodesOnSelect:f,nodeExtent:g,zIndexMode:h}=o();(a[0][0]!==g[0][0]||a[0][1]!==g[0][1]||a[1][0]!==g[1][0]||a[1][1]!==g[1][1])&&(st(b,c,d,{nodeOrigin:e,nodeExtent:a,elevateNodesOnSelect:f,checkEquality:!1,zIndexMode:h}),n({nodeExtent:a}))},panBy:a=>{let{transform:b,width:c,height:d,panZoom:e,translateExtent:f}=o();return sx({delta:a,panZoom:e,transform:b,translateExtent:f,width:c,height:d})},setCenter:async(a,b,c)=>{let{width:d,height:e,maxZoom:f,panZoom:g}=o();if(!g)return Promise.resolve(!1);let h=void 0!==c?.zoom?c.zoom:f;return await g.setViewport({x:d/2-a*h,y:e/2-b*h,zoom:h},{duration:c?.duration,ease:c?.ease,interpolate:c?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{n({connection:{...rs}})},updateConnection:a=>{n({connection:a})},reset:()=>n({...uU()})}},o=Object.is,n?s_(n,o):s_})({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,width:e,height:f,fitView:j,minZoom:g,maxZoom:h,fitViewOptions:i,nodeOrigin:k,nodeExtent:l,zIndexMode:m}));return(0,v.jsx)(s2,{value:o,children:(0,v.jsx)(tG,{children:n})})}function uW({children:a,nodes:b,edges:c,defaultNodes:d,defaultEdges:e,width:f,height:g,fitView:h,fitViewOptions:i,minZoom:j,maxZoom:k,nodeOrigin:l,nodeExtent:m,zIndexMode:n}){return(0,w.useContext)(s1)?(0,v.jsx)(v.Fragment,{children:a}):(0,v.jsx)(uV,{initialNodes:b,initialEdges:c,defaultNodes:d,defaultEdges:e,initialWidth:f,initialHeight:g,fitView:h,initialFitViewOptions:i,initialMinZoom:j,initialMaxZoom:k,nodeOrigin:l,nodeExtent:m,zIndexMode:n,children:a})}let uX={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var uY=tC(function({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,className:e,nodeTypes:f,edgeTypes:g,onNodeClick:h,onEdgeClick:i,onInit:j,onMove:k,onMoveStart:l,onMoveEnd:m,onConnect:n,onConnectStart:r,onConnectEnd:s,onClickConnectStart:t,onClickConnectEnd:u,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:z,onNodeContextMenu:A,onNodeDoubleClick:B,onNodeDragStart:C,onNodeDrag:D,onNodeDragStop:E,onNodesDelete:F,onEdgesDelete:G,onDelete:H,onSelectionChange:I,onSelectionDragStart:J,onSelectionDrag:K,onSelectionDragStop:L,onSelectionContextMenu:M,onSelectionStart:N,onSelectionEnd:O,onBeforeDelete:P,connectionMode:Q,connectionLineType:R=q.Bezier,connectionLineStyle:S,connectionLineComponent:T,connectionLineContainerStyle:U,deleteKeyCode:V="Backspace",selectionKeyCode:W="Shift",selectionOnDrag:X=!1,selectionMode:Y=p.Full,panActivationKeyCode:Z="Space",multiSelectionKeyCode:$=rX()?"Meta":"Control",zoomActivationKeyCode:_=rX()?"Meta":"Control",snapToGrid:aa,snapGrid:ab,onlyRenderVisibleElements:ac=!1,selectNodesOnDrag:ad,nodesDraggable:ae,autoPanOnNodeFocus:af,nodesConnectable:ag,nodesFocusable:ah,nodeOrigin:ai=tm,edgesFocusable:aj,edgesReconnectable:ak,elementsSelectable:al=!0,defaultViewport:am=tn,minZoom:an=.5,maxZoom:ao=2,translateExtent:ap=rp,preventScrolling:aq=!0,nodeExtent:ar,defaultMarkerColor:as="#b1b1b7",zoomOnScroll:at=!0,zoomOnPinch:au=!0,panOnScroll:av=!1,panOnScrollSpeed:aw=.5,panOnScrollMode:ax=o.Free,zoomOnDoubleClick:ay=!0,panOnDrag:az=!0,onPaneClick:aA,onPaneMouseEnter:aB,onPaneMouseMove:aC,onPaneMouseLeave:aD,onPaneScroll:aE,onPaneContextMenu:aF,paneClickDistance:aG=1,nodeClickDistance:aH=0,children:aI,onReconnect:aJ,onReconnectStart:aK,onReconnectEnd:aL,onEdgeContextMenu:aM,onEdgeDoubleClick:aN,onEdgeMouseEnter:aO,onEdgeMouseMove:aP,onEdgeMouseLeave:aQ,reconnectRadius:aR=10,onNodesChange:aS,onEdgesChange:aT,noDragClassName:aU="nodrag",noWheelClassName:aV="nowheel",noPanClassName:aW="nopan",fitView:aX,fitViewOptions:aY,connectOnClick:aZ,attributionPosition:a$,proOptions:a_,defaultEdgeOptions:a0,elevateNodesOnSelect:a1=!0,elevateEdgesOnSelect:a2=!1,disableKeyboardA11y:a3=!1,autoPanOnConnect:a4,autoPanOnNodeDrag:a5,autoPanSpeed:a6,connectionRadius:a7,isValidConnection:a8,onError:a9,style:ba,id:bb,nodeDragThreshold:bc,connectionDragThreshold:bd,viewport:be,onViewportChange:bf,width:bg,height:bh,colorMode:bi="light",debug:bj,onScroll:bk,ariaLabelConfig:bl,zIndexMode:bm="basic",...bn},bo){let bp=bb||"1",bq=function(a){let[b,c]=(0,w.useState)("system"===a?null:a);return(0,w.useEffect)(()=>"system"!==a?void c(a):(c("light"),()=>{}),[a]),null!==b?b:"light"}(bi),br=(0,w.useCallback)(a=>{a.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),bk?.(a)},[bk]);return(0,v.jsx)("div",{"data-testid":"rf__wrapper",...bn,onScroll:br,style:{...ba,...uX},ref:bo,className:oO(["react-flow",e,bq]),id:bb,role:"application",children:(0,v.jsxs)(uW,{nodes:a,edges:b,width:bg,height:bh,fitView:aX,fitViewOptions:aY,minZoom:an,maxZoom:ao,nodeOrigin:ai,nodeExtent:ar,zIndexMode:bm,children:[(0,v.jsx)(uT,{onInit:j,onNodeClick:h,onEdgeClick:i,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:z,onNodeContextMenu:A,onNodeDoubleClick:B,nodeTypes:f,edgeTypes:g,connectionLineType:R,connectionLineStyle:S,connectionLineComponent:T,connectionLineContainerStyle:U,selectionKeyCode:W,selectionOnDrag:X,selectionMode:Y,deleteKeyCode:V,multiSelectionKeyCode:$,panActivationKeyCode:Z,zoomActivationKeyCode:_,onlyRenderVisibleElements:ac,defaultViewport:am,translateExtent:ap,minZoom:an,maxZoom:ao,preventScrolling:aq,zoomOnScroll:at,zoomOnPinch:au,zoomOnDoubleClick:ay,panOnScroll:av,panOnScrollSpeed:aw,panOnScrollMode:ax,panOnDrag:az,onPaneClick:aA,onPaneMouseEnter:aB,onPaneMouseMove:aC,onPaneMouseLeave:aD,onPaneScroll:aE,onPaneContextMenu:aF,paneClickDistance:aG,nodeClickDistance:aH,onSelectionContextMenu:M,onSelectionStart:N,onSelectionEnd:O,onReconnect:aJ,onReconnectStart:aK,onReconnectEnd:aL,onEdgeContextMenu:aM,onEdgeDoubleClick:aN,onEdgeMouseEnter:aO,onEdgeMouseMove:aP,onEdgeMouseLeave:aQ,reconnectRadius:aR,defaultMarkerColor:as,noDragClassName:aU,noWheelClassName:aV,noPanClassName:aW,rfId:bp,disableKeyboardA11y:a3,nodeExtent:ar,viewport:be,onViewportChange:bf}),(0,v.jsx)(tr,{nodes:a,edges:b,defaultNodes:c,defaultEdges:d,onConnect:n,onConnectStart:r,onConnectEnd:s,onClickConnectStart:t,onClickConnectEnd:u,nodesDraggable:ae,autoPanOnNodeFocus:af,nodesConnectable:ag,nodesFocusable:ah,edgesFocusable:aj,edgesReconnectable:ak,elementsSelectable:al,elevateNodesOnSelect:a1,elevateEdgesOnSelect:a2,minZoom:an,maxZoom:ao,nodeExtent:ar,onNodesChange:aS,onEdgesChange:aT,snapToGrid:aa,snapGrid:ab,connectionMode:Q,translateExtent:ap,connectOnClick:aZ,defaultEdgeOptions:a0,fitView:aX,fitViewOptions:aY,onNodesDelete:F,onEdgesDelete:G,onDelete:H,onNodeDragStart:C,onNodeDrag:D,onNodeDragStop:E,onSelectionDrag:K,onSelectionDragStart:J,onSelectionDragStop:L,onMove:k,onMoveStart:l,onMoveEnd:m,noPanClassName:aW,nodeOrigin:ai,rfId:bp,autoPanOnConnect:a4,autoPanOnNodeDrag:a5,autoPanSpeed:a6,onError:a9,connectionRadius:a7,isValidConnection:a8,selectNodesOnDrag:ad,nodeDragThreshold:bc,connectionDragThreshold:bd,onBeforeDelete:P,debug:bj,ariaLabelConfig:bl,zIndexMode:bm}),(0,v.jsx)(tl,{onSelectionChange:I}),aI,(0,v.jsx)(tf,{proOptions:a_,position:a$}),(0,v.jsx)(td,{rfId:bp,disableKeyboardA11y:a3})]})})});function uZ({dimensions:a,lineWidth:b,variant:c,className:d}){return(0,v.jsx)("path",{strokeWidth:b,d:`M${a[0]/2} 0 V${a[1]} M0 ${a[1]/2} H${a[0]}`,className:oO(["react-flow__background-pattern",c,d])})}function u$({radius:a,className:b}){return(0,v.jsx)("circle",{cx:a,cy:a,r:a,className:oO(["react-flow__background-pattern","dots",b])})}(l=u||(u={})).Lines="lines",l.Dots="dots",l.Cross="cross";let u_={[u.Dots]:1,[u.Lines]:1,[u.Cross]:6},u0=a=>({transform:a.transform,patternId:`pattern-${a.rfId}`});function u1({id:a,variant:b=u.Dots,gap:c=20,size:d,lineWidth:e=1,offset:f=0,color:g,bgColor:h,style:i,className:j,patternClassName:k}){let l=(0,w.useRef)(null),{transform:m,patternId:n}=s4(u0,s0),o=d||u_[b],p=b===u.Dots,q=b===u.Cross,r=Array.isArray(c)?c:[c,c],s=[r[0]*m[2]||1,r[1]*m[2]||1],t=o*m[2],x=Array.isArray(f)?f:[f,f],y=q?[t,t]:s,z=[x[0]*m[2]||1+y[0]/2,x[1]*m[2]||1+y[1]/2],A=`${n}${a||""}`;return(0,v.jsxs)("svg",{className:oO(["react-flow__background",j]),style:{...i,...tL,"--xy-background-color-props":h,"--xy-background-pattern-color-props":g},ref:l,"data-testid":"rf__background",children:[(0,v.jsx)("pattern",{id:A,x:m[0]%s[0],y:m[1]%s[1],width:s[0],height:s[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${z[0]},-${z[1]})`,children:p?(0,v.jsx)(u$,{radius:t/2,className:k}):(0,v.jsx)(uZ,{dimensions:y,lineWidth:e,variant:b,className:k})}),(0,v.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${A})`})]})}u1.displayName="Background";let u2=(0,w.memo)(u1);function u3(){return(0,v.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:(0,v.jsx)("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function u4(){return(0,v.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:(0,v.jsx)("path",{d:"M0 0h32v4.2H0z"})})}function u5(){return(0,v.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:(0,v.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 u6(){return(0,v.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,v.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 u7(){return(0,v.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,v.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 u8({children:a,className:b,...c}){return(0,v.jsx)("button",{type:"button",className:oO(["react-flow__controls-button",b]),...c,children:a})}let u9=a=>({isInteractive:a.nodesDraggable||a.nodesConnectable||a.elementsSelectable,minZoomReached:a.transform[2]<=a.minZoom,maxZoomReached:a.transform[2]>=a.maxZoom,ariaLabelConfig:a.ariaLabelConfig});function va({style:a,showZoom:b=!0,showFitView:c=!0,showInteractive:d=!0,fitViewOptions:e,onZoomIn:f,onZoomOut:g,onFitView:h,onInteractiveChange:i,className:j,children:k,position:l="bottom-left",orientation:m="vertical","aria-label":n}){let o=s5(),{isInteractive:p,minZoomReached:q,maxZoomReached:r,ariaLabelConfig:s}=s4(u9,s0),{zoomIn:t,zoomOut:u,fitView:w}=tI();return(0,v.jsxs)(te,{className:oO(["react-flow__controls","horizontal"===m?"horizontal":"vertical",j]),position:l,style:a,"data-testid":"rf__controls","aria-label":n??s["controls.ariaLabel"],children:[b&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(u8,{onClick:()=>{t(),f?.()},className:"react-flow__controls-zoomin",title:s["controls.zoomIn.ariaLabel"],"aria-label":s["controls.zoomIn.ariaLabel"],disabled:r,children:(0,v.jsx)(u3,{})}),(0,v.jsx)(u8,{onClick:()=>{u(),g?.()},className:"react-flow__controls-zoomout",title:s["controls.zoomOut.ariaLabel"],"aria-label":s["controls.zoomOut.ariaLabel"],disabled:q,children:(0,v.jsx)(u4,{})})]}),c&&(0,v.jsx)(u8,{className:"react-flow__controls-fitview",onClick:()=>{w(e),h?.()},title:s["controls.fitView.ariaLabel"],"aria-label":s["controls.fitView.ariaLabel"],children:(0,v.jsx)(u5,{})}),d&&(0,v.jsx)(u8,{className:"react-flow__controls-interactive",onClick:()=>{o.setState({nodesDraggable:!p,nodesConnectable:!p,elementsSelectable:!p}),i?.(!p)},title:s["controls.interactive.ariaLabel"],"aria-label":s["controls.interactive.ariaLabel"],children:p?(0,v.jsx)(u7,{}):(0,v.jsx)(u6,{})}),k]})}va.displayName="Controls";let vb=(0,w.memo)(va),vc=(0,w.memo)(function({id:a,x:b,y:c,width:d,height:e,style:f,color:g,strokeColor:h,strokeWidth:i,className:j,borderRadius:k,shapeRendering:l,selected:m,onClick:n}){let{background:o,backgroundColor:p}=f||{};return(0,v.jsx)("rect",{className:oO(["react-flow__minimap-node",{selected:m},j]),x:b,y:c,rx:k,ry:k,width:d,height:e,style:{fill:g||o||p,stroke:h,strokeWidth:i},shapeRendering:l,onClick:n?b=>n(b,a):void 0})}),vd=a=>a.nodes.map(a=>a.id),ve=a=>a instanceof Function?a:()=>a,vf=(0,w.memo)(function({id:a,nodeColorFunc:b,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:e,nodeStrokeWidth:f,shapeRendering:g,NodeComponent:h,onClick:i}){let{node:j,x:k,y:l,width:m,height:n}=s4(b=>{let c=b.nodeLookup.get(a);if(!c)return{node:void 0,x:0,y:0,width:0,height:0};let d=c.internals.userNode,{x:e,y:f}=c.internals.positionAbsolute,{width:g,height:h}=rZ(d);return{node:d,x:e,y:f,width:g,height:h}},s0);return j&&!j.hidden&&r$(j)?(0,v.jsx)(h,{x:k,y:l,width:m,height:n,style:j.style,selected:!!j.selected,className:d(j),color:b(j),borderRadius:e,strokeColor:c(j),strokeWidth:f,shapeRendering:g,onClick:i,id:j.id}):null});var vg=(0,w.memo)(function({nodeStrokeColor:a,nodeColor:b,nodeClassName:c="",nodeBorderRadius:d=5,nodeStrokeWidth:e,nodeComponent:f=vc,onClick:g}){let h=s4(vd,s0),i=ve(b),j=ve(a),k=ve(c);return(0,v.jsx)(v.Fragment,{children:h.map(a=>(0,v.jsx)(vf,{id:a,nodeColorFunc:i,nodeStrokeColorFunc:j,nodeClassNameFunc:k,nodeBorderRadius:d,nodeStrokeWidth:e,NodeComponent:f,onClick:g,shapeRendering:"crispEdges"},a))})});let vh=a=>!a.hidden,vi=a=>{let b={x:-a.transform[0]/a.transform[2],y:-a.transform[1]/a.transform[2],width:a.width/a.transform[2],height:a.height/a.transform[2]};return{viewBB:b,boundingRect:a.nodeLookup.size>0?rN(ry(a.nodeLookup,{filter:vh}),b):b,rfId:a.rfId,panZoom:a.panZoom,translateExtent:a.translateExtent,flowWidth:a.width,flowHeight:a.height,ariaLabelConfig:a.ariaLabelConfig}};function vj({style:a,className:b,nodeStrokeColor:c,nodeColor:d,nodeClassName:e="",nodeBorderRadius:f=5,nodeStrokeWidth:g,nodeComponent:h,bgColor:i,maskColor:j,maskStrokeColor:k,maskStrokeWidth:l,position:m="bottom-right",onClick:n,onNodeClick:o,pannable:p=!1,zoomable:q=!1,ariaLabel:r,inversePan:s,zoomStep:t=1,offsetScale:u=5}){let x=s5(),y=(0,w.useRef)(null),{boundingRect:z,viewBB:A,rfId:B,panZoom:C,translateExtent:D,flowWidth:E,flowHeight:F,ariaLabelConfig:G}=s4(vi,s0),H=a?.width??200,I=a?.height??150,J=Math.max(z.width/H,z.height/I),K=J*H,L=J*I,M=u*J,N=z.x-(K-z.width)/2-M,O=z.y-(L-z.height)/2-M,P=K+2*M,Q=L+2*M,R=`react-flow__minimap-desc-${B}`,S=(0,w.useRef)(0),T=(0,w.useRef)();S.current=J,(0,w.useEffect)(()=>{if(y.current&&C)return T.current=function({domNode:a,panZoom:b,getTransform:c,getViewScale:d}){let e=pw(a);return{update:function({translateExtent:a,width:f,height:g,zoomStep:h=1,pannable:i=!0,zoomable:j=!0,inversePan:k=!1}){let l=[0,0],m=rn().on("start",a=>{("mousedown"===a.sourceEvent.type||"touchstart"===a.sourceEvent.type)&&(l=[a.sourceEvent.clientX??a.sourceEvent.touches[0].clientX,a.sourceEvent.clientY??a.sourceEvent.touches[0].clientY])}).on("zoom",i?e=>{let h=c();if("mousemove"!==e.sourceEvent.type&&"touchmove"!==e.sourceEvent.type||!b)return;let i=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY],j=[i[0]-l[0],i[1]-l[1]];l=i;let m=d()*Math.max(h[2],Math.log(h[2]))*(k?-1:1),n={x:h[0]-j[0]*m,y:h[1]-j[1]*m};b.setViewportConstrained({x:n.x,y:n.y,zoom:h[2]},[[0,0],[f,g]],a)}:null).on("zoom.wheel",j?a=>{if("wheel"!==a.sourceEvent.type||!b)return;let d=c(),e=a.sourceEvent.ctrlKey&&rX()?10:1,f=-a.sourceEvent.deltaY*(1===a.sourceEvent.deltaMode?.05:a.sourceEvent.deltaMode?1:.002)*h,g=d[2]*Math.pow(2,f*e);b.scaleTo(g)}:null);e.call(m,{})},destroy:function(){e.on("zoom",null)},pointer:px}}({domNode:y.current,panZoom:C,getTransform:()=>x.getState().transform,getViewScale:()=>S.current}),()=>{T.current?.destroy()}},[C]),(0,w.useEffect)(()=>{T.current?.update({translateExtent:D,width:E,height:F,inversePan:s,pannable:p,zoomStep:t,zoomable:q})},[p,q,s,t,D,E,F]);let U=n?a=>{let[b,c]=T.current?.pointer(a)||[0,0];n(a,{x:b,y:c})}:void 0,V=o?(0,w.useCallback)((a,b)=>{o(a,x.getState().nodeLookup.get(b).internals.userNode)},[]):void 0,W=r??G["minimap.ariaLabel"];return(0,v.jsx)(te,{position:m,style:{...a,"--xy-minimap-background-color-props":"string"==typeof i?i:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof j?j:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof k?k:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof l?l*J:void 0,"--xy-minimap-node-background-color-props":"string"==typeof d?d:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof c?c:void 0,"--xy-minimap-node-stroke-width-props":"number"==typeof g?g:void 0},className:oO(["react-flow__minimap",b]),"data-testid":"rf__minimap",children:(0,v.jsxs)("svg",{width:H,height:I,viewBox:`${N} ${O} ${P} ${Q}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":R,ref:y,onClick:U,children:[W&&(0,v.jsx)("title",{id:R,children:W}),(0,v.jsx)(vg,{onClick:V,nodeColor:d,nodeStrokeColor:c,nodeBorderRadius:f,nodeClassName:e,nodeStrokeWidth:g,nodeComponent:h}),(0,v.jsx)("path",{className:"react-flow__minimap-mask",d:`M${N-M},${O-M}h${P+2*M}v${Q+2*M}h${-P-2*M}z
|
|
35
|
+
M${A.x},${A.y}h${A.width}v${A.height}h${-A.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}vj.displayName="MiniMap";let vk=(0,w.memo)(vj),vl={[t.Line]:"right",[t.Handle]:"bottom-right"};(0,w.memo)(function({nodeId:a,position:b,variant:c=t.Handle,className:d,style:e,children:f,color:g,minWidth:h=10,minHeight:i=10,maxWidth:j=Number.MAX_VALUE,maxHeight:k=Number.MAX_VALUE,keepAspectRatio:l=!1,resizeDirection:m,autoScale:n=!0,shouldResize:o,onResizeStart:p,onResize:q,onResizeEnd:r}){let s,u=tY(),x="string"==typeof a?a:u,y=s5(),z=(0,w.useRef)(null),A=c===t.Handle,B=s4((0,w.useCallback)((s=A&&n,a=>s?`${Math.max(1/a.transform[2],1)}`:void 0),[A,n]),s0),C=(0,w.useRef)(null),D=b??vl[c];(0,w.useEffect)(()=>{if(z.current&&x)return C.current||(C.current=function({domNode:a,nodeId:b,getStoreItems:c,onChange:d,onEnd:e}){let f=pw(a),g={controlDirection:sO("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};return{update:function({controlPosition:a,boundaries:h,keepAspectRatio:i,resizeDirection:j,onResizeStart:k,onResize:l,onResizeEnd:m,shouldResize:n}){let o,p,q,r,s={...sS},t={...sT};g={boundaries:h,resizeDirection:j,keepAspectRatio:i,controlDirection:sO(a)};let u=null,v=[],w=!1,x=pK().on("start",a=>{let{nodeLookup:d,transform:e,snapGrid:f,snapToGrid:g,nodeOrigin:h,paneDomNode:i}=c();if(!(o=d.get(b)))return;u=i?.getBoundingClientRect()??null;let{xSnapped:j,ySnapped:l}=r1(a.sourceEvent,{transform:e,snapGrid:f,snapToGrid:g,containerBounds:u});if(t={...s={width:o.measured.width??0,height:o.measured.height??0,x:o.position.x??0,y:o.position.y??0},pointerX:j,pointerY:l,aspectRatio:s.width/s.height},p=void 0,o.parentId&&("parent"===o.extent||o.expandParent)){var m;q=(p=d.get(o.parentId))&&"parent"===o.extent?[[0,0],[(m=p).measured.width,m.measured.height]]:void 0}for(let[a,c]of(v=[],r=void 0,d))if(c.parentId===b&&(v.push({id:a,position:{...c.position},extent:c.extent}),"parent"===c.extent||c.expandParent)){let a=function(a,b,c){let d=b.position.x+a.position.x,e=b.position.y+a.position.y,f=a.measured.width??0,g=a.measured.height??0,h=c[0]*f,i=c[1]*g;return[[d-h,e-i],[d+f-h,e+g-i]]}(c,o,c.origin??h);r=r?[[Math.min(a[0][0],r[0][0]),Math.min(a[0][1],r[0][1])],[Math.max(a[1][0],r[1][0]),Math.max(a[1][1],r[1][1])]]:a}k?.(a,{...s})}).on("drag",a=>{let{transform:b,snapGrid:e,snapToGrid:f,nodeOrigin:h}=c(),i=r1(a.sourceEvent,{transform:b,snapGrid:e,snapToGrid:f,containerBounds:u}),j=[];if(!o)return;let{x:k,y:m,width:x,height:y}=s,z={},A=o.origin??h,{width:B,height:C,x:D,y:E}=function(a,b,c,d,e,f,g,h){var i,j,k,l;let{affectsX:m,affectsY:n}=b,{isHorizontal:o,isVertical:p}=b,q=o&&p,{xSnapped:r,ySnapped:s}=c,{minWidth:t,maxWidth:u,minHeight:v,maxHeight:w}=d,{x:x,y:y,width:z,height:A,aspectRatio:B}=a,C=Math.floor(o?r-a.pointerX:0),D=Math.floor(p?s-a.pointerY:0),E=z+(m?-C:C),F=A+(n?-D:D),G=-f[0]*z,H=-f[1]*A,I=sR(E,t,u),J=sR(F,v,w);if(g){let a=0,b=0;m&&C<0?a=sP(x+C+G,g[0][0]):!m&&C>0&&(a=sQ(x+E+G,g[1][0])),n&&D<0?b=sP(y+D+H,g[0][1]):!n&&D>0&&(b=sQ(y+F+H,g[1][1])),I=Math.max(I,a),J=Math.max(J,b)}if(h){let a=0,b=0;m&&C>0?a=sQ(x+C,h[0][0]):!m&&C<0&&(a=sP(x+E,h[1][0])),n&&D>0?b=sQ(y+D,h[0][1]):!n&&D<0&&(b=sP(y+F,h[1][1])),I=Math.max(I,a),J=Math.max(J,b)}if(e){if(o){(I=Math.max(I,sR(E/B,v,w)*B),g)&&(I=Math.max(I,(m||n)&&(!m||n||!q)?sP(y+H+(m?C:-C)/B,g[0][1])*B:sQ(y+H+E/B,g[1][1])*B));h&&(I=Math.max(I,(m||n)&&(!m||n||!q)?sQ(y+(m?C:-C)/B,h[0][1])*B:sP(y+E/B,h[1][1])*B))}if(p){(J=Math.max(J,sR(F*B,t,u)/B),g)&&(J=Math.max(J,(m||n)&&(!n||m||!q)?sP(x+(n?D:-D)*B+G,g[0][0])/B:sQ(x+F*B+G,g[1][0])/B));h&&(J=Math.max(J,(m||n)&&(!n||m||!q)?sQ(x+(n?D:-D)*B,h[0][0])/B:sP(x+F*B,h[1][0])/B))}}D+=D<0?J:-J,C+=C<0?I:-I,e&&(q?E>F*B?D=((i=m,j=n,i?!j:j)?-C:C)/B:C=((k=m,l=n,k?!l:l)?-D:D)*B:o?(D=C/B,n=m):(C=D*B,m=n));let K=m?x+C:x,L=n?y+D:y;return{width:z+(m?-C:C),height:A+(n?-D:D),x:f[0]*C*(m?-1:1)+K,y:f[1]*D*(n?-1:1)+L}}(t,g.controlDirection,i,g.boundaries,g.keepAspectRatio,A,q,r),F=B!==x,G=C!==y,H=D!==k&&F,I=E!==m&&G;if(!H&&!I&&!F&&!G)return;if((H||I||1===A[0]||1===A[1])&&(z.x=H?D:s.x,z.y=I?E:s.y,s.x=z.x,s.y=z.y,v.length>0)){let a=D-k,b=E-m;for(let c of v)c.position={x:c.position.x-a+A[0]*(B-x),y:c.position.y-b+A[1]*(C-y)},j.push(c)}if((F||G)&&(z.width=F&&(!g.resizeDirection||"horizontal"===g.resizeDirection)?B:s.width,z.height=G&&(!g.resizeDirection||"vertical"===g.resizeDirection)?C:s.height,s.width=z.width,s.height=z.height),p&&o.expandParent){let a=A[0]*(z.width??0);z.x&&z.x<a&&(s.x=a,t.x=t.x-(z.x-a));let b=A[1]*(z.height??0);z.y&&z.y<b&&(s.y=b,t.y=t.y-(z.y-b))}let J=function({width:a,prevWidth:b,height:c,prevHeight:d,affectsX:e,affectsY:f}){let g=a-b,h=c-d,i=[g>0?1:g<0?-1:0,h>0?1:h<0?-1:0];return g&&e&&(i[0]=-1*i[0]),h&&f&&(i[1]=-1*i[1]),i}({width:s.width,prevWidth:x,height:s.height,prevHeight:y,affectsX:g.controlDirection.affectsX,affectsY:g.controlDirection.affectsY}),K={...s,direction:J};!1!==n?.(a,K)&&(w=!0,l?.(a,K),d(z,j))}).on("end",a=>{w&&(m?.(a,{...s}),e?.({...s}),w=!1)});f.call(x)},destroy:function(){f.on(".drag",null)}}}({domNode:z.current,nodeId:x,getStoreItems:()=>{let{nodeLookup:a,transform:b,snapGrid:c,snapToGrid:d,nodeOrigin:e,domNode:f}=y.getState();return{nodeLookup:a,transform:b,snapGrid:c,snapToGrid:d,nodeOrigin:e,paneDomNode:f}},onChange:(a,b)=>{let{triggerNodeChanges:c,nodeLookup:d,parentLookup:e,nodeOrigin:f}=y.getState(),g=[],h={x:a.x,y:a.y},i=d.get(x);if(i&&i.expandParent&&i.parentId){let b=i.origin??f,c=a.width??i.measured.width??0,j=a.height??i.measured.height??0,k=sw([{id:i.id,parentId:i.parentId,rect:{width:c,height:j,...r_({x:a.x??i.position.x,y:a.y??i.position.y},{width:c,height:j},i.parentId,d,b)}}],d,e,f);g.push(...k),h.x=a.x?Math.max(b[0]*c,a.x):void 0,h.y=a.y?Math.max(b[1]*j,a.y):void 0}if(void 0!==h.x&&void 0!==h.y){let a={id:x,type:"position",position:{...h}};g.push(a)}if(void 0!==a.width&&void 0!==a.height){let b={id:x,type:"dimensions",resizing:!0,setAttributes:!m||("horizontal"===m?"width":"height"),dimensions:{width:a.width,height:a.height}};g.push(b)}for(let a of b){let b={...a,type:"position"};g.push(b)}c(g)},onEnd:({width:a,height:b})=>{y.getState().triggerNodeChanges([{id:x,type:"dimensions",resizing:!1,dimensions:{width:a,height:b}}])}})),C.current.update({controlPosition:D,boundaries:{minWidth:h,minHeight:i,maxWidth:j,maxHeight:k},keepAspectRatio:l,resizeDirection:m,onResizeStart:p,onResize:q,onResizeEnd:r,shouldResize:o}),()=>{C.current?.destroy()}},[D,h,i,j,k,l,p,q,r,o]);let E=D.split("-");return(0,v.jsx)("div",{className:oO(["react-flow__resize-control","nodrag",...E,c,d]),ref:z,style:{...e,scale:B,...g&&{[A?"backgroundColor":"borderColor"]:g}},children:f})});let vm={Bot:D.Bot,Scale:oC,GitBranch:Y.GitBranch,GitMerge:oD,RefreshCw:aB.RefreshCw,User:oj.User,Code:oE,Square:an,Zap:ol,Wrench:E.Wrench},vn=["#10b981","#3b82f6","#f59e0b","#8b5cf6","#ec4899","#06b6d4"],vo={stepNode:(0,w.memo)(function({data:a,selected:b}){let c=a.step,d=a.isEntry,e=a.runStatus,f=a.agentName,g=oN[c.type];if(!g)return null;let h=vm[g.icon]||D.Bot,i="evaluator"===c.type?Object.keys(c.route_map||{}):[],j="end"===c.type,k="loop"===c.type,l="evaluator"===c.type;return(0,v.jsxs)("div",{className:`relative bg-zinc-800 rounded-lg border-2 ${e?({pending:"border-zinc-600",running:"border-blue-400 shadow-blue-400/30 shadow-lg animate-pulse",paused:"border-amber-400 shadow-amber-400/30 shadow-lg",completed:"border-green-500",failed:"border-red-500"})[e]||"border-zinc-600":b?"border-blue-500":"border-zinc-600"} min-w-[160px] max-w-[220px] transition-all`,style:{borderColor:b?g.color:void 0},children:[(0,v.jsx)(t$,{type:"target",position:s.Left,className:"!bg-zinc-400 !w-3 !h-3 !border-2 !border-zinc-700"}),(0,v.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-zinc-700",style:{backgroundColor:g.color+"20"},children:[(0,v.jsx)("div",{style:{color:g.color},children:(0,v.jsx)(h,{size:14})}),(0,v.jsx)("span",{className:"text-xs font-medium text-zinc-300 truncate",children:c.name}),d&&(0,v.jsx)("span",{className:"text-[10px] bg-green-600 text-white px-1.5 py-0.5 rounded-full ml-auto",children:"START"})]}),(0,v.jsxs)("div",{className:"px-3 py-2 space-y-1",children:[(0,v.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:g.label}),"agent"===c.type&&f&&(0,v.jsx)("div",{className:"text-xs text-zinc-400 truncate",children:f}),"tool"===c.type&&(0,v.jsx)("div",{className:"text-[10px] text-purple-400 truncate",children:c.forced_tool?c.forced_tool:"No tool selected"}),"llm"===c.type&&(0,v.jsx)("div",{className:"text-[10px] text-teal-400 truncate",children:c.prompt_template?c.prompt_template.slice(0,40)+(c.prompt_template.length>40?"…":""):"No prompt set"}),l&&i.length>0&&(0,v.jsxs)("div",{className:"text-[10px] text-emerald-400",children:[i.length," route",1!==i.length?"s":"",": ",i.join(", ")]}),"parallel"===c.type&&(0,v.jsxs)("div",{className:"text-[10px] text-purple-400",children:[(c.parallel_branches||[]).length," branch",1!==(c.parallel_branches||[]).length?"es":""]}),"merge"===c.type&&(0,v.jsx)("div",{className:"text-[10px] text-pink-400",children:c.merge_strategy||"list"}),k&&(0,v.jsxs)("div",{className:"text-[10px] text-amber-400",children:[c.loop_count||3,"× iterations"]}),"human"===c.type&&(0,v.jsx)("div",{className:"text-[10px] text-red-400 truncate",children:c.human_prompt||"Awaiting input..."}),j&&(0,v.jsx)("div",{className:"text-[10px] text-zinc-500",children:"Terminates flow"}),c.input_keys&&c.input_keys.length>0&&(0,v.jsxs)("div",{className:"text-[10px] text-zinc-500",children:[(0,v.jsx)("span",{className:"text-zinc-600",children:"in:"})," ",c.input_keys.join(", ")]}),c.output_key&&(0,v.jsxs)("div",{className:"text-[10px] text-zinc-500",children:[(0,v.jsx)("span",{className:"text-zinc-600",children:"out:"})," ",c.output_key]}),c.max_iterations&&c.max_iterations>1&&c.max_iterations<100&&(0,v.jsxs)("div",{className:"text-[10px] text-purple-400",children:["max ",c.max_iterations,"x"]})]}),j?null:l&&i.length>0?(0,v.jsxs)(v.Fragment,{children:[i.map((a,b)=>{let c=i.length,d=vn[b%vn.length];return(0,v.jsx)(t$,{type:"source",position:s.Right,id:`route_${a}`,className:"!w-3 !h-3 !border-2 !border-zinc-700",style:{top:`${1===c?50:20+60*b/(c-1)}%`,backgroundColor:d}},`route_${a}`)}),(0,v.jsx)("div",{className:"absolute -right-1 translate-x-full text-[9px] flex flex-col gap-0.5 pointer-events-none",style:{top:"20%"},children:i.map((a,b)=>{let c=vn[b%vn.length];return(0,v.jsx)("span",{className:"leading-tight",style:{color:c},children:a},a)})})]}):k?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(t$,{type:"source",position:s.Right,id:"body",className:"!w-3 !h-3 !border-2 !border-zinc-700 !bg-amber-400",style:{top:"35%"}}),(0,v.jsx)(t$,{type:"source",position:s.Right,id:"done",className:"!w-3 !h-3 !border-2 !border-zinc-700 !bg-green-500",style:{top:"65%"}}),(0,v.jsxs)("div",{className:"absolute -right-1 translate-x-full text-[9px] flex flex-col pointer-events-none",style:{top:"25%"},children:[(0,v.jsx)("span",{className:"text-amber-400 leading-relaxed",children:"body"}),(0,v.jsx)("span",{className:"text-green-500 leading-relaxed",children:"done"})]})]}):(0,v.jsx)(t$,{type:"source",position:s.Right,className:"!bg-zinc-400 !w-3 !h-3 !border-2 !border-zinc-700"})]})})};function vp(a,b,c,d,e){return a.map(a=>{let f=c.find(b=>b.id===a.agent_id);return{id:a.id,type:"stepNode",position:{x:a.position_x??0,y:a.position_y??0},data:{step:a,isEntry:a.id===b,isSelected:a.id===d,agentName:f?.name,runStatus:e?.[a.id]},selected:a.id===d}})}let vq=["#10b981","#3b82f6","#f59e0b","#8b5cf6","#ec4899","#06b6d4"];function vr(a){let b=[];for(let c of(a.map(a=>[a.id,a]),a)){if("evaluator"===c.type&&c.route_map){let a=Object.keys(c.route_map);for(let d of a){let e=c.route_map[d];if(!e)continue;let f=vq[a.indexOf(d)%vq.length];b.push({id:`${c.id}->route_${d}->${e}`,source:c.id,sourceHandle:`route_${d}`,target:e,type:"smoothstep",label:d,labelStyle:{fill:f,fontSize:10},markerEnd:{type:r.ArrowClosed,width:16,height:16,color:f},style:{stroke:f,strokeWidth:2}})}if(a.length>0)continue}if("loop"===c.type){let a=c.loop_step_ids||[];if(a.length>0){b.push({id:`${c.id}->body->${a[0]}`,source:c.id,sourceHandle:"body",target:a[0],type:"smoothstep",style:{stroke:"#f59e0b",strokeWidth:2,strokeDasharray:"5,5"},markerEnd:{type:r.ArrowClosed,width:16,height:16,color:"#f59e0b"}});for(let d=0;d<a.length-1;d++)b.push({id:`loop_body_${c.id}_${a[d]}->${a[d+1]}`,source:a[d],target:a[d+1],type:"smoothstep",style:{stroke:"#f59e0b",strokeWidth:1.5,strokeDasharray:"4,4"},markerEnd:{type:r.ArrowClosed,width:14,height:14,color:"#f59e0b"}})}c.next_step_id&&b.push({id:`${c.id}->done->${c.next_step_id}`,source:c.id,sourceHandle:"done",target:c.next_step_id,type:"smoothstep",label:"done",labelStyle:{fill:"#22c55e",fontSize:10},markerEnd:{type:r.ArrowClosed,width:16,height:16,color:"#22c55e"},style:{stroke:"#22c55e",strokeWidth:2}});continue}if("parallel"===c.type&&c.parallel_branches){for(let a of c.parallel_branches)if(0!==a.length){b.push({id:`${c.id}->par->${a[0]}`,source:c.id,target:a[0],type:"smoothstep",style:{stroke:"#8b5cf6",strokeWidth:2,strokeDasharray:"5,5"},markerEnd:{type:r.ArrowClosed,width:16,height:16,color:"#8b5cf6"}});for(let d=0;d<a.length-1;d++)b.push({id:`par_${c.id}_${a[d]}->${a[d+1]}`,source:a[d],target:a[d+1],type:"smoothstep",style:{stroke:"#8b5cf6",strokeWidth:1.5,strokeDasharray:"4,4"},markerEnd:{type:r.ArrowClosed,width:14,height:14,color:"#8b5cf6"}})}c.next_step_id&&b.push({id:`${c.id}->${c.next_step_id}`,source:c.id,target:c.next_step_id,type:"smoothstep",markerEnd:{type:r.ArrowClosed,width:16,height:16,color:"#6b7280"},style:{stroke:"#6b7280",strokeWidth:2}});continue}c.next_step_id&&b.push({id:`${c.id}->${c.next_step_id}`,source:c.id,target:c.next_step_id,type:"smoothstep",markerEnd:{type:r.ArrowClosed,width:16,height:16,color:"#6b7280"},style:{stroke:"#6b7280",strokeWidth:2}})}return b}function vs({orchestration:a,agents:b,selectedStepId:c,onSelectStep:d,onUpdateOrchestration:e,runStepStatuses:f}){let g=(0,w.useMemo)(()=>vp(a.steps,a.entry_step_id,b,c,f),[a.steps,a.entry_step_id,b,c,f]),h=(0,w.useMemo)(()=>vr(a.steps),[a.steps]),[i,j,k]=function(a){let[b,c]=(0,w.useState)(a),d=(0,w.useCallback)(a=>c(b=>tw(a,b)),[]);return[b,c,d]}(g),[l,m,n]=function(a){let[b,c]=(0,w.useState)(a),d=(0,w.useCallback)(a=>c(b=>tw(a,b)),[]);return[b,c,d]}(h);(0,w.useEffect)(()=>{j(vp(a.steps,a.entry_step_id,b,c,f)),m(vr(a.steps))},[a,b,c,f,j,m]);let o=(0,w.useCallback)(b=>{m(a=>se({...b,type:"smoothstep",markerEnd:{type:r.ArrowClosed,width:16,height:16,color:"#6b7280"},style:{stroke:"#6b7280",strokeWidth:2}},a));let c=a.steps.find(a=>a.id===b.source);if(!c||!b.target)return;let d=a.steps.map(a=>{if(a.id===b.source){if("evaluator"===a.type&&b.sourceHandle?.startsWith("route_")){let c=b.sourceHandle.replace("route_",""),d={...a.route_map||{},[c]:b.target};return{...a,route_map:d}}if("loop"===a.type){if("body"===b.sourceHandle){let c=[...a.loop_step_ids||[]];return c.includes(b.target)||c.push(b.target),{...a,loop_step_ids:c}}b.sourceHandle}return{...a,next_step_id:b.target}}if(a.id===b.target&&c.output_key){let b=a.input_keys||[];if(!b.includes(c.output_key))return{...a,input_keys:[...b,c.output_key]}}return a});e({...a,steps:d})},[a,e,m]),p=(0,w.useCallback)((b,c)=>{let d=a.steps.map(a=>a.id===c.id?{...a,position_x:c.position.x,position_y:c.position.y}:a);e({...a,steps:d})},[a,e]),q=(0,w.useCallback)((a,b)=>{d(b.id)},[d]),s=(0,w.useCallback)(()=>{d(null)},[d]);return(0,v.jsx)("div",{className:"w-full h-full",children:(0,v.jsxs)(uY,{nodes:i,edges:l,onNodesChange:k,onEdgesChange:n,onConnect:o,onNodeDragStop:p,onNodeClick:q,onPaneClick:s,nodeTypes:vo,fitView:!0,proOptions:{hideAttribution:!0},className:"bg-zinc-950",defaultEdgeOptions:{type:"smoothstep"},children:[(0,v.jsx)(u2,{variant:u.Dots,gap:20,size:1,className:"!bg-zinc-950"}),(0,v.jsx)(vb,{className:"!bg-zinc-800 !border-zinc-700 !shadow-lg [&>button]:!bg-zinc-700 [&>button]:!border-zinc-600 [&>button]:!text-zinc-200 [&>button:hover]:!bg-zinc-600"}),(0,v.jsx)(vk,{className:"!bg-zinc-800 !border-zinc-700",nodeColor:a=>{let b=a.data?.step?.type;return oN[b]?.color||"#6b7280"},maskColor:"rgba(0,0,0,0.6)"})]})})}let vt=["agent","llm","tool","evaluator","parallel","merge","loop","human","transform","end"];function vu({step:a,agents:b,allStepIds:c,onUpdate:d,onDelete:e,onClose:f,isEntry:g,onSetEntry:h,availableModels:i}){let j=b=>d({...a,...b}),k=c.filter(b=>b.id!==a.id),l="w-full bg-zinc-900 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 focus:border-blue-500 outline-none",m="w-full bg-zinc-900 border border-zinc-700 rounded px-3 py-1.5 text-xs text-zinc-200 font-mono focus:border-blue-500 outline-none",n="w-full bg-zinc-900 border border-zinc-700 rounded px-3 py-2 text-xs text-zinc-200 font-mono focus:border-blue-500 outline-none resize-y min-h-[80px]",o="w-full bg-zinc-900 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 focus:border-blue-500 outline-none";return(0,v.jsxs)("div",{className:"w-80 bg-zinc-800 border-l border-zinc-700 overflow-y-auto flex flex-col",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-zinc-700",children:[(0,v.jsx)("h3",{className:"text-sm font-semibold text-zinc-200",children:"Step Config"}),(0,v.jsx)("button",{onClick:f,className:"text-zinc-400 hover:text-zinc-200",children:(0,v.jsx)(az.X,{size:16})})]}),(0,v.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-4",children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Name"}),(0,v.jsx)("input",{className:l,value:a.name,onChange:a=>j({name:a.target.value})})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Type"}),(0,v.jsx)("select",{className:o,value:a.type,onChange:a=>j({type:a.target.value}),children:vt.map(a=>(0,v.jsx)("option",{value:a,children:oN[a].label},a))})]}),!g&&(0,v.jsx)("button",{onClick:h,className:"text-xs text-green-400 hover:text-green-300 underline",children:"Set as entry point"}),g&&(0,v.jsx)("div",{className:"text-xs text-green-400",children:"This is the entry point"}),"agent"===a.type&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Agent"}),(0,v.jsxs)("select",{className:o,value:a.agent_id||"",onChange:a=>j({agent_id:a.target.value||void 0}),children:[(0,v.jsx)("option",{value:"",children:"Select agent..."}),b.map(a=>(0,v.jsxs)("option",{value:a.id,children:[a.name," (",a.type,")"]},a.id))]})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Prompt Template"}),(0,v.jsx)(as,{className:n,rows:4,value:a.prompt_template||"",onChange:a=>j({prompt_template:a.target.value}),placeholder:"Use {state.key} to reference shared state, @ to reference vault files..."})]})]}),"tool"===a.type&&(0,v.jsx)(vw,{step:a,update:j,textareaCls:n,selectCls:o,availableModels:i}),"llm"===a.type&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("div",{className:"rounded bg-teal-950/40 border border-teal-800/40 px-3 py-2 text-[10px] text-teal-400 leading-relaxed",children:[(0,v.jsx)("strong",{children:"Single LLM call"})," — no agent, no tools. Great for summaries, rewrites, and lightweight reasoning between steps."]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Prompt Template"}),(0,v.jsx)(as,{className:n,rows:5,value:a.prompt_template||"",onChange:a=>j({prompt_template:a.target.value}),placeholder:`Summarize the following in 3 bullet points:
|
|
36
|
+
|
|
37
|
+
{state.analysis_result}
|
|
38
|
+
|
|
39
|
+
Type @ to reference a vault file`}),(0,v.jsxs)("p",{className:"text-[10px] text-zinc-600 mt-0.5",children:["Use ","{state.key}}"," to embed shared state values. Type ",(0,v.jsx)("span",{className:"text-emerald-400 font-mono",children:"@"})," to reference a vault file."]})]}),(0,v.jsxs)("div",{children:[(0,v.jsxs)("label",{className:"text-xs text-zinc-400 block mb-1",children:["Model ",(0,v.jsx)("span",{className:"text-zinc-600 normal-case",children:"(override)"})]}),(0,v.jsxs)("select",{className:o,value:a.model||"",onChange:a=>j({model:a.target.value||void 0}),children:[(0,v.jsx)("option",{value:"",children:"(Default)"}),(i||[]).map(a=>(0,v.jsx)("option",{value:a,children:a},a))]})]})]}),"evaluator"===a.type&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("div",{children:[(0,v.jsxs)("label",{className:"text-xs text-zinc-400 block mb-1",children:["Evaluator Prompt ",(0,v.jsx)("span",{className:"text-zinc-600 normal-case",children:"(routing decision)"})]}),(0,v.jsx)("textarea",{className:n,rows:3,value:a.evaluator_prompt||"",onChange:a=>j({evaluator_prompt:a.target.value}),placeholder:"Instructions for the routing decision (e.g. If login is needed, route to human...)"})]}),(0,v.jsxs)("div",{children:[(0,v.jsxs)("label",{className:"text-xs text-zinc-400 block mb-1",children:["Model ",(0,v.jsx)("span",{className:"text-zinc-600 normal-case",children:"(override for evaluator)"})]}),(0,v.jsxs)("select",{className:o,value:a.model||"",onChange:a=>j({model:a.target.value||void 0}),children:[(0,v.jsx)("option",{value:"",children:"(Default)"}),(i||[]).map(a=>(0,v.jsx)("option",{value:a,children:a},a))]})]}),(0,v.jsxs)("div",{children:[(0,v.jsxs)("label",{className:"text-xs text-zinc-400 block mb-1",children:["Routes ",(0,v.jsx)("span",{className:"text-zinc-600 normal-case",children:"(LLM picks one based on context)"})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[Object.entries(a.route_map||{}).map(([b,c])=>(0,v.jsx)(vA,{label:b,targetId:c,description:(a.route_descriptions||{})[b]||"",otherSteps:k,onRename:c=>{if(c===b||!c.trim())return;let d=Object.entries(a.route_map||{}),e={};for(let[a,f]of d)e[a===b?c:a]=f;let f=Object.entries(a.route_descriptions||{}),g={};for(let[a,d]of f)g[a===b?c:a]=d;j({route_map:e,route_descriptions:g})},onChangeTarget:c=>{j({route_map:{...a.route_map||{},[b]:c}})},onChangeDescription:c=>{j({route_descriptions:{...a.route_descriptions||{},[b]:c}})},onDelete:()=>{let c={...a.route_map||{}};delete c[b];let d={...a.route_descriptions||{}};delete d[b],j({route_map:c,route_descriptions:d})}},b)),(0,v.jsxs)("button",{onClick:()=>{let b=Object.keys(a.route_map||{}),c=`route_${b.length+1}`;j({route_map:{...a.route_map||{},[c]:null}})},className:"flex items-center gap-1 text-xs text-emerald-400 hover:text-emerald-300",children:[(0,v.jsx)(ac.Plus,{size:12})," Add Route"]})]})]})]}),"parallel"===a.type&&(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Branches (pick entry step per branch)"}),(0,v.jsxs)("div",{className:"space-y-2",children:[(a.parallel_branches||[]).map((b,c)=>(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsxs)("span",{className:"text-[10px] text-purple-400 font-semibold w-5",children:["B",c+1]}),(0,v.jsxs)("select",{className:"flex-1 bg-zinc-900 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 outline-none",value:b[0]||"",onChange:b=>{let d=[...a.parallel_branches||[]];d[c]=b.target.value?[b.target.value]:[],j({parallel_branches:d})},children:[(0,v.jsx)("option",{value:"",children:"Select entry step..."}),k.map(a=>(0,v.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,v.jsx)("button",{onClick:()=>{j({parallel_branches:(a.parallel_branches||[]).filter((a,b)=>b!==c)})},className:"text-red-400 hover:text-red-300",children:(0,v.jsx)(T.Trash2,{size:10})})]},c)),(0,v.jsxs)("button",{onClick:()=>j({parallel_branches:[...a.parallel_branches||[],[]]}),className:"flex items-center gap-1 text-xs text-purple-400 hover:text-purple-300",children:[(0,v.jsx)(ac.Plus,{size:12})," Add Branch"]})]}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-500 mt-1",children:"Each branch auto-follows the entry step's Next Step chain. Connect steps with edges on the canvas."})]}),"merge"===a.type&&(0,v.jsx)(v.Fragment,{children:(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Merge Strategy"}),(0,v.jsxs)("select",{className:o,value:a.merge_strategy||"list",onChange:a=>j({merge_strategy:a.target.value}),children:[(0,v.jsx)("option",{value:"list",children:"List (array of sources)"}),(0,v.jsx)("option",{value:"concat",children:"Concat (text join)"}),(0,v.jsx)("option",{value:"dict",children:"Dict (keyed by source)"})]})]})}),"loop"===a.type&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Loop Count"}),(0,v.jsx)("input",{type:"number",className:l,value:a.loop_count??3,onChange:a=>j({loop_count:parseInt(a.target.value)||3}),min:1})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Body Steps (executed in order each iteration)"}),(0,v.jsxs)("div",{className:"space-y-1",children:[(a.loop_step_ids||[]).map((b,c)=>(0,v.jsxs)("div",{className:"flex items-center gap-1",children:[(0,v.jsxs)("span",{className:"text-[10px] text-amber-400 w-4",children:[c+1,"."]}),(0,v.jsxs)("select",{className:"flex-1 bg-zinc-900 border border-zinc-700 rounded px-2 py-0.5 text-xs text-zinc-200 outline-none",value:b,onChange:b=>{let d=[...a.loop_step_ids||[]];d[c]=b.target.value,j({loop_step_ids:d})},children:[(0,v.jsx)("option",{value:"",children:"Select step..."}),k.map(a=>(0,v.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,v.jsx)("button",{onClick:()=>{j({loop_step_ids:(a.loop_step_ids||[]).filter((a,b)=>b!==c)})},className:"text-red-400 hover:text-red-300",children:(0,v.jsx)(T.Trash2,{size:10})})]},c)),(0,v.jsxs)("button",{onClick:()=>j({loop_step_ids:[...a.loop_step_ids||[],""]}),className:"flex items-center gap-1 text-xs text-amber-400 hover:text-amber-300",children:[(0,v.jsx)(ac.Plus,{size:12})," Add Body Step"]})]}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-500 mt-1",children:'The "done" path is configured via the green output handle or Next Step below.'})]})]}),"human"===a.type&&(0,v.jsx)(vv,{step:a,update:j,textareaCls:n,inputCls:l,selectCls:o}),"transform"===a.type&&(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsxs)("div",{className:"rounded bg-amber-950/40 border border-amber-800/40 px-3 py-2 text-[10px] text-amber-400 leading-relaxed",children:[(0,v.jsx)("strong",{children:"Python sandbox"})," — runs in Docker (512MB RAM, no network). ",(0,v.jsx)("code",{children:"state"})," dict is injected. Assign to ",(0,v.jsx)("code",{children:"result"})," to write the output key."]}),(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Python Code"}),(0,v.jsx)("div",{className:"border border-zinc-700 rounded overflow-hidden h-[220px] focus-within:border-amber-600 transition-colors",children:(0,v.jsx)(vz,{value:a.transform_code||"",onChange:a=>j({transform_code:a})})})]}),"end"===a.type&&(0,v.jsx)("div",{className:"text-xs text-zinc-500",children:"This node terminates the orchestration. No configuration needed."}),(0,v.jsx)("hr",{className:"border-zinc-700"}),"end"!==a.type&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Input Keys (comma-separated)"}),(0,v.jsx)(vx,{className:m,value:(a.input_keys||[]).join(", "),onCommit:a=>j({input_keys:a.split(",").map(a=>a.trim()).filter(Boolean)}),placeholder:"portfolio_status, news_data"})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Output Key"}),(0,v.jsx)("input",{className:m,value:a.output_key||"",onChange:a=>j({output_key:a.target.value||void 0}),placeholder:"analysis_result"})]})]}),"end"!==a.type&&"evaluator"!==a.type&&"loop"!==a.type&&(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Next Step"}),(0,v.jsxs)("select",{className:o,value:a.next_step_id||"",onChange:a=>j({next_step_id:a.target.value||void 0}),children:[(0,v.jsx)("option",{value:"",children:"None (end)"}),k.map(a=>(0,v.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),"loop"===a.type&&(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Done Path (after all iterations)"}),(0,v.jsxs)("select",{className:o,value:a.next_step_id||"",onChange:a=>j({next_step_id:a.target.value||void 0}),children:[(0,v.jsx)("option",{value:"",children:"None (end)"}),k.map(a=>(0,v.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,v.jsx)("hr",{className:"border-zinc-700"}),"end"!==a.type&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("div",{className:"text-xs text-zinc-500 font-semibold uppercase tracking-wider",children:"Guardrails"}),(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Max Turns"}),(0,v.jsx)("input",{type:"number",className:"w-full bg-zinc-900 border border-zinc-700 rounded px-2 py-1 text-sm text-zinc-200 outline-none",value:a.max_turns??"",placeholder:"15",onChange:a=>j({max_turns:""===a.target.value?void 0:parseInt(a.target.value)})})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Timeout (s)"}),(0,v.jsx)("input",{type:"number",className:"w-full bg-zinc-900 border border-zinc-700 rounded px-2 py-1 text-sm text-zinc-200 outline-none",value:a.timeout_seconds??"",placeholder:"300",onChange:a=>j({timeout_seconds:""===a.target.value?void 0:parseInt(a.target.value)})})]})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Max Iterations (loop guard)"}),(0,v.jsx)("input",{type:"number",className:"w-full bg-zinc-900 border border-zinc-700 rounded px-2 py-1 text-sm text-zinc-200 outline-none",value:a.max_iterations??"",placeholder:"3",onChange:a=>j({max_iterations:""===a.target.value?void 0:parseInt(a.target.value)})})]})]})]}),(0,v.jsx)("div",{className:"border-t border-zinc-700 p-3",children:(0,v.jsx)("button",{onClick:e,className:"w-full py-1.5 text-xs text-red-400 hover:text-red-300 hover:bg-red-900/20 rounded transition-colors",children:"Delete Step"})})]})}function vv({step:a,update:b,textareaCls:c,inputCls:d,selectCls:e}){let[f,g]=(0,w.useState)([]);(0,w.useEffect)(()=>{fetch("/api/messaging/channels").then(a=>a.ok?a.json():[]).then(a=>g(Array.isArray(a)?a:[])).catch(()=>{})},[]);let h={telegram:"✈️",discord:"🎮",slack:"💬",teams:"📘",whatsapp:"📱"};return(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Prompt for Human"}),(0,v.jsx)("textarea",{className:c,rows:3,value:a.human_prompt||"",onChange:a=>b({human_prompt:a.target.value}),placeholder:"What should the user decide? Use {state.key} for context."}),(0,v.jsxs)("p",{className:"text-[10px] text-zinc-600 mt-0.5",children:["Use ","{state.key}}"," to embed shared state values."]})]}),(0,v.jsxs)("div",{children:[(0,v.jsxs)("label",{className:"text-xs text-zinc-400 flex items-center gap-1 mb-1",children:[(0,v.jsx)(J.MessageSquare,{size:11})," Notify Messaging Channel ",(0,v.jsx)("span",{className:"text-zinc-600",children:"(optional)"})]}),(0,v.jsxs)("select",{className:e,value:a.human_channel_id||"",onChange:a=>b({human_channel_id:a.target.value||void 0}),children:[(0,v.jsx)("option",{value:"",children:"Browser UI only"}),f.map(a=>(0,v.jsxs)("option",{value:a.id,children:[h[a.platform]??"🤖"," ",a.name," [",a.status??"stopped","]"]},a.id))]}),a.human_channel_id&&(0,v.jsxs)("p",{className:"text-[10px] text-amber-400 mt-1",children:["⏱ First response wins — from messaging app ",(0,v.jsx)("em",{children:"or"})," browser, whichever arrives first."]})]}),a.human_channel_id&&(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Timeout (seconds)"}),(0,v.jsx)("input",{type:"number",className:d,value:a.human_timeout_seconds??3600,onChange:a=>b({human_timeout_seconds:parseInt(a.target.value)||3600}),min:60,step:60}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-600 mt-0.5",children:"How long to wait for a reply from the messaging channel before falling back to the browser UI only."})]})]})}function vw({step:a,update:b,textareaCls:c,selectCls:d,availableModels:e}){let[f,g]=(0,w.useState)([]);(0,w.useEffect)(()=>{fetch("/api/tools/available").then(a=>a.ok?a.json():{tools:[]}).then(a=>g(Array.isArray(a.tools)?a.tools:[])).catch(()=>{})},[]);let h=f.find(b=>b.name===a.forced_tool);return(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsxs)("div",{className:"rounded bg-purple-950/40 border border-purple-800/40 px-3 py-2 text-[10px] text-purple-400 leading-relaxed",children:[(0,v.jsx)("strong",{children:"Forced tool call"})," — the LLM generates arguments for exactly one tool, then calls it. If the first attempt fails, the ReAct loop retries up to ",(0,v.jsx)("em",{children:"Max Turns"})," times."]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Tool"}),(0,v.jsxs)("select",{className:d,value:a.forced_tool||"",onChange:a=>b({forced_tool:a.target.value||void 0}),children:[(0,v.jsx)("option",{value:"",children:"Select tool..."}),f.map(a=>(0,v.jsx)("option",{value:a.name,children:a.name},a.name))]}),h?.description&&(0,v.jsx)("p",{className:"text-[10px] text-zinc-500 mt-0.5",children:h.description})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Prompt Template"}),(0,v.jsx)(as,{className:c,rows:4,value:a.prompt_template||"",onChange:a=>b({prompt_template:a.target.value}),placeholder:`Search for relevant data about {state.user_input}
|
|
40
|
+
|
|
41
|
+
Type @ to reference a vault file`}),(0,v.jsxs)("p",{className:"text-[10px] text-zinc-600 mt-0.5",children:["Use ","{state.key}}"," to embed shared state. Type ",(0,v.jsx)("span",{className:"text-emerald-400 font-mono",children:"@"})," to reference a vault file."]})]}),(0,v.jsxs)("div",{children:[(0,v.jsxs)("label",{className:"text-xs text-zinc-400 block mb-1",children:["Model ",(0,v.jsx)("span",{className:"text-zinc-600 normal-case",children:"(override)"})]}),(0,v.jsxs)("select",{className:d,value:a.model||"",onChange:a=>b({model:a.target.value||void 0}),children:[(0,v.jsx)("option",{value:"",children:"(Default)"}),(e||[]).map(a=>(0,v.jsx)("option",{value:a,children:a},a))]})]})]})}function vx({value:a,onCommit:b,...c}){let[d,e]=(0,w.useState)(a);return(0,w.useEffect)(()=>{e(a)},[a]),(0,v.jsx)("input",{...c,value:d,onChange:a=>e(a.target.value),onBlur:()=>b(d)})}let vy=iD(iz.define([{tag:hK.keyword,color:"#c792ea",fontWeight:"bold"},{tag:hK.definitionKeyword,color:"#c792ea",fontWeight:"bold"},{tag:hK.self,color:"#f78c6c",fontStyle:"italic"},{tag:hK.bool,color:"#ff9cac"},{tag:hK.null,color:"#ff9cac"},{tag:hK.definition(hK.function(hK.variableName)),color:"#82aaff",fontWeight:"bold"},{tag:hK.function(hK.variableName),color:"#82aaff"},{tag:hK.definition(hK.className),color:"#ffcb6b",fontWeight:"bold"},{tag:hK.className,color:"#ffcb6b"},{tag:hK.meta,color:"#ffa759",fontStyle:"italic"},{tag:hK.variableName,color:"#eeffff"},{tag:hK.propertyName,color:"#89ddff"},{tag:hK.string,color:"#c3e88d"},{tag:hK.special(hK.string),color:"#c3e88d"},{tag:hK.number,color:"#f78c6c"},{tag:hK.operator,color:"#89ddff"},{tag:hK.punctuation,color:"#89ddff"},{tag:hK.bracket,color:"#ffcb6b"},{tag:hK.comment,color:"#546e7a",fontStyle:"italic"},{tag:hK.typeName,color:"#ffcb6b"},{tag:hK.escape,color:"#f78c6c"}]));function vz({value:a,onChange:b}){let c=(0,w.useRef)(null),d=(0,w.useRef)(null),e=(0,w.useRef)(b);return e.current=b,(0,w.useEffect)(()=>{if(!c.current||d.current)return;let b=bM.create({doc:a,extensions:[mi,nY(),n2,vy,ft.updateListener.of(a=>{a.docChanged&&e.current(a.state.doc.toString())}),ft.theme({"&":{backgroundColor:"#09090b",height:"100%"},".cm-scroller":{overflow:"auto",fontFamily:"monospace",fontSize:"12px"},".cm-content":{padding:"8px 0"},".cm-line":{padding:"0 12px"},"&.cm-focused .cm-cursor":{borderLeftColor:"#d97706"},".cm-selectionBackground":{backgroundColor:"#3f3f46"},"&.cm-focused .cm-selectionBackground":{backgroundColor:"#78350f"}})]});return d.current=new ft({state:b,parent:c.current}),()=>{d.current?.destroy(),d.current=null}},[]),(0,w.useEffect)(()=>{let b=d.current;if(!b)return;let c=b.state.doc.toString();c!==a&&b.dispatch({changes:{from:0,to:c.length,insert:a}})},[a]),(0,v.jsx)("div",{ref:c,className:"h-full"})}function vA({label:a,targetId:b,description:c,otherSteps:d,onRename:e,onChangeTarget:f,onChangeDescription:g,onDelete:h}){let[i,j]=(0,w.useState)(a),[k,l]=(0,w.useState)(c);return(0,v.jsx)("div",{className:"bg-zinc-900 rounded p-2 space-y-2",children:(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("input",{className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 outline-none",value:i,onChange:a=>j(a.target.value),onBlur:()=>e(i),onKeyDown:a=>{"Enter"===a.key&&e(i)},placeholder:"Label"}),(0,v.jsxs)("select",{className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 outline-none",value:b??"__end__",onChange:a=>f("__end__"===a.target.value?null:a.target.value),children:[(0,v.jsx)("option",{value:"__end__",children:"End Orchestration"}),d.map(a=>(0,v.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,v.jsx)("input",{className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-[10px] text-zinc-400 outline-none",value:k,onChange:a=>l(a.target.value),onBlur:()=>g(k),onKeyDown:a=>{"Enter"===a.key&&g(k)},placeholder:"When should this route be chosen? (helps LLM decide)"}),(0,v.jsx)("div",{className:"text-right",children:(0,v.jsxs)("button",{onClick:h,className:"w-full py-1 text-xs font-semibold text-red-400 bg-red-900/5 border border-red-700 rounded hover:bg-red-900/20 hover:text-red-300 transition-colors",title:"Delete this route",children:[(0,v.jsx)(T.Trash2,{size:12,className:"inline-block mr-1"})," Delete Route"]})})]})})}let vB=["string","number","boolean","list","dict"];function vC({schema:a,onChange:b}){let c=Object.entries(a),d=(c,d)=>{b({...a,[c]:{...a[c],...d}})};return(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsx)("span",{className:"text-xs font-semibold text-zinc-400 uppercase tracking-wider",children:"State Schema"}),(0,v.jsxs)("button",{onClick:()=>{let c=`key_${Date.now()}`;b({...a,[c]:{type:"string",default:"",description:""}})},className:"text-xs text-blue-400 hover:text-blue-300 flex items-center gap-1",children:[(0,v.jsx)(ac.Plus,{size:12})," Add Key"]})]}),0===c.length&&(0,v.jsx)("div",{className:"text-xs text-zinc-600 italic",children:"No state keys defined. Steps will still work with implicit state."}),c.map(([c,e])=>(0,v.jsxs)("div",{className:"flex items-start gap-2 bg-zinc-800/50 rounded p-2",children:[(0,v.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,v.jsxs)("div",{className:"flex gap-2",children:[(0,v.jsx)("input",{className:"flex-1 bg-zinc-900 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 font-mono outline-none",value:c,onChange:d=>((c,d)=>{if(d===c)return;let e={};for(let[b,f]of Object.entries(a))e[b===c?d:b]=f;b(e)})(c,d.target.value),placeholder:"key_name"}),(0,v.jsx)("select",{className:"bg-zinc-900 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 outline-none",value:e.type,onChange:a=>d(c,{type:a.target.value}),children:vB.map(a=>(0,v.jsx)("option",{value:a,children:a},a))})]}),(0,v.jsx)("input",{className:"w-full bg-zinc-900 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-300 outline-none",value:e.description,onChange:a=>d(c,{description:a.target.value}),placeholder:"Description..."})]}),(0,v.jsx)("button",{onClick:()=>{let d;return d={...a},void(delete d[c],b(d))},className:"text-zinc-600 hover:text-red-400 mt-1",children:(0,v.jsx)(y.Trash,{size:12})})]},c))]})}var vD=a.i(62180),vE=a.i(58348);let vF={llm:ol,agent:D.Bot,tool:E.Wrench,evaluator:oC,parallel:Y.GitBranch,merge:oD,loop:aB.RefreshCw,human:oj.User,transform:oE,end:an},vG={id:"",name:"New Orchestration",description:"",steps:[],entry_step_id:"",state_schema:{},max_total_turns:100,max_total_cost_usd:null,timeout_minutes:30,trigger:"manual"};function vH(){return"step_"+Math.random().toString(36).substring(2,9)}function vI(){let[a,b]=(0,w.useState)([]),[c,d]=(0,w.useState)(null),[e,f]=(0,w.useState)(null),[g,h]=(0,w.useState)([]),[i,j]=(0,w.useState)([]),[k,l]=(0,w.useState)(!1),[m,n]=(0,w.useState)(null),o=(a,b="success")=>{n({show:!0,message:a,type:b}),setTimeout(()=>n(null),4e3)},[p,q]=(0,w.useState)(null),[r,s]=(0,w.useState)("idle"),[t,u]=(0,w.useState)({}),[x,z]=(0,w.useState)(null),[A,B]=(0,w.useState)(""),[C,D]=(0,w.useState)([]),[E,F]=(0,w.useState)(null),[G,H]=(0,w.useState)(null),[I,J]=(0,w.useState)(""),K=(0,w.useRef)(null),L=(0,w.useRef)(new Map),[M,N]=(0,w.useState)(null),[O,P]=(0,w.useState)(null),[R,S]=(0,w.useState)(!1),[T,U]=(0,w.useState)(0),[V,W]=(0,w.useState)([]),X=(0,w.useRef)(null),[Y,Z]=(0,w.useState)([]);(0,w.useEffect)(()=>{fetch("/api/orchestrations").then(a=>a.json()).then(a=>{b(Array.isArray(a)?a.filter(a=>"orch_native_builder"!==a.id):[])}).catch(()=>{}),fetch("/api/agents").then(a=>a.json()).then(a=>{h(Array.isArray(a)?a:[])}).catch(()=>{}),fetch("/api/models").then(a=>a.json()).then(a=>{j(a.all_available||[])}).catch(()=>{})},[]);let _=(0,w.useCallback)(()=>{fetch("/api/orchestrations/runs").then(a=>a.json()).then(a=>{Array.isArray(a)&&(W(a.filter(a=>"running"===a.status||"paused"===a.status)),Z(a))}).catch(()=>{})},[]);(0,w.useEffect)(()=>(_(),X.current=setInterval(_,5e3),()=>{X.current&&clearInterval(X.current)}),[_]);let aa=(0,w.useCallback)(async b=>{let c=a.find(a=>a.id===b.orchestration_id);if(d(b.orchestration_id),q(null),f(c?{...c}:null),z(b.run_id),s(b.status),D([`[Reconnected to run ${b.run_id}]`]),F(null),H(null),"paused"===b.status)try{let a=await fetch(`/api/orchestrations/runs/${b.run_id}`);if(a.ok){let b=await a.json();b.waiting_for_human&&b.human_prompt&&F(b.human_prompt)}}catch{}},[a]),ab=(0,w.useCallback)(b=>{if(d(b),q(null),s("idle"),u({}),D([]),F(null),b){let c=a.find(a=>a.id===b);f(c?{...c}:null)}else f(null)},[a]),ae=()=>{let a="orch_"+Math.random().toString(36).substring(2,9);f({...vG,id:a}),d(a),q(null)},af=async()=>{if(!e)return;let a={};for(let b of e.steps)a[b.id]=vH();let c=e.steps.map(b=>{var c;return{...b,id:a[b.id],next_step_id:null==(c=b.next_step_id)?c:a[c]??c,route_map:b.route_map?Object.fromEntries(Object.entries(b.route_map).map(([b,c])=>[b,null!=c?a[c]??c:null])):void 0,parallel_branches:b.parallel_branches?.map(b=>b.map(b=>a[b]??b)),loop_step_ids:b.loop_step_ids?.map(b=>a[b]??b)}}),g="orch_"+Math.random().toString(36).substring(2,9),h={...e,id:g,name:e.name+" (Copy)",steps:c,entry_step_id:e.entry_step_id?a[e.entry_step_id]??"":"",state_schema:JSON.parse(JSON.stringify(e.state_schema??{})),created_at:void 0,updated_at:void 0};l(!0);try{let a=await fetch("/api/orchestrations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)});if(a.ok){let c=await a.json();b(a=>[...a,c]),f(c),d(g),q(null)}}catch{}finally{l(!1)}},ag=async()=>{if(e){l(!0);try{let c=await fetch("/api/orchestrations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(c.ok){let d=await c.json(),e=a.findIndex(a=>a.id===d.id);if(e>=0){let c=[...a];c[e]=d,b(c)}else b([...a,d]);f(d)}}catch{}finally{l(!1)}}},ai=async()=>{if(O)try{await fetch(`/api/orchestrations/${O}`,{method:"DELETE"}),b(a.filter(a=>a.id!==O)),e?.id===O&&(f(null),d(null))}catch{}},aj=(0,w.useCallback)(a=>{e&&f({...e,steps:e.steps.map(b=>b.id===a.id?a:b)})},[e]),ak=(0,w.useCallback)(a=>{if(!e)return;let b={...e,steps:e.steps.filter(b=>b.id!==a)};b.steps=b.steps.map(b=>{let c={...b,next_step_id:b.next_step_id===a?void 0:b.next_step_id,loop_step_ids:b.loop_step_ids?.filter(b=>b!==a),parallel_branches:b.parallel_branches?.map(b=>b.filter(b=>b!==a))};if(b.route_map){let d={};for(let[c,e]of Object.entries(b.route_map))d[c]=e===a?null:e;c.route_map=d}return c}),b.entry_step_id===a&&(b.entry_step_id=b.steps[0]?.id||""),f(b),p===a&&q(null)},[e,p]),al=(0,w.useCallback)(a=>{e&&f({...e,entry_step_id:a})},[e]),am=(0,w.useCallback)(a=>{f(a)},[]),ao=async(a,b)=>{let c=new AbortController;K.current=c;try{let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b),signal:c.signal});if(!d.ok||!d.body){s("failed"),D(a=>[...a,`[HTTP ${d.status}]`]);return}let e=d.body.getReader(),f=new TextDecoder,g="";for(;;){let{done:a,value:b}=await e.read();if(a)break;let c=(g+=f.decode(b,{stream:!0})).split("\n");for(let a of(g=c.pop()||"",c))if(a.startsWith("data: "))try{let b=JSON.parse(a.slice(6));ap(b),await new Promise(a=>setTimeout(a,0))}catch{}}}catch(a){"AbortError"!==a.name&&(s("failed"),D(a=>[...a,"[Connection lost]"]))}finally{K.current=null}},ap=a=>{switch(a.type){case"orchestration_start":z(a.run_id),D(b=>[...b,`Started run ${a.run_id}`]);break;case"step_start":u(b=>({...b,[a.orch_step_id]:"running"})),D(b=>[...b,`▶ ${a.step_name} (${a.step_type})`]),"agent"===a.step_type||"llm"===a.step_type?L.current.set(a.orch_step_id,{step_name:a.step_name,step_type:a.step_type,content:""}):L.current.delete(a.orch_step_id);break;case"step_complete":{u(b=>({...b,[a.orch_step_id]:"completed"}));let b=L.current.get(a.orch_step_id);D(c=>{let d=[...c,`✓ ${a.step_name} completed (${a.duration_seconds?.toFixed(1)}s)`];return b&&b.content.trim()&&d.splice(d.length-1,0,{kind:"step_result",step_name:b.step_name,step_type:b.step_type,content:b.content.trim()}),d}),L.current.delete(a.orch_step_id);break}case"step_error":u(b=>({...b,[a.orch_step_id]:"failed"})),D(b=>[...b,`✗ Step error: ${a.error}`]),L.current.delete(a.orch_step_id);break;case"final":{let b=a.response||"",c=a.orch_step_id||"";c&&L.current.has(c)&&b&&(L.current.get(c).content=b);break}case"routing_decision":D(b=>[...b,`🔀 Evaluator routed → ${a.decision} (${a.reasoning||""})`]);break;case"parallel_start":D(b=>[...b,`⫘ Parallel: running ${a.branch_count} branches`]);break;case"branch_start":D(b=>[...b,` ↳ Branch ${(a.branch_index??0)+1}/${a.branch_count}`]);break;case"parallel_complete":D(b=>[...b,`⫘ Parallel: all ${a.branch_count} branches done`]);break;case"loop_iteration":D(b=>[...b,`⟳ Loop iteration ${a.iteration}/${a.total}`]);break;case"merge_complete":D(b=>[...b,`⊕ Merged ${a.input_count} inputs (${a.strategy})`]);break;case"orchestration_end":D(a=>[...a,"■ End node reached"]);break;case"human_input_required":s("paused"),a.orch_step_id&&u(b=>({...b,[a.orch_step_id]:"paused"})),F(a.prompt||"Please provide input:"),H(a.agent_context||null),D(a=>[...a,"⏸ Waiting for human input..."]);break;case"loop_limit_reached":D(b=>[...b,`⟳ Loop limit reached for step ${a.orch_step_id} (${a.iterations} iterations)`]);break;case"orchestration_complete":s("completed"===a.status?"completed":"failed"),D(b=>[...b,`Done — status: ${a.status}`]),K.current?.abort(),K.current=null;break;case"orchestration_error":s("failed"),D(b=>[...b,`Error: ${a.error}`]),K.current?.abort(),K.current=null;break;case"tool_execution":D(b=>[...b,{kind:"tool_call",tool_name:a.tool_name,args:a.args||{},step_name:a.step_name}]);break;case"tool_result":D(b=>[...b,{kind:"tool_result",tool_name:a.tool_name,preview:a.preview||""}]);break;case"token_usage":break;default:"chunk"===a.type&&a.content&&!L.current&&D(b=>{let c=b[b.length-1];return c&&"string"==typeof c&&c.startsWith(" ")?[...b.slice(0,-1),c+a.content]:[...b," "+a.content]})}},aq=async()=>{if(K.current?.abort(),K.current=null,x)try{await fetch(`/api/orchestrations/runs/${x}/cancel`,{method:"POST"})}catch{}s("cancelled"),D(a=>[...a,"[Cancelled]"])},ar=async()=>{x&&(F(null),H(null),s("running"),u(a=>{let b={...a};for(let a in b)"paused"===b[a]&&(b[a]="running");return b}),D(a=>[...a,"Human response submitted"]),J(""),ao(`/api/orchestrations/runs/${x}/human-input`,{response:I}))},as=async()=>{x&&(s("running"),D(a=>[...a,"[Resuming from where run stopped...]"]),ao(`/api/orchestrations/runs/${x}/resume`,{}))};(0,w.useEffect)(()=>()=>{K.current?.abort()},[]);let at=e?.steps.find(a=>a.id===p)||null,au=e?.steps.map(a=>({id:a.id,name:a.name}))||[],av=async()=>{if(e)try{let a=await fetch(`/api/orchestrations/${e.id}/deploy`,{method:"POST"});if(a.ok){let b=await a.json();o(`Deployed as agent "${e.name}" (${b.agent_id})`,"success")}else{let b=await a.json();o(`Deploy failed: ${b.detail||"Unknown error"}`,"error")}}catch{o("Failed to deploy orchestration as agent","error")}};return(0,v.jsxs)("div",{className:"flex flex-col h-full relative",children:[m&&(0,v.jsx)(ax,{show:m.show,message:m.message,type:m.type}),(0,v.jsxs)("div",{className:"px-6 py-4 border-b border-zinc-800 shrink-0",children:[(0,v.jsx)("h1",{className:"text-2xl font-bold text-zinc-100",children:"Orchestrations"}),(0,v.jsx)("p",{className:"text-zinc-500 text-xs mt-0.5",children:"Design multi-agent workflows with visual canvas"})]}),(0,v.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2.5 border-b border-zinc-800 shrink-0",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[(0,v.jsxs)("select",{className:"bg-zinc-900 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 outline-none max-w-[240px]",value:c||"",onChange:a=>ab(a.target.value||null),children:[(0,v.jsx)("option",{value:"",children:"Select orchestration..."}),a.map(a=>(0,v.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,v.jsxs)("button",{onClick:ae,className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-blue-600 hover:bg-blue-500 text-white rounded transition-colors",children:[(0,v.jsx)(ac.Plus,{size:14})," New"]}),(0,v.jsxs)("button",{onClick:()=>{c||ae(),S(!0),U(a=>a+1)},className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-purple-600 hover:bg-purple-500 text-white rounded-lg transition-colors",children:[(0,v.jsx)(ah.Sparkles,{size:13})," Build with AI"]})]}),e&&(0,v.jsxs)("div",{className:"flex items-center gap-2 pr-6",children:[(0,v.jsxs)("button",{onClick:ag,disabled:k,className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-zinc-700 hover:bg-zinc-600 text-zinc-200 rounded transition-colors disabled:opacity-50",children:[k?(0,v.jsx)(Q.Loader2,{size:14,className:"animate-spin"}):(0,v.jsx)(ad,{size:14})," Save"]}),"idle"===r||"completed"===r||"failed"===r||"cancelled"===r?(0,v.jsxs)("button",{onClick:()=>{if(!e)return;let a={};e.steps.forEach(b=>{a[b.id]="pending"}),u(a),s("running"),D([]),F(null),ao(`/api/orchestrations/${e.id}/run`,{message:A})},className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-green-600 hover:bg-green-500 text-white rounded transition-colors",children:[(0,v.jsx)(aD,{size:14})," Run"]}):(0,v.jsxs)("button",{onClick:aq,className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-red-600 hover:bg-red-500 text-white rounded transition-colors",children:[(0,v.jsx)(an,{size:14})," Cancel"]}),(0,v.jsx)("button",{onClick:av,className:"px-3 py-1.5 text-xs bg-purple-600 hover:bg-purple-500 text-white rounded transition-colors",children:"Deploy as Agent"}),(0,v.jsxs)("button",{onClick:af,disabled:k,className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-zinc-700 hover:bg-zinc-600 text-zinc-200 rounded transition-colors disabled:opacity-50",children:[(0,v.jsx)(oA,{size:13})," Duplicate"]}),(0,v.jsx)("div",{className:"w-px h-5 bg-zinc-700 mx-1"}),(0,v.jsxs)("button",{onClick:()=>{e&&P(e.id)},className:"flex items-center gap-1 px-2 py-1.5 text-xs text-zinc-500 hover:text-red-400 hover:bg-red-900/20 rounded transition-colors",children:[(0,v.jsx)(y.Trash,{size:13})," Delete"]})]})]}),V.filter(a=>a.run_id!==x).length>0&&(0,v.jsx)("div",{className:"px-4 py-2 border-b border-zinc-800 bg-zinc-900/60 shrink-0",children:(0,v.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,v.jsxs)("span",{className:"text-xs text-zinc-500 flex items-center gap-1",children:[(0,v.jsx)(oB,{size:11,className:"text-blue-400 animate-pulse"})," Active runs:"]}),V.filter(a=>a.run_id!==x).map(b=>{let c=a.find(a=>a.id===b.orchestration_id);return(0,v.jsxs)("button",{onClick:()=>aa(b),className:"flex items-center gap-1.5 px-2.5 py-1 rounded text-xs bg-zinc-800 hover:bg-zinc-700 border border-zinc-700 transition-colors",children:[(0,v.jsx)("span",{className:`w-1.5 h-1.5 rounded-full ${"running"===b.status?"bg-blue-400 animate-pulse":"bg-yellow-400"}`}),(0,v.jsx)("span",{className:"text-zinc-300",children:c?.name??b.orchestration_id}),(0,v.jsx)("span",{className:"text-zinc-500",children:"paused"===b.status?"· waiting for input":"· running"})]},b.run_id)})]})}),e?(0,v.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,v.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2 border-b border-zinc-800 shrink-0",children:[(0,v.jsx)("input",{className:"bg-transparent border-b border-zinc-700 text-zinc-200 text-sm font-medium px-1 py-0.5 outline-none focus:border-blue-500 w-64",value:e.name,onChange:a=>f({...e,name:a.target.value}),placeholder:"Orchestration name"}),(0,v.jsx)("input",{className:"bg-transparent border-b border-zinc-700 text-zinc-400 text-xs px-1 py-0.5 outline-none focus:border-blue-500 flex-1 mr-6",value:e.description,onChange:a=>f({...e,description:a.target.value}),placeholder:"Description..."})]}),(0,v.jsxs)("div",{className:"flex items-center gap-1 px-4 py-2 border-b border-zinc-800 shrink-0",children:[(0,v.jsx)("span",{className:"text-xs text-zinc-500 mr-2",children:"Add step:"}),["llm","agent","tool","evaluator","parallel","merge","loop","human","transform","end"].map(a=>{let b=oN[a],c=vF[a];return(0,v.jsxs)("button",{onClick:()=>(a=>{var b;if(!e)return;let c=e.steps.length,d=(b={x:100+c%3*250,y:80+180*Math.floor(c/3)},{id:vH(),name:a.charAt(0).toUpperCase()+a.slice(1)+" Step",type:a,position_x:b.x,position_y:b.y,max_turns:15,timeout_seconds:300,max_iterations:3}),g={...e,steps:[...e.steps,d]};g.entry_step_id||(g.entry_step_id=d.id),f(g)})(a),className:"flex items-center gap-1.5 px-2.5 py-1 text-xs rounded bg-zinc-800 hover:bg-zinc-700 text-zinc-300 transition-colors capitalize",children:[(0,v.jsx)(c,{size:12}),b.label]},a)})]}),(0,v.jsxs)("div",{className:"flex-1 flex min-h-0",children:[(0,v.jsx)("div",{className:"flex-1 min-w-0",children:(0,v.jsx)(uV,{children:(0,v.jsx)(vs,{orchestration:e,agents:g,selectedStepId:p,onSelectStep:q,onUpdateOrchestration:am,runStepStatuses:t})})}),at&&(0,v.jsx)(vu,{step:at,agents:g,allStepIds:au,onUpdate:aj,onDelete:()=>ak(at.id),onClose:()=>q(null),isEntry:e.entry_step_id===at.id,onSetEntry:()=>al(at.id),availableModels:i})]}),(0,v.jsx)("div",{className:"border-t border-zinc-700 bg-zinc-900 shrink-0",children:(0,v.jsx)(vK,{draft:e,setDraft:f,runStatus:r,runLog:C,runInput:A,setRunInput:B,humanPrompt:E,humanContext:G,humanResponse:I,setHumanResponse:J,onSubmitHuman:ar,onOpenResponseModal:N,runId:x,onResumeRun:as,pastRuns:Y,onRestoreRun:aa})}),M&&(0,v.jsx)(vJ,{stepName:M.step_name,content:M.content,onClose:()=>N(null)})]}):(0,v.jsx)("div",{className:"flex-1 flex items-center justify-center text-zinc-600 text-sm",children:"Select an orchestration or create a new one to get started."}),(0,v.jsx)($,{isOpen:!!O,title:"Delete Orchestration",message:"Are you sure you want to delete this orchestration? This action cannot be undone.",onConfirm:()=>{ai(),P(null)},onClose:()=>P(null)}),(0,v.jsx)(oM,{isOpen:R,onClose:()=>S(!1),agents:g,availableModels:i,currentOrchestrationId:c&&a.some(a=>a.id===c)?c:null,sessionKey:T,onOrchestrationSaved:async a=>{b(b=>b.findIndex(b=>b.id===a.id)>=0?b.map(b=>b.id===a.id?a:b):[...b,a]),f(a),d(a.id);try{let c=await fetch("/api/orchestrations");if(c.ok){let d=await c.json(),e=Array.isArray(d)?d.filter(a=>"orch_native_builder"!==a.id):[];b(e);let g=e.find(b=>b.id===a.id);g&&f(g)}}catch{}},onAgentSaved:a=>{h(b=>b.findIndex(b=>b.id===a.id)>=0?b.map(b=>b.id===a.id?a:b):[...b,a])}})]})}function vJ({stepName:a,content:b,onClose:c}){return(0,w.useEffect)(()=>{let a=a=>{"Escape"===a.key&&c()};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[c]),(0,ao.createPortal)((0,v.jsxs)("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center p-4",onClick:a=>{a.target===a.currentTarget&&c()},children:[(0,v.jsx)("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm"}),(0,v.jsxs)("div",{className:"relative z-10 w-full max-w-3xl max-h-[80vh] flex flex-col rounded-xl border border-zinc-700 bg-zinc-900 shadow-2xl",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between px-5 py-3 border-b border-zinc-700 shrink-0",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)(D.Bot,{size:14,className:"text-blue-400"}),(0,v.jsx)("span",{className:"text-sm font-semibold text-zinc-100",children:a}),(0,v.jsx)("span",{className:"text-xs text-zinc-500",children:"— full response"})]}),(0,v.jsx)("button",{onClick:c,className:"text-zinc-400 hover:text-zinc-100 transition-colors p-1 rounded hover:bg-zinc-700",children:(0,v.jsx)(az.X,{size:15})})]}),(0,v.jsx)("div",{className:"flex-1 overflow-y-auto p-5",children:(0,v.jsx)("div",{className:"prose prose-sm prose-invert max-w-none text-zinc-300 text-sm leading-relaxed",children:(0,v.jsx)(vD.default,{remarkPlugins:[vE.default],components:{p:({children:a})=>(0,v.jsx)("p",{className:"mb-3 last:mb-0",children:a}),h1:({children:a})=>(0,v.jsx)("h1",{className:"text-lg font-bold text-zinc-100 mb-2 mt-4 first:mt-0",children:a}),h2:({children:a})=>(0,v.jsx)("h2",{className:"text-base font-semibold text-zinc-100 mb-2 mt-3",children:a}),h3:({children:a})=>(0,v.jsx)("h3",{className:"text-sm font-semibold text-zinc-200 mb-1 mt-2",children:a}),ul:({children:a})=>(0,v.jsx)("ul",{className:"list-disc pl-5 mb-3 space-y-1",children:a}),ol:({children:a})=>(0,v.jsx)("ol",{className:"list-decimal pl-5 mb-3 space-y-1",children:a}),li:({children:a})=>(0,v.jsx)("li",{className:"text-zinc-300",children:a}),code:({children:a,className:b})=>b?.includes("language-")?(0,v.jsx)("code",{className:`block bg-zinc-800 rounded px-3 py-2 text-xs font-mono text-zinc-200 overflow-x-auto ${b}`,children:a}):(0,v.jsx)("code",{className:"bg-zinc-800 px-1.5 py-0.5 rounded text-xs font-mono text-emerald-300",children:a}),pre:({children:a})=>(0,v.jsx)("pre",{className:"bg-zinc-800/60 rounded-lg p-3 mb-3 overflow-x-auto border border-zinc-700/50",children:a}),blockquote:({children:a})=>(0,v.jsx)("blockquote",{className:"border-l-2 border-zinc-600 pl-3 text-zinc-400 italic",children:a}),a:({href:a,children:b})=>(0,v.jsx)("a",{href:a,className:"text-blue-400 underline hover:text-blue-300",target:"_blank",rel:"noreferrer",children:b}),strong:({children:a})=>(0,v.jsx)("strong",{className:"font-semibold text-zinc-100",children:a}),em:({children:a})=>(0,v.jsx)("em",{className:"italic text-zinc-300",children:a}),hr:()=>(0,v.jsx)("hr",{className:"border-zinc-700 my-4"}),table:({children:a})=>(0,v.jsx)("table",{className:"w-full text-xs border-collapse mb-3",children:a}),th:({children:a})=>(0,v.jsx)("th",{className:"border border-zinc-700 px-2 py-1 text-zinc-200 font-semibold bg-zinc-800",children:a}),td:({children:a})=>(0,v.jsx)("td",{className:"border border-zinc-700 px-2 py-1 text-zinc-300",children:a})},children:b})})})]})]}),document.body)}function vK({draft:a,setDraft:b,runStatus:c,runLog:d,runInput:e,setRunInput:f,humanPrompt:g,humanContext:h,humanResponse:i,setHumanResponse:j,onSubmitHuman:k,onOpenResponseModal:l,runId:m,onResumeRun:n,pastRuns:o,onRestoreRun:p}){let[q,r]=(0,w.useState)("run"),[s,t]=(0,w.useState)(280),[u,x]=(0,w.useState)(200),y=(0,w.useRef)(null),z=(0,w.useRef)(null),A=(0,w.useRef)(null),B=(0,w.useCallback)(a=>{a.preventDefault(),z.current={startY:a.clientY,startHeight:s};let b=a=>{if(!z.current)return;let b=z.current.startY-a.clientY;t(Math.max(120,Math.min(700,z.current.startHeight+b)))},c=()=>{z.current=null,document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",c)};document.addEventListener("mousemove",b),document.addEventListener("mouseup",c)},[s]),C=(0,w.useCallback)(a=>{a.preventDefault(),A.current={startY:a.clientY,startHeight:u};let b=a=>{if(!A.current)return;let b=a.clientY-A.current.startY;x(Math.max(80,Math.min(500,A.current.startHeight+b)))},c=()=>{A.current=null,document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",c)};document.addEventListener("mousemove",b),document.addEventListener("mouseup",c)},[u]);return(0,w.useEffect)(()=>{y.current&&(y.current.scrollTop=y.current.scrollHeight)},[d]),(0,v.jsxs)("div",{style:{height:s},className:"flex flex-col",children:[(0,v.jsx)("div",{onMouseDown:B,className:"h-1.5 w-full cursor-row-resize bg-zinc-800 hover:bg-blue-500/40 transition-colors flex-shrink-0 group flex items-center justify-center",children:(0,v.jsx)("div",{className:"w-8 h-0.5 rounded bg-zinc-600 group-hover:bg-blue-400 transition-colors"})}),(0,v.jsxs)("div",{className:"flex border-b border-zinc-800 flex-shrink-0",children:[["state","guardrails","run"].map(a=>(0,v.jsxs)("button",{onClick:()=>r(a),className:`px-4 py-2 text-xs font-medium capitalize transition-colors ${q===a?"text-blue-400 border-b-2 border-blue-400":"text-zinc-500 hover:text-zinc-300"}`,children:["state"===a?"State Schema":"guardrails"===a?"Guardrails":"Run Log","run"===a&&"idle"!==c&&(0,v.jsx)("span",{className:`ml-2 inline-block w-2 h-2 rounded-full ${"running"===c?"bg-blue-400 animate-pulse":"completed"===c?"bg-green-400":"paused"===c?"bg-yellow-400":"cancelled"===c?"bg-zinc-500":"bg-red-400"}`})]},a)),(0,v.jsxs)("button",{onClick:()=>r("recent"),className:`px-4 py-2 text-xs font-medium transition-colors ${"recent"===q?"text-blue-400 border-b-2 border-blue-400":"text-zinc-500 hover:text-zinc-300"}`,children:["Recent Runs",o.length>0&&(0,v.jsx)("span",{className:"ml-1.5 text-[10px] bg-zinc-700 text-zinc-400 rounded-full px-1.5 py-0.5",children:o.length})]})]}),(0,v.jsxs)("div",{className:"p-4 flex-1 overflow-y-auto min-h-0",children:["state"===q&&(0,v.jsx)(vC,{schema:a.state_schema,onChange:c=>b({...a,state_schema:c})}),"guardrails"===q&&(0,v.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Max Total Turns"}),(0,v.jsx)("input",{type:"number",className:"w-full bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 outline-none",value:a.max_total_turns,onChange:c=>b({...a,max_total_turns:parseInt(c.target.value)||100})})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Timeout (minutes)"}),(0,v.jsx)("input",{type:"number",className:"w-full bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 outline-none",value:a.timeout_minutes,onChange:c=>b({...a,timeout_minutes:parseInt(c.target.value)||30})})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 block mb-1",children:"Max Cost (USD)"}),(0,v.jsx)("input",{type:"number",step:"0.01",className:"w-full bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 outline-none",value:a.max_total_cost_usd??"",onChange:c=>b({...a,max_total_cost_usd:c.target.value?parseFloat(c.target.value):null}),placeholder:"No limit"})]})]}),"recent"===q&&(0,v.jsx)("div",{className:"space-y-1",children:0===o.length?(0,v.jsx)("div",{className:"text-zinc-600 italic text-xs",children:"No runs yet."}):o.slice(0,20).map(a=>(0,v.jsxs)("div",{className:"flex items-center gap-2 text-[11px] py-1 px-2 rounded bg-zinc-800/50",children:[(0,v.jsx)("span",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 ${"completed"===a.status?"bg-green-400":"failed"===a.status?"bg-red-400":"cancelled"===a.status?"bg-zinc-500":"paused"===a.status?"bg-yellow-400":"bg-blue-400 animate-pulse"}`}),(0,v.jsx)("span",{className:"text-zinc-400 truncate flex-1",title:a.run_id,children:a.run_id}),(0,v.jsx)("span",{className:"text-zinc-500 capitalize",children:a.status}),a.started_at&&(0,v.jsx)("span",{className:"text-zinc-600 text-[10px]",children:new Date(a.started_at).toLocaleTimeString()}),("failed"===a.status||"cancelled"===a.status)&&(0,v.jsx)("button",{onClick:()=>{p(a),r("run")},className:"px-2 py-0.5 text-[10px] bg-orange-600 hover:bg-orange-500 text-white rounded",children:"Resume"})]},a.run_id))}),"run"===q&&(0,v.jsxs)("div",{className:"space-y-2",children:[("idle"===c||"completed"===c||"failed"===c||"cancelled"===c)&&(0,v.jsxs)("div",{className:"flex gap-2",children:[(0,v.jsx)("input",{className:"flex-1 bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-xs text-zinc-200 outline-none",value:e,onChange:a=>f(a.target.value),placeholder:"Initial input for the orchestration...",onKeyDown:a=>{a.key}}),("failed"===c||"cancelled"===c)&&m&&(0,v.jsx)("button",{onClick:n,className:"px-3 py-1.5 text-xs bg-orange-600 hover:bg-orange-500 text-white rounded whitespace-nowrap",children:"Resume from failure"})]}),g&&(0,v.jsxs)("div",{className:"bg-amber-900/20 border border-amber-700/50 rounded p-3 space-y-2",children:[h&&(0,v.jsxs)("div",{children:[(0,v.jsx)("div",{className:"text-xs text-zinc-300 bg-zinc-800/60 rounded-t p-2 overflow-y-auto border border-zinc-700/50 border-b-0",style:{height:u},children:(0,v.jsx)(vD.default,{remarkPlugins:[vE.default],components:{p:({children:a})=>(0,v.jsx)("p",{className:"mb-1 last:mb-0",children:a}),a:({href:a,children:b})=>(0,v.jsx)("a",{href:a,className:"text-blue-400 underline",target:"_blank",rel:"noreferrer",children:b}),code:({children:a})=>(0,v.jsx)("code",{className:"bg-zinc-700 px-1 rounded",children:a}),strong:({children:a})=>(0,v.jsx)("strong",{className:"font-semibold text-zinc-100",children:a})},children:h})}),(0,v.jsx)("div",{onMouseDown:C,className:"h-1.5 w-full cursor-row-resize bg-zinc-700/60 hover:bg-blue-500/40 transition-colors rounded-b border border-zinc-700/50 flex items-center justify-center group",children:(0,v.jsx)("div",{className:"w-8 h-0.5 rounded bg-zinc-600 group-hover:bg-blue-400 transition-colors"})})]}),(0,v.jsx)("div",{className:"text-xs text-amber-300",children:(0,v.jsx)(vD.default,{remarkPlugins:[vE.default],components:{p:({children:a})=>(0,v.jsx)("p",{className:"mb-0",children:a}),a:({href:a,children:b})=>(0,v.jsx)("a",{href:a,className:"text-amber-200 underline",target:"_blank",rel:"noreferrer",children:b}),strong:({children:a})=>(0,v.jsx)("strong",{className:"font-semibold text-amber-200",children:a})},children:g})}),(0,v.jsxs)("div",{className:"flex gap-2",children:[(0,v.jsx)("input",{className:"flex-1 bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-xs text-zinc-200 outline-none",value:i,onChange:a=>j(a.target.value),placeholder:"Your response...",onKeyDown:a=>{"Enter"===a.key&&k()}}),(0,v.jsx)("button",{onClick:k,className:"px-3 py-1.5 text-xs bg-amber-600 hover:bg-amber-500 text-white rounded",children:"Submit"})]})]}),(0,v.jsx)("div",{ref:y,className:"font-mono text-[11px] text-zinc-400 space-y-0.5",children:0===d.length?(0,v.jsx)("div",{className:"text-zinc-600 italic",children:"No run output yet. Click Run to start."}):d.map((a,b)=>{if("string"!=typeof a){if("tool_call"===a.kind)return(0,v.jsx)("div",{className:"text-violet-400 pl-2",children:(0,v.jsxs)("details",{children:[(0,v.jsxs)("summary",{className:"cursor-pointer list-none",children:["🔧 ",a.tool_name,a.step_name&&(0,v.jsxs)("span",{className:"text-zinc-500 text-[10px]",children:[" · ",a.step_name]})]}),(0,v.jsx)("pre",{className:"bg-zinc-800/50 p-1 rounded mt-0.5 text-[10px] text-zinc-300 overflow-x-auto whitespace-pre-wrap",children:JSON.stringify(a.args,null,2)})]})},b);if("tool_result"===a.kind)return(0,v.jsxs)("div",{className:"text-zinc-500 pl-4 text-[10px]",children:["↳ ",a.preview.slice(0,200),a.preview.length>200?"…":""]},b);if("step_result"===a.kind){let c=a.content.slice(0,200).replace(/\n+/g," ").trim(),d=a.content.length>200,e="agent"===a.step_type;return(0,v.jsxs)("div",{className:"my-1.5",children:[(0,v.jsxs)("div",{className:"flex items-center gap-1.5 mb-1 pl-1",children:[(0,v.jsx)("div",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 ${e?"bg-emerald-400":"bg-teal-400"}`}),(0,v.jsx)("span",{className:`text-[10px] font-semibold uppercase tracking-wider ${e?"text-emerald-400":"text-teal-400"}`,children:a.step_name}),(0,v.jsx)("span",{className:"text-[9px] text-zinc-600 uppercase tracking-wide",children:e?"agent response":"llm output"})]}),(0,v.jsxs)("div",{className:"flex items-start gap-2 bg-zinc-800/70 border border-zinc-700/50 rounded-lg px-3 py-2 group ml-3",children:[(0,v.jsxs)("div",{className:"flex-1 min-w-0 text-zinc-300 leading-relaxed",children:[c,d?"…":""]}),(0,v.jsxs)("button",{onClick:()=>l({step_name:a.step_name,content:a.content}),className:"shrink-0 flex items-center gap-1 text-[10px] text-zinc-500 hover:text-emerald-400 transition-colors opacity-0 group-hover:opacity-100 ml-1 whitespace-nowrap self-center",title:"View full response",children:[(0,v.jsx)(ak.ExternalLink,{size:10}),"View full"]})]})]},b)}return null}return(0,v.jsx)("div",{className:a.startsWith("✓")?"text-green-400":a.startsWith("✗")?"text-red-400":a.startsWith("▶")?"text-blue-400":a.startsWith("⏸")?"text-amber-400":a.startsWith("⟳")?"text-purple-400":"text-zinc-400",children:(0,v.jsx)(vD.default,{remarkPlugins:[vE.default],components:{p:({children:a})=>(0,v.jsx)("span",{children:a}),code:({children:a})=>(0,v.jsx)("code",{className:"bg-zinc-800 px-1 rounded text-[10px]",children:a}),pre:({children:a})=>(0,v.jsx)("pre",{className:"bg-zinc-800 p-1 rounded mt-0.5 overflow-x-auto",children:a}),a:({href:a,children:b})=>(0,v.jsx)("a",{href:a,className:"underline opacity-70",target:"_blank",rel:"noreferrer",children:b})},children:a})},b)})})]})]})]})}let vL=()=>{let[a,b]=(0,w.useState)("agents"),[c,d]=(0,w.useState)([]),[e,f]=(0,w.useState)(null),[g,h]=(0,w.useState)(null),[i,j]=(0,w.useState)(!1),[k,l]=(0,w.useState)(!1),[m,n]=(0,w.useState)(0),[o,p]=(0,w.useState)(!0),[q,r]=(0,w.useState)("all"),s=(0,w.useCallback)(async(b=!1)=>{j(!0),b||(f(null),h(null),n(0),p(!0));let c=b?m:0;try{let e=await fetch(`/api/logs/${a}?limit=100&offset=${c}`);if(e.ok){let a=await e.json();b?d(b=>[...b,...a]):d(a),a.length<100&&p(!1),n(c=>b?c+a.length:a.length)}}finally{j(!1)}},[a,m]);(0,w.useEffect)(()=>{s(),r("all")},[a]);let t=async b=>{f(b),l(!0),h(null);try{let c=await fetch(`/api/logs/${a}/${b}`);c.ok&&h(await c.text())}finally{l(!1)}},u=async(b,c)=>{c.stopPropagation(),(await fetch(`/api/logs/${a}/${b}`,{method:"DELETE"})).ok&&(e===b&&(f(null),h(null)),d(a=>a.filter(a=>a.run_id!==b)))},x="agents"===a?c.filter(a=>"schedule"!==a.source):c,y=Array.from(new Set(x.map(b=>"agents"===a?b.agent_name||b.run_id:"orchestrations"===a?b.orchestration_name||b.run_id:b.schedule_name||b.run_id).filter(Boolean))),z="all"===q?x:x.filter(b=>("agents"===a?b.agent_name||b.run_id:"orchestrations"===a?b.orchestration_name||b.run_id:b.schedule_name||b.run_id)===q),A={},B=[];return z.forEach(a=>{let b=a.session_id||`nosession_${a.run_id}`;A[b]||(A[b]=[],B.push(b)),A[b].push(a)}),(0,v.jsxs)("div",{className:"flex flex-col h-full overflow-hidden font-mono",children:[(0,v.jsxs)("div",{className:"px-6 py-4 border-b border-zinc-800 shrink-0 pr-14",children:[(0,v.jsx)("h1",{className:"text-2xl font-bold text-zinc-100",children:"Logs"}),(0,v.jsx)("p",{className:"text-zinc-500 text-xs mt-0.5",children:"View All logs of Agent and Orchestration"})]}),(0,v.jsxs)("div",{className:"flex items-center gap-2 px-6 py-3 border-b border-white/10 shrink-0",children:[(0,v.jsxs)("button",{onClick:()=>b("agents"),className:`flex items-center gap-2 px-4 py-2 text-sm font-medium transition-all ${"agents"===a?"bg-white text-black":"text-zinc-400 hover:text-white hover:bg-white/5"}`,children:[(0,v.jsx)(D.Bot,{className:"h-3.5 w-3.5"}),"Agent Logs"]}),(0,v.jsxs)("button",{onClick:()=>b("orchestrations"),className:`flex items-center gap-2 px-4 py-2 text-sm font-medium transition-all ${"orchestrations"===a?"bg-white text-black":"text-zinc-400 hover:text-white hover:bg-white/5"}`,children:[(0,v.jsx)(H.Workflow,{className:"h-3.5 w-3.5"}),"Orchestration Logs"]}),(0,v.jsxs)("button",{onClick:()=>b("schedules"),className:`flex items-center gap-2 px-4 py-2 text-sm font-medium transition-all ${"schedules"===a?"bg-white text-black":"text-zinc-400 hover:text-white hover:bg-white/5"}`,children:[(0,v.jsx)(K.Clock,{className:"h-3.5 w-3.5"}),"Schedule Logs"]}),(0,v.jsxs)("div",{className:"ml-auto flex items-center gap-3",children:[(0,v.jsxs)("span",{className:"text-xs text-zinc-600",children:[c.length," log",1!==c.length?"s":""]}),(0,v.jsx)("button",{onClick:()=>s(),className:"p-2 text-zinc-500 hover:text-white hover:bg-white/5 transition-colors",title:"Refresh",children:(0,v.jsx)(aB.RefreshCw,{className:`h-4 w-4 ${i?"animate-spin":""}`})})]})]}),y.length>1&&(0,v.jsxs)("div",{className:"flex items-center gap-3 px-6 py-2 border-b border-white/5 shrink-0 bg-zinc-900/40",children:[(0,v.jsx)("span",{className:"text-[11px] text-zinc-600 shrink-0",children:"Filter"}),(0,v.jsxs)("select",{value:q,onChange:a=>r(a.target.value),className:"bg-zinc-800/60 border border-white/8 text-zinc-300 text-[11px] px-2.5 py-1 focus:outline-none focus:border-white/20 transition-colors cursor-pointer appearance-none pr-6 max-w-[260px]",style:{backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E\")",backgroundRepeat:"no-repeat",backgroundPosition:"right 6px center"},children:[(0,v.jsxs)("option",{value:"all",children:["All ","orchestrations"===a?"orchestrations":"agents"===a?"agents":"schedules"]}),y.map(a=>(0,v.jsx)("option",{value:a,children:a.length>40?a.slice(0,37)+"...":a},a))]})]}),(0,v.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[(0,v.jsx)("div",{className:"w-80 border-r border-white/10 overflow-y-auto shrink-0 flex flex-col",children:i&&0===c.length?(0,v.jsx)("div",{className:"flex items-center justify-center h-32 text-zinc-600 text-xs",children:"Loading..."}):0===c.length?(0,v.jsxs)("div",{className:"flex flex-col items-center justify-center h-40 gap-3 text-zinc-700",children:[(0,v.jsx)(I.ScrollText,{className:"h-8 w-8"}),(0,v.jsx)("p",{className:"text-xs",children:"No logs yet"})]}):(0,v.jsxs)(v.Fragment,{children:[B.map(b=>{let c=A[b],d=c.find(a=>a.user_input||a.prompt)?.user_input||c.find(a=>a.prompt)?.prompt,f=b.startsWith("nosession_")?"Individual Run":`Session: ${b.slice(-8)}`;return(0,v.jsxs)("div",{className:"border-b border-white/10 last:border-b-0",children:[(0,v.jsxs)("div",{className:"bg-white/5 px-4 py-2 border-b border-white/5 flex flex-col gap-0.5",children:[(0,v.jsx)("span",{className:"text-[10px] font-bold text-zinc-500 uppercase tracking-wider",children:f}),d&&(0,v.jsxs)("span",{className:"text-[10px] text-zinc-400 truncate italic",children:['"',d,'"']})]}),c.map(b=>{let c=e===b.run_id,d="agents"===a?b.agent_name||b.run_id:"orchestrations"===a?b.orchestration_name||b.run_id:b.schedule_name||b.run_id,f="agents"===a?b.source:"orchestrations"===a?b.orchestration_id:b.target_type;return(0,v.jsxs)("div",{onClick:()=>t(b.run_id),className:`group cursor-pointer px-4 py-3 border-b border-white/5 last:border-b-0 flex flex-col gap-1 transition-colors ${c?"bg-white/10 border-l-2 border-l-white":"hover:bg-white/5 border-l-2 border-l-transparent"}`,children:[(0,v.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,v.jsx)("span",{className:"text-xs text-white font-semibold leading-tight truncate",children:d}),(0,v.jsx)("button",{onClick:a=>u(b.run_id,a),className:"opacity-0 group-hover:opacity-100 p-0.5 text-zinc-600 hover:text-red-400 transition-all shrink-0 mt-0.5",title:"Delete log",children:(0,v.jsx)(T.Trash2,{className:"h-3 w-3"})})]}),f&&(0,v.jsx)("span",{className:"text-[10px] text-zinc-500 truncate",children:f}),(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[b.started_at&&(0,v.jsx)("span",{className:"text-[10px] text-zinc-600",children:b.started_at}),void 0!==b.file_size_kb&&(0,v.jsxs)("span",{className:"text-[10px] text-zinc-700",children:[b.file_size_kb,"KB"]})]})]},b.run_id)})]},b)}),o&&(0,v.jsx)("button",{onClick:()=>s(!0),disabled:i,className:"w-full py-4 text-xs text-zinc-500 hover:text-white hover:bg-white/5 transition-colors disabled:opacity-50",children:i?"Loading more...":"Load More"})]})}),(0,v.jsx)("div",{className:"flex-1 overflow-hidden bg-zinc-950",children:k?(0,v.jsx)("div",{className:"flex items-center justify-center h-full text-zinc-600 text-xs",children:"Loading log..."}):g?(0,v.jsx)("pre",{className:"h-full overflow-auto p-6 text-[11px] font-mono text-zinc-300 leading-relaxed whitespace-pre-wrap break-words",children:g}):(0,v.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-3 text-zinc-700",children:[(0,v.jsx)(I.ScrollText,{className:"h-10 w-10"}),(0,v.jsx)("p",{className:"text-xs",children:"Select a log to view its contents"})]})})]})]})},vM=(0,U.default)("flask-conical",[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]),vN={name:"",platform:"telegram",agent_id:"",multi_agent_mode:!1,enabled:!0,credentials:{}},vO=[{id:"telegram",label:"Telegram",color:"text-sky-400 border-sky-800 bg-sky-950/40",icon:"/telegram-icon.svg"},{id:"discord",label:"Discord",color:"text-indigo-400 border-indigo-800 bg-indigo-950/40",icon:"/discord-round-color-icon.svg"},{id:"slack",label:"Slack",color:"text-green-400 border-green-800 bg-green-950/40",icon:"/slack-icon.svg"},{id:"teams",label:"Teams",color:"text-blue-400 border-blue-800 bg-blue-950/40",icon:"/teams.svg"},{id:"whatsapp",label:"WhatsApp",color:"text-emerald-400 border-emerald-800 bg-emerald-950/40",icon:"/whatsapp-color-icon.svg"}],vP={telegram:[{key:"bot_token",label:"Bot Token",placeholder:"123456:ABC-DEF...",secret:!0,note:"Get from @BotFather on Telegram"}],discord:[{key:"bot_token",label:"Bot Token",placeholder:"MTE...",secret:!0,note:"From Discord Developer Portal → Bot → Token"},{key:"channel_id",label:"Restrict to Channel ID (optional)",placeholder:"123456789012345678",note:"Leave empty to respond in all channels where the bot is mentioned"}],slack:[{key:"bot_token",label:"Bot Token (xoxb-...)",placeholder:"xoxb-...",secret:!0,note:"OAuth & Permissions → Bot Token Scopes"},{key:"app_token",label:"App-Level Token (xapp-...)",placeholder:"xapp-...",secret:!0,note:"Enable Socket Mode → generate App-Level Token with connections:write scope"}],teams:[{key:"app_id",label:"Azure App ID",placeholder:"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",note:"Azure Bot resource → Configuration → Microsoft App ID"},{key:"app_password",label:"App Password / Client Secret",placeholder:"",secret:!0,note:"Azure Bot → Certificates & Secrets"}],whatsapp:[]},vQ={telegram:{title:"Creating a Telegram Bot",steps:["Open Telegram and search for @BotFather","Send /newbot and follow the prompts to name your bot","Copy the bot token shown (format: 123456:ABC-DEF...)","Paste it in the Bot Token field above","Click Save & Connect — the bot will start polling immediately"]},discord:{title:"Creating a Discord Bot",steps:["Go to discord.com/developers/applications → New Application","In the Bot tab, click Add Bot → copy the Token","Enable Message Content Intent under Privileged Gateway Intents","In OAuth2 → URL Generator: select bot + applications.commands, check Read/Send Messages","Use the generated URL to invite the bot to your server","Paste the bot token above and optionally restrict to a channel ID"]},slack:{title:"Creating a Slack App with Socket Mode",steps:["Go to api.slack.com/apps → Create New App → From Scratch","In Socket Mode, enable it and generate an App-Level Token (xapp-...) with connections:write scope","In Event Subscriptions → Subscribe to bot events: message.im, app_mention","In OAuth & Permissions add scopes: app_mentions:read, chat:write, im:history, im:write, channels:history","Install to workspace and copy the Bot Token (xoxb-...)","Paste both tokens above"]},teams:{title:"Creating a Microsoft Teams Bot",steps:["Go to portal.azure.com → Create a resource → Azure Bot","Set the Messaging endpoint to: https://<your-ngrok-url>/api/messaging/teams/webhook/<channel-id>","For local dev, run: ngrok http 8765 and use the Forwarding URL","Note: only the Synapse backend needs the public URL — your frontend is unaffected","In the bot Configuration, copy the Microsoft App ID","In Certificates & Secrets, create a new client secret and copy it","Add the Teams channel in the bot's Channels tab"]},whatsapp:{title:"WhatsApp Setup",steps:["BUSINESS ACCOUNT PATH: Go to developers.facebook.com → My Apps → Create App (type: Business)","Add WhatsApp product → Phone Numbers → select a test or production number","In WhatsApp → Configuration, set Webhook URL to: https://<ngrok-url>/api/messaging/whatsapp/webhook/<channel-id>","Set your Verify Token (any string), subscribe to the messages webhook field","Copy the Phone Number ID and generate a temporary/permanent Access Token","--- OR ---","UNOFFICIAL PATH: No business account needed. Synapse will open WhatsApp Web in a browser window and you scan the QR code to authenticate. This may violate WhatsApp's Terms of Service."]}},vR=({status:a,lastError:b})=>"running"===a?(0,v.jsxs)("span",{className:"flex items-center gap-1 text-[10px] font-bold text-green-400 bg-green-950/50 border border-green-900 px-2 py-0.5",children:[(0,v.jsx)(al,{className:"h-2.5 w-2.5"})," RUNNING"]}):"error"===a?(0,v.jsxs)("span",{className:"flex items-center gap-1 text-[10px] font-bold text-red-400 bg-red-950/50 border border-red-900 px-2 py-0.5",title:b||"",children:[(0,v.jsx)(am,{className:"h-2.5 w-2.5"})," ERROR"]}):(0,v.jsxs)("span",{className:"flex items-center gap-1 text-[10px] font-bold text-zinc-500 bg-zinc-900 border border-zinc-800 px-2 py-0.5",children:[(0,v.jsx)(an,{className:"h-2.5 w-2.5"})," STOPPED"]}),vS=()=>{let[a,b]=(0,w.useState)([]),[c,d]=(0,w.useState)(null),[e,f]=(0,w.useState)(null),[g,h]=(0,w.useState)([]),[i,j]=(0,w.useState)(!1),[k,l]=(0,w.useState)(!1),[m,n]=(0,w.useState)(null),[o,p]=(0,w.useState)(!1),[q,r]=(0,w.useState)(!1),[s,t]=(0,w.useState)("meta_api"),[u,x]=(0,w.useState)(!1),[z,A]=(0,w.useState)(null),B=a=>{n(a),setTimeout(()=>n(null),3e3)},C=(0,w.useCallback)(async()=>{r(!0);try{let a=await fetch("/api/messaging/channels");if(a.ok){let c=await a.json();b(Array.isArray(c)?c:[])}}catch{}finally{r(!1)}},[]);(0,w.useEffect)(()=>{C(),fetch("/api/agents").then(a=>a.json()).then(a=>h(Array.isArray(a)?a:[])).catch(()=>{})},[C]);let D=async()=>{if(e){if(!e.name.trim())return void B("Please enter a channel name");if(!e.agent_id)return void B("Please select an agent");j(!0);try{let a="whatsapp"===e.platform?{...e,credentials:{...e.credentials,whatsapp_mode:s}}:e,b=await fetch("/api/messaging/channels",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error("Save failed");let c=await b.json();await fetch(`/api/messaging/channels/${c.id}/enable`,{method:"POST"}),await C(),d(c.id),f({...c}),B("✅ Channel saved and started")}catch(a){B(`❌ ${a.message}`)}finally{j(!1)}}},E=async()=>{if(c){l(!0);try{let a=await fetch(`/api/messaging/channels/${c}/test`,{method:"POST"}),b=await a.json();B("ok"===b.status?`✅ ${b.message}`:`⚠️ ${b.message}`)}catch{B("❌ Test failed")}finally{l(!1)}}},F=async a=>{if(!a.id)return;let b="running"===a.status?"disable":"enable";await fetch(`/api/messaging/channels/${a.id}/${b}`,{method:"POST"}),await C()},G=async b=>{let e=a.find(a=>a.id===b);e&&e.id&&(await fetch(`/api/messaging/channels/${e.id}`,{method:"DELETE"}),c===e.id&&(d(null),f(null)),await C())},H=(a,b)=>{e&&f({...e,credentials:{...e.credentials,[a]:b}})},I=e?.platform||"telegram",K=vO.find(a=>a.id===I),L=vQ[I];return(0,v.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-12 gap-10",children:[m&&(0,v.jsx)("div",{className:"fixed bottom-6 right-6 z-50 bg-zinc-900 border border-zinc-700 text-white text-xs px-4 py-3 shadow-xl animate-in slide-in-from-bottom-4",children:m}),(0,v.jsxs)("div",{className:"md:col-span-4 border-r border-zinc-800 pr-4 flex flex-col max-h-[calc(100vh-180px)] sticky top-0 self-start",children:[(0,v.jsxs)("div",{className:"mb-4 flex justify-between items-center",children:[(0,v.jsx)("h3",{className:"text-sm font-bold text-zinc-400",children:"CHANNELS"}),(0,v.jsxs)("div",{className:"flex gap-1",children:[(0,v.jsx)("button",{onClick:C,title:"Refresh",className:"p-1.5 text-zinc-500 hover:text-white hover:bg-zinc-800 transition-colors",children:(0,v.jsx)(aB.RefreshCw,{className:`h-3 w-3 ${q?"animate-spin":""}`})}),(0,v.jsx)("button",{onClick:()=>{d(null),f({...vN}),p(!1),t("meta_api"),x(!1)},className:"p-1.5 hover:bg-zinc-800 text-white transition-colors border border-dashed border-zinc-600 hover:border-white",title:"New Channel",children:(0,v.jsx)(ac.Plus,{className:"h-4 w-4"})})]})]}),(0,v.jsxs)("div",{className:"space-y-2 flex-1 overflow-y-auto modern-scrollbar",children:[0===a.length&&(0,v.jsxs)("div",{className:"p-6 text-center text-zinc-600 text-xs border border-dashed border-zinc-800",children:[(0,v.jsx)(J.MessageSquare,{className:"h-8 w-8 mx-auto mb-2 opacity-20"}),"No channels configured yet.",(0,v.jsx)("br",{}),"Click + to add one."]}),a.map(a=>{let b=vO.find(b=>b.id===a.platform),e=c===a.id;return(0,v.jsx)("div",{onClick:()=>{d(a.id||null),f({...a}),p(!1),"whatsapp"===a.platform&&(t(a.credentials?.whatsapp_mode||"meta_api"),x(!1))},className:`p-3 border cursor-pointer transition-all group relative
|
|
42
|
+
${e?"bg-zinc-900 border-white":"bg-black border-zinc-800 hover:border-zinc-600"}`,children:(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)("div",{className:`h-8 w-8 flex-shrink-0 flex items-center justify-center border ${b?.color??""}`,children:(0,v.jsx)("img",{src:b?.icon,alt:b?.label,className:"h-5 w-5 object-contain"})}),(0,v.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,v.jsx)("div",{className:"text-xs font-bold text-white truncate",children:a.name}),(0,v.jsx)("div",{className:"text-[10px] text-zinc-500 truncate",children:g.find(b=>b.id===a.agent_id)?.name||a.agent_id})]}),(0,v.jsx)("div",{className:"group-hover:hidden flex-shrink-0",children:(0,v.jsx)(vR,{status:a.status,lastError:a.last_error})}),(0,v.jsxs)("div",{className:"hidden group-hover:flex gap-1 flex-shrink-0",children:[(0,v.jsx)("button",{onClick:b=>{b.stopPropagation(),F(a)},className:`p-1 transition-colors ${"running"===a.status?"text-orange-400 hover:text-orange-300":"text-green-400 hover:text-green-300"}`,title:"running"===a.status?"Stop":"Start",children:"running"===a.status?(0,v.jsx)(an,{className:"h-3 w-3"}):(0,v.jsx)(aD,{className:"h-3 w-3"})}),(0,v.jsx)("button",{onClick:b=>{b.stopPropagation(),A(a.id||null)},className:"p-1 text-zinc-600 hover:text-red-400 transition-colors",children:(0,v.jsx)(y.Trash,{className:"h-3 w-3"})})]})]})},a.id)})]})]}),(0,v.jsx)("div",{className:"md:col-span-8 pl-4",children:e?(0,v.jsxs)("div",{className:"space-y-6",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsxs)("h3",{className:"text-sm font-bold text-white flex items-center gap-2",children:[(0,v.jsx)("div",{className:"h-2 w-2 rounded-full bg-purple-500"}),c?`EDITING: ${e.name.toUpperCase()||"CHANNEL"}`:"NEW CHANNEL"]}),(0,v.jsxs)("div",{className:"flex gap-2",children:[c&&(0,v.jsxs)("button",{onClick:E,disabled:k,className:"flex items-center gap-1.5 px-3 py-1.5 bg-zinc-800 hover:bg-zinc-700 text-white text-xs font-bold transition-colors disabled:opacity-50",children:[k?(0,v.jsx)(Q.Loader2,{className:"h-3 w-3 animate-spin"}):(0,v.jsx)(vM,{className:"h-3 w-3"}),"TEST"]}),(0,v.jsxs)("button",{onClick:D,disabled:i,className:"flex items-center gap-2 px-4 py-1.5 bg-white text-black text-xs font-bold hover:bg-zinc-200 disabled:opacity-50",children:[i?(0,v.jsx)(Q.Loader2,{className:"h-3 w-3 animate-spin"}):(0,v.jsx)(ad,{className:"h-3 w-3"}),"SAVE & CONNECT"]})]})]}),(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"Platform"}),(0,v.jsx)("div",{className:"grid grid-cols-5 gap-2",children:vO.map(a=>(0,v.jsxs)("button",{onClick:()=>f({...vN,platform:a.id,name:e.name,agent_id:e.agent_id}),className:`flex flex-col items-center gap-1 p-3 border text-xs font-bold transition-all
|
|
43
|
+
${e.platform===a.id?`${a.color} border-current`:"bg-black border-zinc-800 text-zinc-500 hover:border-zinc-600"}`,children:[(0,v.jsx)("img",{src:a.icon,alt:a.label,className:"h-6 w-6 object-contain"}),a.label]},a.id))})]}),(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"Channel Name"}),(0,v.jsx)("input",{type:"text",value:e.name,onChange:a=>f({...e,name:a.target.value}),placeholder:"e.g. Support Bot",className:"w-full bg-zinc-950 border border-zinc-800 p-3 text-xs text-white focus:border-white focus:outline-none"})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"Bound Agent"}),(0,v.jsxs)("select",{value:e.agent_id,onChange:a=>f({...e,agent_id:a.target.value}),className:"w-full bg-zinc-950 border border-zinc-800 p-3 text-xs text-white focus:border-white focus:outline-none",children:[(0,v.jsx)("option",{value:"",children:"Select an agent…"}),g.map(a=>(0,v.jsx)("option",{value:a.id,children:a.name},a.id))]})]})]}),(0,v.jsxs)("div",{className:"flex items-start gap-4 p-3 bg-zinc-950 border border-zinc-800",children:[(0,v.jsx)("input",{id:"multi-agent-toggle",type:"checkbox",checked:e.multi_agent_mode,onChange:a=>f({...e,multi_agent_mode:a.target.checked}),className:"mt-1 accent-purple-500"}),(0,v.jsxs)("div",{className:"flex-1",children:[(0,v.jsx)("label",{htmlFor:"multi-agent-toggle",className:"text-xs font-bold text-white cursor-pointer block leading-tight",children:"Multi-Agent Mode"}),(0,v.jsxs)("p",{className:"text-[10px] text-zinc-500 mt-1.5 leading-relaxed",children:["When enabled, users can switch agents mid-chat using ",(0,v.jsx)("code",{className:"bg-zinc-800 px-1",children:"/agent <name>"})," and list them with ",(0,v.jsx)("code",{className:"bg-zinc-800 px-1",children:"/agents"}),". The channel's bound agent is the default."]})]})]}),(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsxs)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:["Credentials — ",K?.label]}),"whatsapp"===e.platform?(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsx)("div",{className:"grid grid-cols-2 gap-3",children:[{v:"meta_api",label:"🏢 Business (Meta API)",desc:"Official. Requires Meta Business account + verified number."},{v:"unofficial",label:"🛠 Unofficial (Playwright)",desc:"No business account. Uses WhatsApp Web automation."}].map(a=>(0,v.jsxs)("button",{onClick:()=>{t(a.v),x(!1)},className:`p-3 border text-left text-xs transition-all
|
|
44
|
+
${s===a.v?"bg-zinc-900 border-white":"bg-black border-zinc-800 hover:border-zinc-600"}`,children:[(0,v.jsx)("div",{className:"font-bold text-white",children:a.label}),(0,v.jsx)("div",{className:"text-zinc-500 mt-1",children:a.desc})]},a.v))}),"meta_api"===s&&(0,v.jsx)("div",{className:"space-y-3",children:[{key:"phone_number_id",label:"Phone Number ID",placeholder:"123456789012345",secret:!1},{key:"access_token",label:"Access Token",placeholder:"EAA...",secret:!0},{key:"verify_token",label:"Verify Token (your choice)",placeholder:"synapse_verify",secret:!1,note:"Used to verify Meta webhook. Set the same value in your Meta App settings."}].map(a=>(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:a.label}),(0,v.jsx)("input",{type:a.secret?"password":"text",value:e.credentials[a.key]||"",onChange:b=>H(a.key,b.target.value),placeholder:a.placeholder,className:"w-full bg-zinc-950 border border-zinc-800 p-3 text-xs text-white focus:border-white focus:outline-none font-mono"}),a.note&&(0,v.jsx)("p",{className:"text-[9px] text-zinc-600",children:a.note})]},a.key))}),"unofficial"===s&&(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsxs)("div",{className:"flex gap-2 p-3 bg-amber-950/30 border border-amber-800/50",children:[(0,v.jsx)(aA,{className:"h-4 w-4 text-amber-400 flex-shrink-0 mt-0.5"}),(0,v.jsxs)("div",{className:"text-[10px] text-amber-300 space-y-1",children:[(0,v.jsx)("p",{className:"font-bold",children:"⚠️ Unofficial Approach — Use at Your Own Risk"}),(0,v.jsx)("p",{children:"This mode uses Playwright to drive WhatsApp Web in a browser window. It requires scanning a QR code. It may:"}),(0,v.jsxs)("ul",{className:"list-disc pl-4 space-y-0.5",children:[(0,v.jsx)("li",{children:"Violate WhatsApp's Terms of Service"}),(0,v.jsx)("li",{children:"Break when WhatsApp updates their web app"}),(0,v.jsx)("li",{children:"Result in your number being temporarily banned"})]}),(0,v.jsx)("p",{children:"We recommend using the official Meta Business path instead."})]})]}),(0,v.jsxs)("div",{className:"flex items-start gap-3 p-3 bg-zinc-950 border border-zinc-800",children:[(0,v.jsx)("input",{id:"wa-risk-ack",type:"checkbox",checked:u,onChange:a=>x(a.target.checked),className:"mt-1 accent-amber-500"}),(0,v.jsx)("label",{htmlFor:"wa-risk-ack",className:"text-xs text-zinc-300 cursor-pointer leading-tight",children:"I understand the risks and accept responsibility for using the unofficial path."})]}),u&&(0,v.jsxs)("div",{className:"p-3 bg-zinc-950 border border-zinc-700 text-[10px] text-zinc-400 space-y-1",children:[(0,v.jsx)("p",{children:"After saving & connecting, Synapse will open WhatsApp Web in a Chromium browser window."}),(0,v.jsx)("p",{children:"Scan the QR code shown in the browser to authenticate. The session is saved and persists across restarts."})]})]})]}):(0,v.jsx)("div",{className:"space-y-3",children:vP[e.platform]?.map(a=>(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:a.label}),(0,v.jsx)("input",{type:a.secret?"password":"text",value:e.credentials[a.key]||"",onChange:b=>H(a.key,b.target.value),placeholder:a.placeholder,className:"w-full bg-zinc-950 border border-zinc-800 p-3 text-xs text-white focus:border-white focus:outline-none font-mono"}),a.note&&(0,v.jsxs)("p",{className:"text-[9px] text-zinc-600 flex items-center gap-1",children:[(0,v.jsx)(ob,{className:"h-2.5 w-2.5"})," ",a.note]})]},a.key))})]}),(0,v.jsxs)("div",{className:"border border-zinc-800",children:[(0,v.jsxs)("button",{onClick:()=>p(a=>!a),className:"w-full flex items-center justify-between px-4 py-3 text-xs font-bold text-zinc-400 hover:text-white hover:bg-zinc-900/50 transition-colors",children:[(0,v.jsxs)("span",{children:["📖 Setup Guide — ",L.title]}),o?(0,v.jsx)(ae.ChevronDown,{className:"h-3 w-3"}):(0,v.jsx)(af.ChevronRight,{className:"h-3 w-3"})]}),o&&(0,v.jsx)("div",{className:"px-4 pb-4 space-y-2 bg-zinc-950/50",children:(0,v.jsx)("ol",{className:"space-y-2",children:L.steps.map((a,b)=>(0,v.jsxs)("li",{className:"flex gap-2 text-[10px] text-zinc-400",children:[(0,v.jsx)("span",{className:"text-zinc-600 font-bold flex-shrink-0",children:a.startsWith("---")?"":`${b+1}.`}),(0,v.jsx)("span",{className:a.startsWith("---")?"text-zinc-700 border-t border-zinc-800 w-full pt-1":"",children:a})]},b))})})]}),e.last_error&&(0,v.jsxs)("div",{className:"flex gap-2 p-3 bg-red-950/30 border border-red-900/50",children:[(0,v.jsx)(am,{className:"h-4 w-4 text-red-400 flex-shrink-0"}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-xs font-bold text-red-400",children:"Last Error"}),(0,v.jsx)("p",{className:"text-[10px] text-red-300 mt-0.5 font-mono",children:e.last_error})]})]})]}):(0,v.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-zinc-600 space-y-4 py-20",children:[(0,v.jsx)(J.MessageSquare,{className:"h-12 w-12 opacity-20"}),(0,v.jsx)("p",{className:"text-sm",children:"Select a channel or create a new one."})]})}),(0,v.jsx)($,{isOpen:!!z,title:"Delete Channel",message:"Are you sure you want to delete this messaging channel? This will permanently remove its configuration and stop it if it is running.",onConfirm:()=>{z&&G(z),A(null)},onClose:()=>A(null)})]})};var vT=a.i(90166);let vU=(0,U.default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]),vV=(0,U.default)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]),vW=(0,U.default)("wand-sparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]),vX=["openai","anthropic","gemini","grok","deepseek","bedrock","ollama"],vY={openai:{label:"OpenAI",color:"#10b981",dot:"#10b981",bg:"bg-emerald-950/60",text:"text-emerald-400"},anthropic:{label:"Anthropic",color:"#f59e0b",dot:"#f59e0b",bg:"bg-amber-950/60",text:"text-amber-400"},gemini:{label:"Gemini",color:"#3b82f6",dot:"#3b82f6",bg:"bg-blue-950/60",text:"text-blue-400"},grok:{label:"xAI Grok",color:"#a1a1aa",dot:"#a1a1aa",bg:"bg-zinc-800/60",text:"text-zinc-300"},deepseek:{label:"DeepSeek",color:"#8b5cf6",dot:"#8b5cf6",bg:"bg-violet-950/60",text:"text-violet-400"},bedrock:{label:"AWS Bedrock",color:"#f97316",dot:"#f97316",bg:"bg-orange-950/60",text:"text-orange-400"},ollama:{label:"Ollama (Local)",color:"#94a3b8",dot:"#94a3b8",bg:"bg-slate-800/60",text:"text-slate-400"}};function vZ(a){return 0===a?"$0.00":a<1e-6?"<$0.000001":a<.01?`$${a.toFixed(6)}`:`$${a.toFixed(4)}`}function v$(a){return a>=1e6?`${(a/1e6).toFixed(2)}M`:a>=1e3?`${(a/1e3).toFixed(1)}K`:a.toString()}function v_(a){let b=a/1024;return b>=1?`${b.toFixed(1)}KB`:`${a}B`}function v0(a){return a.startsWith("ollama.")?"ollama":a.startsWith("gpt")||a.startsWith("o1")||a.startsWith("o3")||a.startsWith("o4")?"openai":a.startsWith("claude")?"anthropic":a.startsWith("gemini")?"gemini":a.startsWith("grok")?"grok":a.startsWith("deepseek")?"deepseek":a.startsWith("anthropic.")||a.startsWith("amazon.")||a.startsWith("meta.")||a.startsWith("mistral.")?"bedrock":"ollama"}function v1({provider:a}){let b=vY[a]??vY.ollama;return(0,v.jsxs)("span",{className:`inline-flex items-center gap-1.5 px-2 py-0.5 text-xs font-medium ${b.bg} ${b.text} border border-white/5`,children:[(0,v.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{background:b.dot}}),a||"local"]})}function v2({icon:a,label:b,value:c,sub:d,color:e}){return(0,v.jsxs)("div",{className:"relative flex flex-col gap-3 p-5 bg-zinc-900/80 border border-white/5 overflow-hidden group hover:border-white/10 transition-all duration-300",children:[(0,v.jsx)("div",{className:"absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity duration-500 pointer-events-none",style:{background:`radial-gradient(ellipse at top left, ${e}10 0%, transparent 70%)`}}),(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsx)("span",{className:"text-xs text-zinc-500 font-medium tracking-wider uppercase",children:b}),(0,v.jsx)("div",{className:"p-2",style:{background:`${e}18`},children:(0,v.jsx)(a,{className:"w-4 h-4",style:{color:e}})})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-2xl font-bold tracking-tight text-white",children:c}),d&&(0,v.jsx)("p",{className:"text-xs text-zinc-500 mt-0.5",children:d})]})]})}function v3({stat:a,maxCost:b}){let c=b>0?a.estimated_cost/b*100:0,d=vY[v0(a.model)]??vY.ollama;return(0,v.jsxs)("div",{className:"flex items-center gap-4 py-3 border-b border-white/5 last:border-0 -mx-4 px-4 hover:bg-white/2 transition-colors",children:[(0,v.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,v.jsx)("span",{className:"text-sm font-medium text-white truncate",children:a.model}),(0,v.jsx)(v1,{provider:a.provider})]}),(0,v.jsx)("div",{className:"h-1 bg-zinc-800 overflow-hidden",children:(0,v.jsx)("div",{className:"h-full transition-all duration-700",style:{width:`${c}%`,background:d.dot}})})]}),(0,v.jsxs)("div",{className:"flex gap-6 text-right shrink-0",children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-xs text-zinc-500",children:"Reqs"}),(0,v.jsx)("p",{className:"text-sm font-semibold text-white",children:a.requests})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-xs text-zinc-500",children:"Tokens"}),(0,v.jsx)("p",{className:"text-sm font-semibold text-white",children:v$(a.total_tokens)})]}),(0,v.jsxs)("div",{className:"min-w-[70px]",children:[(0,v.jsx)("p",{className:"text-xs text-zinc-500",children:"Cost"}),(0,v.jsx)("p",{className:"text-sm font-semibold",style:{color:d.dot},children:vZ(a.estimated_cost)})]})]})]})}function v4({s:a}){let[b,c]=(0,w.useState)(!1),[d,e]=(0,w.useState)([]),[f,g]=(0,w.useState)(!1),h="orchestration"===a.source||a.source?.startsWith("orchestration:"),i="schedule"===a.source,j="unknown"===a.session_id&&!i,k=(0,w.useCallback)(async()=>{if(!(d.length>0)){g(!0);try{let b=(h||i)&&a.run_id?`run_id=${encodeURIComponent(a.run_id)}`:`session_id=${encodeURIComponent(a.session_id)}`,c=await fetch(`/api/usage/logs?${b}&limit=500`),d=await c.json();e(d.logs??[])}catch{}finally{g(!1)}}},[a.session_id,a.run_id,h,i,d.length]),l=(h||i)&&d.length>0?[...d].sort((a,b)=>a.timestamp.localeCompare(b.timestamp)).map((a,b)=>({...a,globalIdx:b})):[];return(0,v.jsxs)("div",{className:"border border-white/5 mb-2 hover:border-white/10 transition-colors overflow-hidden",children:[(0,v.jsxs)("button",{onClick:()=>{b||k(),c(a=>!a)},className:"w-full flex items-center gap-4 px-4 py-3 text-left hover:bg-white/3 transition-colors",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[j?(0,v.jsx)(vW,{className:"w-3.5 h-3.5 text-fuchsia-400"}):i?(0,v.jsx)(K.Clock,{className:"w-3.5 h-3.5 text-sky-400"}):h?(0,v.jsx)(Z,{className:"w-3.5 h-3.5 text-violet-400"}):(0,v.jsx)(ol,{className:"w-3.5 h-3.5 text-emerald-400"}),(0,v.jsx)("span",{className:`text-xs px-2 py-0.5 font-medium border ${j?"border-fuchsia-800/50 text-fuchsia-400 bg-fuchsia-950/40":i?"border-sky-800/50 text-sky-400 bg-sky-950/40":h?"border-violet-800/50 text-violet-400 bg-violet-950/40":"border-emerald-800/50 text-emerald-400 bg-emerald-950/40"}`,children:j?"system":i?"schedule":h?"orch":"chat"})]}),(0,v.jsxs)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[(0,v.jsx)("span",{className:"text-xs text-zinc-400 font-mono truncate",children:j?"System Prompt Generation":(h||i)&&a.run_id?a.run_id:a.session_id}),(h||i)&&(a.agents_used?.length??0)>0&&(0,v.jsxs)("span",{className:`shrink-0 text-xs px-1.5 py-0.5 border whitespace-nowrap ${i?"text-sky-400 bg-sky-950/40 border-sky-800/30":"text-violet-400 bg-violet-950/40 border-violet-800/30"}`,children:[a.agents_used.length," agent",1!==a.agents_used.length?"s":""]})]}),(0,v.jsxs)("div",{className:"flex items-center gap-5 text-right shrink-0 text-sm",children:[(0,v.jsxs)("div",{className:"hidden md:block",children:[(0,v.jsx)("p",{className:"text-xs text-zinc-500",children:"Turns"}),(0,v.jsx)("p",{className:"font-semibold text-white",children:a.requests})]}),(0,v.jsxs)("div",{className:"hidden lg:block",children:[(0,v.jsx)("p",{className:"text-xs text-zinc-500",children:"Context"}),(0,v.jsx)("p",{className:"font-semibold text-white",children:v_(a.context_chars)})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-xs text-zinc-500",children:"Tokens"}),(0,v.jsx)("p",{className:"font-semibold text-white",children:v$(a.total_tokens)})]}),(0,v.jsxs)("div",{className:"min-w-[70px]",children:[(0,v.jsx)("p",{className:"text-xs text-zinc-500",children:"Cost"}),(0,v.jsx)("p",{className:"font-semibold text-emerald-400",children:vZ(a.estimated_cost)})]})]}),b?(0,v.jsx)(aE,{className:"w-4 h-4 text-zinc-500 shrink-0"}):(0,v.jsx)(ae.ChevronDown,{className:"w-4 h-4 text-zinc-500 shrink-0"})]}),b&&(0,v.jsxs)("div",{className:"border-t border-white/5 bg-zinc-950/50",children:[(0,v.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 px-4 py-3 border-b border-white/5 text-xs",children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-zinc-500 mb-1",children:(h||i)&&(a.agents_used?.length??0)>1?"Agents":"Agent"}),(h||i)&&(a.agents_used?.length??0)>1?(0,v.jsx)("div",{className:"flex flex-wrap gap-1",children:a.agents_used.map(a=>(0,v.jsxs)("span",{className:`inline-flex items-center gap-1 px-1.5 py-0.5 font-mono truncate max-w-[120px] border ${i?"bg-sky-950/50 border-sky-800/30 text-sky-300":"bg-violet-950/50 border-violet-800/30 text-violet-300"}`,children:[(0,v.jsx)(z.Cpu,{className:"w-2.5 h-2.5 shrink-0"}),a]},a))}):(0,v.jsx)("p",{className:"text-zinc-300 font-mono truncate",children:a.agent_id})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-zinc-500 mb-1",children:"Models"}),(0,v.jsx)("div",{className:"flex flex-wrap gap-1",children:a.models_used.map(a=>(0,v.jsx)("span",{className:"bg-zinc-800 text-zinc-300 px-1.5 py-0.5 text-xs truncate max-w-[100px]",children:a},a))})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-zinc-500 mb-1",children:"In / Out"}),(0,v.jsxs)("p",{className:"text-zinc-300",children:[v$(a.input_tokens)," / ",v$(a.output_tokens)]})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-zinc-500 mb-1",children:"Last Active"}),(0,v.jsx)("p",{className:"text-zinc-300",children:function(a){if(!a)return"--";try{return new Date(a).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return a}}(a.last_ts)})]})]}),(0,v.jsxs)("div",{className:"px-4 pt-3 pb-4",children:[(0,v.jsx)("p",{className:"text-xs font-semibold text-zinc-500 uppercase tracking-wider mb-4",children:"Per-Turn Breakdown"}),f&&(0,v.jsxs)("div",{className:"flex items-center gap-2 py-4 text-zinc-600 text-xs",children:[(0,v.jsx)(aB.RefreshCw,{className:"w-3 h-3 animate-spin"})," Loading turns..."]}),!f&&0===d.length&&(0,v.jsx)("p",{className:"text-zinc-600 text-xs py-3",children:"No detailed logs found for this session."}),!f&&d.length>0&&(0,v.jsx)(v5,{logs:h||i?l:d.map((a,b)=>({...a,globalIdx:b})),showAgentDividers:h||i})]})]})]})}function v5({logs:a,showAgentDividers:b=!1}){let c,d=[...a].sort((a,b)=>a.timestamp.localeCompare(b.timestamp));return(0,v.jsx)("div",{className:"overflow-x-auto",children:(0,v.jsxs)("table",{className:"w-full text-xs",children:[(0,v.jsx)("thead",{children:(0,v.jsxs)("tr",{className:"border-b border-white/8",children:[(0,v.jsx)("th",{className:"text-left py-2 pr-3 pl-3 text-zinc-500 font-medium",children:"#"}),(0,v.jsx)("th",{className:"text-left py-2 pr-3 text-zinc-500 font-medium",children:"Time"}),(0,v.jsx)("th",{className:"text-left py-2 pr-3 text-zinc-500 font-medium",children:"Model"}),(0,v.jsx)("th",{className:"text-left py-2 pr-4 text-zinc-500 font-medium",children:"Tool"}),(0,v.jsx)("th",{className:"text-right py-2 pr-3 text-zinc-500 font-medium",children:"Context"}),(0,v.jsx)("th",{className:"text-right py-2 pr-3 text-zinc-500 font-medium",children:"Δ Context"}),(0,v.jsx)("th",{className:"text-right py-2 pr-3 text-zinc-500 font-medium",children:"In"}),(0,v.jsx)("th",{className:"text-right py-2 pr-3 text-zinc-500 font-medium",children:"Out"}),(0,v.jsx)("th",{className:"text-right py-2 pr-3 text-zinc-500 font-medium",children:"Latency"}),(0,v.jsx)("th",{className:"text-right py-2 pr-3 text-zinc-500 font-medium",children:"Cost"})]})}),(0,v.jsx)("tbody",{children:(c={},d.forEach(a=>{let b=a.agent_id||"";c[b]=(c[b]||0)+1}),d.map((a,e)=>{let f=e>0?d[e-1].context_chars:0,g=a.context_chars-f,h=vY[v0(a.model)]?.dot??"#71717a",i=e>0?d[e-1].agent_id||"":null,j=a.agent_id||"",k=b&&(0===e||j!==i),l=j.toLowerCase().includes("evaluator")?"#10b981":"#3b82f6",m=c[j]??0;return(0,v.jsxs)(w.default.Fragment,{children:[k&&(0,v.jsxs)("tr",{className:"border-t border-b border-white/5",children:[(0,v.jsx)("td",{colSpan:9,style:{background:`${l}10`},className:"px-3 py-2",children:(0,v.jsxs)("span",{className:"flex items-center gap-2",children:[(0,v.jsx)(z.Cpu,{className:"w-3 h-3 shrink-0",style:{color:l}}),(0,v.jsx)("span",{className:"font-mono font-semibold text-xs truncate max-w-[180px]",title:j,style:{color:l},children:j})]})}),(0,v.jsxs)("td",{style:{background:`${l}10`,color:`${l}bb`},className:"py-2 pr-3 text-right text-xs tabular-nums font-medium",children:[m," call",1!==m?"s":""]})]}),(0,v.jsxs)("tr",{className:"border-b border-white/[0.04] last:border-0 hover:bg-white/[0.02] transition-colors",children:[(0,v.jsx)("td",{className:"py-2.5 pr-3 pl-3 text-zinc-600 tabular-nums",children:e+1}),(0,v.jsx)("td",{className:"py-2.5 pr-3 text-zinc-500 whitespace-nowrap tabular-nums",children:function(a){if(!a)return"--";try{return new Date(a).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return a}}(a.timestamp)}),(0,v.jsx)("td",{className:"py-2.5 pr-3 font-mono max-w-[140px]",children:(0,v.jsx)("span",{className:"text-zinc-300 truncate block",title:a.model,children:a.model})}),(0,v.jsx)("td",{className:"py-2.5 pr-4 max-w-[130px]",children:a.tool_name?(0,v.jsx)("span",{className:"text-sky-400 font-mono truncate block",title:a.tool_name,children:a.tool_name}):(0,v.jsx)("span",{className:"text-zinc-700",children:"--"})}),(0,v.jsx)("td",{className:"py-2.5 pr-3 text-right text-zinc-300 tabular-nums",children:v_(a.context_chars)}),(0,v.jsx)("td",{className:"py-2.5 pr-3 text-right tabular-nums",children:(0,v.jsx)("span",{className:g>0?"text-amber-400 font-medium":"text-zinc-600",children:g>0?`+${v_(g)}`:"--"})}),(0,v.jsx)("td",{className:"py-2.5 pr-3 text-right text-zinc-400 tabular-nums",children:v$(a.input_tokens)}),(0,v.jsx)("td",{className:"py-2.5 pr-3 text-right text-zinc-400 tabular-nums",children:v$(a.output_tokens)}),(0,v.jsxs)("td",{className:"py-2.5 pr-3 text-right text-zinc-500 tabular-nums",children:[a.latency_seconds.toFixed(1),"s"]}),(0,v.jsx)("td",{className:"py-2.5 pr-3 text-right font-medium tabular-nums",style:{color:h},children:vZ(a.estimated_cost)})]})]},a.globalIdx)}))})]})})}function v6({initialPricing:a,onSaved:b}){let[c,d]=(0,w.useState)(()=>JSON.parse(JSON.stringify(a))),[e,f]=(0,w.useState)("all"),[g,h]=(0,w.useState)(!1),[i,j]=(0,w.useState)(null),[k,l]=(0,w.useState)(!1),[m,n]=(0,w.useState)({});(0,w.useEffect)(()=>{fetch("/api/models").then(a=>a.ok?a.json():null).then(a=>{if(!a?.providers)return;let b={};for(let[c,d]of Object.entries(a.providers))Array.isArray(d?.models)&&(b[c]=d.models);n(b)}).catch(()=>{})},[]);let[o,p]=(0,w.useState)(null),[q,r]=(0,w.useState)(""),[s,t]=(0,w.useState)(""),[u,x]=(0,w.useState)(""),[y,z]=(0,w.useState)(!1),A=(a,b,c)=>{let e=parseFloat(c);isNaN(e)||e<0||(d(c=>({...c,[a]:{...c[a],[b]:e}})),l(!0))},B=async()=>{h(!0),j(null);try{let a={};for(let[b,d]of Object.entries(c)){let{_editing:c,_new:e,...f}=d;a[b]=f}let d=await fetch("/api/usage/pricing",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!d.ok)throw Error(`Server error ${d.status}`);j("Saved!"),l(!1),b(a),setTimeout(()=>j(null),2e3)}catch(a){j(`Error: ${a.message}`)}finally{h(!1)}},C=vX.filter(a=>"ollama"!==a||Object.values(c).some(a=>"ollama"===a.provider));return(0,v.jsxs)("div",{className:"border border-white/5",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-white/5 bg-zinc-900/40",children:[(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)(ob,{className:"w-4 h-4 text-zinc-400"}),(0,v.jsx)("span",{className:"text-sm font-semibold text-white",children:"Pricing Reference"}),(0,v.jsx)("span",{className:"text-xs text-zinc-500",children:"-- edit rates used for cost calculation (USD / 1M tokens)"})]}),(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[i&&(0,v.jsx)("span",{className:`text-xs ${i.startsWith("Error")?"text-red-400":"text-emerald-400"}`,children:i}),k&&(0,v.jsxs)("button",{onClick:B,disabled:g,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-white text-black font-semibold hover:bg-zinc-200 transition-colors disabled:opacity-50",children:[g?(0,v.jsx)(aB.RefreshCw,{className:"w-3 h-3 animate-spin"}):(0,v.jsx)(ad,{className:"w-3 h-3"}),"Save Pricing"]})]})]}),(0,v.jsx)("div",{className:"flex items-center gap-0 border-b border-white/5 overflow-x-auto",children:["all",...C].map(a=>{let b=e===a,c="all"===a?null:vY[a];return(0,v.jsx)("button",{onClick:()=>f(a),className:`px-4 py-3 text-xs font-medium whitespace-nowrap border-b-2 transition-colors ${b?"border-white text-white":"border-transparent text-zinc-500 hover:text-zinc-300"}`,children:c?(0,v.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,v.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{background:c.dot}}),c.label]}):"All Providers"},a)})}),(0,v.jsx)("div",{children:("all"===e?C:[e]).map(a=>{let b=Object.entries(c).filter(([,b])=>"all"===a||b.provider===a);if(0===b.length&&o!==a)return null;let e=vY[a];return(0,v.jsxs)("div",{className:"border-b border-white/5 last:border-0",children:[(0,v.jsxs)("div",{className:`flex items-center justify-between px-5 py-2 ${e.bg}`,children:[(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{background:e.dot}}),(0,v.jsx)("span",{className:`text-xs font-semibold uppercase tracking-wider ${e.text}`,children:e.label}),(0,v.jsxs)("span",{className:"text-xs text-zinc-600",children:["(",b.length," models)"]})]}),(0,v.jsxs)("button",{onClick:()=>{p(o===a?null:a),r(""),t(""),x(""),z(!1)},className:"flex items-center gap-1 text-xs text-zinc-500 hover:text-white transition-colors",children:[(0,v.jsx)(ac.Plus,{className:"w-3 h-3"})," Add model"]})]}),b.length>0&&(0,v.jsxs)("div",{className:"grid grid-cols-[1fr_130px_130px_36px] gap-2 px-5 py-1.5 text-xs text-zinc-600 border-b border-white/3",children:[(0,v.jsx)("span",{children:"Model ID"}),(0,v.jsx)("span",{className:"text-right",children:"Input / 1M tokens"}),(0,v.jsx)("span",{className:"text-right",children:"Output / 1M tokens"}),(0,v.jsx)("span",{})]}),b.map(([a,b])=>(0,v.jsxs)("div",{className:"grid grid-cols-[1fr_130px_130px_36px] gap-2 items-center px-5 py-2.5 border-b border-white/3 last:border-0 hover:bg-white/2 transition-colors",children:[(0,v.jsxs)("span",{className:"text-xs font-mono text-zinc-300 truncate pr-2",children:[a,b._new&&(0,v.jsx)("span",{className:"ml-2 text-emerald-500 text-[10px]",children:"NEW"})]}),(0,v.jsxs)("div",{className:"flex items-center gap-1 justify-end",children:[(0,v.jsx)("span",{className:"text-zinc-500 text-xs",children:"$"}),(0,v.jsx)("input",{type:"number",min:"0",step:"0.001",value:b.input_per_1m,onChange:b=>A(a,"input_per_1m",b.target.value),className:"w-20 bg-zinc-800 border border-white/10 text-white text-xs px-2 py-1 text-right focus:outline-none focus:border-white/30 transition-colors"})]}),(0,v.jsxs)("div",{className:"flex items-center gap-1 justify-end",children:[(0,v.jsx)("span",{className:"text-zinc-500 text-xs",children:"$"}),(0,v.jsx)("input",{type:"number",min:"0",step:"0.001",value:b.output_per_1m,onChange:b=>A(a,"output_per_1m",b.target.value),className:"w-20 bg-zinc-800 border border-white/10 text-white text-xs px-2 py-1 text-right focus:outline-none focus:border-white/30 transition-colors"})]}),(0,v.jsx)("button",{onClick:()=>{d(b=>{let c={...b};return delete c[a],c}),l(!0)},className:"text-zinc-600 hover:text-red-400 transition-colors flex items-center justify-center",children:(0,v.jsx)(az.X,{className:"w-3.5 h-3.5"})})]},a)),o===a&&(0,v.jsxs)("div",{className:"grid grid-cols-[1fr_130px_130px_36px] gap-2 items-center px-5 py-3 bg-zinc-900/80 border-t border-white/5",children:[y?(0,v.jsx)("input",{autoFocus:!0,placeholder:"model-id (e.g. my-custom-model)",value:q,onChange:a=>r(a.target.value),onKeyDown:a=>{"Escape"===a.key&&(z(!1),r(""))},className:"bg-zinc-800 border border-white/20 text-white text-xs px-2 py-1.5 focus:outline-none focus:border-white/40 transition-colors placeholder:text-zinc-600"}):(0,v.jsxs)("select",{value:q,onChange:a=>{"__custom__"===a.target.value?(z(!0),r("")):r(a.target.value)},className:"bg-zinc-800 border border-white/20 text-white text-xs px-2 py-1.5 focus:outline-none focus:border-white/40 transition-colors",children:[(0,v.jsx)("option",{value:"",children:"-- select model --"}),(m[a]??[]).filter(a=>!c[a]).map(a=>(0,v.jsx)("option",{value:a,children:a},a)),(0,v.jsx)("option",{value:"__custom__",children:"Custom model ID..."})]}),(0,v.jsxs)("div",{className:"flex items-center gap-1 justify-end",children:[(0,v.jsx)("span",{className:"text-zinc-500 text-xs",children:"$"}),(0,v.jsx)("input",{placeholder:"0.000",value:s,onChange:a=>t(a.target.value),type:"number",min:"0",step:"0.001",className:"w-20 bg-zinc-800 border border-white/20 text-white text-xs px-2 py-1.5 text-right focus:outline-none focus:border-white/40 transition-colors placeholder:text-zinc-600"})]}),(0,v.jsxs)("div",{className:"flex items-center gap-1 justify-end",children:[(0,v.jsx)("span",{className:"text-zinc-500 text-xs",children:"$"}),(0,v.jsx)("input",{placeholder:"0.000",value:u,onChange:a=>x(a.target.value),type:"number",min:"0",step:"0.001",className:"w-20 bg-zinc-800 border border-white/20 text-white text-xs px-2 py-1.5 text-right focus:outline-none focus:border-white/40 transition-colors placeholder:text-zinc-600"})]}),(0,v.jsx)("button",{onClick:()=>(a=>{if(!q.trim())return;let b=q.trim(),c=parseFloat(s)||0,e=parseFloat(u)||0;d(d=>({...d,[b]:{provider:a,input_per_1m:c,output_per_1m:e,_new:!0}})),r(""),t(""),x(""),p(null),z(!1),l(!0)})(a),className:"text-emerald-400 hover:text-emerald-300 transition-colors flex items-center justify-center",children:(0,v.jsx)(oa,{className:"w-4 h-4"})})]})]},a)})})]})}function v7(){let[a,b]=(0,w.useState)(null),[c,d]=(0,w.useState)({}),[e,f]=(0,w.useState)(!0),[g,h]=(0,w.useState)(!1),[i,j]=(0,w.useState)(null),[k,l]=(0,w.useState)(0),[m,n]=(0,w.useState)("all"),o=(0,w.useCallback)(async()=>{f(!0),j(null);try{let[a,c]=await Promise.all([fetch("/api/usage/summary"),fetch("/api/usage/pricing")]);if(!a.ok)throw Error(`Summary fetch failed: ${a.status}`);if(!c.ok)throw Error(`Pricing fetch failed: ${c.status}`);let[e,f]=await Promise.all([a.json(),c.json()]);b(e),d(f)}catch(a){j(a.message||"Failed to load usage data")}finally{f(!1)}},[]);(0,w.useEffect)(()=>{o()},[o]);let p=async()=>{if(confirm("Delete all usage logs? This cannot be undone.")){h(!0);try{await fetch("/api/usage/logs",{method:"DELETE"}),await o()}catch(a){j(a.message)}finally{h(!1)}}},q=[...a?.by_session??[],...(a?.by_schedule??[]).map(a=>({session_id:a.run_id,run_id:a.run_id,agent_id:a.agent_id,agents_used:a.agents_used,requests:a.requests,input_tokens:a.input_tokens,output_tokens:a.output_tokens,total_tokens:a.total_tokens,context_chars:0,estimated_cost:a.estimated_cost,models_used:a.models_used,first_ts:a.first_ts,last_ts:a.last_ts,source:"schedule",schedule_id:a.schedule_id}))].sort((a,b)=>(b.last_ts??"").localeCompare(a.last_ts??"")),r=q.filter(a=>"all"===m||("orchestrations"===m?"orchestration"===a.source||a.source?.startsWith("orchestration:"):"agents"===m?"orchestration"!==a.source&&!a.source?.startsWith("orchestration:")&&"unknown"!==a.session_id&&"schedule"!==a.source:"schedules"!==m||"schedule"===a.source)),s=r.slice(0,(k+1)*15),t=Math.max(...a?.by_model.map(a=>a.estimated_cost)??[0]);return(0,v.jsxs)("div",{className:"flex-1 overflow-y-auto bg-black text-white font-mono modern-scrollbar",children:[(0,v.jsx)("div",{className:"sticky top-0 z-10 border-b border-white/5 bg-black/90 backdrop-blur-sm px-6 md:px-10 py-4",children:(0,v.jsxs)("div",{className:"max-w-6xl mx-auto flex items-center justify-between gap-4",children:[(0,v.jsxs)("div",{children:[(0,v.jsxs)("h1",{className:"text-lg font-bold tracking-wider flex items-center gap-2",children:[(0,v.jsx)(vT.DollarSign,{className:"w-5 h-5 text-emerald-400"}),"USAGE & COSTS"]}),(0,v.jsx)("p",{className:"text-xs text-zinc-500 mt-0.5",children:"Token usage and cost tracking across all LLM calls"})]}),(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsxs)("button",{onClick:o,disabled:e,className:"flex items-center gap-2 px-3 py-2 text-xs border border-white/10 text-zinc-400 hover:text-white hover:border-white/20 transition-all",children:[(0,v.jsx)(aB.RefreshCw,{className:`w-3.5 h-3.5 ${e?"animate-spin":""}`}),"Refresh"]}),(0,v.jsxs)("button",{onClick:p,disabled:g||e,className:"flex items-center gap-2 px-3 py-2 text-xs border border-red-900/50 text-red-400 hover:border-red-700 hover:text-red-300 transition-all",children:[(0,v.jsx)(T.Trash2,{className:"w-3.5 h-3.5"}),"Clear Logs"]})]})]})}),(0,v.jsxs)("div",{className:"max-w-6xl mx-auto px-6 md:px-10 py-8 space-y-8",children:[i&&(0,v.jsxs)("div",{className:"flex items-center gap-3 p-4 bg-red-950/40 border border-red-800/40 text-red-300 text-sm",children:[(0,v.jsx)(aA,{className:"w-4 h-4 shrink-0"}),i]}),e&&!a&&(0,v.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[void 0,void 0,void 0,void 0].map((a,b)=>(0,v.jsx)("div",{className:"h-28 bg-zinc-900/80 border border-white/5 animate-pulse"},b))}),!e&&a&&0===a.total_requests&&(0,v.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 gap-4 text-center",children:[(0,v.jsx)("div",{className:"p-4 bg-zinc-900 border border-white/5",children:(0,v.jsx)(vV,{className:"w-8 h-8 text-zinc-600"})}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-zinc-400 font-medium",children:"No usage data yet"}),(0,v.jsx)("p",{className:"text-zinc-600 text-sm mt-1",children:"Send a chat message to start tracking costs"})]})]}),a&&a.total_requests>0&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[(0,v.jsx)(v2,{icon:vT.DollarSign,label:"Total Cost",value:vZ(a.total_cost),sub:"estimated USD",color:"#10b981"}),(0,v.jsx)(v2,{icon:vU,label:"Total Requests",value:a.total_requests.toLocaleString(),sub:"LLM calls",color:"#3b82f6"}),(0,v.jsx)(v2,{icon:ol,label:"Input Tokens",value:v$(a.total_input_tokens),sub:"prompt tokens",color:"#f59e0b"}),(0,v.jsx)(v2,{icon:z.Cpu,label:"Output Tokens",value:v$(a.total_output_tokens),sub:"completion tokens",color:"#8b5cf6"})]}),(0,v.jsxs)("div",{className:"bg-zinc-900/60 border border-white/5 p-5",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2 mb-5",children:[(0,v.jsx)(vV,{className:"w-4 h-4 text-zinc-400"}),(0,v.jsx)("h2",{className:"text-sm font-semibold text-white tracking-wide",children:"Cost by Model"}),(0,v.jsx)("span",{className:"text-xs text-zinc-600",children:"sorted by spend"})]}),a.by_model.map(a=>(0,v.jsx)(v3,{stat:a,maxCost:t},a.model))]}),(0,v.jsxs)("div",{className:"bg-zinc-900/60 border border-white/5 p-5",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)(K.Clock,{className:"w-4 h-4 text-zinc-400"}),(0,v.jsx)("h2",{className:"text-sm font-semibold text-white tracking-wide",children:"Session History"}),(0,v.jsxs)("span",{className:"text-xs text-zinc-600",children:[q.length," sessions -- click to expand per-turn breakdown"]})]}),(0,v.jsxs)("div",{className:"flex items-center gap-3 text-xs text-zinc-500 flex-wrap",children:[(0,v.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,v.jsx)(ol,{className:"w-3 h-3 text-emerald-400"})," Chat"]}),(0,v.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,v.jsx)(Z,{className:"w-3 h-3 text-violet-400"})," Orchestration"]}),(0,v.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,v.jsx)(K.Clock,{className:"w-3 h-3 text-sky-400"})," Schedule"]}),(0,v.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,v.jsx)(vW,{className:"w-3 h-3 text-fuchsia-400"})," System Prompt"]})]})]}),(0,v.jsxs)("div",{className:"flex items-center gap-3 mb-5 pb-4 border-b border-white/5",children:[(0,v.jsx)("span",{className:"text-xs text-zinc-500 shrink-0",children:"Filter by"}),(0,v.jsxs)("select",{value:m,onChange:a=>{n(a.target.value),l(0)},className:"bg-zinc-800 border border-white/10 text-white text-xs px-2.5 py-1.5 focus:outline-none focus:border-white/30 transition-colors cursor-pointer appearance-none pr-6",style:{backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E\")",backgroundRepeat:"no-repeat",backgroundPosition:"right 6px center"},children:[(0,v.jsx)("option",{value:"all",children:"All Sessions"}),(0,v.jsx)("option",{value:"orchestrations",children:"Orchestrations"}),(0,v.jsx)("option",{value:"agents",children:"Agents"}),(0,v.jsx)("option",{value:"schedules",children:"Schedules"})]}),(0,v.jsxs)("span",{className:"text-xs text-zinc-600 ml-auto",children:[r.length," result",1!==r.length?"s":""]})]}),s.map((a,b)=>(0,v.jsx)(v4,{s:a},`${a.session_id}-${a.run_id||""}-${b}`)),0===s.length&&(0,v.jsxs)("div",{className:"flex flex-col items-center justify-center py-10 gap-2 text-zinc-700",children:[(0,v.jsx)(vV,{className:"w-6 h-6"}),(0,v.jsx)("p",{className:"text-xs",children:"No sessions match the selected filter"})]}),(k+1)*15<r.length&&(0,v.jsx)("div",{className:"flex justify-center mt-4 pt-4 border-t border-white/5",children:(0,v.jsxs)("button",{onClick:()=>l(a=>a+1),className:"px-4 py-2 text-xs border border-white/10 text-zinc-400 hover:text-white hover:border-white/20 transition-all",children:["Load More (",r.length-(k+1)*15," remaining)"]})})]})]}),Object.keys(c).length>0&&(0,v.jsx)(v6,{initialPricing:c,onSaved:d}),(0,v.jsxs)("div",{className:"flex items-start gap-3 p-4 bg-zinc-900/40 border border-white/5 text-xs text-zinc-500",children:[(0,v.jsx)(W,{className:"w-4 h-4 text-zinc-600 shrink-0 mt-0.5"}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"font-medium text-zinc-400 mb-1",children:"About cost estimates"}),(0,v.jsxs)("p",{children:["Token counts are sourced from API response metadata for OpenAI, Anthropic, Gemini, Grok, and DeepSeek. Ollama uses its ",(0,v.jsx)("code",{children:"eval_count"})," field. AWS Bedrock does not expose token counts directly, so tokens are estimated from character length (chars / 4) -- costs for Bedrock calls may be less accurate. Edit prices above and click ",(0,v.jsx)("strong",{children:"Save Pricing"})," to update rates used for future cost calculations."]})]})]})]})]})}let v8=(0,U.default)("pen",[["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"}]]),v9=(0,U.default)("toggle-left",[["circle",{cx:"9",cy:"12",r:"3",key:"u3jwor"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]),wa=(0,U.default)("toggle-right",[["circle",{cx:"15",cy:"12",r:"3",key:"1afu0r"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]),wb=[{label:"Every day at...",buildExpr:a=>`0 ${a} * * *`},{label:"Every weekday at...",buildExpr:a=>`0 ${a} * * 1-5`},{label:"Every Monday at...",buildExpr:a=>`0 ${a} * * 1`},{label:"Every Saturday at...",buildExpr:a=>`0 ${a} * * 6`},{label:"Every Sunday at...",buildExpr:a=>`0 ${a} * * 0`},{label:"1st of every month at...",buildExpr:a=>`0 ${a} 1 * *`},{label:"Custom expression",buildExpr:()=>""}];function wc(a){if(!a)return"";let b=a.trim().split(/\s+/);if(5!==b.length)return a;let[c,d,e,f,g]=b,h=parseInt(d),i=parseInt(c),j=isNaN(h)||isNaN(i)?`${d}:${c} UTC`:`${h.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")} UTC`,k=a=>{let b=["th","st","nd","rd"],c=a%100;return a+(b[(c-20)%10]||b[c]||b[0])},l={1:"January",2:"February",3:"March",4:"April",5:"May",6:"June",7:"July",8:"August",9:"September",10:"October",11:"November",12:"December"}[f]||"",m={0:"Sunday",7:"Sunday",1:"Monday",2:"Tuesday",3:"Wednesday",4:"Thursday",5:"Friday",6:"Saturday","1-5":"weekday"}[g],n=parseInt(e);if("*"===e&&"*"===f&&"*"===g)return`Every day at ${j}`;if("*"!==e&&"*"===g&&!isNaN(n)){let a=l?` of ${l}`:" of every month";return`On the ${k(n)}${a} at ${j}`}if("*"===e&&"*"!==g&&m){let a=l?` in ${l}`:"";return`Every ${m}${a} at ${j}`}if("*"!==f&&"*"===e&&"*"===g)return`Every day in ${l} at ${j}`;if("*"!==e&&"*"!==g&&!isNaN(n)&&m){let a=l?` of ${l}`:" of every month",b=l?` in ${l}`:"";return`On the ${k(n)}${a} or every ${m}${b} at ${j}`}return a}function wd(a){if(!a)return"--";try{return new Date(a).toLocaleString()}catch{return a}}function we(){return{name:"",description:"",enabled:!0,target_type:"agent",target_id:"",prompt:"",schedule_type:"interval",interval_value:30,interval_unit:"minutes",cron_expression:"0 9 * * *",missed_run_policy:"skip"}}let wf=()=>{let[a,b]=(0,w.useState)([]),[c,d]=(0,w.useState)([]),[e,f]=(0,w.useState)([]),[g,h]=(0,w.useState)(!1),[i,j]=(0,w.useState)(!1),[k,l]=(0,w.useState)(null),[m,n]=(0,w.useState)(we()),[o,p]=(0,w.useState)(!1),[q,r]=(0,w.useState)(new Set),[s,t]=(0,w.useState)(null),[u,x]=(0,w.useState)(0),[y,z]=(0,w.useState)(9),[A,B]=(0,w.useState)(!0),C=(a,b=!0)=>{t({msg:a,ok:b}),setTimeout(()=>t(null),3e3)},E=(0,w.useCallback)(async()=>{h(!0);try{let[a,c,e]=await Promise.all([fetch("/api/schedules"),fetch("/api/agents"),fetch("/api/orchestrations")]);a.ok&&b(await a.json()),c.ok&&d(await c.json()),e.ok&&f(await e.json())}finally{h(!1)}},[]);function F(){j(!1),l(null)}async function G(){if(!m.name.trim())return void C("Name is required",!1);if(!m.target_id)return void C("Please select a target agent or orchestration",!1);if(!m.prompt.trim())return void C("Prompt is required",!1);if("interval"===m.schedule_type&&(!m.interval_value||m.interval_value<1))return void C("Interval value must be at least 1",!1);if("cron"===m.schedule_type&&!m.cron_expression?.trim())return void C("Cron expression is required",!1);p(!0);try{let a={...m};"interval"===m.schedule_type?(delete a.cron_expression,delete a.missed_run_policy):(delete a.interval_value,delete a.interval_unit);let c=k?`/api/schedules/${k}`:"/api/schedules",d=await fetch(c,{method:k?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(d.ok){let a=await d.json();b(b=>k?b.map(b=>b.id===k?a:b):[...b,a]),F(),C(k?"Schedule updated":"Schedule created")}else{let a=await d.json().catch(()=>({}));C(a.detail||"Failed to save",!1)}}finally{p(!1)}}async function I(a){let c=await fetch(`/api/schedules/${a.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!a.enabled})});if(c.ok){let d=await c.json();b(b=>b.map(b=>b.id===a.id?d:b))}}async function J(a){!confirm("Delete this schedule?")||(await fetch(`/api/schedules/${a}`,{method:"DELETE"})).ok&&(b(b=>b.filter(b=>b.id!==a)),C("Schedule deleted"))}async function L(a){r(b=>new Set(b).add(a));try{(await fetch(`/api/schedules/${a}/run`,{method:"POST"})).ok?C("Schedule triggered successfully"):C("Failed to trigger schedule",!1)}finally{r(b=>{let c=new Set(b);return c.delete(a),c})}}function M(a){return"agent"===a.target_type?c.find(b=>b.id===a.target_id)?.name??a.target_id:e.find(b=>b.id===a.target_id)?.name??a.target_id}return(0,w.useEffect)(()=>{E()},[E]),(0,v.jsxs)("div",{className:"flex flex-col h-full overflow-hidden font-mono",children:[s&&(0,v.jsxs)("div",{className:`fixed bottom-6 right-6 z-50 flex items-center gap-2 px-4 py-3 text-sm shadow-lg ${s.ok?"bg-emerald-900/90 text-emerald-200 border border-emerald-700":"bg-red-900/90 text-red-200 border border-red-700"}`,children:[s.ok?(0,v.jsx)(al,{className:"h-4 w-4"}):(0,v.jsx)(V,{className:"h-4 w-4"}),s.msg]}),(0,v.jsxs)("div",{className:"px-6 py-4 border-b border-zinc-800 shrink-0 pr-14 flex items-center justify-between",children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("h1",{className:"text-2xl font-bold text-zinc-100",children:"Schedules"}),(0,v.jsx)("p",{className:"text-zinc-500 text-xs mt-0.5",children:"Automate agent and orchestration runs on a recurring schedule"})]}),(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)("button",{onClick:E,className:"p-2 text-zinc-500 hover:text-white hover:bg-white/5 transition-colors",title:"Refresh",children:(0,v.jsx)(aB.RefreshCw,{className:`h-4 w-4 ${g?"animate-spin":""}`})}),(0,v.jsxs)("button",{onClick:function(){l(null),n(we()),x(0),z(9),B(!0),j(!0)},className:"flex items-center gap-2 px-4 py-2 bg-white text-black text-sm font-semibold hover:bg-zinc-200 transition-colors",children:[(0,v.jsx)(ac.Plus,{className:"h-4 w-4"}),"New Schedule"]})]})]}),(0,v.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[(0,v.jsx)("div",{className:`flex flex-col overflow-hidden transition-all ${i?"w-1/2 border-r border-zinc-800":"w-full"}`,children:(0,v.jsx)("div",{className:"flex-1 overflow-y-auto",children:g&&0===a.length?(0,v.jsx)("div",{className:"flex items-center justify-center h-32 text-zinc-600 text-xs",children:"Loading..."}):0===a.length?(0,v.jsxs)("div",{className:"flex flex-col items-center justify-center h-64 gap-4 text-zinc-700 px-8 text-center",children:[(0,v.jsx)(K.Clock,{className:"h-10 w-10"}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-sm font-semibold text-zinc-500",children:"No schedules yet"}),(0,v.jsx)("p",{className:"text-xs mt-1",children:'Click "New Schedule" to automate your first agent run'})]})]}):(0,v.jsxs)("table",{className:"w-full text-xs",children:[(0,v.jsx)("thead",{children:(0,v.jsxs)("tr",{className:"border-b border-zinc-800 text-zinc-500 text-left",children:[(0,v.jsx)("th",{className:"px-4 py-3 font-medium",children:"Name"}),(0,v.jsx)("th",{className:"px-4 py-3 font-medium",children:"Target"}),(0,v.jsx)("th",{className:"px-4 py-3 font-medium",children:"Schedule"}),(0,v.jsx)("th",{className:"px-4 py-3 font-medium",children:"Next Run"}),(0,v.jsx)("th",{className:"px-4 py-3 font-medium",children:"Last Run"}),(0,v.jsx)("th",{className:"px-4 py-3 font-medium text-right",children:"Actions"})]})}),(0,v.jsx)("tbody",{children:a.map(a=>(0,v.jsxs)("tr",{className:"border-b border-zinc-900 hover:bg-white/3 transition-colors group",children:[(0,v.jsxs)("td",{className:"px-4 py-3",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${a.enabled?"bg-emerald-400":"bg-zinc-600"}`}),(0,v.jsx)("span",{className:"font-semibold text-white truncate max-w-[140px]",title:a.name,children:a.name})]}),a.description&&(0,v.jsx)("p",{className:"text-zinc-600 truncate max-w-[160px] mt-0.5",title:a.description,children:a.description})]}),(0,v.jsx)("td",{className:"px-4 py-3",children:(0,v.jsxs)("div",{className:"flex items-center gap-1.5 text-zinc-400",children:["agent"===a.target_type?(0,v.jsx)(D.Bot,{className:"h-3 w-3 shrink-0 text-sky-400"}):(0,v.jsx)(H.Workflow,{className:"h-3 w-3 shrink-0 text-purple-400"}),(0,v.jsx)("span",{className:"truncate max-w-[100px]",title:M(a),children:M(a)})]})}),(0,v.jsx)("td",{className:"px-4 py-3 text-zinc-300",children:"interval"===a.schedule_type?`Every ${a.interval_value??"?"} ${a.interval_unit??"minutes"}`:wc(a.cron_expression??"")}),(0,v.jsx)("td",{className:"px-4 py-3 text-zinc-500",children:wd(a.next_run_at)}),(0,v.jsx)("td",{className:"px-4 py-3 text-zinc-600",children:wd(a.last_run_at)}),(0,v.jsx)("td",{className:"px-4 py-3",children:(0,v.jsxs)("div",{className:"flex items-center gap-1 justify-end",children:[(0,v.jsx)("button",{onClick:()=>I(a),className:"p-1.5 text-zinc-500 hover:text-white transition-colors",title:a.enabled?"Disable":"Enable",children:a.enabled?(0,v.jsx)(wa,{className:"h-4 w-4 text-emerald-400"}):(0,v.jsx)(v9,{className:"h-4 w-4"})}),(0,v.jsx)("button",{onClick:()=>L(a.id),disabled:q.has(a.id),className:"p-1.5 text-zinc-500 hover:text-emerald-400 transition-colors disabled:opacity-40",title:"Run Now",children:(0,v.jsx)(aD,{className:`h-3.5 w-3.5 ${q.has(a.id)?"animate-pulse":""}`})}),(0,v.jsx)("button",{onClick:()=>(function(a){if(l(a.id),n({name:a.name,description:a.description??"",enabled:a.enabled,target_type:a.target_type,target_id:a.target_id,prompt:a.prompt,schedule_type:a.schedule_type,interval_value:a.interval_value??30,interval_unit:a.interval_unit??"minutes",cron_expression:a.cron_expression??"0 9 * * *",missed_run_policy:a.missed_run_policy??"skip"}),a.cron_expression){let b=a.cron_expression.split(" ");if(5===b.length){let a=parseInt(b[1]);isNaN(a)||z(a)}}x(6),B(!1),j(!0)})(a),className:"p-1.5 text-zinc-500 hover:text-white transition-colors",title:"Edit",children:(0,v.jsx)(v8,{className:"h-3.5 w-3.5"})}),(0,v.jsx)("button",{onClick:()=>J(a.id),className:"p-1.5 text-zinc-500 hover:text-red-400 transition-colors",title:"Delete",children:(0,v.jsx)(T.Trash2,{className:"h-3.5 w-3.5"})})]})})]},a.id))})]})})}),i&&(0,v.jsxs)("div",{className:"w-1/2 flex flex-col overflow-hidden",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b border-zinc-800 shrink-0",children:[(0,v.jsx)("h2",{className:"text-sm font-semibold text-white",children:k?"Edit Schedule":"New Schedule"}),(0,v.jsx)("button",{onClick:F,className:"text-zinc-500 hover:text-white text-xs",children:"? Cancel"})]}),(0,v.jsxs)("div",{className:"flex-1 overflow-y-auto px-6 py-4 space-y-5",children:[(0,v.jsxs)("div",{className:"border border-zinc-800 bg-zinc-950",children:[(0,v.jsxs)("button",{onClick:()=>B(a=>!a),className:"w-full flex items-center justify-between px-4 py-3 text-xs text-zinc-400 hover:text-white transition-colors",children:[(0,v.jsxs)("span",{className:"flex items-center gap-2",children:[(0,v.jsx)(ob,{className:"h-3.5 w-3.5 text-sky-400"}),(0,v.jsx)("span",{className:"font-semibold",children:"How to create schedules"})]}),A?(0,v.jsx)(aE,{className:"h-3.5 w-3.5"}):(0,v.jsx)(ae.ChevronDown,{className:"h-3.5 w-3.5"})]}),A&&(0,v.jsxs)("div",{className:"px-4 pb-4 text-xs text-zinc-500 space-y-3 border-t border-zinc-800",children:[(0,v.jsxs)("div",{className:"pt-3",children:[(0,v.jsx)("p",{className:"text-zinc-300 font-semibold mb-1",children:"Interval -- run every N minutes/hours/days"}),(0,v.jsxs)("ul",{className:"space-y-1 text-zinc-500",children:[(0,v.jsxs)("li",{children:["? ",(0,v.jsx)("span",{className:"text-zinc-400",children:"Every 5 minutes"})," -- monitor a feed, poll an API"]}),(0,v.jsxs)("li",{children:["? ",(0,v.jsx)("span",{className:"text-zinc-400",children:"Every 2 hours"})," -- periodic summaries or reports"]}),(0,v.jsxs)("li",{children:["? ",(0,v.jsx)("span",{className:"text-zinc-400",children:"Every 1 day"})," -- daily digest or cleanup tasks"]})]}),(0,v.jsx)("p",{className:"text-zinc-600 mt-1.5",children:"Interval restarts from the last run time. If the server was offline and the schedule is overdue, it runs immediately on restart."})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-zinc-300 font-semibold mb-1",children:"Cron / Fixed Time -- run at specific times"}),(0,v.jsxs)("ul",{className:"space-y-1 text-zinc-500",children:[(0,v.jsxs)("li",{children:["? ",(0,v.jsx)("span",{className:"text-zinc-400",children:"Every day at 9 AM"})," -- morning standup report"]}),(0,v.jsxs)("li",{children:["? ",(0,v.jsx)("span",{className:"text-zinc-400",children:"Every Monday at 6 PM"})," -- weekly digest"]}),(0,v.jsxs)("li",{children:["? ",(0,v.jsx)("span",{className:"text-zinc-400",children:"1st of month"})," -- monthly invoice summary"]})]}),(0,v.jsx)("p",{className:"text-zinc-600 mt-1.5",children:"If a run was missed while offline, choose whether to run immediately or skip to the next scheduled time."})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-zinc-300 font-semibold mb-1",children:"Prompt"}),(0,v.jsx)("p",{className:"text-zinc-500",children:"The prompt is what the agent will receive each time the schedule fires. Think of it as a standing instruction."})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-zinc-300 font-semibold mb-1",children:"Messaging notifications"}),(0,v.jsx)("p",{className:"text-zinc-500",children:"If the selected agent has a connected messaging channel (Slack, Telegram, etc.), the result is sent there automatically after each run."})]})]})]}),(0,v.jsxs)("div",{children:[(0,v.jsxs)("label",{className:"block text-xs text-zinc-400 mb-1.5 font-semibold",children:["Name ",(0,v.jsx)("span",{className:"text-red-400",children:"*"})]}),(0,v.jsx)("input",{value:m.name,onChange:a=>n(b=>({...b,name:a.target.value})),placeholder:"e.g. Daily Sales Report",className:"w-full bg-zinc-900 border border-zinc-700 px-3 py-2 text-sm text-white placeholder-zinc-600 focus:outline-none focus:border-zinc-500"})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"block text-xs text-zinc-400 mb-1.5 font-semibold",children:"Description"}),(0,v.jsx)("input",{value:m.description,onChange:a=>n(b=>({...b,description:a.target.value})),placeholder:"Optional short description",className:"w-full bg-zinc-900 border border-zinc-700 px-3 py-2 text-sm text-white placeholder-zinc-600 focus:outline-none focus:border-zinc-500"})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"block text-xs text-zinc-400 mb-1.5 font-semibold",children:"Run as"}),(0,v.jsx)("div",{className:"flex gap-2",children:["agent","orchestration"].map(a=>(0,v.jsxs)("button",{onClick:()=>n(b=>({...b,target_type:a,target_id:""})),className:`flex items-center gap-2 px-4 py-2 text-xs font-medium border transition-all ${m.target_type===a?"border-white bg-white text-black":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-500"}`,children:["agent"===a?(0,v.jsx)(D.Bot,{className:"h-3.5 w-3.5"}):(0,v.jsx)(H.Workflow,{className:"h-3.5 w-3.5"}),"agent"===a?"Agent":"Orchestration"]},a))})]}),(0,v.jsxs)("div",{children:[(0,v.jsxs)("label",{className:"block text-xs text-zinc-400 mb-1.5 font-semibold",children:["agent"===m.target_type?"Agent":"Orchestration"," ",(0,v.jsx)("span",{className:"text-red-400",children:"*"})]}),(0,v.jsxs)("select",{value:m.target_id,onChange:a=>n(b=>({...b,target_id:a.target.value})),className:"w-full bg-zinc-900 border border-zinc-700 px-3 py-2 text-sm text-white focus:outline-none focus:border-zinc-500",children:[(0,v.jsxs)("option",{value:"",children:["Select ","agent"===m.target_type?"an agent":"an orchestration","..."]}),("agent"===m.target_type?c:e).map(a=>(0,v.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,v.jsxs)("div",{children:[(0,v.jsxs)("label",{className:"block text-xs text-zinc-400 mb-1.5 font-semibold",children:["Prompt ",(0,v.jsx)("span",{className:"text-red-400",children:"*"}),(0,v.jsx)("span",{className:"ml-2 font-normal text-zinc-600",children:"What should the agent do each time it runs?"})]}),(0,v.jsx)("textarea",{value:m.prompt,onChange:a=>n(b=>({...b,prompt:a.target.value})),placeholder:"e.g. Generate a daily summary of yesterday's sales data and highlight any anomalies.",rows:4,className:"w-full bg-zinc-900 border border-zinc-700 px-3 py-2 text-sm text-white placeholder-zinc-600 focus:outline-none focus:border-zinc-500 resize-none"})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"block text-xs text-zinc-400 mb-1.5 font-semibold",children:"Schedule Type"}),(0,v.jsx)("div",{className:"flex gap-2",children:["interval","cron"].map(a=>(0,v.jsxs)("button",{onClick:()=>n(b=>({...b,schedule_type:a})),className:`flex items-center gap-2 px-4 py-2 text-xs font-medium border transition-all ${m.schedule_type===a?"border-white bg-white text-black":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-500"}`,children:[(0,v.jsx)(K.Clock,{className:"h-3.5 w-3.5"}),"interval"===a?"Interval":"Fixed Time (Cron)"]},a))})]}),"interval"===m.schedule_type&&(0,v.jsxs)("div",{className:"bg-zinc-900/60 border border-zinc-800 p-4 space-y-3",children:[(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)("span",{className:"text-xs text-zinc-400 shrink-0",children:"Run every"}),(0,v.jsx)("input",{type:"number",min:1,value:m.interval_value??30,onChange:a=>n(b=>({...b,interval_value:parseInt(a.target.value)||1})),className:"w-20 bg-zinc-800 border border-zinc-700 px-2 py-1.5 text-sm text-white text-center focus:outline-none focus:border-zinc-500"}),(0,v.jsxs)("select",{value:m.interval_unit??"minutes",onChange:a=>n(b=>({...b,interval_unit:a.target.value})),className:"bg-zinc-800 border border-zinc-700 px-2 py-1.5 text-sm text-white focus:outline-none focus:border-zinc-500",children:[(0,v.jsx)("option",{value:"minutes",children:"minutes"}),(0,v.jsx)("option",{value:"hours",children:"hours"}),(0,v.jsx)("option",{value:"days",children:"days"})]})]}),(0,v.jsxs)("p",{className:"text-xs text-zinc-600",children:["Runs every ",m.interval_value??"?"," ",m.interval_unit??"minutes"," from the last run. If overdue after a restart, it runs immediately."]})]}),"cron"===m.schedule_type&&(0,v.jsxs)("div",{className:"bg-zinc-900/60 border border-zinc-800 p-4 space-y-4",children:[(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"block text-xs text-zinc-500 mb-1.5",children:"Quick preset"}),(0,v.jsx)("select",{value:u,onChange:a=>(function(a){if(x(a),a<wb.length-1){let b=wb[a].buildExpr(y);n(a=>({...a,cron_expression:b}))}})(parseInt(a.target.value)),className:"w-full bg-zinc-800 border border-zinc-700 px-2 py-1.5 text-sm text-white focus:outline-none focus:border-zinc-500",children:wb.map((a,b)=>(0,v.jsx)("option",{value:b,children:a.label},b))})]}),u<wb.length-1&&(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)("span",{className:"text-xs text-zinc-400",children:"At hour (UTC)"}),(0,v.jsx)("select",{value:y,onChange:a=>(function(a){if(z(a),u<wb.length-1){let b=wb[u].buildExpr(a);n(a=>({...a,cron_expression:b}))}})(parseInt(a.target.value)),className:"bg-zinc-800 border border-zinc-700 px-2 py-1.5 text-sm text-white focus:outline-none focus:border-zinc-500",children:Array.from({length:24},(a,b)=>(0,v.jsxs)("option",{value:b,children:[b.toString().padStart(2,"0"),":00 UTC"]},b))})]}),(0,v.jsxs)("div",{children:[(0,v.jsxs)("label",{className:"block text-xs text-zinc-500 mb-1.5",children:["Cron expression",(0,v.jsx)("span",{className:"ml-2 text-zinc-700",children:"minute hour day-of-month month day-of-week"})]}),(0,v.jsx)("input",{value:m.cron_expression??"",onChange:a=>n(b=>({...b,cron_expression:a.target.value})),placeholder:"0 9 * * *",className:"w-full bg-zinc-800 border border-zinc-700 px-3 py-2 text-sm text-white font-mono focus:outline-none focus:border-zinc-500"}),m.cron_expression&&(0,v.jsx)("p",{className:"text-xs text-emerald-400 mt-1",children:wc(m.cron_expression)})]}),(0,v.jsxs)("div",{children:[(0,v.jsx)("label",{className:"block text-xs text-zinc-500 mb-2",children:"If a run was missed while offline"}),(0,v.jsx)("div",{className:"space-y-2",children:[{value:"run_immediately",label:"Run immediately when server starts",desc:"Catches up the missed run once, then resumes normal schedule"},{value:"skip",label:"Skip and wait for the next scheduled time",desc:"Ignores the missed run, next run fires at the correct future time"}].map(a=>(0,v.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer group",children:[(0,v.jsx)("input",{type:"radio",name:"missed_run_policy",value:a.value,checked:m.missed_run_policy===a.value,onChange:()=>n(b=>({...b,missed_run_policy:a.value})),className:"mt-0.5 shrink-0"}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-xs text-zinc-300",children:a.label}),(0,v.jsx)("p",{className:"text-[11px] text-zinc-600",children:a.desc})]})]},a.value))})]})]}),(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)("label",{className:"text-xs text-zinc-400 font-semibold",children:"Enabled"}),(0,v.jsx)("button",{onClick:()=>n(a=>({...a,enabled:!a.enabled})),className:"text-zinc-400 hover:text-white transition-colors",children:m.enabled?(0,v.jsx)(wa,{className:"h-5 w-5 text-emerald-400"}):(0,v.jsx)(v9,{className:"h-5 w-5"})}),(0,v.jsx)("span",{className:"text-xs text-zinc-600",children:m.enabled?"Schedule will run automatically":"Schedule is paused"})]}),(0,v.jsx)("div",{className:"pt-2 pb-4",children:(0,v.jsx)("button",{onClick:G,disabled:o,className:"w-full py-2.5 bg-white text-black text-sm font-semibold hover:bg-zinc-200 disabled:opacity-50 transition-colors",children:o?"Saving...":k?"Save Changes":"Create Schedule"})})]})]})]})]})},wg=(0,U.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),wh=(0,U.default)("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"}]]);function wi(a){return(a.steps||[]).map(a=>a.agent_id).filter(Boolean)}function wj(a,b){let c=a.tools||[];return b.filter(a=>c.some(b=>b.startsWith(`${a.name}__`))).map(a=>a.name)}function wk(a,b){return b.filter(b=>(a.tools||[]).includes(b.name)).map(a=>a.name)}function wl({title:a,icon:b,items:c,selected:d,locked:e,getId:f,getLabel:g,getDesc:h,onToggle:i}){let[j,k]=(0,w.useState)(!1);if(0===c.length)return null;let l=c.filter(a=>d.has(f(a))).length;return(0,v.jsxs)("div",{className:"border border-zinc-800",children:[(0,v.jsxs)("button",{onClick:()=>k(a=>!a),className:"w-full flex items-center gap-2 px-4 py-3 bg-zinc-900 hover:bg-zinc-800 transition-colors",children:[(0,v.jsx)(b,{className:"h-4 w-4 text-zinc-400"}),(0,v.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-zinc-400",children:a}),(0,v.jsxs)("span",{className:"ml-auto flex items-center gap-2 text-[10px] text-zinc-600 font-mono",children:[l,"/",c.length,j?(0,v.jsx)(af.ChevronRight,{className:"h-3 w-3"}):(0,v.jsx)(ae.ChevronDown,{className:"h-3 w-3"})]})]}),!j&&(0,v.jsx)("div",{className:"divide-y divide-zinc-800/60 max-h-[400px] overflow-y-auto",children:c.map((a,b)=>{let c=f(a)??`item-${b}`,j=d.has(f(a)),k=e.has(f(a)),l=h?.(a);return(0,v.jsxs)("div",{role:"checkbox","aria-checked":j,onClick:()=>{let b=f(a);!k&&b&&i(b,!j)},className:`flex items-start gap-3 px-4 py-3 transition-colors select-none ${k?"opacity-60 cursor-not-allowed":"cursor-pointer hover:bg-zinc-900/60"} ${j?"bg-zinc-900/40":""}`,children:[(0,v.jsx)("div",{className:`mt-0.5 h-4 w-4 flex-shrink-0 flex items-center justify-center border transition-colors ${j?"bg-white border-white":"bg-zinc-950 border-zinc-700"}`,children:j&&(0,v.jsx)("svg",{className:"h-2.5 w-2.5 text-black",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,v.jsx)("polyline",{points:"2,6 5,9 10,3"})})}),(0,v.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,v.jsx)("span",{className:"text-sm font-bold text-zinc-200",children:g(a)}),k&&(0,v.jsx)("span",{className:"text-[9px] uppercase font-bold px-1.5 py-0.5 bg-zinc-800 border border-zinc-700 text-zinc-500 tracking-wider",children:"auto"})]}),l&&(0,v.jsx)("p",{className:"text-xs text-zinc-500 mt-0.5 line-clamp-1",children:l}),(0,v.jsx)("p",{className:"text-[10px] text-zinc-700 font-mono mt-0.5",children:f(a)})]})]},c||`fallback-${b}`)})})]})}function wm(){let[a,b]=(0,w.useState)(null),[c,d]=(0,w.useState)(!1),[e,f]=(0,w.useState)(!1),[g,h]=(0,w.useState)(null),[i,j]=(0,w.useState)(`synapse_export_${new Date().toISOString().slice(0,10)}`),[k,l]=(0,w.useState)(new Set),[m,n]=(0,w.useState)(new Set),[o,p]=(0,w.useState)(new Set),[q,r]=(0,w.useState)(new Set),[s,t]=(0,w.useState)(new Set),[u,x]=(0,w.useState)(new Set),[y,z]=(0,w.useState)(new Set),A=async()=>{d(!0),h(null);try{let a=await fetch("/api/export/data");if(!a.ok)throw Error("Failed to load export data");b(await a.json())}catch(a){h(a.message)}finally{d(!1)}},B=(0,w.useCallback)((a,b,c)=>{let d=new Set;for(let b of a){let a=c.orchestrations.find(a=>a.id===b);a&&wi(a).forEach(a=>d.add(a))}let e=new Set([...b,...d]),f=new Set,g=new Set;for(let a of e){let b=c.agents.find(b=>b.id===a);b&&(wj(b,c.mcp_servers).forEach(a=>f.add(a)),wk(b,c.custom_tools).forEach(a=>g.add(a)))}t(d),x(f),z(g),n(a=>new Set([...a,...d])),p(a=>new Set([...a,...f])),r(a=>new Set([...a,...g]))},[]),C=a?.custom_tools.some(a=>q.has(a.name)&&"python"===a.tool_type),G=k.size+m.size+o.size+q.size,I=async()=>{if(0!==G){f(!0);try{let a=await fetch("/api/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({orchestration_ids:[...k],agent_ids:[...m],mcp_server_names:[...o],custom_tool_names:[...q]})});if(!a.ok)throw Error("Export failed");let b=new Blob([JSON.stringify(await a.json(),null,2)],{type:"application/json"}),c=Object.assign(document.createElement("a"),{href:URL.createObjectURL(b),download:`${i||"synapse_export"}.json`});c.click(),URL.revokeObjectURL(c.href)}catch(a){h(a.message)}finally{f(!1)}}};return a?(0,v.jsxs)("div",{className:"space-y-6",children:[C&&(0,v.jsxs)("div",{className:"flex items-start gap-3 p-4 border border-yellow-900/50 bg-yellow-950/10",children:[(0,v.jsx)(aA,{className:"h-4 w-4 text-yellow-500 flex-shrink-0 mt-0.5"}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-yellow-400 text-xs font-bold uppercase tracking-wider",children:"Python Tool Warning"}),(0,v.jsxs)("p",{className:"text-yellow-600 text-xs mt-1 leading-relaxed",children:["One or more selected agents use a custom Python tool. Python code is exported as-is — make sure it does ",(0,v.jsx)("strong",{className:"text-yellow-500",children:"not contain hardcoded secrets, API keys, or passwords"}),"."]})]})]}),(0,v.jsxs)("div",{className:"space-y-0 border border-zinc-800 divide-y divide-zinc-800",children:[(0,v.jsx)(wl,{title:"Orchestrations",icon:H.Workflow,items:a.orchestrations,selected:k,locked:new Set,getId:a=>a.id,getLabel:a=>a.name,getDesc:a=>a.description,onToggle:(b,c)=>{let d=new Set(k);c?d.add(b):d.delete(b),l(d),a&&B(d,m,a)}}),(0,v.jsx)(wl,{title:"Agents",icon:D.Bot,items:a.agents,selected:m,locked:s,getId:a=>a.id,getLabel:a=>a.name,getDesc:a=>a.description,onToggle:(b,c)=>{if(s.has(b))return;let d=new Set(m);c?d.add(b):d.delete(b),n(d),a&&B(k,d,a)}}),(0,v.jsx)(wl,{title:"MCP Servers",icon:F.Server,items:a.mcp_servers,selected:o,locked:u,getId:a=>a.name,getLabel:a=>a.label||a.name,onToggle:(a,b)=>{if(u.has(a))return;let c=new Set(o);b?c.add(a):c.delete(a),p(c)}}),(0,v.jsx)(wl,{title:"Custom Tools",icon:E.Wrench,items:a.custom_tools,selected:q,locked:y,getId:a=>a.name,getLabel:a=>a.generalName||a.name,getDesc:a=>a.description,onToggle:(a,b)=>{if(y.has(a))return;let c=new Set(q);b?c.add(a):c.delete(a),r(c)}})]}),a.orchestrations.length+a.agents.length+a.mcp_servers.length+a.custom_tools.length===0&&(0,v.jsx)("p",{className:"text-zinc-600 text-sm text-center py-4",children:"Nothing to export yet — add orchestrations, agents, MCP servers, or tools first."}),G>0&&(0,v.jsxs)("div",{className:"border border-zinc-800 bg-zinc-900/40 p-5 space-y-4",children:[(0,v.jsx)("h4",{className:"text-[10px] uppercase font-bold tracking-wider text-zinc-500",children:"Export File"}),(0,v.jsxs)("div",{className:"flex items-center gap-2",children:[(0,v.jsx)("input",{type:"text",value:i,onChange:a=>j(a.target.value),className:"w-full bg-zinc-900 border border-zinc-800 p-2 text-sm text-white focus:border-white focus:outline-none placeholder:text-zinc-700 flex-1",placeholder:"synapse_export"}),(0,v.jsx)("span",{className:"text-zinc-600 text-sm font-mono",children:".json"})]}),(0,v.jsxs)("div",{className:"flex items-center justify-between gap-4 pt-1",children:[(0,v.jsxs)("p",{className:"text-xs text-zinc-500",children:[(0,v.jsx)("span",{className:"text-white font-bold",children:G})," item",1!==G?"s":""," selected",k.size>0&&` \xb7 ${k.size} orchestration${1!==k.size?"s":""}`,m.size>0&&` \xb7 ${m.size} agent${1!==m.size?"s":""}`,o.size>0&&` \xb7 ${o.size} MCP server${1!==o.size?"s":""}`,q.size>0&&` \xb7 ${q.size} tool${1!==q.size?"s":""}`]}),(0,v.jsxs)("button",{onClick:I,disabled:e,className:"flex items-center gap-2 px-6 py-2 bg-white text-black text-sm font-bold hover:bg-zinc-200 transition-colors disabled:opacity-50 shrink-0",children:[e?(0,v.jsx)(Q.Loader2,{className:"h-4 w-4 animate-spin"}):(0,v.jsx)(wg,{className:"h-4 w-4"}),e?"Exporting…":"Export & Download"]})]}),g&&(0,v.jsx)("p",{className:"text-red-400 text-xs",children:g})]})]}):(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsxs)("div",{className:"p-8 text-center border border-dashed border-zinc-800 bg-zinc-900/30",children:[(0,v.jsx)(aG,{className:"h-8 w-8 mx-auto text-zinc-700 mb-3"}),(0,v.jsx)("p",{className:"text-zinc-400 text-sm font-bold",children:"Export your configurations"}),(0,v.jsx)("p",{className:"text-zinc-600 text-xs mt-1",children:"Select orchestrations, agents, MCP servers, and tools to export as a portable bundle"}),(0,v.jsxs)("button",{onClick:A,disabled:c,className:"mt-4 flex items-center gap-2 px-5 py-2 bg-white text-black text-sm font-bold hover:bg-zinc-200 transition-colors disabled:opacity-50 mx-auto",children:[c?(0,v.jsx)(Q.Loader2,{className:"h-4 w-4 animate-spin"}):(0,v.jsx)(aG,{className:"h-4 w-4"}),c?"Loading…":"Load Export Data"]})]}),g&&(0,v.jsxs)("div",{className:"flex items-center gap-2 text-red-400 text-xs p-3 border border-red-900/50 bg-red-950/10",children:[(0,v.jsx)(am,{className:"h-4 w-4 flex-shrink-0"})," ",g]})]})}let wn=(0,U.default)("skip-forward",[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]]),wo=(0,U.default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),wp="w-full bg-zinc-900 border border-zinc-800 p-2 text-sm text-white focus:border-white focus:outline-none placeholder:text-zinc-700",wq=new Set(["start_google_auth","search_gmail_messages","get_gmail_message_content","get_gmail_messages_content_batch","get_gmail_attachment_content","send_gmail_message","draft_gmail_message","get_gmail_thread_content","get_gmail_threads_content_batch","list_gmail_labels","manage_gmail_label","list_gmail_filters","manage_gmail_filter","modify_gmail_message_labels","batch_modify_gmail_message_labels","search_drive_files","get_drive_file_content","get_drive_file_download_url","list_drive_items","create_drive_folder","create_drive_file","import_to_google_doc","get_drive_file_permissions","check_drive_file_public_access","update_drive_file","get_drive_shareable_link","manage_drive_access","copy_drive_file","set_drive_file_permissions","list_calendars","get_events","manage_event","manage_out_of_office","manage_focus_time","query_freebusy","create_calendar","search_docs","get_doc_content","list_docs_in_folder","create_doc","modify_doc_text","find_and_replace_doc","insert_doc_elements","insert_doc_image","update_doc_headers_footers","batch_update_doc","inspect_doc_structure","debug_docs_runtime_info","create_table_with_data","debug_table_structure","export_doc_to_pdf","update_paragraph_style","get_doc_as_markdown","insert_doc_tab","delete_doc_tab","update_doc_tab","list_document_comments","manage_document_comment","list_spreadsheets","get_spreadsheet_info","read_sheet_values","modify_sheet_values","format_sheet_range","manage_conditional_formatting","create_spreadsheet","create_sheet","list_sheet_tables","append_table_rows","resize_sheet_dimensions","list_spreadsheet_comments","manage_spreadsheet_comment","create_presentation","get_presentation","batch_update_presentation","get_page","get_page_thumbnail","list_presentation_comments","manage_presentation_comment","create_form","get_form","set_publish_settings","get_form_response","list_form_responses","batch_update_form","list_task_lists","get_task_list","manage_task_list","list_tasks","get_task","manage_task","list_contacts","get_contact","search_contacts","manage_contact","list_contact_groups","get_contact_group","manage_contacts_batch","manage_contact_group"]);function wr({preloadedBundle:a,onReset:b,onImportSuccess:c,onNavigate:d}){let e=(0,w.useRef)(null),[f,g]=(0,w.useState)(!1),[h,i]=(0,w.useState)("upload"),[j,k]=(0,w.useState)(null),[l,m]=(0,w.useState)(null),[n,o]=(0,w.useState)(!1),[p,q]=(0,w.useState)(!1),[r,s]=(0,w.useState)(!1),[t,u]=(0,w.useState)(new Set),[x,y]=(0,w.useState)(new Set),[A,B]=(0,w.useState)(new Set),[C,G]=(0,w.useState)(new Set),[I,J]=(0,w.useState)(new Set),[K,L]=(0,w.useState)(new Set),[M,N]=(0,w.useState)(new Set),[O,P]=(0,w.useState)({}),[R,S]=(0,w.useState)({}),[T,U]=(0,w.useState)({}),[X,Y]=(0,w.useState)({}),[Z,$]=(0,w.useState)(null),_=(0,w.useRef)(null);_.current=j;let aa=(0,w.useRef)(t);aa.current=t;let ab=(0,w.useRef)(x);ab.current=x,(0,w.useEffect)(()=>{if(a)try{if(!a.synapse_export)throw Error("Not a valid Synapse export file.");k(a),m(null);let b=new Set((a.orchestrations||[]).map(a=>a.id)),c=new Set((a.agents||[]).map(a=>a.id)),d=new Set((a.mcp_servers||[]).map(a=>a.name)),e=new Set((a.custom_tools||[]).map(a=>a.name));u(b),y(c),B(d),G(e);let f={};for(let b of a.mcp_servers||[])b.env&&Object.keys(b.env).length>0&&(f[b.name]=Object.fromEntries(Object.keys(b.env).map(a=>[a,""])));P(f);let g={};for(let b of a.custom_tools||[])b.headers&&Object.keys(b.headers).length>0&&(g[b.name]=Object.fromEntries(Object.keys(b.headers).map(a=>[a,""])));S(g),ac(b,c,a),ad(),i("preview")}catch(a){m(a.message)}},[a]);let ac=(0,w.useCallback)((a,b,c)=>{let d=new Set;for(let b of a){let a=c.orchestrations?.find(a=>a.id===b);a&&wi(a).forEach(a=>d.add(a))}let e=new Set([...b,...d]),f=new Set,g=new Set;for(let a of e){let b=c.agents?.find(b=>b.id===a);b&&(wj(b,c.mcp_servers||[]).forEach(a=>f.add(a)),wk(b,c.custom_tools||[]).forEach(a=>g.add(a)))}J(d),L(f),N(g),y(a=>new Set([...a,...d])),B(a=>new Set([...a,...f])),G(a=>new Set([...a,...g]))},[]),ad=async()=>{try{let a=await fetch("/api/config");a.ok&&$(await a.json())}catch{}},af=a=>{let b=new FileReader;b.onload=a=>{try{let b=JSON.parse(a.target?.result);if(!b.synapse_export)throw Error("Not a valid Synapse export file.");k(b),m(null);let c=new Set((b.orchestrations||[]).map(a=>a.id)),d=new Set((b.agents||[]).map(a=>a.id)),e=new Set((b.mcp_servers||[]).map(a=>a.name)),f=new Set((b.custom_tools||[]).map(a=>a.name));u(c),y(d),B(e),G(f);let g={};for(let a of b.mcp_servers||[])a.env&&Object.keys(a.env).length>0&&(g[a.name]=Object.fromEntries(Object.keys(a.env).map(a=>[a,""])));P(g);let h={};for(let a of b.custom_tools||[])a.headers&&Object.keys(a.headers).length>0&&(h[a.name]=Object.fromEntries(Object.keys(a.headers).map(a=>[a,""])));S(h),ac(c,d,b),ad(),i("preview")}catch(a){m(a.message)}},b.readAsText(a)},ag=(0,w.useCallback)(a=>{a.preventDefault(),g(!1);let b=a.dataTransfer.files[0];b&&b.name.endsWith(".json")?af(b):m("Please drop a .json file.")},[]),ah=()=>{i("upload"),k(null),m(null),Y({}),u(new Set),y(new Set),B(new Set),G(new Set),J(new Set),L(new Set),N(new Set),P({}),S({}),U({}),q(!1),s(!1),$(null),b?.()},ai=j&&([...A].some(a=>{let b=j.mcp_servers.find(b=>b.name===a);return b?.env&&Object.keys(b.env).length>0||!!b?.token})||[...C].some(a=>{let b=j.custom_tools.find(b=>b.name===a);return b?.headers&&Object.keys(b.headers).length>0})),aj=async()=>{if(j){o(!0);try{let a=p?{...j,agents:(j.agents||[]).map(a=>({...a,model:null,provider:null})),orchestrations:(j.orchestrations||[]).map(a=>({...a,steps:(a.steps||[]).map(a=>({...a,model:null}))}))}:j,b=await fetch("/api/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({bundle:a,mcp_secrets:O,tool_secrets:R,mcp_tokens:T,selected_orchestration_ids:[...t],selected_agent_ids:[...x],selected_mcp_server_names:[...A],selected_custom_tool_names:[...C]})}),d=await b.json();if(!b.ok)throw Error(d.detail||"Import failed");Y(d.results||{}),i("results"),c?.()}catch(a){m(a.message)}finally{o(!1)}}};if("upload"===h)return(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsxs)("div",{onDragOver:a=>{a.preventDefault(),g(!0)},onDragLeave:()=>g(!1),onDrop:ag,onClick:()=>e.current?.click(),className:`flex flex-col items-center justify-center border border-dashed py-14 px-8 cursor-pointer transition-colors ${f?"border-white bg-zinc-800":"border-zinc-700 bg-zinc-900/30 hover:border-zinc-500 hover:bg-zinc-900/60"}`,children:[(0,v.jsx)(wh,{className:"h-8 w-8 text-zinc-600 mb-3"}),(0,v.jsx)("p",{className:"text-zinc-300 text-sm font-bold",children:"Drop your export file here"}),(0,v.jsx)("p",{className:"text-zinc-600 text-xs mt-1",children:"or click to browse · JSON files only"}),(0,v.jsx)("input",{ref:e,type:"file",accept:".json",className:"sr-only",onChange:a=>{let b=a.target.files?.[0];b&&af(b),a.target.value=""}})]}),l&&(0,v.jsxs)("div",{className:"flex items-center gap-2 text-red-400 text-xs p-3 border border-red-900/50 bg-red-950/10",children:[(0,v.jsx)(am,{className:"h-4 w-4 flex-shrink-0"})," ",l]})]});if("preview"===h&&j){let a=t.size+x.size+A.size+C.size,b=function(a){let b=new Map,c=(a,c)=>{a&&"default"!==a.trim().toLowerCase()&&(b.has(a)||b.set(a,new Set),b.get(a).add(c))};for(let b of a.orchestrations||[])for(let a of b.steps||[])c(a.model,`${b.name} › ${a.name}`);for(let b of a.agents||[])c(b.model,`Agent: ${b.name}`);let d=[];for(let[a,c]of b.entries())d.push({model:a,usedIn:Array.from(c)});return d}(j),c=b.length>0,e=(j.agents||[]).filter(a=>x.has(a.id)&&(a.tools||[]).some(a=>wq.has(a))).map(a=>a.name);return(0,v.jsxs)("div",{className:"space-y-5",children:[(0,v.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 border border-zinc-800 bg-zinc-900",children:[(0,v.jsx)(aG,{className:"h-4 w-4 text-zinc-400 flex-shrink-0"}),(0,v.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,v.jsx)("p",{className:"text-sm font-bold text-zinc-200",children:"Bundle loaded"}),(0,v.jsxs)("p",{className:"text-[10px] text-zinc-600 font-mono",children:["v",j.version||"1.0"," · ",j.exported_at?new Date(j.exported_at).toLocaleString():"unknown date"]})]}),(0,v.jsx)("button",{onClick:ah,className:"text-xs text-zinc-500 hover:text-zinc-300 transition-colors underline underline-offset-2",children:"Change file"})]}),e.length>0&&Z?.is_connected===!1&&(0,v.jsxs)("div",{className:"flex items-start gap-3 p-4 border border-orange-900/50 bg-orange-950/10",children:[(0,v.jsx)(aA,{className:"h-4 w-4 text-orange-500 flex-shrink-0 mt-0.5"}),(0,v.jsxs)("div",{className:"space-y-1.5",children:[(0,v.jsx)("p",{className:"text-orange-400 text-xs font-bold uppercase tracking-wider",children:"Google Workspace Not Connected"}),(0,v.jsxs)("p",{className:"text-orange-600 text-xs",children:["The following agent",1!==e.length?"s":""," use Google Workspace tools (Gmail, Drive, Calendar, etc.) but Google is not connected:"]}),(0,v.jsx)("ul",{className:"space-y-0.5 pl-1",children:e.map(a=>(0,v.jsxs)("li",{className:"text-orange-400 text-xs font-mono",children:["· ",a]},a))}),(0,v.jsxs)("p",{className:"text-orange-600 text-xs pt-0.5",children:["Connect your Google account in"," ",(0,v.jsx)("button",{onClick:()=>d?.("workspace"),className:"text-orange-400 font-bold underline underline-offset-2 hover:text-orange-300 transition-colors",children:"Integrations"}),", then come back and try importing again."]})]})]}),j.has_python_tools&&(0,v.jsxs)("div",{className:"flex items-start gap-3 p-4 border border-yellow-900/50 bg-yellow-950/10",children:[(0,v.jsx)(aA,{className:"h-4 w-4 text-yellow-500 flex-shrink-0 mt-0.5"}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-yellow-400 text-xs font-bold uppercase tracking-wider",children:"Python Tools Included"}),(0,v.jsx)("p",{className:"text-yellow-600 text-xs mt-1",children:"Review all Python tool code carefully for hardcoded secrets before importing."})]})]}),c?(0,v.jsxs)("div",{className:"border border-blue-900/40 bg-blue-950/10",children:[(0,v.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3",children:[(0,v.jsx)(z.Cpu,{className:"h-3.5 w-3.5 text-blue-400 flex-shrink-0"}),(0,v.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,v.jsx)("p",{className:"text-blue-400 text-xs font-bold uppercase tracking-wider",children:"Models Used in This Bundle"}),(0,v.jsxs)("p",{className:"text-blue-700 text-xs mt-0.5",children:[b.length," model",1!==b.length?"s":"","found across agents & orchestration steps."]})]}),(0,v.jsx)("button",{onClick:()=>s(a=>!a),className:"flex items-center gap-1 text-[10px] text-blue-600 hover:text-blue-400 transition-colors",children:r?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(aE,{className:"h-3 w-3"}),"Hide"]}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ae.ChevronDown,{className:"h-3 w-3"}),"Show"]})})]}),r&&(0,v.jsx)("div",{className:"border-t border-blue-900/30 divide-y divide-blue-900/20",children:b.map(a=>(0,v.jsxs)("div",{className:"px-4 py-2.5 flex items-start gap-3",children:[(0,v.jsx)("span",{className:"font-mono text-xs text-blue-300 font-bold min-w-0 break-all pt-px",children:a.model}),(0,v.jsx)("div",{className:"flex-1 min-w-0",children:a.usedIn.map(a=>(0,v.jsx)("p",{className:"text-[10px] text-blue-700 truncate",children:a},a))})]},a.model))}),(0,v.jsxs)("div",{className:"border-t border-blue-900/30 px-4 py-3 flex items-center justify-between gap-4",children:[(0,v.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,v.jsx)(wo,{className:"h-3.5 w-3.5 text-blue-500 flex-shrink-0"}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-xs font-bold text-blue-300",children:"Use default model for everything"}),(0,v.jsx)("p",{className:"text-[10px] text-blue-700 mt-0.5",children:"Strips all model & provider overrides from agents and orchestration steps — they will use your global default model instead."})]})]}),(0,v.jsx)("button",{onClick:()=>q(a=>!a),className:`relative flex-shrink-0 w-10 h-5 rounded-full transition-colors duration-200 focus:outline-none ${p?"bg-blue-500":"bg-zinc-700"}`,children:(0,v.jsx)("span",{className:`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow transition-transform duration-200 ${p?"translate-x-5":"translate-x-0"}`})})]})]}):(0,v.jsxs)("div",{className:"flex items-start gap-3 p-3.5 border border-zinc-800 bg-zinc-900/40",children:[(0,v.jsx)(z.Cpu,{className:"h-3.5 w-3.5 text-zinc-500 flex-shrink-0 mt-0.5"}),(0,v.jsx)("p",{className:"text-zinc-500 text-xs leading-relaxed",children:"No explicit model overrides found — agents & orchestration steps will use your global default model."})]}),(0,v.jsxs)("div",{className:"border border-zinc-800 divide-y divide-zinc-800",children:[(0,v.jsx)(wl,{title:"Orchestrations",icon:H.Workflow,items:j.orchestrations||[],selected:t,locked:new Set,getId:a=>a.id,getLabel:a=>a.name,getDesc:a=>a.description,onToggle:(a,b)=>{let c=new Set(aa.current);b?c.add(a):c.delete(a),u(c),_.current&&ac(c,ab.current,_.current)}}),(0,v.jsx)(wl,{title:"Agents",icon:D.Bot,items:j.agents||[],selected:x,locked:I,getId:a=>a.id,getLabel:a=>a.name,getDesc:a=>a.description,onToggle:(a,b)=>{if(I.has(a))return;let c=new Set(ab.current);b?c.add(a):c.delete(a),y(c),_.current&&ac(aa.current,c,_.current)}}),(0,v.jsx)(wl,{title:"MCP Servers",icon:F.Server,items:j.mcp_servers||[],selected:A,locked:K,getId:a=>a.name,getLabel:a=>a.label||a.name,onToggle:(a,b)=>{K.has(a)||B(c=>{let d=new Set(c);return b?d.add(a):d.delete(a),d})}}),(0,v.jsx)(wl,{title:"Custom Tools",icon:E.Wrench,items:j.custom_tools||[],selected:C,locked:M,getId:a=>a.name,getLabel:a=>a.generalName||a.name,getDesc:a=>a.description,onToggle:(a,b)=>{M.has(a)||G(c=>{let d=new Set(c);return b?d.add(a):d.delete(a),d})}})]}),p&&c&&(0,v.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-blue-800/50 bg-blue-950/20",children:[(0,v.jsx)(wo,{className:"h-3.5 w-3.5 text-blue-400 flex-shrink-0"}),(0,v.jsxs)("p",{className:"text-blue-400 text-xs",children:[(0,v.jsx)("span",{className:"font-bold",children:"Default model active"})," — ",b.length," model override",1!==b.length?"s":""," will be stripped on import."]})]}),(0,v.jsxs)("div",{className:"flex items-center justify-between gap-4 pt-2",children:[(0,v.jsx)("button",{onClick:ah,className:"px-4 py-2 text-sm font-bold border border-zinc-700 text-zinc-400 hover:border-zinc-500 hover:text-white transition-colors",children:"Cancel"}),(0,v.jsx)("button",{disabled:0===a,onClick:()=>ai?i("secrets"):aj(),className:"flex items-center gap-2 px-6 py-2 bg-white text-black text-sm font-bold hover:bg-zinc-200 transition-colors disabled:opacity-40",children:ai?"Configure Secrets →":(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(wh,{className:"h-4 w-4"})," Import Now"]})})]}),l&&(0,v.jsx)("p",{className:"text-red-400 text-xs",children:l})]})}if("secrets"===h&&j){let a=j.mcp_servers.filter(a=>A.has(a.name)&&a.env&&Object.keys(a.env).length>0),b=j.mcp_servers.filter(a=>A.has(a.name)&&!!a.token),c=j.custom_tools.filter(a=>C.has(a.name)&&"python"!==a.tool_type&&a.headers&&Object.keys(a.headers).length>0);return(0,v.jsxs)("div",{className:"space-y-6",children:[(0,v.jsxs)("div",{className:"flex items-start gap-3 p-4 border border-blue-900/50 bg-blue-950/10",children:[(0,v.jsx)(V,{className:"h-4 w-4 text-blue-400 flex-shrink-0 mt-0.5"}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-blue-400 text-xs font-bold uppercase tracking-wider",children:"Secret Values Required"}),(0,v.jsx)("p",{className:"text-blue-600 text-xs mt-1",children:"MCP server env vars and custom tool headers were redacted during export. Enter the actual values before importing."})]})]}),b.length>0&&(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsxs)("h4",{className:"text-[10px] uppercase font-bold tracking-wider text-zinc-500 flex items-center gap-2",children:[(0,v.jsx)(F.Server,{className:"h-3 w-3"})," Remote MCP Server Tokens"]}),b.map(a=>(0,v.jsxs)("div",{className:"border border-zinc-800",children:[(0,v.jsxs)("div",{className:"px-4 py-2.5 bg-zinc-900 flex items-center gap-2",children:[(0,v.jsx)("span",{className:"text-sm font-bold text-zinc-200",children:a.label||a.name}),(0,v.jsx)("span",{className:"text-[10px] text-zinc-600 font-mono",children:a.url})]}),(0,v.jsx)("div",{className:"p-4",children:(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-600 font-mono w-36 flex-shrink-0 truncate",children:"Bearer Token"}),(0,v.jsx)("input",{type:"password",value:T[a.name]||"",onChange:b=>U(c=>({...c,[a.name]:b.target.value})),placeholder:"Paste your token here",className:`${wp} flex-1 font-mono`})]})})]},a.name))]}),a.length>0&&(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsxs)("h4",{className:"text-[10px] uppercase font-bold tracking-wider text-zinc-500 flex items-center gap-2",children:[(0,v.jsx)(F.Server,{className:"h-3 w-3"})," MCP Server Environment Variables"]}),a.map(a=>(0,v.jsxs)("div",{className:"border border-zinc-800",children:[(0,v.jsxs)("div",{className:"px-4 py-2.5 bg-zinc-900 flex items-center gap-2",children:[(0,v.jsx)("span",{className:"text-sm font-bold text-zinc-200",children:a.label||a.name}),(0,v.jsx)("span",{className:"text-[10px] text-zinc-600 font-mono",children:a.name})]}),(0,v.jsx)("div",{className:"p-4 space-y-3",children:Object.keys(a.env||{}).map(b=>(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-600 font-mono w-36 flex-shrink-0 truncate",children:b}),(0,v.jsx)("input",{type:"password",value:O[a.name]?.[b]||"",onChange:c=>P(d=>({...d,[a.name]:{...d[a.name]||{},[b]:c.target.value}})),placeholder:`Value for ${b}`,className:`${wp} flex-1 font-mono`})]},b))})]},a.name))]}),c.length>0&&(0,v.jsxs)("div",{className:"space-y-3",children:[(0,v.jsxs)("h4",{className:"text-[10px] uppercase font-bold tracking-wider text-zinc-500 flex items-center gap-2",children:[(0,v.jsx)(E.Wrench,{className:"h-3 w-3"})," Custom Tool Headers"]}),c.map(a=>(0,v.jsxs)("div",{className:"border border-zinc-800",children:[(0,v.jsxs)("div",{className:"px-4 py-2.5 bg-zinc-900 flex items-center gap-2",children:[(0,v.jsx)("span",{className:"text-sm font-bold text-zinc-200",children:a.generalName||a.name}),(0,v.jsx)("span",{className:"text-[10px] text-zinc-600 font-mono",children:a.name})]}),(0,v.jsx)("div",{className:"p-4 space-y-3",children:Object.keys(a.headers||{}).map(b=>(0,v.jsxs)("div",{className:"flex items-center gap-3",children:[(0,v.jsx)("label",{className:"text-[10px] uppercase font-bold text-zinc-600 font-mono w-36 flex-shrink-0 truncate",children:b}),(0,v.jsx)("input",{type:"password",value:R[a.name]?.[b]||"",onChange:c=>S(d=>({...d,[a.name]:{...d[a.name]||{},[b]:c.target.value}})),placeholder:`Value for ${b}`,className:`${wp} flex-1 font-mono`})]},b))})]},a.name))]}),(0,v.jsxs)("div",{className:"flex items-center justify-between gap-4 pt-2",children:[(0,v.jsx)("button",{onClick:()=>i("preview"),className:"px-4 py-2 text-sm font-bold border border-zinc-700 text-zinc-400 hover:border-zinc-500 hover:text-white transition-colors",children:"← Back"}),(0,v.jsxs)("button",{disabled:n,onClick:aj,className:"flex items-center gap-2 px-6 py-2 bg-white text-black text-sm font-bold hover:bg-zinc-200 transition-colors disabled:opacity-50",children:[n?(0,v.jsx)(Q.Loader2,{className:"h-4 w-4 animate-spin"}):(0,v.jsx)(wh,{className:"h-4 w-4"}),n?"Importing…":"Start Import"]})]}),l&&(0,v.jsx)("p",{className:"text-red-400 text-xs",children:l})]})}if("results"===h){let a=Object.values(X).flat(),b=a.filter(a=>"imported"===a.status||"connected"===a.status).length,c=[{key:"orchestrations",label:"Orchestrations",icon:H.Workflow},{key:"agents",label:"Agents",icon:D.Bot},{key:"mcp_servers",label:"MCP Servers",icon:F.Server},{key:"custom_tools",label:"Custom Tools",icon:E.Wrench}];return(0,v.jsxs)("div",{className:"space-y-5",children:[(0,v.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 border border-green-900/50 bg-green-950/10",children:[(0,v.jsx)(W,{className:"h-4 w-4 text-green-400 flex-shrink-0"}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-green-400 text-xs font-bold uppercase tracking-wider",children:"Import Complete"}),(0,v.jsxs)("p",{className:"text-green-700 text-xs mt-0.5",children:[b," item",1!==b?"s":""," imported.",a.some(a=>"skipped_existing"===a.status)&&" Some MCP servers were skipped (already exist).",p&&" · All model overrides were reset to default."]})]})]}),(0,v.jsx)("div",{className:"border border-zinc-800 divide-y divide-zinc-800",children:c.map(({key:a,label:b,icon:c})=>{let d=X[a]||[];return d.length?(0,v.jsxs)("div",{children:[(0,v.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2.5 bg-zinc-900",children:[(0,v.jsx)(c,{className:"h-3.5 w-3.5 text-zinc-500"}),(0,v.jsx)("span",{className:"text-[10px] uppercase font-bold tracking-wider text-zinc-500",children:b})]}),d.map((a,b)=>{let c=a.status,d="imported"===c||"connected"===c?W:"skipped_existing"===c?wn:"disconnected"===c?aA:"oauth_pending"===c?V:am,e="imported"===c||"connected"===c?"text-green-400":"skipped_existing"===c||"disconnected"===c?"text-yellow-400":"oauth_pending"===c?"text-blue-400":"text-red-400",f="connected"===c?"Connected":"imported"===c?"Imported":"skipped_existing"===c?"Skipped — already exists":"disconnected"===c?"Saved — needs Retry":"oauth_pending"===c?"Needs authorization":"Error";return(0,v.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2.5 border-t border-zinc-800/60",children:[(0,v.jsx)(d,{className:`h-4 w-4 ${e} flex-shrink-0`}),(0,v.jsx)("span",{className:"flex-1 text-sm text-zinc-200 font-bold",children:a.name||a.label}),"oauth_pending"===c&&a.auth_url&&(0,v.jsx)("a",{href:a.auth_url,target:"_blank",rel:"noreferrer",className:"text-xs font-bold text-blue-400 border border-blue-700 px-2 py-0.5 hover:bg-blue-900/30 transition-colors mr-2",children:"Authorize ↗"}),(0,v.jsx)("span",{className:`text-xs font-mono ${e}`,children:f})]},b)})]},a):null})}),X.mcp_servers?.some(a=>"disconnected"===a.status)&&(0,v.jsxs)("div",{className:"flex items-start gap-3 p-4 border border-zinc-800 bg-zinc-900/40",children:[(0,v.jsx)(aA,{className:"h-4 w-4 text-yellow-500 flex-shrink-0 mt-0.5"}),(0,v.jsxs)("p",{className:"text-zinc-500 text-xs leading-relaxed",children:["Some MCP servers could not connect automatically. Go to the"," ",(0,v.jsx)("span",{className:"text-zinc-300 font-bold",children:"MCP Servers"})," tab and click"," ",(0,v.jsx)("span",{className:"text-zinc-300 font-bold",children:"Retry"})," to connect them."]})]}),X.mcp_servers?.some(a=>"oauth_pending"===a.status)&&(0,v.jsxs)("div",{className:"flex items-start gap-3 p-4 border border-blue-900/40 bg-blue-950/10",children:[(0,v.jsx)(V,{className:"h-4 w-4 text-blue-400 flex-shrink-0 mt-0.5"}),(0,v.jsxs)("p",{className:"text-zinc-400 text-xs leading-relaxed",children:["Some servers require OAuth authorization. Click the"," ",(0,v.jsx)("span",{className:"text-blue-400 font-bold",children:"Authorize ↗"})," button next to each server above. Once you complete authorization in the browser, the server will connect automatically."]})]}),(0,v.jsx)("div",{className:"flex justify-end",children:(0,v.jsxs)("button",{onClick:ah,className:"flex items-center gap-2 px-4 py-2 text-sm font-bold border border-zinc-700 text-zinc-400 hover:border-zinc-500 hover:text-white transition-colors",children:[(0,v.jsx)(wh,{className:"h-4 w-4"})," Import Another File"]})})]})}return null}let ws=(0,U.default)("package-open",[["path",{d:"M12 22v-9",key:"x3hkom"}],["path",{d:"M15.17 2.21a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.655 1.655 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z",key:"2ntwy6"}],["path",{d:"M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13",key:"1pmm1c"}],["path",{d:"M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.636 1.636 0 0 0 1.63 0z",key:"12ttoo"}]]),wt={agents:"text-violet-400 bg-violet-950/60 border-violet-800/50",orchestrations:"text-emerald-400 bg-emerald-950/60 border-emerald-800/50",mcp_servers:"text-amber-400 bg-amber-950/60 border-amber-800/50",custom_tools:"text-sky-400 bg-sky-950/60 border-sky-800/50"},wu={agents:"Agents",orchestrations:"Orchestrations",mcp_servers:"MCP Servers",custom_tools:"Custom Tools"};function wv({icon:a,count:b,label:c,color:d}){return 0===b?null:(0,v.jsxs)("div",{className:`flex items-center gap-1 text-[11px] font-mono ${d}`,children:[(0,v.jsx)(a,{className:"h-3 w-3"}),(0,v.jsxs)("span",{children:[b," ",c,1!==b?"s":""]})]})}function ww({onLoadBundle:a}){let[b,c]=(0,w.useState)([]),[d,e]=(0,w.useState)(!0),[f,g]=(0,w.useState)(null),[h,i]=(0,w.useState)(null);(0,w.useEffect)(()=>{fetch("/api/examples").then(a=>{if(!a.ok)throw Error("Failed to fetch examples");return a.json()}).then(a=>{c(a),e(!1)}).catch(a=>{g(a.message),e(!1)})},[]);let j=async b=>{i(b.id);try{let c=await fetch(`/api/examples/${b.id}`);if(!c.ok)throw Error("Failed to load example pack");let d=await c.json();a(d)}catch(a){g(a.message)}finally{i(null)}};return d?(0,v.jsxs)("div",{className:"flex items-center justify-center py-20",children:[(0,v.jsx)(Q.Loader2,{className:"h-6 w-6 text-zinc-500 animate-spin"}),(0,v.jsx)("span",{className:"ml-3 text-sm text-zinc-500",children:"Loading example packs…"})]}):f?(0,v.jsxs)("div",{className:"flex items-start gap-3 p-4 border border-red-900/50 bg-red-950/10",children:[(0,v.jsx)(V,{className:"h-4 w-4 text-red-400 flex-shrink-0 mt-0.5"}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-red-400 text-xs font-bold uppercase tracking-wider",children:"Failed to load examples"}),(0,v.jsx)("p",{className:"text-red-600 text-xs mt-1",children:f})]})]}):(0,v.jsxs)("div",{className:"space-y-4",children:[(0,v.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 border border-zinc-800 bg-zinc-900/60",children:[(0,v.jsx)(ah.Sparkles,{className:"h-4 w-4 text-violet-400 flex-shrink-0 mt-0.5"}),(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:"text-sm font-bold text-zinc-200",children:"Example Packs"}),(0,v.jsx)("p",{className:"text-[11px] text-zinc-500 mt-0.5 leading-relaxed",children:"Curated collections of agents, orchestrations, and MCP servers. Select a pack to preview what will be imported before committing."})]})]}),(0,v.jsx)("div",{className:"grid gap-3",children:b.map(a=>{let b=h===a.id;return(0,v.jsx)("div",{className:"group flex flex-col border border-zinc-800 bg-zinc-900/30 hover:bg-zinc-900/70 hover:border-zinc-700 transition-all duration-200",children:(0,v.jsxs)("div",{className:"flex items-start justify-between gap-4 p-4",children:[(0,v.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,v.jsx)("div",{className:"flex flex-wrap gap-1.5 mb-2",children:a.tags.map(a=>(0,v.jsx)("span",{className:`text-[9px] font-mono uppercase tracking-widest px-1.5 py-0.5 border ${wt[a]||"text-zinc-400 bg-zinc-900 border-zinc-700"}`,children:wu[a]||a},a))}),(0,v.jsx)("p",{className:"text-sm font-bold text-zinc-100 mb-1",children:a.name}),(0,v.jsx)("p",{className:"text-[12px] text-zinc-400 leading-relaxed",children:a.description}),(0,v.jsxs)("div",{className:"flex flex-wrap gap-3 mt-2.5",children:[(0,v.jsx)(wv,{icon:D.Bot,count:a.agent_count,label:"Agent",color:"text-violet-400"}),(0,v.jsx)(wv,{icon:H.Workflow,count:a.orchestration_count,label:"Orchestration",color:"text-emerald-400"}),(0,v.jsx)(wv,{icon:F.Server,count:a.mcp_count,label:"MCP Server",color:"text-amber-400"}),(0,v.jsx)(wv,{icon:E.Wrench,count:a.tool_count,label:"Tool",color:"text-sky-400"})]})]}),(0,v.jsx)("button",{onClick:()=>j(a),disabled:!!h,className:"flex items-center gap-1.5 shrink-0 px-3 py-2 bg-zinc-800 border border-zinc-700 text-zinc-300 hover:bg-white hover:text-black hover:border-white text-xs font-bold transition-all duration-150 disabled:opacity-50 group-hover:border-zinc-500",children:b?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(Q.Loader2,{className:"h-3.5 w-3.5 animate-spin"}),"Loading…"]}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(wg,{className:"h-3.5 w-3.5"}),"Preview & Import",(0,v.jsx)(af.ChevronRight,{className:"h-3 w-3 ml-0.5"})]})})]})},a.id)})}),0===b.length&&(0,v.jsxs)("div",{className:"flex flex-col items-center justify-center py-16",children:[(0,v.jsx)(ws,{className:"h-10 w-10 text-zinc-700 mb-3"}),(0,v.jsx)("p",{className:"text-sm text-zinc-500",children:"No example packs available."})]})]})}function wx({defaultView:a,onImportSuccess:b,onNavigate:c}){let[d,e]=(0,w.useState)(a??"export"),[f,g]=(0,w.useState)(null);(0,w.useEffect)(()=>{a&&e(a)},[a]);let h=(0,w.useCallback)(a=>{g(a),e("import")},[]),i=(0,w.useCallback)(()=>{g(null)},[]);return(0,v.jsxs)("div",{className:"space-y-8",children:[(0,v.jsxs)("div",{className:"flex items-center gap-1 bg-zinc-900 border border-zinc-800 p-1 w-fit",children:[(0,v.jsxs)("button",{onClick:()=>e("export"),className:`flex items-center gap-1.5 px-5 py-2 text-xs font-bold transition-colors ${"export"===d?"bg-white text-black":"text-zinc-500 hover:text-white"}`,children:[(0,v.jsx)(wg,{className:"h-3.5 w-3.5"})," Export"]}),(0,v.jsxs)("button",{onClick:()=>{e("import"),g(null)},className:`flex items-center gap-1.5 px-5 py-2 text-xs font-bold transition-colors ${"import"===d?"bg-white text-black":"text-zinc-500 hover:text-white"}`,children:[(0,v.jsx)(wh,{className:"h-3.5 w-3.5"})," Import"]}),(0,v.jsxs)("button",{onClick:()=>e("examples"),className:`flex items-center gap-1.5 px-5 py-2 text-xs font-bold transition-colors ${"examples"===d?"bg-white text-black":"text-zinc-500 hover:text-white"}`,children:[(0,v.jsx)(ah.Sparkles,{className:"h-3.5 w-3.5"})," Examples"]})]}),"export"===d&&(0,v.jsx)(wm,{}),"examples"===d&&(0,v.jsx)(ww,{onLoadBundle:h}),"import"===d&&(0,v.jsx)(wr,{preloadedBundle:f,onReset:i,onImportSuccess:b,onNavigate:c})]})}let wy=(0,U.default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),wz=(0,U.default)("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"}]]),wA=(0,U.default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["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"}]]),wB=(0,U.default)("file-plus",[["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:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);function wC({node:a,selectedPath:b,onSelect:c,onDelete:d,onCreateInFolder:e,depth:f=0}){let[g,h]=(0,w.useState)(0===f),i=b===a.path,j="folder"===a.type;return(0,v.jsxs)("div",{children:[(0,v.jsxs)("div",{className:`group flex items-center gap-1.5 px-2 py-1 cursor-pointer transition-colors rounded text-xs
|
|
45
|
+
${i?"bg-zinc-800 text-white":"text-zinc-400 hover:text-zinc-100 hover:bg-zinc-800/50"}`,style:{paddingLeft:`${8+16*f}px`},onClick:()=>{j?h(a=>!a):c(a)},children:[j?(0,v.jsx)("span",{className:"text-zinc-500 flex-shrink-0",children:g?(0,v.jsx)(ae.ChevronDown,{className:"h-3 w-3"}):(0,v.jsx)(af.ChevronRight,{className:"h-3 w-3"})}):(0,v.jsx)("span",{className:"w-3 flex-shrink-0"}),j?g?(0,v.jsx)(wy,{className:"h-3.5 w-3.5 text-amber-400 flex-shrink-0"}):(0,v.jsx)(wz,{className:"h-3.5 w-3.5 text-amber-400 flex-shrink-0"}):".json"===a.ext?(0,v.jsx)(aq,{className:"h-3.5 w-3.5 text-amber-300 flex-shrink-0"}):".txt"===a.ext?(0,v.jsx)(ar,{className:"h-3.5 w-3.5 text-zinc-400 flex-shrink-0"}):(0,v.jsx)(ap,{className:"h-3.5 w-3.5 text-blue-400 flex-shrink-0"}),(0,v.jsx)("span",{className:"flex-1 truncate font-mono",children:a.name}),j&&(0,v.jsx)("button",{onClick:b=>{b.stopPropagation(),e(a.path)},className:"opacity-0 group-hover:opacity-100 text-zinc-500 hover:text-emerald-400 transition-all p-0.5 flex-shrink-0",title:`New file in ${a.name}`,children:(0,v.jsx)(wB,{className:"h-3 w-3"})}),(0,v.jsx)("button",{onClick:b=>{b.stopPropagation(),d(a)},className:"opacity-0 group-hover:opacity-100 text-zinc-600 hover:text-red-500 transition-opacity p-0.5 flex-shrink-0",title:`Delete ${a.name}`,children:(0,v.jsx)(T.Trash2,{className:"h-3 w-3"})})]}),j&&g&&a.children&&a.children.length>0&&(0,v.jsx)("div",{children:a.children.map(a=>(0,v.jsx)(wC,{node:a,selectedPath:b,onSelect:c,onDelete:d,onCreateInFolder:e,depth:f+1},a.path))}),j&&g&&(!a.children||0===a.children.length)&&(0,v.jsx)("div",{className:"text-[10px] text-zinc-600 italic",style:{paddingLeft:`${8+(f+2)*16}px`,paddingTop:"4px",paddingBottom:"4px"},children:"Empty folder"})]})}function wD({type:a,parentPath:b,onClose:c,onCreate:d}){let[e,f]=(0,w.useState)(""),[g,h]=(0,w.useState)("md");return(0,v.jsx)("div",{className:"fixed inset-0 z-[200] flex items-center justify-center bg-black/70 backdrop-blur-sm",children:(0,v.jsxs)("div",{className:"bg-zinc-950 border border-zinc-800 w-80 shadow-2xl",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-zinc-800",children:[(0,v.jsx)("h3",{className:"text-sm font-bold text-white",children:"file"===a?"New File":"New Folder"}),(0,v.jsx)("button",{onClick:c,className:"text-zinc-500 hover:text-white",children:(0,v.jsx)(az.X,{className:"h-4 w-4"})})]}),(0,v.jsxs)("form",{onSubmit:b=>{b.preventDefault(),e.trim()&&("file"===a?d(e.trim().endsWith(`.${g}`)?e.trim():`${e.trim()}.${g}`,`.${g}`):d(e.trim()))},className:"p-4 space-y-4",children:[b&&(0,v.jsxs)("p",{className:"text-[10px] text-zinc-500 font-mono",children:["Location: ",(0,v.jsxs)("span",{className:"text-zinc-400",children:["/",b]})]}),"file"===a&&(0,v.jsxs)("div",{className:"flex gap-2",children:[(0,v.jsxs)("button",{type:"button",onClick:()=>h("md"),className:`flex-1 flex items-center justify-center gap-2 py-2.5 text-xs font-bold border transition-colors ${"md"===g?"border-blue-500 bg-blue-950/40 text-blue-400":"border-zinc-700 text-zinc-500 hover:border-zinc-600"}`,children:[(0,v.jsx)(ap,{className:"h-3.5 w-3.5"})," Markdown"]}),(0,v.jsxs)("button",{type:"button",onClick:()=>h("json"),className:`flex-1 flex items-center justify-center gap-2 py-2.5 text-xs font-bold border transition-colors ${"json"===g?"border-amber-500 bg-amber-950/40 text-amber-400":"border-zinc-700 text-zinc-500 hover:border-zinc-600"}`,children:[(0,v.jsx)(aq,{className:"h-3.5 w-3.5"})," JSON"]}),(0,v.jsxs)("button",{type:"button",onClick:()=>h("txt"),className:`flex-1 flex items-center justify-center gap-2 py-2.5 text-xs font-bold border transition-colors ${"txt"===g?"border-zinc-400 bg-zinc-800/60 text-zinc-200":"border-zinc-700 text-zinc-500 hover:border-zinc-600"}`,children:[(0,v.jsx)(ar,{className:"h-3.5 w-3.5"})," Text"]})]}),(0,v.jsxs)("div",{className:"space-y-1",children:[(0,v.jsx)("label",{className:"text-[10px] font-bold text-zinc-500 uppercase",children:"file"===a?"File Name":"Folder Name"}),(0,v.jsx)("input",{autoFocus:!0,type:"text",value:e,onChange:a=>f(a.target.value),placeholder:"file"===a?`my-document.${g}`:"my-folder",className:"w-full bg-zinc-900 border border-zinc-700 px-3 py-2 text-xs text-white font-mono focus:border-white focus:outline-none"}),"file"===a&&(0,v.jsxs)("p",{className:"text-[9px] text-zinc-600",children:["Extension ",(0,v.jsxs)("span",{className:"text-zinc-400",children:[".",g]})," will be appended automatically if not included."]})]}),(0,v.jsxs)("div",{className:"flex gap-2",children:[(0,v.jsx)("button",{type:"button",onClick:c,className:"flex-1 py-2 text-xs text-zinc-500 hover:text-white border border-zinc-700 hover:border-zinc-500 transition-colors",children:"Cancel"}),(0,v.jsx)("button",{type:"submit",disabled:!e.trim(),className:"flex-1 py-2 text-xs font-bold bg-white text-black hover:bg-zinc-200 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:"Create"})]})]})]})})}function wE({node:a,onConfirm:b,onCancel:c}){return(0,v.jsx)("div",{className:"fixed inset-0 z-[200] flex items-center justify-center bg-black/70 backdrop-blur-sm",children:(0,v.jsxs)("div",{className:"bg-zinc-950 border border-zinc-800 w-80 shadow-2xl p-6 space-y-4",children:[(0,v.jsx)("h3",{className:"text-sm font-bold text-white",children:"Confirm Delete"}),(0,v.jsx)("p",{className:"text-xs text-zinc-400",children:"folder"===a.type?(0,v.jsxs)(v.Fragment,{children:["Are you sure you want to delete folder ",(0,v.jsx)("span",{className:"font-mono text-red-400",children:a.name})," and all its contents? This cannot be undone."]}):(0,v.jsxs)(v.Fragment,{children:["Are you sure you want to delete ",(0,v.jsx)("span",{className:"font-mono text-red-400",children:a.name}),"? This cannot be undone."]})}),(0,v.jsxs)("div",{className:"flex gap-2",children:[(0,v.jsx)("button",{onClick:c,className:"flex-1 py-2 text-xs text-zinc-500 hover:text-white border border-zinc-700 hover:border-zinc-500 transition-colors",children:"Cancel"}),(0,v.jsx)("button",{onClick:b,className:"flex-1 py-2 text-xs font-bold bg-red-600 text-white hover:bg-red-500 transition-colors",children:"Delete"})]})]})})}function wF({value:a,onChange:b}){let[c,d]=(0,w.useState)(null);return(0,v.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,v.jsx)("textarea",{value:a,onChange:a=>{let c=a.target.value;b(c);try{JSON.parse(c),d(null)}catch(a){d(a.message)}},spellCheck:!1,className:`flex-1 min-h-0 w-full bg-zinc-950 p-4 text-xs font-mono text-zinc-200 focus:outline-none resize-none leading-relaxed border-0 ${c?"border-b-2 border-red-600/60":""}`,style:{fontFamily:"monospace"}}),c&&(0,v.jsxs)("div",{className:"px-4 py-1.5 text-[10px] text-red-400 font-mono bg-red-950/30 border-t border-red-900/50 flex-shrink-0",children:["⚠ ",c]})]})}function wG({value:a,onChange:b}){let[c,d]=(0,w.useState)(!1);return(0,v.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-zinc-800 flex-shrink-0",children:[(0,v.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,v.jsx)(ap,{className:"h-3.5 w-3.5 text-blue-400"}),(0,v.jsx)("span",{className:"text-[10px] font-bold text-zinc-400 uppercase",children:"Markdown"})]}),(0,v.jsxs)("button",{onClick:()=>d(a=>!a),className:"flex items-center gap-1.5 text-[10px] font-bold text-zinc-500 hover:text-white transition-colors px-2 py-1",children:[c?(0,v.jsx)(aj,{className:"h-3 w-3"}):(0,v.jsx)(ai,{className:"h-3 w-3"}),c?"EDIT":"PREVIEW"]})]}),c?(0,v.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 text-sm text-zinc-300 leading-relaxed modern-scrollbar",children:(0,au.renderTextContent)(a||"*Empty file*")}):(0,v.jsx)("textarea",{value:a,onChange:a=>b(a.target.value),spellCheck:!1,className:"flex-1 min-h-0 w-full bg-zinc-950 p-4 text-xs font-mono text-zinc-200 focus:outline-none resize-none leading-relaxed border-0",style:{fontFamily:"monospace"},placeholder:"# Title Start writing..."})]})}function wH({value:a,onChange:b}){return(0,v.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,v.jsxs)("div",{className:"flex items-center gap-1.5 px-4 py-2 border-b border-zinc-800 flex-shrink-0",children:[(0,v.jsx)(ar,{className:"h-3.5 w-3.5 text-zinc-400"}),(0,v.jsx)("span",{className:"text-[10px] font-bold text-zinc-400 uppercase",children:"Plain Text"})]}),(0,v.jsx)("textarea",{value:a,onChange:a=>b(a.target.value),spellCheck:!1,className:"flex-1 min-h-0 w-full bg-zinc-950 p-4 text-xs font-mono text-zinc-200 focus:outline-none resize-none leading-relaxed border-0",style:{fontFamily:"monospace"},placeholder:"Start typing..."})]})}function wI(){let[a,b]=(0,w.useState)([]),[c,d]=(0,w.useState)(!0),[e,f]=(0,w.useState)(null),[g,h]=(0,w.useState)(""),[i,j]=(0,w.useState)(""),[k,l]=(0,w.useState)(!1),[m,n]=(0,w.useState)(!1),[o,p]=(0,w.useState)("idle"),[q,r]=(0,w.useState)(null),[s,t]=(0,w.useState)(null),[u,x]=(0,w.useState)(""),y=(0,w.useCallback)(async()=>{d(!0);try{let a=await fetch("/api/vault/tree");if(a.ok){let c=await a.json();b(c.tree||[])}}catch(a){console.error("Failed to load vault tree",a)}finally{d(!1)}},[]);(0,w.useEffect)(()=>{y()},[y]),(0,w.useEffect)(()=>{e&&"file"===e.type&&(l(!0),p("idle"),fetch(`/api/vault/file?path=${encodeURIComponent(e.path)}`).then(a=>a.ok?a.json():null).then(a=>{let b=a?.content??"";h(b),j(b)}).catch(()=>{h(""),j("")}).finally(()=>l(!1)))},[e]);let z=async()=>{if(e&&"file"===e.type){n(!0),p("idle");try{(await fetch("/api/vault/file",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e.path,content:g})})).ok?(j(g),p("saved"),setTimeout(()=>p("idle"),2e3)):p("error")}catch{p("error")}finally{n(!1)}}},A=async a=>{if(!q)return;let b="file"===q.type?"/api/vault/file":"/api/vault/folder";try{let c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:u,name:a})});if(c.ok){let a=await c.json();r(null),await y(),"file"===q.type&&f({name:a.name,path:a.path,type:"file",ext:a.ext})}}catch(a){console.error("Failed to create",a)}},B=async()=>{if(s)try{(await fetch("/api/vault/item",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:s.path})})).ok&&((e?.path===s.path||"folder"===s.type&&e?.path.startsWith(s.path+"/"))&&(f(null),h(""),j("")),await y())}catch(a){console.error("Failed to delete",a)}finally{t(null)}},C=g!==i;return(0,v.jsxs)("div",{className:"flex-1 flex min-h-0 overflow-hidden",children:[(0,v.jsxs)("div",{className:"w-64 flex-shrink-0 border-r border-zinc-800 flex flex-col bg-zinc-950",children:[(0,v.jsxs)("div",{className:"flex items-center gap-1 px-3 py-2.5 border-b border-zinc-800",children:[(0,v.jsx)("span",{className:"text-[10px] font-bold text-zinc-500 uppercase flex-1",children:"Vault Files"}),(0,v.jsx)("button",{onClick:()=>{x(""),r({type:"folder",parentPath:""})},title:"New Folder",className:"p-1 text-zinc-500 hover:text-white hover:bg-zinc-800 transition-colors",children:(0,v.jsx)(wA,{className:"h-3.5 w-3.5"})}),(0,v.jsx)("button",{onClick:()=>{x(""),r({type:"file",parentPath:""})},title:"New File",className:"p-1 text-zinc-500 hover:text-white hover:bg-zinc-800 transition-colors",children:(0,v.jsx)(wB,{className:"h-3.5 w-3.5"})}),(0,v.jsx)("button",{onClick:y,title:"Refresh",className:"p-1 text-zinc-500 hover:text-white hover:bg-zinc-800 transition-colors",children:(0,v.jsx)(aB.RefreshCw,{className:"h-3 w-3"})})]}),(0,v.jsx)("div",{className:"flex-1 overflow-y-auto modern-scrollbar py-1",children:c?(0,v.jsxs)("div",{className:"flex items-center gap-2 px-4 py-4 text-zinc-600 text-xs",children:[(0,v.jsx)(Q.Loader2,{className:"h-3.5 w-3.5 animate-spin"})," Loading…"]}):0===a.length?(0,v.jsxs)("div",{className:"px-4 py-6 text-center",children:[(0,v.jsx)("div",{className:"text-zinc-600 text-xs mb-3",children:"Vault is empty"}),(0,v.jsx)("button",{onClick:()=>{x(""),r({type:"file",parentPath:""})},className:"text-[10px] text-zinc-400 hover:text-white underline",children:"Create your first file →"})]}):a.map(a=>(0,v.jsx)(wC,{node:a,selectedPath:e?.path??null,onSelect:a=>{f(a),"folder"===a.type?x(a.path):x(a.path.split("/").slice(0,-1).join("/"))},onDelete:t,onCreateInFolder:a=>{x(a),r({type:"file",parentPath:a})}},a.path))}),(0,v.jsx)("div",{className:"px-3 py-2 border-t border-zinc-800",children:(0,v.jsxs)("p",{className:"text-[9px] text-zinc-600 leading-relaxed",children:["Files here can be referenced in agent prompts using ",(0,v.jsx)("span",{className:"font-mono text-zinc-500",children:"@[path]"})]})})]}),(0,v.jsx)("div",{className:"flex-1 flex flex-col min-h-0 bg-zinc-950",children:e&&"file"===e.type?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2.5 border-b border-zinc-800 flex-shrink-0",children:[".json"===e.ext?(0,v.jsx)(aq,{className:"h-4 w-4 text-amber-400 flex-shrink-0"}):".txt"===e.ext?(0,v.jsx)(ar,{className:"h-4 w-4 text-zinc-400 flex-shrink-0"}):(0,v.jsx)(ap,{className:"h-4 w-4 text-blue-400 flex-shrink-0"}),(0,v.jsx)("span",{className:"text-xs font-mono text-zinc-300 flex-1 truncate",children:e.path}),C&&(0,v.jsx)("span",{className:"text-[10px] text-amber-400",children:"unsaved changes"}),(0,v.jsxs)("button",{onClick:z,disabled:m||!C,className:`flex items-center gap-1.5 px-3 py-1.5 text-xs font-bold transition-colors disabled:opacity-40 disabled:cursor-not-allowed
|
|
46
|
+
${"saved"===o?"bg-emerald-600 text-white":"error"===o?"bg-red-600 text-white":"bg-white text-black hover:bg-zinc-200"}`,children:[m?(0,v.jsx)(Q.Loader2,{className:"h-3 w-3 animate-spin"}):(0,v.jsx)(ad,{className:"h-3 w-3"}),"saved"===o?"SAVED":"error"===o?"ERROR":"SAVE"]})]}),k?(0,v.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,v.jsx)(Q.Loader2,{className:"h-5 w-5 animate-spin text-zinc-600"})}):".json"===e.ext?(0,v.jsx)(wF,{value:g,onChange:h}):".txt"===e.ext?(0,v.jsx)(wH,{value:g,onChange:h}):(0,v.jsx)(wG,{value:g,onChange:h})]}):(0,v.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center gap-6 text-center p-8",children:[(0,v.jsxs)("div",{className:"space-y-2",children:[(0,v.jsx)("div",{className:"h-16 w-16 mx-auto rounded-full bg-zinc-900 border border-zinc-800 flex items-center justify-center",children:(0,v.jsx)(wy,{className:"h-7 w-7 text-zinc-600"})}),(0,v.jsx)("h3",{className:"text-sm font-bold text-zinc-400",children:"Select a file to edit"}),(0,v.jsxs)("p",{className:"text-xs text-zinc-600 max-w-xs",children:["Use the file explorer on the left to browse your vault. Create ",(0,v.jsx)("span",{className:"text-zinc-400",children:".md"}),", ",(0,v.jsx)("span",{className:"text-zinc-400",children:".json"}),", or ",(0,v.jsx)("span",{className:"text-zinc-400",children:".txt"})," files to use as context in agent prompts."]})]}),(0,v.jsxs)("div",{className:"flex gap-3",children:[(0,v.jsxs)("button",{onClick:()=>{x(""),r({type:"folder",parentPath:""})},className:"flex items-center gap-2 px-4 py-2 text-xs font-bold border border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-500 transition-colors",children:[(0,v.jsx)(wA,{className:"h-3.5 w-3.5"})," New Folder"]}),(0,v.jsxs)("button",{onClick:()=>{x(""),r({type:"file",parentPath:""})},className:"flex items-center gap-2 px-4 py-2 text-xs font-bold bg-white text-black hover:bg-zinc-200 transition-colors",children:[(0,v.jsx)(ac.Plus,{className:"h-3.5 w-3.5"})," New File"]})]})]})}),q&&(0,v.jsx)(wD,{type:q.type,parentPath:u,onClose:()=>r(null),onCreate:A}),s&&(0,v.jsx)(wE,{node:s,onConfirm:B,onCancel:()=>t(null)})]})}a.s(["SettingsView",0,({initialTab:a="general",initialSubTab:b})=>{let c=(0,O.useDispatch)(),{agents:d,mcpServers:e,customTools:f,models:g,initialized:h,loading:i}=(0,O.useSelector)(a=>a.settings),[j,k]=(0,w.useState)(a),[l,m]=(0,w.useState)(""),[n,o]=(0,w.useState)(""),[p,q]=(0,w.useState)(""),[r,s]=(0,w.useState)("local"),[t,u]=(0,w.useState)([]),[Q,T]=(0,w.useState)([]),[U,V]=(0,w.useState)({}),[W,X]=(0,w.useState)(!1),[Y,Z]=(0,w.useState)(!1),_=(0,N.useRouter)(),[aa,ac]=(0,w.useState)(!0),[ad,ae]=(0,w.useState)(1e5),[af,ag]=(0,w.useState)(!1),[ah,ai]=(0,w.useState)(5e4),[aj,ak]=(0,w.useState)(!1),[al,am]=(0,w.useState)([]),[an,ao]=(0,w.useState)(""),[ap,aq]=(0,w.useState)(""),[ar,as]=(0,w.useState)(""),[at,au]=(0,w.useState)(""),[av,aw]=(0,w.useState)(""),[az,aA]=(0,w.useState)(""),[aB,aC]=(0,w.useState)(""),[aD,aE]=(0,w.useState)(""),[aF,aG]=(0,w.useState)(""),[aH,aI]=(0,w.useState)(""),[aJ,aK]=(0,w.useState)(""),[aL,aM]=(0,w.useState)(""),[aN,aO]=(0,w.useState)(""),[aP,aQ]=(0,w.useState)(""),[aR,aS]=(0,w.useState)("us-east-1"),[aT,aU]=(0,w.useState)(""),[aV,aW]=(0,w.useState)([]),[aX,aY]=(0,w.useState)(!1),[aZ,a$]=(0,w.useState)(null),[a_,a0]=(0,w.useState)(""),[a1,a2]=(0,w.useState)(""),[a3,a4]=(0,w.useState)(""),[a5,a6]=(0,w.useState)(""),[a7,a8]=(0,w.useState)(""),[a9,ba]=(0,w.useState)(""),[bb,bc]=(0,w.useState)(""),[bd,be]=(0,w.useState)(""),[bf,bg]=(0,w.useState)(""),[bh,bi]=(0,w.useState)(""),[bj,bk]=(0,w.useState)("http://localhost:5678"),[bl,bm]=(0,w.useState)(""),[bn,bo]=(0,w.useState)(null),[bp,bq]=(0,w.useState)(null),[br,bs]=(0,w.useState)(null),[bt,bu]=(0,w.useState)("config"),[bv,bw]=(0,w.useState)([]),[bx,by]=(0,w.useState)(null),bz=(a,b="success")=>{by({show:!0,message:a,type:b}),setTimeout(()=>by(null),4e3)},[bA,bB]=(0,w.useState)([]),[bC,bD]=(0,w.useState)(!1),[bE,bF]=(0,w.useState)(!1),[bG,bH]=(0,w.useState)(!1),[bI,bJ]=(0,w.useState)(null),[bK,bL]=(0,w.useState)(null),[bM,bN]=(0,w.useState)(null),[bO,bP]=(0,w.useState)({name:"",label:"",server_type:"stdio",command:"",args:"",env:[],url:"",token:""}),[bQ,bR]=(0,w.useState)([]),[bS,bT]=(0,w.useState)(!0),[bU,bV]=(0,w.useState)(!1),[bW,bX]=(0,w.useState)(!1),[bY,bZ]=(0,w.useState)(!1),b$=(0,w.useCallback)(a=>{if(a.data?.type==="MCP_OAUTH_COMPLETE")if(a.data.success){let b=a.data.name;c((0,P.updateMcpServerStatus)({name:b,status:"connected"})),bL({show:!0,message:`✓ ${b} connected via OAuth!`,type:"success"}),bN(null),setTimeout(()=>bL(null),5e3)}else bL({show:!0,message:`OAuth failed: ${a.data.error}`,type:"error"}),setTimeout(()=>bL(null),6e3)},[c]);(0,w.useEffect)(()=>(window.addEventListener("message",b$),()=>window.removeEventListener("message",b$)),[b$]);let b_=async()=>{X(!0);try{let a=await fetch("/api/bedrock/models"),b=await a.json(),c=Array.isArray(b.models)?b.models:[];c.length>0&&T(a=>[...(a||[]).filter(a=>!a.startsWith("bedrock.")),...c])}catch{}finally{X(!1)}},b0=async()=>{X(!0);try{let a=await fetch("/api/models"),b=await a.json();u(b.local||[]),T(b.cloud||[]),b.providers&&V(b.providers)}catch{}finally{X(!1)}},b1=async()=>{aY(!0),a$(null);try{let a=await fetch("/api/bedrock/inference-profiles"),b=await a.json(),c=Array.isArray(b.profiles)?b.profiles:[];aW(c),b.error&&a$(b.error)}catch{aW([]),a$("Failed to reach the server.")}finally{aY(!1)}},b2=async()=>{Z(!0);try{if(!(await fetch("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent_name:l,model:n,embedding_model:p,mode:r,openai_key:an,anthropic_key:ap,gemini_key:ar,grok_key:at,deepseek_key:av,openai_compatible_key:aB,openai_compatible_base_url:aD,openai_compatible_models:aF,openai_compatible_embed_models:aH,local_compatible_base_url:aJ,local_compatible_key:aL,local_compatible_models:aN,local_compatible_embed_models:aP,bedrock_api_key:az,bedrock_inference_profile:aT,aws_region:aR,sql_connection_string:a_,n8n_url:bj,n8n_api_key:bl,vault_enabled:aa,vault_threshold:ad,auto_compact_enabled:af,auto_compact_threshold:ah,allow_db_write:aj,embed_code:bY,bash_allowed_dirs:al})})).ok)throw Error("Failed to update settings");"bedrock"===r||az?(await b_(),await b1()):("models"===j||"cloud"===r)&&await b0(),bz("Configuration saved","success")}catch(a){console.error(a),bz("Failed to save settings","error")}finally{Z(!1)}},b3=async()=>{try{if(!(await fetch("/api/personal-details",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({first_name:a1,last_name:a3,email:a5,phone_number:a7,address:{address1:a9,address2:bb,city:bd,state:bf,zipcode:bh}})})).ok)throw Error("Failed to save personal details");bz("Personal details saved","success")}catch{bz("Error saving personal details","error")}},[b4,b5]=(0,w.useState)(null),[b6,b7]=(0,w.useState)(null),[b8,b9]=(0,w.useState)(""),[ca,cb]=(0,w.useState)(10),[cc,cd]=(0,w.useState)("openai"),[ce,cf]=(0,w.useState)("You are a helpful assistant."),[cg,ch]=(0,w.useState)(""),[ci,cj]=(0,w.useState)(null),[ck,cl]=(0,w.useState)([]);(0,w.useEffect)(()=>{if("datalab"===j){cm(),cn();let a=setInterval(()=>{cn(),ci?.status==="generating"&&cm()},2e3);return()=>clearInterval(a)}},[j]);let cm=()=>fetch("/api/synthetic/datasets").then(a=>a.json()).then(cl).catch(()=>{}),cn=()=>fetch("/api/synthetic/status").then(a=>a.json()).then(cj).catch(()=>{}),co=async()=>{if(!b8)return void bz("Please enter a topic","warning");if("openai"===cc&&!an)return void bz("OpenAI Key required","warning");if("gemini"===cc&&!ar)return void bz("Gemini Key required","warning");try{let a=await fetch("/api/synthetic/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({topic:b8,count:ca,provider:cc,api_key:"openai"===cc?an:ar,system_prompt:ce,edge_cases:cg})});if(a.ok)bz("Generation started!","success"),cn();else{let b=await a.json();bz("Error: "+b.detail,"error")}}catch(a){bz("Failed to start generation","error")}},cp=async()=>{if(b6)try{"delete_mcp"===b6.type?(await fetch(`/api/mcp/servers/${b6.payload}`,{method:"DELETE"})).ok&&c((0,P.removeMcpServer)(b6.payload)):"delete_tool"===b6.type?(await fetch(`/api/tools/custom/${b6.payload}`,{method:"DELETE"}),c((0,P.removeCustomTool)(b6.payload))):"delete_agent"===b6.type&&(await fetch(`/api/agents/${b6.payload}`,{method:"DELETE"}),c((0,P.removeAgent)(b6.payload)),bn===b6.payload&&(bo(null),bq(null)))}catch(a){bz("Error running confirmation action","error")}finally{b7(null)}};(0,w.useEffect)(()=>{let a=a=>{"Escape"===a.key&&_.push("/")};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[_]),(0,w.useEffect)(()=>{h?(u(g.local||[]),T(g.cloud||[]),V(g.providers||{})):c((0,P.fetchAllSettingsData)()),fetch("/api/settings").then(a=>a.json()).then(a=>{m(a.agent_name||"Antigravity Agent"),o(a.model||"ollama.mistral"),q(a.embedding_model||""),s(a.mode||"local"),ao(a.openai_key||""),aq(a.anthropic_key||""),as(a.gemini_key||""),au(a.grok_key||""),aw(a.deepseek_key||""),aC(a.openai_compatible_key||""),aE(a.openai_compatible_base_url||""),aG(a.openai_compatible_models||""),aI(a.openai_compatible_embed_models||""),aK(a.local_compatible_base_url||""),aM(a.local_compatible_key||""),aO(a.local_compatible_models||""),aQ(a.local_compatible_embed_models||""),aA(a.bedrock_api_key||""),aS(a.aws_region||"us-east-1"),aU(a.bedrock_inference_profile||""),a0(a.sql_connection_string||""),bk(a.n8n_url||"http://localhost:5678"),bm(a.n8n_api_key||""),ac(void 0===a.vault_enabled||a.vault_enabled),ae(a.vault_threshold||1e5),ag(a.auto_compact_enabled||!1),ai(a.auto_compact_threshold||5e4),ak(a.allow_db_write||!1),bZ(a.embed_code||!1),am(a.bash_allowed_dirs||[]),bV(a.messaging_enabled||!1),bX(a.coding_agent_enabled||!1),a.bedrock_api_key&&b1()}),fetch("/api/personal-details").then(a=>a.json()).then(a=>{a2(a.first_name||""),a4(a.last_name||""),a6(a.email||""),a8(a.phone_number||"");let b=a.address||{};ba(b.address1||""),bc(b.address2||""),be(b.city||""),bg(b.state||""),bi(b.zipcode||"")}).catch(()=>{}),b0(),bT(!0),fetch("/api/tools/available").then(a=>a.json()).then(a=>{let b=a.tools||[],c={};b.forEach(a=>{if("custom_http"===a.source){let b=a.name;c[b]||(c[b]={id:b,label:a.label||a.name,description:a.description,tools:[a.name],toolDetails:[{name:a.name,description:a.description||""}],toolType:"custom"})}else{let b=a.source||"unknown";c[b]||(c[b]={id:b,label:a.source_label||b.charAt(0).toUpperCase()+b.slice(1).replace(/_/g," "),description:`Tools from ${b}`,tools:[],toolDetails:[],toolType:"mcp_external"===a.type?"mcp":"mcp_native"===a.type?"native":"custom"}),c[b].tools.push(a.name),c[b].toolDetails.push({name:a.name,description:a.description||""})}}),bR(Object.values(c))}).finally(()=>bT(!1))},[h,g,c]),(0,w.useEffect)(()=>{"bedrock"===r&&(b_(),b1())},[r]),(0,w.useEffect)(()=>{"custom_tools"!==j||!br||"config"!==bt||bA.length>0||cu()},[j,br,bt]),(0,w.useEffect)(()=>{"mcp_servers"!==j||h||c((0,P.fetchAllSettingsData)())},[j,c,h]);let cq=async()=>{if(!bO.name){bL({show:!0,message:"Server name is required.",type:"error"}),setTimeout(()=>bL(null),4e3);return}if("stdio"===bO.server_type&&!bO.command){bL({show:!0,message:"Command is required for local servers.",type:"error"}),setTimeout(()=>bL(null),4e3);return}if("remote"===bO.server_type&&!bO.url){bL({show:!0,message:"URL is required for remote servers.",type:"error"}),setTimeout(()=>bL(null),4e3);return}let a=bO.args.match(/(?:[^\s"]+|"[^"]*")+/g)?.map(a=>a.replace(/^"|"$/g,""))||[],b=bO.env.reduce((a,b)=>(b.key&&(a[b.key]=b.value),a),{});bH(!0);try{let d=await fetch("/api/mcp/servers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:bO.name,label:bO.label,server_type:bO.server_type,command:bO.command,args:a,env:b,url:bO.url,token:bO.token})});if(d.ok){let a=await d.json();c((0,P.addMcpServer)(a.config)),bP({name:"",label:"",server_type:"stdio",command:"",args:"",env:[],url:"",token:""}),"oauth_pending"===a.status?(bJ(!1),bN(bO.name),bL({show:!0,message:"🔑 OAuth required — opening browser. Return here once authorised.",type:"warning"}),a.auth_url&&window.open(a.auth_url,"_blank")):a.connected?(bJ(!0),bL({show:!0,message:"✓ Server connected and saved!",type:"success"})):(bJ(!1),bL({show:!0,message:"⚠ Config saved. Use Retry to reconnect.",type:"warning"})),setTimeout(()=>bL(null),7e3)}else{let a=await d.json();bL({show:!0,message:`Error: ${a.detail||"Unknown error"}`,type:"error"}),setTimeout(()=>bL(null),5e3)}}catch{bL({show:!0,message:"Failed to reach backend. Is it running?",type:"error"}),setTimeout(()=>bL(null),5e3)}finally{bH(!1)}},cr=async a=>{try{c((0,P.updateMcpServerStatus)({name:a,status:"connecting"}));let b=await fetch(`/api/mcp/servers/${a}/reconnect`,{method:"POST"});(await b.json()).connected?(c((0,P.updateMcpServerStatus)({name:a,status:"connected"})),bL({show:!0,message:`✓ ${a} reconnected!`,type:"success"})):(c((0,P.updateMcpServerStatus)({name:a,status:"disconnected"})),bL({show:!0,message:`Could not connect to ${a}. Complete OAuth first.`,type:"warning"})),setTimeout(()=>bL(null),5e3)}catch{c((0,P.updateMcpServerStatus)({name:a,status:"disconnected"})),bL({show:!0,message:"Reconnect failed.",type:"error"}),setTimeout(()=>bL(null),5e3)}},cs=async a=>{b7({type:"delete_mcp",message:`Are you sure you want to remove the MCP server '${a}'?`,payload:a})},ct=async()=>{if(!br)return;if("python"===br.tool_type){if(!br.name)return void bz("System Name is required","warning");if(!br.code||!br.code.trim())return void bz("Python code cannot be empty","warning");try{let a={name:br.name,generalName:br.generalName||br.name,description:br.description||"",tool_type:"python",code:br.code,inputSchema:br.inputSchema||{type:"object",properties:{}},schemaParams:br.schemaParams||[]},b=await fetch("/api/tools/custom",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(b.ok){let a=await b.json(),d=a?.tool??a;c((0,P.updateCustomTool)(d)),bs(null),bu("config"),bz("Python tool saved successfully","success")}else bz("Failed to save Python tool","error")}catch{bz("Error saving Python tool","error")}return}if(!br.name||!br.url)return void bz("Name and URL are required","warning");let a=br.inputSchema,b=br.outputSchema;try{"string"==typeof br.inputSchemaStr&&(a=JSON.parse(br.inputSchemaStr))}catch(a){bz("Invalid Input Schema JSON","error");return}try{"string"==typeof br.outputSchemaStr&&br.outputSchemaStr.trim()?b=JSON.parse(br.outputSchemaStr):br.outputSchemaStr&&br.outputSchemaStr.trim()||(b=void 0)}catch(a){bz("Invalid Output Schema JSON","error");return}try{let d={};bv.forEach(a=>{a.key.trim()&&(d[a.key.trim()]=a.value)});let e={...br,inputSchema:a,outputSchema:b,headers:d};delete e.inputSchemaStr,delete e.outputSchemaStr;let f=await fetch("/api/tools/custom",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(f.ok){let a=await f.json(),b=a?.tool??a;c((0,P.updateCustomTool)(b)),bs(null),bu("config"),bz("Tool saved successfully","success")}else bz("Failed to save tool","error")}catch(a){bz("Error saving tool","error")}},cu=async()=>{if(!bC){bD(!0);try{let a=await fetch("/api/n8n/workflows");if(!a.ok)return void bB([]);let b=await a.json();bB(Array.isArray(b)?b:[])}catch{bB([])}finally{bD(!1)}}},cv=async a=>{b7({type:"delete_tool",message:`Are you sure you want to delete the custom tool '${a}'?`,payload:a})},cw=async a=>{b7({type:"delete_agent",message:"Are you sure you want to delete this agent? This action cannot be undone.",payload:a})},cx="local"===r?t:"bedrock"===r?Q.filter(a=>a.startsWith("bedrock")):Q.filter(a=>!a.startsWith("bedrock")),cy=[{id:"general",label:"General",icon:C.LayoutGrid},{id:"personal_details",label:"Personal Details",icon:x.Shield},{id:"orchestrations",label:"Orchestrations",icon:H.Workflow},{id:"agents",label:"Build Agents",icon:D.Bot},{id:"mcp_servers",label:"MCP Servers",icon:F.Server},{id:"custom_tools",label:"Tool Builder",icon:E.Wrench},...bW?[{id:"repos",label:"Repos",icon:G.FolderGit2}]:[],...bW?[{id:"db_configs",label:"DB Configs",icon:B.Database}]:[],{id:"models",label:"Models",icon:z.Cpu},...bU?[{id:"messaging",label:"Messaging",icon:J.MessageSquare}]:[],{id:"workspace",label:"Integrations",icon:A.Cloud},{id:"schedules",label:"Schedules",icon:K.Clock},{id:"memory",label:"Memory",icon:y.Trash},{id:"logs",label:"Logs",icon:I.ScrollText},{id:"import_export",label:"Import / Export",icon:L.ArrowLeftRight},{id:"vault",label:"Vault",icon:M.Vault}];return(0,v.jsxs)("div",{className:"flex-1 flex flex-col h-full overflow-hidden bg-transparent",children:["orchestrations"===j&&(0,v.jsx)("div",{className:"flex-1 flex flex-col overflow-hidden",children:(0,v.jsx)(vI,{})}),"logs"===j&&(0,v.jsx)("div",{className:"flex-1 flex flex-col overflow-hidden",children:(0,v.jsx)(vL,{})}),"messaging"===j&&(0,v.jsx)("div",{className:"flex-1 overflow-y-auto p-6 md:p-12",children:(0,v.jsxs)("div",{className:"max-w-5xl mx-auto animate-in fade-in slide-in-from-bottom-4 duration-300",children:[(0,v.jsxs)("div",{className:"mb-8",children:[(0,v.jsx)("h1",{className:"text-3xl font-bold mb-2 text-zinc-50",children:"Messaging"}),(0,v.jsx)("p",{className:"text-zinc-500 text-sm",children:"Connect your agents to Telegram, Discord, Slack, Teams, or WhatsApp."})]}),(0,v.jsx)(vS,{})]})}),"usage"===j&&(0,v.jsx)("div",{className:"flex-1 flex flex-col overflow-hidden",children:(0,v.jsx)(v7,{})}),"schedules"===j&&(0,v.jsx)("div",{className:"flex-1 flex flex-col overflow-hidden",children:(0,v.jsx)(wf,{})}),"import_export"===j&&(0,v.jsx)("div",{className:"flex-1 overflow-y-auto p-6 md:p-12",children:(0,v.jsxs)("div",{className:"max-w-5xl mx-auto animate-in fade-in slide-in-from-bottom-4 duration-300",children:[(0,v.jsxs)("div",{className:"mb-8",children:[(0,v.jsx)("h1",{className:"text-3xl font-bold mb-2 text-zinc-50",children:"Import / Export"}),(0,v.jsx)("p",{className:"text-zinc-500 text-sm",children:"Export your orchestrations, agents, MCP servers, and tools as a portable bundle, or import one from another Synapse instance."})]}),(0,v.jsx)(wx,{defaultView:"examples"===b?"examples":void 0,onImportSuccess:()=>c((0,P.fetchAllSettingsData)()),onNavigate:a=>k(a)})]})}),"vault"===j&&(0,v.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden",children:[(0,v.jsxs)("div",{className:"flex-shrink-0 px-6 py-4 border-b border-zinc-800",children:[(0,v.jsxs)("h1",{className:"text-xl font-bold text-zinc-50 flex items-center gap-2",children:[(0,v.jsx)(M.Vault,{className:"h-5 w-5 text-zinc-400"})," Vault"]}),(0,v.jsx)("p",{className:"text-zinc-500 text-xs mt-1",children:"Manage knowledge files, skills, and other files (.md, .json, .txt) that agents can reference in their prompts using @[path] syntax."})]}),(0,v.jsx)(wI,{})]}),(0,v.jsx)("div",{className:`flex-1 overflow-y-auto p-6 md:p-12 ${"orchestrations"===j||"logs"===j||"messaging"===j||"usage"===j||"schedules"===j||"import_export"===j||"vault"===j?"hidden":""}`,children:(0,v.jsxs)("div",{className:"max-w-5xl mx-auto space-y-10 animate-in fade-in slide-in-from-bottom-4 duration-300",children:[(0,v.jsxs)("div",{className:"mb-8",children:[(0,v.jsx)("h1",{className:"text-3xl font-bold mb-2 text-zinc-50",children:cy.find(a=>a.id===j)?.label}),(0,v.jsxs)("p",{className:"text-zinc-500 text-sm",children:["Manage your agent's ",j," configuration."]})]}),"general"===j&&(0,v.jsx)(R,{agentName:l,setAgentName:m,vaultEnabled:aa,setVaultEnabled:ac,vaultThreshold:ad,setVaultThreshold:ae,autoCompactEnabled:af,setAutoCompactEnabled:ag,autoCompactThreshold:ah,setAutoCompactThreshold:ai,allowDbWrite:aj,setAllowDbWrite:ak,embedCode:bY,setEmbedCode:bZ,bashAllowedDirs:al,setBashAllowedDirs:am,onSave:b2,isSaving:Y}),"personal_details"===j&&(0,v.jsx)(S,{pdFirstName:a1,setPdFirstName:a2,pdLastName:a3,setPdLastName:a4,pdEmail:a5,setPdEmail:a6,pdPhone:a7,setPdPhone:a8,pdAddress1:a9,setPdAddress1:ba,pdAddress2:bb,setPdAddress2:bc,pdCity:bd,setPdCity:be,pdState:bf,setPdState:bg,pdZipcode:bh,setPdZipcode:bi,onSave:b3}),"agents"===j&&(0,v.jsx)(ay,{agents:d.filter(a=>!a.id.startsWith("agent_native_builder")),selectedAgentId:bn,setSelectedAgentId:bo,draftAgent:bp,setDraftAgent:bq,availableCapabilities:bQ,loadingCapabilities:bS,customTools:f,onDeleteAgent:cw,providers:U,defaultModel:n,loadingAgents:i}),"custom_tools"===j&&(0,v.jsx)(n8,{customTools:f,draftTool:br,setDraftTool:bs,toolBuilderMode:bt,setToolBuilderMode:bu,headerRows:bv,setHeaderRows:bw,n8nWorkflows:bA,n8nWorkflowsLoading:bC,n8nWorkflowId:b4,setN8nWorkflowId:b5,getN8nBaseUrl:()=>(bj||"http://localhost:5678").replace(/\/+$/,""),onSaveTool:ct,onDeleteTool:cv,n8nIntegrated:!!(bl&&bl.trim())}),"datalab"===j&&(0,v.jsx)(n9,{dlTopic:b8,setDlTopic:b9,dlCount:ca,setDlCount:cb,dlProvider:cc,setDlProvider:cd,dlSystemPrompt:ce,setDlSystemPrompt:cf,dlEdgeCases:cg,setDlEdgeCases:ch,dlStatus:ci,dlDatasets:ck,onGenerate:co}),"models"===j&&(0,v.jsx)(oi,{providers:U,mode:r,setMode:s,selectedModel:n,setSelectedModel:o,embeddingModel:p,setEmbeddingModel:q,localModels:t,cloudModels:Q,filteredModels:cx,loadingModels:W,openaiKey:an,setOpenaiKey:ao,anthropicKey:ap,setAnthropicKey:aq,geminiKey:ar,setGeminiKey:as,grokKey:at,setGrokKey:au,deepseekKey:av,setDeepseekKey:aw,bedrockApiKey:az,setBedrockApiKey:aA,awsRegion:aR,setAwsRegion:aS,bedrockInferenceProfile:aT,setBedrockInferenceProfile:aU,bedrockInferenceProfiles:aV,loadingInferenceProfiles:aX,inferenceProfilesError:aZ,onExpandBedrock:b1,onSave:b2,isSaving:Y,openaiCompatibleKey:aB,setOpenaiCompatibleKey:aC,openaiCompatibleBaseUrl:aD,setOpenaiCompatibleBaseUrl:aE,openaiCompatibleModels:aF,setOpenaiCompatibleModels:aG,openaiCompatibleEmbedModels:aH,setOpenaiCompatibleEmbedModels:aI,localCompatibleBaseUrl:aJ,setLocalCompatibleBaseUrl:aK,localCompatibleKey:aL,setLocalCompatibleKey:aM,localCompatibleModels:aN,setLocalCompatibleModels:aO,localCompatibleEmbedModels:aP,setLocalCompatibleEmbedModels:aQ}),"workspace"===j&&(0,v.jsx)(ok,{n8nUrl:bj,setN8nUrl:bk,n8nApiKey:bl,setN8nApiKey:bm,onSave:b2}),"mcp_servers"===j&&(0,v.jsx)(ov,{mcpServers:e,loadingMcp:bE,isConnecting:bG,lastConnected:bI,mcpToast:bK,setMcpToast:bL,pendingServerName:bM,onPendingResolved:()=>bN(null),draftMcpServer:bO,setDraftMcpServer:bP,onAddServer:cq,onDeleteServer:cs,onReconnectServer:cr}),"memory"===j&&(0,v.jsx)(ab,{}),"repos"===j&&(0,v.jsx)(ox,{embeddingModel:p,embedCode:bY}),"db_configs"===j&&(0,v.jsx)(oz,{})]})}),bx&&(0,v.jsx)(ax,{show:bx.show,message:bx.message,type:bx.type}),(0,v.jsx)($,{isOpen:!!b6,title:"Confirm Action",message:b6?.message||"",onConfirm:cp,onClose:()=>b7(null)})]})}],12145)}];
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=_0df15zg._.js.map
|