@kaitranntt/ccs 7.79.1 → 8.0.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -11
- package/dist/bin/ccsxp-runtime.d.ts.map +1 -1
- package/dist/bin/ccsxp-runtime.js +8 -0
- package/dist/bin/ccsxp-runtime.js.map +1 -1
- package/dist/bin/codex-runtime-router.d.ts +24 -0
- package/dist/bin/codex-runtime-router.d.ts.map +1 -0
- package/dist/bin/codex-runtime-router.js +117 -0
- package/dist/bin/codex-runtime-router.js.map +1 -0
- package/dist/bin/codex-runtime.d.ts +1 -0
- package/dist/bin/codex-runtime.js +7 -2
- package/dist/bin/codex-runtime.js.map +1 -1
- package/dist/ccs.js +2 -1
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.js +2 -2
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -1
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts +2 -2
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js +16 -8
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts +8 -0
- package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.js +19 -2
- package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -1
- package/dist/cliproxy/ai-providers/service.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/service.js +39 -12
- package/dist/cliproxy/ai-providers/service.js.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts +13 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +111 -34
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/auth/oauth-trace/redactor.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-trace/redactor.js +9 -1
- package/dist/cliproxy/auth/oauth-trace/redactor.js.map +1 -1
- package/dist/cliproxy/config/generator.d.ts.map +1 -1
- package/dist/cliproxy/config/generator.js +5 -2
- package/dist/cliproxy/config/generator.js.map +1 -1
- package/dist/cliproxy/config/thinking-config.js +6 -6
- package/dist/cliproxy/config/thinking-config.js.map +1 -1
- package/dist/cliproxy/executor/env-resolver.js +1 -1
- package/dist/cliproxy/executor/env-resolver.js.map +1 -1
- package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
- package/dist/cliproxy/executor/session-bridge.js +11 -8
- package/dist/cliproxy/executor/session-bridge.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude.js +35 -4
- package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-codex.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-codex.js +4 -1
- package/dist/cliproxy/quota/quota-fetcher-codex.js.map +1 -1
- package/dist/cliproxy/quota/quota-manager.d.ts +1 -0
- package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-manager.js +53 -2
- package/dist/cliproxy/quota/quota-manager.js.map +1 -1
- package/dist/cliproxy/services/oauth-usage-log-transformer.d.ts.map +1 -1
- package/dist/cliproxy/services/oauth-usage-log-transformer.js +5 -0
- package/dist/cliproxy/services/oauth-usage-log-transformer.js.map +1 -1
- package/dist/codex-auth/codex-account-identity.d.ts +8 -0
- package/dist/codex-auth/codex-account-identity.d.ts.map +1 -0
- package/dist/codex-auth/codex-account-identity.js +53 -0
- package/dist/codex-auth/codex-account-identity.js.map +1 -0
- package/dist/codex-auth/codex-auth-dashboard-service.d.ts +46 -0
- package/dist/codex-auth/codex-auth-dashboard-service.d.ts.map +1 -0
- package/dist/codex-auth/codex-auth-dashboard-service.js +228 -0
- package/dist/codex-auth/codex-auth-dashboard-service.js.map +1 -0
- package/dist/codex-auth/codex-auth-help.d.ts +7 -0
- package/dist/codex-auth/codex-auth-help.d.ts.map +1 -0
- package/dist/codex-auth/codex-auth-help.js +87 -0
- package/dist/codex-auth/codex-auth-help.js.map +1 -0
- package/dist/codex-auth/codex-auth-router.d.ts +16 -0
- package/dist/codex-auth/codex-auth-router.d.ts.map +1 -0
- package/dist/codex-auth/codex-auth-router.js +77 -0
- package/dist/codex-auth/codex-auth-router.js.map +1 -0
- package/dist/codex-auth/codex-config-symlink.d.ts +14 -0
- package/dist/codex-auth/codex-config-symlink.d.ts.map +1 -0
- package/dist/codex-auth/codex-config-symlink.js +128 -0
- package/dist/codex-auth/codex-config-symlink.js.map +1 -0
- package/dist/codex-auth/codex-profile-paths.d.ts +5 -0
- package/dist/codex-auth/codex-profile-paths.d.ts.map +1 -0
- package/dist/codex-auth/codex-profile-paths.js +58 -0
- package/dist/codex-auth/codex-profile-paths.js.map +1 -0
- package/dist/codex-auth/codex-profile-registry.d.ts +34 -0
- package/dist/codex-auth/codex-profile-registry.d.ts.map +1 -0
- package/dist/codex-auth/codex-profile-registry.js +360 -0
- package/dist/codex-auth/codex-profile-registry.js.map +1 -0
- package/dist/codex-auth/codex-profile-resources.d.ts +6 -0
- package/dist/codex-auth/codex-profile-resources.d.ts.map +1 -0
- package/dist/codex-auth/codex-profile-resources.js +119 -0
- package/dist/codex-auth/codex-profile-resources.js.map +1 -0
- package/dist/codex-auth/commands/create-command.d.ts +9 -0
- package/dist/codex-auth/commands/create-command.d.ts.map +1 -0
- package/dist/codex-auth/commands/create-command.js +203 -0
- package/dist/codex-auth/commands/create-command.js.map +1 -0
- package/dist/codex-auth/commands/import-default-command.d.ts +18 -0
- package/dist/codex-auth/commands/import-default-command.d.ts.map +1 -0
- package/dist/codex-auth/commands/import-default-command.js +385 -0
- package/dist/codex-auth/commands/import-default-command.js.map +1 -0
- package/dist/codex-auth/commands/index.d.ts +13 -0
- package/dist/codex-auth/commands/index.d.ts.map +1 -0
- package/dist/codex-auth/commands/index.js +27 -0
- package/dist/codex-auth/commands/index.js.map +1 -0
- package/dist/codex-auth/commands/login-command.d.ts +9 -0
- package/dist/codex-auth/commands/login-command.d.ts.map +1 -0
- package/dist/codex-auth/commands/login-command.js +152 -0
- package/dist/codex-auth/commands/login-command.js.map +1 -0
- package/dist/codex-auth/commands/remove-command.d.ts +10 -0
- package/dist/codex-auth/commands/remove-command.d.ts.map +1 -0
- package/dist/codex-auth/commands/remove-command.js +230 -0
- package/dist/codex-auth/commands/remove-command.js.map +1 -0
- package/dist/codex-auth/commands/show-command.d.ts +10 -0
- package/dist/codex-auth/commands/show-command.d.ts.map +1 -0
- package/dist/codex-auth/commands/show-command.js +127 -0
- package/dist/codex-auth/commands/show-command.js.map +1 -0
- package/dist/codex-auth/commands/show-detail-view.d.ts +7 -0
- package/dist/codex-auth/commands/show-detail-view.d.ts.map +1 -0
- package/dist/codex-auth/commands/show-detail-view.js +134 -0
- package/dist/codex-auth/commands/show-detail-view.js.map +1 -0
- package/dist/codex-auth/commands/switch-command.d.ts +7 -0
- package/dist/codex-auth/commands/switch-command.d.ts.map +1 -0
- package/dist/codex-auth/commands/switch-command.js +48 -0
- package/dist/codex-auth/commands/switch-command.js.map +1 -0
- package/dist/codex-auth/commands/types.d.ts +45 -0
- package/dist/codex-auth/commands/types.d.ts.map +1 -0
- package/dist/codex-auth/commands/types.js +85 -0
- package/dist/codex-auth/commands/types.js.map +1 -0
- package/dist/codex-auth/commands/use-command.d.ts +16 -0
- package/dist/codex-auth/commands/use-command.d.ts.map +1 -0
- package/dist/codex-auth/commands/use-command.js +86 -0
- package/dist/codex-auth/commands/use-command.js.map +1 -0
- package/dist/codex-auth/decode-id-token.d.ts +12 -0
- package/dist/codex-auth/decode-id-token.d.ts.map +1 -0
- package/dist/codex-auth/decode-id-token.js +83 -0
- package/dist/codex-auth/decode-id-token.js.map +1 -0
- package/dist/codex-auth/index.d.ts +9 -0
- package/dist/codex-auth/index.d.ts.map +1 -0
- package/dist/codex-auth/index.js +22 -0
- package/dist/codex-auth/index.js.map +1 -0
- package/dist/codex-auth/resolve-active-profile.d.ts +13 -0
- package/dist/codex-auth/resolve-active-profile.d.ts.map +1 -0
- package/dist/codex-auth/resolve-active-profile.js +161 -0
- package/dist/codex-auth/resolve-active-profile.js.map +1 -0
- package/dist/codex-auth/shell-detect.d.ts +19 -0
- package/dist/codex-auth/shell-detect.d.ts.map +1 -0
- package/dist/codex-auth/shell-detect.js +91 -0
- package/dist/codex-auth/shell-detect.js.map +1 -0
- package/dist/codex-auth/types.d.ts +26 -0
- package/dist/codex-auth/types.d.ts.map +1 -0
- package/dist/codex-auth/types.js +34 -0
- package/dist/codex-auth/types.js.map +1 -0
- package/dist/commands/cliproxy/variant-subcommand.js +1 -1
- package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
- package/dist/commands/command-catalog.d.ts +1 -1
- package/dist/commands/command-catalog.d.ts.map +1 -1
- package/dist/commands/command-catalog.js +10 -1
- package/dist/commands/command-catalog.js.map +1 -1
- package/dist/commands/completion-backend.d.ts.map +1 -1
- package/dist/commands/completion-backend.js +2 -0
- package/dist/commands/completion-backend.js.map +1 -1
- package/dist/commands/config-command.d.ts +2 -0
- package/dist/commands/config-command.d.ts.map +1 -1
- package/dist/commands/config-command.js +31 -20
- package/dist/commands/config-command.js.map +1 -1
- package/dist/commands/docker/finalize-key-rotation-subcommand.d.ts +2 -0
- package/dist/commands/docker/finalize-key-rotation-subcommand.d.ts.map +1 -0
- package/dist/commands/docker/finalize-key-rotation-subcommand.js +79 -0
- package/dist/commands/docker/finalize-key-rotation-subcommand.js.map +1 -0
- package/dist/commands/docker/help-subcommand.d.ts.map +1 -1
- package/dist/commands/docker/help-subcommand.js +6 -0
- package/dist/commands/docker/help-subcommand.js.map +1 -1
- package/dist/commands/docker/index.d.ts.map +1 -1
- package/dist/commands/docker/index.js +4 -0
- package/dist/commands/docker/index.js.map +1 -1
- package/dist/commands/docker/show-key-subcommand.d.ts +2 -0
- package/dist/commands/docker/show-key-subcommand.d.ts.map +1 -0
- package/dist/commands/docker/show-key-subcommand.js +96 -0
- package/dist/commands/docker/show-key-subcommand.js.map +1 -0
- package/dist/commands/docker/up-subcommand.d.ts.map +1 -1
- package/dist/commands/docker/up-subcommand.js +4 -0
- package/dist/commands/docker/up-subcommand.js.map +1 -1
- package/dist/commands/persist-command.d.ts.map +1 -1
- package/dist/commands/persist-command.js +77 -5
- package/dist/commands/persist-command.js.map +1 -1
- package/dist/dispatcher/cli-argument-parser.d.ts +3 -2
- package/dist/dispatcher/cli-argument-parser.d.ts.map +1 -1
- package/dist/dispatcher/cli-argument-parser.js +37 -7
- package/dist/dispatcher/cli-argument-parser.js.map +1 -1
- package/dist/dispatcher/pre-dispatch.d.ts.map +1 -1
- package/dist/dispatcher/pre-dispatch.js +7 -0
- package/dist/dispatcher/pre-dispatch.js.map +1 -1
- package/dist/dispatcher/target-executor.d.ts +2 -2
- package/dist/dispatcher/target-executor.d.ts.map +1 -1
- package/dist/dispatcher/target-executor.js +5 -5
- package/dist/dispatcher/target-executor.js.map +1 -1
- package/dist/docker/docker-bootstrap.d.ts +1 -1
- package/dist/docker/docker-bootstrap.d.ts.map +1 -1
- package/dist/docker/docker-bootstrap.js +99 -3
- package/dist/docker/docker-bootstrap.js.map +1 -1
- package/dist/docker/docker-executor.d.ts +3 -0
- package/dist/docker/docker-executor.d.ts.map +1 -1
- package/dist/docker/docker-executor.js +53 -0
- package/dist/docker/docker-executor.js.map +1 -1
- package/dist/docker/docker-key-rotation.d.ts +48 -0
- package/dist/docker/docker-key-rotation.d.ts.map +1 -0
- package/dist/docker/docker-key-rotation.js +179 -0
- package/dist/docker/docker-key-rotation.js.map +1 -0
- package/dist/management/checks/config-check.d.ts.map +1 -1
- package/dist/management/checks/config-check.js +10 -1
- package/dist/management/checks/config-check.js.map +1 -1
- package/dist/management/doctor.d.ts +1 -0
- package/dist/management/doctor.d.ts.map +1 -1
- package/dist/management/doctor.js +23 -0
- package/dist/management/doctor.js.map +1 -1
- package/dist/proxy/proxy-daemon.d.ts.map +1 -1
- package/dist/proxy/proxy-daemon.js +15 -3
- package/dist/proxy/proxy-daemon.js.map +1 -1
- package/dist/proxy/server/messages-route.d.ts.map +1 -1
- package/dist/proxy/server/messages-route.js +27 -1
- package/dist/proxy/server/messages-route.js.map +1 -1
- package/dist/shared/claude-extension-setup.d.ts.map +1 -1
- package/dist/shared/claude-extension-setup.js +21 -1
- package/dist/shared/claude-extension-setup.js.map +1 -1
- package/dist/shared/stale-codex-translator-settings.d.ts +4 -0
- package/dist/shared/stale-codex-translator-settings.d.ts.map +1 -0
- package/dist/shared/stale-codex-translator-settings.js +35 -0
- package/dist/shared/stale-codex-translator-settings.js.map +1 -0
- package/dist/targets/codex-adapter.d.ts.map +1 -1
- package/dist/targets/codex-adapter.js +64 -5
- package/dist/targets/codex-adapter.js.map +1 -1
- package/dist/targets/codex-cliproxy-provider-config.d.ts.map +1 -1
- package/dist/targets/codex-cliproxy-provider-config.js +56 -24
- package/dist/targets/codex-cliproxy-provider-config.js.map +1 -1
- package/dist/ui/assets/Trans-DyZQZ3e2.js +1 -0
- package/dist/ui/assets/accounts-BPJltru3.js +1 -0
- package/dist/ui/assets/{alert-dialog-DC1l1GRX.js → alert-dialog-DWHL-dqd.js} +1 -1
- package/dist/ui/assets/api-BxPN-zy4.js +4 -0
- package/dist/ui/assets/auth-section-B4o90dwz.js +1 -0
- package/dist/ui/assets/backups-section-1AsdSIJO.js +1 -0
- package/dist/ui/assets/channels-CU4Zdsc_.js +1 -0
- package/dist/ui/assets/{charts-CeK2xCSo.js → charts-eIPy2oG6.js} +34 -34
- package/dist/ui/assets/{checkbox-Dgd2ucy2.js → checkbox-CbCKGH8I.js} +1 -1
- package/dist/ui/assets/claude-extension-CWpjmIGt.js +1 -0
- package/dist/ui/assets/cliproxy-K6eBb5VO.js +4 -0
- package/dist/ui/assets/{cliproxy-ai-providers-DxoCNEaQ.js → cliproxy-ai-providers-Dr4L5NRY.js} +6 -6
- package/dist/ui/assets/cliproxy-control-panel-Cz5r7kHP.js +1 -0
- package/dist/ui/assets/code-highlight-ClSMkeL5.js +1 -0
- package/dist/ui/assets/codex-0HdbW8NR.js +30 -0
- package/dist/ui/assets/{confirm-dialog-nDFNrH0F.js → confirm-dialog-b5Dahgnk.js} +1 -1
- package/dist/ui/assets/copilot-B1Ojakbt.js +3 -0
- package/dist/ui/assets/cursor-PUtNVPx1.js +1 -0
- package/dist/ui/assets/droid-S2gclncb.js +2 -0
- package/dist/ui/assets/globalenv-section-7wKSmNSG.js +1 -0
- package/dist/ui/assets/health-hMLN_gyw.js +1 -0
- package/dist/ui/assets/index-BMoGhs28.css +1 -0
- package/dist/ui/assets/index-BWboJia4.js +1 -0
- package/dist/ui/assets/index-COt1pbk-.js +1 -0
- package/dist/ui/assets/index-CcGVqYOy.js +56 -0
- package/dist/ui/assets/index-Coc3_ABK.js +1 -0
- package/dist/ui/assets/index-Cx0dmbiQ.js +1 -0
- package/dist/ui/assets/index-CxvNNHgE.js +1 -0
- package/dist/ui/assets/index-DkR2KVhF.js +1 -0
- package/dist/ui/assets/logs-BRFVfyLc.js +1 -0
- package/dist/ui/assets/{masked-input-5TJ4LSuz.js → masked-input-4L9CIZGb.js} +1 -1
- package/dist/ui/assets/proxy-status-widget-s1UWOE23.js +1 -0
- package/dist/ui/assets/{raw-json-settings-editor-panel-Fg4WMiuD.js → raw-json-settings-editor-panel-DXh8c8rA.js} +1 -1
- package/dist/ui/assets/{searchable-select-CPJn5vA1.js → searchable-select-CtvEQrMo.js} +1 -1
- package/dist/ui/assets/{separator-BrQkfpAp.js → separator-E0ISp1SN.js} +1 -1
- package/dist/ui/assets/shared-BeYwHeNS.js +8 -0
- package/dist/ui/assets/{table-DRzNRkpJ.js → table-BBslZvNP.js} +1 -1
- package/dist/ui/assets/updates-CDrm903n.js +1 -0
- package/dist/ui/assets/{use-accounts-B6AXtlfF.js → use-accounts-BdalFsdY.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/utils/claude-subcommand-detector.d.ts +12 -3
- package/dist/utils/claude-subcommand-detector.d.ts.map +1 -1
- package/dist/utils/claude-subcommand-detector.js +59 -12
- package/dist/utils/claude-subcommand-detector.js.map +1 -1
- package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -1
- package/dist/web-server/middleware/auth-middleware.js +25 -1
- package/dist/web-server/middleware/auth-middleware.js.map +1 -1
- package/dist/web-server/models-dev/pricing-resolver.d.ts.map +1 -1
- package/dist/web-server/models-dev/pricing-resolver.js +7 -0
- package/dist/web-server/models-dev/pricing-resolver.js.map +1 -1
- package/dist/web-server/models-dev/registry-cache.d.ts.map +1 -1
- package/dist/web-server/models-dev/registry-cache.js +14 -4
- package/dist/web-server/models-dev/registry-cache.js.map +1 -1
- package/dist/web-server/routes/claude-extension-routes.d.ts.map +1 -1
- package/dist/web-server/routes/claude-extension-routes.js +5 -0
- package/dist/web-server/routes/claude-extension-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts +8 -0
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.js +13 -26
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
- package/dist/web-server/routes/codex-routes.d.ts.map +1 -1
- package/dist/web-server/routes/codex-routes.js +14 -0
- package/dist/web-server/routes/codex-routes.js.map +1 -1
- package/dist/web-server/routes/proxy-routes.d.ts.map +1 -1
- package/dist/web-server/routes/proxy-routes.js +1 -1
- package/dist/web-server/routes/proxy-routes.js.map +1 -1
- package/dist/web-server/services/cliproxy-dashboard-restart-service.d.ts +21 -0
- package/dist/web-server/services/cliproxy-dashboard-restart-service.d.ts.map +1 -0
- package/dist/web-server/services/cliproxy-dashboard-restart-service.js +49 -0
- package/dist/web-server/services/cliproxy-dashboard-restart-service.js.map +1 -0
- package/dist/web-server/services/codex-dashboard-service.d.ts.map +1 -1
- package/dist/web-server/services/codex-dashboard-service.js +30 -3
- package/dist/web-server/services/codex-dashboard-service.js.map +1 -1
- package/dist/web-server/usage/aggregator.d.ts +13 -7
- package/dist/web-server/usage/aggregator.d.ts.map +1 -1
- package/dist/web-server/usage/aggregator.js +37 -22
- package/dist/web-server/usage/aggregator.js.map +1 -1
- package/dist/web-server/usage/handlers.d.ts +1 -0
- package/dist/web-server/usage/handlers.d.ts.map +1 -1
- package/dist/web-server/usage/handlers.js +16 -8
- package/dist/web-server/usage/handlers.js.map +1 -1
- package/dist/web-server/usage/profile-filter.d.ts +13 -0
- package/dist/web-server/usage/profile-filter.d.ts.map +1 -0
- package/dist/web-server/usage/profile-filter.js +30 -0
- package/dist/web-server/usage/profile-filter.js.map +1 -0
- package/dist/web-server/usage/sqlite-cli.d.ts.map +1 -1
- package/dist/web-server/usage/sqlite-cli.js +22 -1
- package/dist/web-server/usage/sqlite-cli.js.map +1 -1
- package/dist/web-server/usage/types.d.ts +8 -0
- package/dist/web-server/usage/types.d.ts.map +1 -1
- package/lib/hooks/websearch-transformer.cjs +12 -3
- package/lib/mcp/ccs-browser-server.cjs +217 -12
- package/package.json +1 -1
- package/scripts/docker-dashboard-sunset-guard.js +171 -0
- package/scripts/run-test-bucket.js +1 -0
- package/scripts/verify-bundle.js +4 -1
- package/dist/ui/assets/accounts-BQu3Aeey.js +0 -1
- package/dist/ui/assets/api-BTbrbjic.js +0 -4
- package/dist/ui/assets/auth-section-BsSVWOMp.js +0 -1
- package/dist/ui/assets/backups-section-BGHYHASS.js +0 -1
- package/dist/ui/assets/channels-vJ8L4j-z.js +0 -1
- package/dist/ui/assets/claude-extension-B3ern4Ad.js +0 -1
- package/dist/ui/assets/cliproxy-CGljI0Or.js +0 -4
- package/dist/ui/assets/cliproxy-control-panel-BJ3Mliy1.js +0 -1
- package/dist/ui/assets/code-highlight-D4E79GKQ.js +0 -3
- package/dist/ui/assets/codex-DBGHPn0v.js +0 -30
- package/dist/ui/assets/copilot-CE_Z3NB0.js +0 -3
- package/dist/ui/assets/cursor-YzGsSR_d.js +0 -1
- package/dist/ui/assets/droid-C-ItViCi.js +0 -2
- package/dist/ui/assets/globalenv-section-C9gSGyZ8.js +0 -1
- package/dist/ui/assets/health-DEeA97sQ.js +0 -1
- package/dist/ui/assets/index-B71yJlMj.css +0 -1
- package/dist/ui/assets/index-BPVO-QAw.js +0 -1
- package/dist/ui/assets/index-BRZp_Csi.js +0 -72
- package/dist/ui/assets/index-BYUwpOeA.js +0 -1
- package/dist/ui/assets/index-D2r_fAW5.js +0 -1
- package/dist/ui/assets/index-DGiziSVQ.js +0 -1
- package/dist/ui/assets/index-DwG6bbUr.js +0 -1
- package/dist/ui/assets/index-Dwtj4wGT.js +0 -1
- package/dist/ui/assets/logs-Mt2W7M3G.js +0 -1
- package/dist/ui/assets/proxy-status-widget-BQOAlYsb.js +0 -1
- package/dist/ui/assets/shared-BlkDl2HF.js +0 -8
- package/dist/ui/assets/updates-BQNeSzLj.js +0 -1
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./radix-ui-nu4wz29m.js";import{r as c}from"./react-vendor-Bjx91N7w.js";import{a as jt,u as Yt,b as Ss}from"./tanstack-bhJxV1h8.js";import{a8 as Ps,a as W,d as F,C as Zt,b as es,a9 as ts,aa as ss,c as X,P as bt,B as q,ab as ue,L as ee,I as de,r as Be,s as Ve,t as $e,v as We,w as Ce,ac as as,ad as ns,ae as Ms,af as Ds,ag as Is,u as rs,ah as Nt,ai as yt,aj as wt,ak as kt,W as me,al as is,am as _t,an as Ts,ao as Es,ap as Ee,aq as os,Y as Qe,ar as Rs,as as Lt,at as Ft,au as Os,av as _s,aw as Ls,ax as Fs,ay as Us,az as Ks,aA as Hs,aB as qs,aC as Ut,aD as zs,x as ls,aE as Gs,n as Ct,aF as Bs,aG as At,aH as Kt,aI as ds,aJ as Vs,m as $s,aK as Ws,aL as Qs,aM as mt,T as pt,p as xt,q as ht,aN as Js,aO as Xs,aP as Ys,aQ as Ht,aR as Zs,aS as ea,aT as ta,aU as sa,aV as aa,aW as na,Q as ra,R as ia,U as qt,V as zt,aX as oa,aY as la,aZ as da,a_ as ca,a$ as ua,b0 as ma,b1 as pa,b2 as xa,b3 as ha,b4 as fa,b5 as ga,b6 as He,b7 as va,S as ja}from"./index-BRZp_Csi.js";import{C as ft}from"./default-ports-1QQSffYX.js";import{t as B}from"./notifications-B4_o8bcr.js";import{C as cs,L as ce,p as Ae,$ as ba,m as Se,o as us,aG as St,R as Pt,q as Re,aa as Mt,T as Ye,a7 as Gt,aH as ms,aF as Na,z as Dt,Z as Oe,_ as ps,i as ya,u as xs,aI as wa,au as ka,X as It,a9 as tt,J as hs,D as fs,aJ as Ca,at as gs,aK as Aa,ax as Sa,aL as Ze}from"./icons-DzKUh8vG.js";import{R as Je,A as Bt,D as ot,i as Pa,a as Ma}from"./antigravity-responsibility-constants-Bvh4Ybz0.js";import{C as Xe}from"./checkbox-Dgd2ucy2.js";import{C as Da}from"./confirm-dialog-nDFNrH0F.js";import{S as Tt}from"./separator-BrQkfpAp.js";import{S as Ia}from"./searchable-select-CPJn5vA1.js";import{P as Ta}from"./proxy-status-widget-BQOAlYsb.js";import"./utils-CzKF5WmX.js";import"./form-utils-CuHzLhJZ.js";import"./code-highlight-D4E79GKQ.js";import"./alert-dialog-DC1l1GRX.js";const se="gemini-3.1-pro-high",Me="gemini-3.1-pro-low",Ea=Object.freeze({"gemini-3-pro-high":se,"gemini-3.1-pro-high":se,"gemini-3-pro-low":Me,"gemini-3.1-pro-low":Me,"gemini-3-pro-preview":se,"gemini-3-pro-preview-customtools":se,"gemini-3.1-pro-preview":se,"gemini-3.1-pro-preview-customtools":se,"gemini-3-1-pro-preview":se,"gemini-3-1-pro-preview-customtools":se}),vs=Object.freeze({"gemini-3-pro-preview":"gemini-3.1-pro-preview","gemini-3.1-pro-preview":"gemini-3-pro-preview","gemini-3-flash-preview":"gemini-3.1-flash-preview","gemini-3.1-flash-preview":"gemini-3-flash-preview"}),Ra=/^gemini-(\d+(?:[.-]\d+)*)-(pro|flash)-preview(-customtools)?$/i,Oa=["agy/","gcli/"];function Q(t){return Ps(t).toLowerCase()}function _a(t){const a=t.trim(),s=a.toLowerCase();for(const n of Oa)if(s.startsWith(n))return a.slice(n.length);return a}function La(t){return t.replace(/-customtools$/i,"")}function Fa(t){return Ea[Q(t)]}function et(t){const a=Q(t),s=a.match(Ra);if(!s)return null;const[,n,r,d]=s;return{normalizedId:a,version:n.split(/[.-]/).map(o=>Number(o)),family:r,customtools:!!d,dottedVersion:n.includes(".")}}function js(t,a){const s=Math.max(t.length,a.length);for(let n=0;n<s;n+=1){const r=t[n]??0,d=a[n]??0;if(r!==d)return r>d?1:-1}return 0}function Ua(t,a,s){if(t.customtools!==a.customtools)return t.customtools?1:-1;const n=js(t.version,a.version);if(n!==0)return n>0?-1:1;const r=+(t.dottedVersion===s.dottedVersion),d=+(a.dottedVersion===s.dottedVersion);return r!==d?d-r:t.normalizedId.localeCompare(a.normalizedId)}function Vt(t,a){const s=Q(a);return t.find(n=>Q(n.id)===s)?.id}function Ka(t,a){const s=et(t);return!s||a.length===0?void 0:a.map(r=>{const d=et(r.id);return!d||d.family!==s.family?null:{id:r.id,info:d}}).filter(r=>!!r).sort((r,d)=>Ua(r.info,d.info,s))[0]?.id}const fe={agy:{provider:"agy",displayName:"Antigravity",defaultModel:"claude-opus-4-6-thinking",models:[{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking",description:"Latest flagship, extended thinking",extendedContext:!1,presetMapping:{default:"claude-opus-4-6-thinking",opus:"claude-opus-4-6-thinking",sonnet:"claude-sonnet-4-6",haiku:"claude-sonnet-4-6"}},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",description:"Latest Sonnet with thinking budget support",presetMapping:{default:"claude-sonnet-4-6",opus:"claude-opus-4-6-thinking",sonnet:"claude-sonnet-4-6",haiku:"claude-sonnet-4-6"}},{id:se,name:"Gemini Pro High",description:"Current Antigravity Gemini Pro route with higher reasoning budget",extendedContext:!0,presetMapping:{default:se,opus:se,sonnet:se,haiku:"gemini-3-1-flash-preview"}},{id:Me,name:"Gemini Pro Low",description:"Current Antigravity Gemini Pro route with the lighter quota tier",extendedContext:!0,presetMapping:{default:Me,opus:Me,sonnet:Me,haiku:"gemini-3-1-flash-preview"}},{id:"gemini-3-1-flash-preview",name:"Gemini Flash",description:"Resolves to the best advertised Gemini Flash preview via Antigravity",extendedContext:!0,presetMapping:{default:"gemini-3-1-flash-preview",opus:se,sonnet:se,haiku:"gemini-3-1-flash-preview"}}]},gemini:{provider:"gemini",displayName:"Gemini",defaultModel:"gemini-2.5-pro",models:[{id:"gemini-3.1-pro-preview",name:"Gemini Pro",tier:"paid",description:"Uses the best advertised Gemini Pro preview when Google exposes one",extendedContext:!0,presetMapping:{default:"gemini-3.1-pro-preview",opus:"gemini-3.1-pro-preview",sonnet:"gemini-3.1-pro-preview",haiku:"gemini-3-flash-preview"}},{id:"gemini-3-flash-preview",name:"Gemini Flash",tier:"paid",description:"Uses the best advertised Gemini Flash preview when Google exposes one",extendedContext:!0,presetMapping:{default:"gemini-3-flash-preview",opus:"gemini-3.1-pro-preview",sonnet:"gemini-3.1-pro-preview",haiku:"gemini-3-flash-preview"}},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",description:"Stable, works with free Google account",extendedContext:!0,presetMapping:{default:"gemini-2.5-pro",opus:"gemini-2.5-pro",sonnet:"gemini-2.5-pro",haiku:"gemini-2.5-flash"}}]},codex:{provider:"codex",displayName:"Codex",defaultModel:"gpt-5.4",models:[{id:"gpt-5.5",name:"GPT-5.5",tier:"paid",description:"Newest Codex-released GPT-5 family model; falls back to GPT-5.4 on free plans",codexMaxEffort:"xhigh",codexServiceTiers:["fast"],presetMapping:{default:"gpt-5.5",opus:"gpt-5.5",sonnet:"gpt-5.5",haiku:"gpt-5.4-mini"}},{id:"gpt-5.4",name:"GPT-5.4",description:"Recommended Codex default for most coding and agentic tasks",codexMaxEffort:"xhigh",codexServiceTiers:["fast"],presetMapping:{default:"gpt-5.4",opus:"gpt-5.4",sonnet:"gpt-5.4",haiku:"gpt-5.4-mini"}},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",description:"Fast, lower-cost Codex option for lighter tasks and haiku-tier routing",codexMaxEffort:"high",presetMapping:{default:"gpt-5.4-mini",opus:"gpt-5.4",sonnet:"gpt-5.4",haiku:"gpt-5.4-mini"}},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",tier:"paid",description:"Previous flagship coding model whose capabilities now power GPT-5.4",codexMaxEffort:"xhigh",presetMapping:{default:"gpt-5.3-codex",opus:"gpt-5.3-codex",sonnet:"gpt-5.3-codex",haiku:"gpt-5.4-mini"}},{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",tier:"paid",description:"Research preview model for ChatGPT Pro subscribers, optimized for near-instant coding iteration",codexMaxEffort:"xhigh",presetMapping:{default:"gpt-5.3-codex-spark",opus:"gpt-5.3-codex",sonnet:"gpt-5.3-codex",haiku:"gpt-5.4-mini"}},{id:"gpt-5.2",name:"GPT-5.2",description:"Previous general-purpose Codex model",codexMaxEffort:"xhigh",presetMapping:{default:"gpt-5.2",opus:"gpt-5.2",sonnet:"gpt-5.2",haiku:"gpt-5.4-mini"}}]},qwen:{provider:"qwen",displayName:"Qwen",defaultModel:"qwen3-coder-plus",models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus",description:"Code-focused model (1M context)",presetMapping:{default:"qwen3-coder-plus",opus:"qwen3-max",sonnet:"qwen3-coder-plus",haiku:"qwen3-coder-flash"}},{id:"qwen3-max",name:"Qwen3 Max",description:"Flagship model (256K context)",presetMapping:{default:"qwen3-max",opus:"qwen3-max",sonnet:"qwen3-coder-plus",haiku:"qwen3-coder-flash"}},{id:"qwen3-max-preview",name:"Qwen3 Max Preview",description:"Preview with thinking support (256K)",presetMapping:{default:"qwen3-max-preview",opus:"qwen3-max-preview",sonnet:"qwen3-max",haiku:"qwen3-coder-flash"}},{id:"qwen3-235b",name:"Qwen3 235B",description:"Large 235B A22B model",presetMapping:{default:"qwen3-235b",opus:"qwen3-max",sonnet:"qwen3-235b",haiku:"qwen3-coder-flash"}},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus",description:"Vision-language multimodal"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash",description:"Fast code generation"},{id:"qwen3-32b",name:"Qwen3 32B",description:"Qwen3 32B model"}]},iflow:{provider:"iflow",displayName:"iFlow",defaultModel:"qwen3-coder-plus",models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus",description:"Recommended default for iFlow accounts",presetMapping:{default:"qwen3-coder-plus",opus:"qwen3-coder-plus",sonnet:"qwen3-coder-plus",haiku:"qwen3-coder-plus"}},{id:"qwen3-max",name:"Qwen3 Max",description:"Flagship Qwen model via iFlow"},{id:"kimi-k2",name:"Kimi K2",description:"Kimi model currently available via iFlow"},{id:"deepseek-v3.2",name:"DeepSeek V3.2",description:"Current DeepSeek V3.2 model via iFlow"},{id:"deepseek-r1",name:"DeepSeek R1",description:"Reasoning-focused DeepSeek model"},{id:"glm-4.6",name:"GLM 4.6",description:"Zhipu GLM 4.6 via iFlow"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus",description:"Vision-language model"}]},kimi:{provider:"kimi",displayName:"Kimi (Moonshot)",defaultModel:"kimi-k2.5",models:[{id:"kimi-k2.5",name:"Kimi K2.5",description:"Latest multimodal model (262K context)",presetMapping:{default:"kimi-k2.5",opus:"kimi-k2.5",sonnet:"kimi-k2-thinking",haiku:"kimi-k2"}},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking",description:"Extended reasoning model",presetMapping:{default:"kimi-k2-thinking",opus:"kimi-k2.5",sonnet:"kimi-k2-thinking",haiku:"kimi-k2"}},{id:"kimi-k2",name:"Kimi K2",description:"Flagship coding model"}]},kiro:{provider:"kiro",displayName:"Kiro (AWS)",defaultModel:"kiro-claude-sonnet-4-6",models:[{id:"kiro-claude-opus-4-6",name:"Kiro Claude Opus 4.6",description:"Claude Opus 4.6 via Kiro (2.2x credit)",presetMapping:{default:"kiro-claude-opus-4-6",opus:"kiro-claude-opus-4-6",sonnet:"kiro-claude-sonnet-4-6",haiku:"kiro-claude-haiku-4-5"}},{id:"kiro-claude-sonnet-4-6",name:"Kiro Claude Sonnet 4.6",description:"Claude Sonnet 4.6 via Kiro (1.3x credit)",presetMapping:{default:"kiro-claude-sonnet-4-6",opus:"kiro-claude-opus-4-6",sonnet:"kiro-claude-sonnet-4-6",haiku:"kiro-claude-haiku-4-5"}},{id:"kiro-claude-opus-4-5",name:"Kiro Claude Opus 4.5",description:"Claude Opus 4.5 via Kiro (2.2x credit)",presetMapping:{default:"kiro-claude-opus-4-5",opus:"kiro-claude-opus-4-5",sonnet:"kiro-claude-sonnet-4-5",haiku:"kiro-claude-haiku-4-5"}},{id:"kiro-claude-sonnet-4-5",name:"Kiro Claude Sonnet 4.5",description:"Claude Sonnet 4.5 via Kiro (1.3x credit)",presetMapping:{default:"kiro-claude-sonnet-4-5",opus:"kiro-claude-opus-4-5",sonnet:"kiro-claude-sonnet-4-5",haiku:"kiro-claude-haiku-4-5"}},{id:"kiro-claude-sonnet-4",name:"Kiro Claude Sonnet 4",description:"Claude Sonnet 4 via Kiro (1.3x credit)",presetMapping:{default:"kiro-claude-sonnet-4",opus:"kiro-claude-opus-4-5",sonnet:"kiro-claude-sonnet-4",haiku:"kiro-claude-haiku-4-5"}},{id:"kiro-claude-haiku-4-5",name:"Kiro Claude Haiku 4.5",description:"Claude Haiku 4.5 via Kiro (0.4x credit)"}]},ghcp:{provider:"ghcp",displayName:"GitHub Copilot (OAuth)",defaultModel:"claude-sonnet-4.5",models:[{id:"claude-opus-4.5",name:"Claude Opus 4.5",description:"Anthropic Claude Opus 4.5 via GitHub Copilot",presetMapping:{default:"claude-opus-4.5",opus:"claude-opus-4.5",sonnet:"claude-sonnet-4.5",haiku:"claude-haiku-4.5"}},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",description:"Anthropic Claude Sonnet 4.5 via GitHub Copilot",presetMapping:{default:"claude-sonnet-4.5",opus:"claude-opus-4.5",sonnet:"claude-sonnet-4.5",haiku:"claude-haiku-4.5"}},{id:"claude-sonnet-4",name:"Claude Sonnet 4",description:"Anthropic Claude Sonnet 4 via GitHub Copilot"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",description:"Anthropic Claude Haiku 4.5 via GitHub Copilot"},{id:"gpt-5.2",name:"GPT-5.2",description:"OpenAI GPT-5.2 via GitHub Copilot",presetMapping:{default:"gpt-5.2",opus:"gpt-5.2",sonnet:"gpt-5.1",haiku:"gpt-5-mini"}},{id:"gpt-5.1",name:"GPT-5.1",description:"OpenAI GPT-5.1 via GitHub Copilot"},{id:"gpt-5",name:"GPT-5",description:"OpenAI GPT-5 via GitHub Copilot"},{id:"gpt-5-mini",name:"GPT-5 Mini",description:"OpenAI GPT-5 Mini via GitHub Copilot"},{id:"gemini-3-pro",name:"Gemini 3 Pro",description:"Google Gemini 3 Pro via GitHub Copilot"}]},claude:{provider:"claude",displayName:"Claude (Anthropic)",defaultModel:"claude-sonnet-4-6",models:[{id:"claude-opus-4-7",name:"Claude Opus 4.7",description:"Latest flagship model",extendedContext:!0,presetMapping:{default:"claude-opus-4-7",opus:"claude-opus-4-7",sonnet:"claude-sonnet-4-6",haiku:"claude-haiku-4-5-20251001"}},{id:"claude-opus-4-6",name:"Claude Opus 4.6",description:"Previous flagship model",extendedContext:!0,presetMapping:{default:"claude-opus-4-6",opus:"claude-opus-4-6",sonnet:"claude-sonnet-4-6",haiku:"claude-haiku-4-5-20251001"}},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",description:"Balanced performance and speed",extendedContext:!0,presetMapping:{default:"claude-sonnet-4-6",opus:"claude-opus-4-6",sonnet:"claude-sonnet-4-6",haiku:"claude-haiku-4-5-20251001"}},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",description:"Most capable Claude model",extendedContext:!0,presetMapping:{default:"claude-opus-4-5-20251101",opus:"claude-opus-4-5-20251101",sonnet:"claude-sonnet-4-5-20250929",haiku:"claude-haiku-4-5-20251001"}},{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",description:"Balanced performance and speed",extendedContext:!0,presetMapping:{default:"claude-sonnet-4-5-20250929",opus:"claude-opus-4-5-20251101",sonnet:"claude-sonnet-4-5-20250929",haiku:"claude-haiku-4-5-20251001"}},{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4",description:"Previous generation Sonnet",extendedContext:!0,presetMapping:{default:"claude-sonnet-4-20250514",opus:"claude-opus-4-5-20251101",sonnet:"claude-sonnet-4-20250514",haiku:"claude-haiku-4-5-20251001"}},{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5",description:"Fast and efficient"}]}};function Ie(t,a){if(!t)return;const s=Q(a);if(t.provider==="agy"){const o=Fa(s);if(o){const l=t.models.find(i=>i.id===o);if(l)return l}}const n=vs[s.toLowerCase()],r=t.models.find(o=>o.id===s||o.id===n);if(r)return r;const d=et(s);if(d)return t.models.map(o=>({model:o,info:et(o.id)})).filter(o=>!!(o.info&&o.info.family===d.family)).sort((o,l)=>js(l.info.version,o.info.version))[0]?.model}function Ha(t){if(t==="free")return"free";if(typeof t=="string"&&t.trim().length>0)return"paid"}function qa(t,a){const s=fe[t.toLowerCase()];if(!a||a.models.length===0)return s;const n=a.models.map(l=>({id:l.id,owned_by:a.provider})),r=a.models.map(l=>{const i=Ie(s,l.id);return{...l,name:l.name||i?.name||l.id,tier:i?.tier??Ha(l.tier),description:l.description??i?.description,broken:i?.broken,issueUrl:i?.issueUrl,deprecated:i?.deprecated,deprecationReason:i?.deprecationReason,extendedContext:l.extendedContext??i?.extendedContext,presetMapping:i?.presetMapping}}),d=s?.defaultModel?De(s.defaultModel,n):void 0,o=typeof d=="string"&&n.some(l=>Q(l.id)===Q(d));return{provider:a.provider,displayName:a.displayName||s?.displayName||t,defaultModel:o?d:a.defaultModel,models:r}}function Et(t){const a={},s=new Set([...Object.keys(fe),...Object.keys(t??{})]);for(const n of s){const r=qa(n,t?.[n]);r&&(a[n]=r)}return a}function bs(t,a,s){const n=Ie(s,a);return n||Ie(fe[t.toLowerCase()],a)}function De(t,a=[]){const s=Q(t),n=Ka(s,a);if(n)return n;const r=Vt(a,s);if(r)return r;const d=vs[s];return(d?Vt(a,d):void 0)??s}function za(t,a=[]){return{default:De(t.default,a),opus:De(t.opus,a),sonnet:De(t.sonnet,a),haiku:De(t.haiku,a)}}function Rt(t,a=[]){if(!t)return[];const s=fe[t.provider.toLowerCase()]??t,n=new Set;return s.models.map(r=>{const d=De(r.id,a),o=r.presetMapping?za(r.presetMapping,a):void 0,l=t.models.find(i=>Q(i.id)===Q(d));return{...r,id:d,name:l?.name||r.name,description:l?.description??r.description,presetMapping:o}}).filter(r=>n.has(r.id)?!1:(n.add(r.id),!0))}function Ga(t,a,s=[]){const n=t.trim().toLowerCase();if(!a||!n)return[];const r=fe[n]??a,d=Rt(a,s),o=new Set(d.map(p=>Q(p.id))),l=new Set(d.map(p=>Ie(r,p.id)?.id).filter(p=>!!p).map(p=>Q(p))),i=new Set,m=new Set(s.map(p=>Q(p.id)));return s.filter(p=>{const j=Q(p.id),f=_a(p.id),h=La(f),E=Ie(r,f)??Ie(r,h);if(o.has(Q(f))||j!==Q(f)&&m.has(Q(f)))return!1;const w=Q(h);if(w!==Q(f)&&m.has(w))return!1;const P=E?Q(E.id):w;return E&&l.has(P)||i.has(P)||!E&&n==="agy"?!1:(i.add(P),!0)})}function Ba(t,a,s){return bs(t,a,s)?.extendedContext===!0}const lt="ccs-internal-managed";async function Va(){try{const t=await fetch("/api/settings/auth/tokens/raw");return t.ok?(await t.json())?.apiKey?.value??lt:lt}catch{return lt}}async function $a(t,a){if(a)return a;try{const s=await fetch("/api/cliproxy/catalog");if(!s.ok)return fe[t];const n=await s.json();return Et(n.catalogs)[t]??fe[t]}catch{return fe[t]}}async function gt(t,a,s){const n=await $a(t,s);if(!n)return{success:!1};const r=n.models.find(m=>m.id===n.defaultModel)||n.models[0],d=r?.presetMapping||{default:n.defaultModel,opus:n.defaultModel,sonnet:n.defaultModel,haiku:n.defaultModel},o=await Va(),i={env:{ANTHROPIC_BASE_URL:`http://127.0.0.1:${ft}/api/provider/${t}`,ANTHROPIC_AUTH_TOKEN:o,ANTHROPIC_MODEL:d.default,ANTHROPIC_DEFAULT_OPUS_MODEL:d.opus,ANTHROPIC_DEFAULT_SONNET_MODEL:d.sonnet,ANTHROPIC_DEFAULT_HAIKU_MODEL:d.haiku}};try{return{success:(await fetch(`/api/settings/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:i})})).ok,presetName:r?.name||n.defaultModel}}catch{return{success:!1}}}function Wa({currentProgress:t,allSteps:a}){return e.jsx("div",{className:"flex justify-center gap-1 pt-2",children:a.map((s,n)=>e.jsx("div",{className:`w-2 h-2 rounded-full transition-colors ${t>=n?"bg-primary":"bg-muted"}`},s))})}function Qa({providers:t,onSelect:a}){return e.jsx("div",{className:"grid gap-2",children:t.map(s=>e.jsxs("button",{onClick:()=>a(s.id),className:"flex items-center justify-between p-3 border rounded-lg hover:bg-muted/50 transition-colors text-left",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:s.name}),e.jsx("div",{className:"text-xs text-muted-foreground",children:s.description})]}),e.jsx(cs,{className:"w-4 h-4 text-muted-foreground"})]},s.id))})}function Ja({selectedProvider:t,providers:a,authCommand:s,isRefreshing:n,isPending:r,onBack:d,onStartAuth:o,onRefresh:l}){const{t:i}=W(),[m,p]=c.useState(!1),j=async f=>{await navigator.clipboard.writeText(f),p(!0),setTimeout(()=>p(!1),2e3)};return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"text-center space-y-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:i("setupWizard.authStep.authenticateWith",{provider:a.find(f=>f.id===t)?.name})}),e.jsx(F,{onClick:o,disabled:r,className:"w-full gap-2",size:"lg",children:r?e.jsxs(e.Fragment,{children:[e.jsx(ce,{className:"w-4 h-4 animate-spin"}),i("setupWizard.authStep.authenticating")]}):e.jsxs(e.Fragment,{children:[e.jsx(Ae,{className:"w-4 h-4"}),i("setupWizard.authStep.authenticateInBrowser")]})}),r&&e.jsx("p",{className:"text-xs text-muted-foreground",children:i("setupWizard.authStep.completeOAuth")})]}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("span",{className:"w-full border-t"})}),e.jsx("div",{className:"relative flex justify-center text-xs uppercase",children:e.jsx("span",{className:"bg-background px-2 text-muted-foreground",children:i("setupWizard.authStep.orUseTerminal")})})]}),e.jsx(Zt,{children:e.jsxs(es,{className:"p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(ba,{className:"w-4 h-4"}),i("setupWizard.authStep.runCommandHint")]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("code",{className:"flex-1 px-3 py-2 bg-muted rounded-md font-mono text-sm",children:s}),e.jsx(F,{variant:"outline",size:"icon",onClick:()=>j(s),children:m?e.jsx(Se,{className:"w-4 h-4 text-green-500"}):e.jsx(us,{className:"w-4 h-4"})})]})]})}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(F,{variant:"ghost",onClick:d,disabled:r,children:[e.jsx(St,{className:"w-4 h-4 mr-2"}),i("setupWizard.authStep.back")]}),e.jsxs(F,{variant:"outline",onClick:l,disabled:n||r,children:[e.jsx(Pt,{className:`w-4 h-4 mr-2 ${n?"animate-spin":""}`}),i(n?"setupWizard.authStep.checking":"setupWizard.authStep.refreshStatus")]})]})]})}function Xa({accounts:t,privacyMode:a,onSelect:s,onAddNew:n,onBack:r}){const{t:d}=W();return e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:d("setupWizard.accountStep.selectAccount",{count:t.length})}),e.jsx("div",{className:"grid gap-2 max-h-[320px] overflow-y-auto pr-1",children:t.map(o=>{const l=ts(o.id,o.email,o.tokenFile),i=o.provider?.toLowerCase()==="codex"?ss(l):null;return e.jsxs("button",{type:"button",onClick:()=>s(o),className:"flex items-center justify-between p-3 border rounded-lg hover:bg-muted/50 transition-colors text-left",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center",children:e.jsx(Re,{className:"w-4 h-4 text-muted-foreground"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:X("font-medium",a&&bt),children:l.email}),e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[i?.label?e.jsx(q,{variant:"outline",className:X("text-[10px] h-4 px-1.5 border-transparent",i.audience==="business"?"bg-sky-500/12 text-sky-700 dark:text-sky-300":i.audience==="free"?"bg-slate-200/70 text-slate-700 dark:bg-slate-700/40 dark:text-slate-200":"bg-emerald-500/12 text-emerald-700 dark:text-emerald-300"),children:i.label}):l.audienceLabel?e.jsx(q,{variant:"outline",className:X("text-[10px] h-4 px-1.5 border-transparent",l.audience==="business"?"bg-sky-500/12 text-sky-700 dark:text-sky-300":l.audience==="free"?"bg-slate-200/70 text-slate-700 dark:bg-slate-700/40 dark:text-slate-200":"bg-emerald-500/12 text-emerald-700 dark:text-emerald-300"),children:l.audienceLabel}):null,!i?.label&&l.detailLabel&&e.jsx(q,{variant:"outline",className:"text-[10px] h-4 px-1.5",children:l.detailLabel}),o.isDefault&&e.jsx("span",{className:"text-xs text-muted-foreground",children:d("setupWizard.accountStep.defaultAccount")})]})]})]}),e.jsx(cs,{className:"w-4 h-4 text-muted-foreground"})]},o.id)})}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("span",{className:"w-full border-t"})}),e.jsx("div",{className:"relative flex justify-center text-xs uppercase",children:e.jsx("span",{className:"bg-background px-2 text-muted-foreground",children:d("setupWizard.accountStep.or")})})]}),e.jsxs("button",{type:"button",className:"w-full flex items-center gap-3 p-3 border-2 border-dashed border-primary/50 rounded-lg hover:border-primary hover:bg-primary/5 transition-colors text-left",onClick:n,children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center shrink-0",children:e.jsx(Ae,{className:"w-4 h-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-primary",children:d("setupWizard.accountStep.addNewAccount")}),e.jsx("div",{className:"text-xs text-muted-foreground",children:d("setupWizard.accountStep.addNewAccountDesc")})]})]}),e.jsx("div",{className:"flex items-center justify-between pt-2",children:e.jsxs(F,{variant:"ghost",onClick:r,children:[e.jsx(St,{className:"w-4 h-4 mr-2"}),d("setupWizard.accountStep.back")]})})]})}const $t="__custom__";function Ya({selectedProvider:t,catalog:a,selectedAccount:s,variantName:n,modelName:r,isPending:d,privacyMode:o,onVariantNameChange:l,onModelChange:i,onBack:m,onSkip:p,onCreate:j}){const{t:f}=W(),h=a||fe[t],E=h?.models||[],w=r&&!E.some(g=>g.id===r),[P,S]=c.useState(w),A=t==="agy"&&r.trim().length>0?ue(r):!1,N=s?ts(s.id,s.email,s.tokenFile):null,k=t==="codex"&&N?ss(N):null,x=g=>{g===$t?(S(!0),i("")):(S(!1),i(g))};return e.jsxs("div",{className:"space-y-4",children:[s&&e.jsxs("div",{className:"flex min-w-0 items-start gap-2 rounded-md bg-muted/50 p-2 text-sm",children:[e.jsx(Re,{className:"w-4 h-4 shrink-0"}),e.jsxs("div",{className:"min-w-0 space-y-1",children:[e.jsxs("span",{children:[f("setupVariant.using")," ",e.jsx("span",{className:X("break-all",o&&bt),children:N?.email})]}),(N?.audienceLabel||N?.detailLabel)&&e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[k?.label?e.jsx(q,{variant:"outline",className:X("text-[10px] h-4 px-1.5 border-transparent",k.audience==="business"?"bg-sky-500/12 text-sky-700 dark:text-sky-300":k.audience==="free"?"bg-slate-200/70 text-slate-700 dark:bg-slate-700/40 dark:text-slate-200":"bg-emerald-500/12 text-emerald-700 dark:text-emerald-300"),children:k.label}):N?.audienceLabel?e.jsx(q,{variant:"outline",className:X("text-[10px] h-4 px-1.5 border-transparent",N.audience==="business"?"bg-sky-500/12 text-sky-700 dark:text-sky-300":N.audience==="free"?"bg-slate-200/70 text-slate-700 dark:bg-slate-700/40 dark:text-slate-200":"bg-emerald-500/12 text-emerald-700 dark:text-emerald-300"),children:N.audienceLabel}):null,!k?.label&&N?.detailLabel&&e.jsx(q,{variant:"outline",className:"text-[10px] h-4 px-1.5",children:N.detailLabel})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{htmlFor:"variant-name",children:f("setupVariant.variantNameRequired")}),e.jsx(de,{id:"variant-name",value:n,onChange:g=>l(g.target.value),placeholder:f("setupVariant.variantNamePlaceholder")}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[f("setupVariant.invokeHintPrefix")," ccs ",n||"<name>",' "prompt"']})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{children:f("setupVariant.model")}),P?e.jsxs("div",{className:"space-y-2",children:[e.jsx(de,{value:r,onChange:g=>i(g.target.value),placeholder:f("setupVariant.modelPlaceholder")}),A&&e.jsx("p",{className:"text-xs text-destructive",children:f("providerEditor.agyDenylist")}),e.jsx("button",{type:"button",className:"text-xs text-primary hover:underline",onClick:()=>{S(!1),t==="agy"&&ue(r)&&i("")},children:f("setupVariant.choosePresetInstead")})]}):e.jsxs(Be,{value:E.some(g=>g.id===r)?r:"",onValueChange:x,children:[e.jsx(Ve,{className:"min-w-0",children:e.jsx($e,{placeholder:f("setupVariant.selectModel")})}),e.jsxs(We,{className:"max-w-[calc(100vw-2rem)]",children:[E.map(g=>e.jsx(Ce,{value:g.id,children:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate",children:g.name}),g.description&&e.jsxs("span",{className:"truncate text-xs text-muted-foreground",children:["- ",g.description]})]})},g.id)),e.jsx(Ce,{value:$t,children:e.jsx("span",{className:"text-primary",children:f("setupVariant.customModelName")})})]})]}),e.jsx("div",{className:"text-xs text-muted-foreground",children:P?f("setupVariant.enterAnyModel"):f("setupVariant.defaultModel",{model:h?.defaultModel||f("setupVariant.providerDefault")})})]}),e.jsxs("div",{className:"flex flex-col gap-2 pt-2 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs(F,{variant:"ghost",onClick:m,className:"justify-start",children:[e.jsx(St,{className:"w-4 h-4 mr-2"}),f("setupVariant.back")]}),e.jsxs("div",{className:"flex flex-col-reverse gap-2 sm:flex-row sm:items-center",children:[e.jsx(F,{variant:"ghost",onClick:p,children:f("setupVariant.skip")}),e.jsx(F,{onClick:j,disabled:!n||d||A,children:f(d?"setupVariant.creating":"setupVariant.createVariant")})]})]}),e.jsx("p",{className:"text-xs text-center text-muted-foreground",children:f("setupVariant.skipHint")})]})}function Za({variantName:t,onClose:a}){const{t:s}=W();return e.jsxs("div",{className:"space-y-4 text-center",children:[e.jsx("div",{className:"flex justify-center",children:e.jsx("div",{className:"w-16 h-16 bg-green-100 dark:bg-green-900/30 rounded-full flex items-center justify-center",children:e.jsx(Se,{className:"w-8 h-8 text-green-600 dark:text-green-400"})})}),e.jsxs("div",{children:[e.jsx("div",{className:"font-semibold text-lg",children:s("setupWizard.successStep.title")}),e.jsx("div",{className:"text-sm text-muted-foreground",children:s("setupWizard.successStep.subtitle")})]}),e.jsx(Zt,{children:e.jsxs(es,{className:"p-4 space-y-2",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:s("setupWizard.successStep.usage")}),e.jsxs("code",{className:"block px-3 py-2 bg-muted rounded-md font-mono text-sm",children:["ccs ",t,' "your prompt here"']})]})}),e.jsx(F,{onClick:a,className:"w-full",children:s("setupWizard.successStep.done")})]})}function en({open:t,onClose:a}){const[s,n]=c.useState("provider"),[r,d]=c.useState(""),[o,l]=c.useState(null),[i,m]=c.useState(""),[p,j]=c.useState(""),[f,h]=c.useState(!1),[E,w]=c.useState(!1),{data:P,refetch:S}=as(),{data:A}=ns(),N=Ms(),k=Ds(),x=Is(),{privacyMode:g}=rs(),I=P?.authStatus.find(R=>R.provider===r),u=c.useMemo(()=>I?.accounts||[],[I?.accounts]),T=c.useMemo(()=>Et(A?.catalogs),[A?.catalogs]),y=!!A;c.useEffect(()=>{if(!t){const R=setTimeout(()=>{n("provider"),d(""),l(null),m(""),j(""),w(!1)},0);return()=>clearTimeout(R)}},[t]),c.useEffect(()=>{if(s==="auth"&&u.length>0&&!E){const R=setTimeout(()=>{n("account")},0);return()=>clearTimeout(R)}},[s,u,E]);const z=async()=>{h(!0),await S(),h(!1)},D=()=>{const R=(I?.accounts?.length||0)===0;k.mutate({provider:r},{onSuccess:async b=>{if(R){const J=await gt(r,void 0,y?T[r]:void 0);J.success&&J.presetName?B.success(`Applied "${J.presetName}" preset`):J.success||B.warning(me.t("commonToast.accountAddedPresetFailed"))}b.account&&(l(b.account),n("variant")),S()}})},O=R=>{d(R),(P?.authStatus.find(Y=>Y.provider===R)?.accounts||[]).length===0?n("auth"):n("account")},_=R=>{l(R),n("variant")},G=async()=>{if(!(!i||!r))try{await N.mutateAsync({name:i,provider:r,model:p||void 0,account:o?.id}),n("success")}catch(R){console.error("Failed to create variant:",R)}},V=`ccs ${r} --auth --add`,H=Es(s),C=R=>{if(!R&&(k.isPending&&r&&x.mutate(r),s==="success"||s==="provider")){a();return}};return e.jsx(Nt,{open:t,onOpenChange:C,children:e.jsxs(yt,{className:"grid max-h-[calc(100dvh-2rem)] w-[calc(100vw-2rem)] max-w-lg grid-rows-[auto_minmax(0,1fr)_auto] overflow-hidden p-0 sm:max-w-lg",onPointerDownOutside:R=>{s!=="success"&&s!=="provider"&&R.preventDefault()},onEscapeKeyDown:R=>{(k.isPending||N.isPending)&&R.preventDefault()},children:[e.jsxs(wt,{className:"min-w-0 px-6 pt-6 pr-12",children:[e.jsxs(kt,{className:"flex min-w-0 items-center gap-2",children:[e.jsx(Mt,{className:"w-5 h-5 text-primary"}),me.t("setupWizard.title")]}),e.jsxs(is,{children:[s==="provider"&&me.t("setupWizard.stepProviderDesc"),s==="auth"&&me.t("setupWizard.stepAuthDesc"),s==="account"&&me.t("setupWizard.stepAccountDesc"),s==="variant"&&me.t("setupWizard.stepVariantDesc"),s==="success"&&me.t("setupWizard.stepSuccessDesc")]})]}),e.jsxs("div",{className:"min-h-0 space-y-4 overflow-y-auto px-6 py-4",children:[s==="provider"&&e.jsx(Qa,{providers:_t,onSelect:O}),s==="auth"&&e.jsx(Ja,{selectedProvider:r,providers:_t,authCommand:V,isRefreshing:f,isPending:k.isPending,onBack:()=>n("provider"),onStartAuth:D,onRefresh:z}),s==="account"&&e.jsx(Xa,{accounts:u,privacyMode:g,onSelect:_,onAddNew:()=>{w(!0),n("auth")},onBack:()=>n("provider")}),s==="variant"&&e.jsx(Ya,{selectedProvider:r,catalog:T[r],selectedAccount:o,variantName:i,modelName:p,isPending:N.isPending,privacyMode:g,onVariantNameChange:m,onModelChange:j,onBack:()=>u.length>0?n("account"):n("provider"),onSkip:a,onCreate:G}),s==="success"&&e.jsx(Za,{variantName:i,onClose:a})]}),e.jsx("div",{className:"px-6 pb-6",children:e.jsx(Wa,{currentProgress:H,allSteps:Ts})})]})})}const tn=3e3,sn=300*1e3,an=3;function dt(t){t.invalidateQueries({queryKey:["cliproxy-catalog"]}),t.invalidateQueries({queryKey:["cliproxy-models"]})}async function ct(t){const a=await t.text();if(!a)return{};try{return JSON.parse(a)}catch{const s=t.status>=400?`Request failed with status ${t.status}`:void 0;return s?{error:s}:{}}}function nn(t,a){const s=typeof t.message=="string"?t.message:typeof t.error=="string"?t.error:a,n=Array.isArray(t.hints)?t.hints.filter(r=>typeof r=="string"&&r.trim().length>0):[];return n.length>0?[s,...n].join(`
|
|
2
|
-
`):s}const je={provider:null,isAuthenticating:!1,error:null,authUrl:null,oauthState:null,isSubmittingCallback:!1,isDeviceCodeFlow:!1};function rn(){const{t}=W(),[a,s]=c.useState(je),n=c.useRef(je),r=c.useRef(0),d=c.useRef(null),o=c.useRef(null),l=c.useRef(0),i=c.useRef(0),m=c.useRef(!1),p=jt(),j=c.useCallback(S=>S===r.current,[]),f=c.useCallback(()=>{o.current&&(clearInterval(o.current),o.current=null),i.current=0},[]);c.useEffect(()=>()=>{d.current?.abort(),f(),m.current=!1},[f]),c.useEffect(()=>{n.current=a},[a]);const h=c.useCallback(async(S,A,N)=>{if(j(N)){if(Date.now()-l.current>sn){f(),j(N)&&s(k=>({...k,isAuthenticating:!1,error:t("toasts.providerAuthTimeout")}));return}try{const k=await fetch(`/api/cliproxy/auth/${S}/status?state=${encodeURIComponent(A)}`);if(!j(N))return;const x=await k.json();if(i.current=0,x.status==="ok"){if(!(typeof x.account=="object"&&x.account!==null)){f();const I=t("toasts.providerAccountRegistrationFailed");B.error(I),s(u=>({...u,isAuthenticating:!1,error:I}));return}f(),p.invalidateQueries({queryKey:["cliproxy-auth"]}),p.invalidateQueries({queryKey:["cliproxy-accounts"]}),p.invalidateQueries({queryKey:["account-quota"]}),dt(p),B.success(t("toasts.providerAuthSuccess",{provider:S})),m.current=!1,s(je)}else if(x.status==="auth_url"){const g=x.url||x.auth_url;g&&(s(I=>({...I,authUrl:g})),m.current||(m.current=!0,window.open(g,"_blank")))}else if(x.status==="device_code"){f();const g=x.user_code&&x.verification_url?`Open ${x.verification_url} and enter code: ${x.user_code}`:"Switch to Device Code method and try again.";B.error(t("toasts.providerDeviceCodeInCallback")),s(I=>({...I,isAuthenticating:!1,error:g}))}else if(x.status==="error"){f();const g=x.error||"Authentication failed";B.error(g),s(I=>({...I,isAuthenticating:!1,error:g}))}}catch(k){if(!j(N)||(i.current+=1,i.current<an))return;f();const x=k instanceof Error&&k.message.trim().length>0?k.message:t("toasts.providerLostStatusEndpoint");B.error(x),s(g=>({...g,isAuthenticating:!1,error:x}))}}},[j,p,f,t]),E=c.useCallback(async(S,A)=>{if(!Ee(S)){s({...je,error:t("toasts.providerUnknown",{provider:S})});return}d.current?.abort(),f(),m.current=!1,i.current=0;const N=new AbortController,k=r.current+1;r.current=k,d.current=N;const g=(A?.flowType||(os(S)?"device_code":"authorization_code"))==="device_code",I=A?.startEndpoint||(g?"start":"start-url"),u={nickname:A?.nickname,kiroMethod:A?.kiroMethod,kiroIDCStartUrl:A?.kiroIDCStartUrl,kiroIDCRegion:A?.kiroIDCRegion,kiroIDCFlow:A?.kiroIDCFlow,gitlabAuthMode:A?.gitlabAuthMode,gitlabBaseUrl:A?.gitlabBaseUrl,gitlabPersonalAccessToken:A?.gitlabPersonalAccessToken,riskAcknowledgement:A?.riskAcknowledgement};s({provider:S,isAuthenticating:!0,error:null,authUrl:null,oauthState:null,isSubmittingCallback:!1,isDeviceCodeFlow:g});try{if(I==="start")fetch(`/api/cliproxy/auth/${S}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u),signal:N.signal}).then(async T=>{if(!j(k))return;const y=await ct(T);if(!j(k))return;const z=y.success===!0,D=typeof y.account=="object"&&y.account!==null;if(T.ok&&z&&D)p.invalidateQueries({queryKey:["cliproxy-auth"]}),p.invalidateQueries({queryKey:["cliproxy-accounts"]}),p.invalidateQueries({queryKey:["account-quota"]}),dt(p),m.current=!1,s(je);else{const O=typeof y.error=="string"?y.error:t(z?"toasts.providerAccountRegistrationFailed":"auth.loginFailed");B.error(O),s(_=>({..._,isAuthenticating:!1,error:O}))}}).catch(T=>{if(!j(k)||T instanceof Error&&T.name==="AbortError")return;const y=T instanceof Error?T.message:"Authentication failed";B.error(y),s(z=>({...z,isAuthenticating:!1,error:y}))});else{const T=await fetch(`/api/cliproxy/auth/${S}/start-url`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u),signal:N.signal});if(!j(k))return;const y=await ct(T);if(!j(k))return;const z=y.success===!0;if(!T.ok||!z){const _=nn(y,t("toasts.providerStartOAuthFailed"));throw new Error(_)}const D=typeof y.authUrl=="string"?y.authUrl:null,O=typeof y.state=="string"?y.state:null;if(s(_=>({..._,authUrl:D,oauthState:O})),D&&(m.current=!0,window.open(D,"_blank")),O){if(l.current=Date.now(),!D){if(await h(S,O,k),!j(k))return;const _=n.current;if(!_.isAuthenticating||_.provider!==S)return}o.current=setInterval(()=>{h(S,O,k)},tn)}}}catch(T){if(!j(k))return;if(T instanceof Error&&T.name==="AbortError"){m.current=!1,s(je);return}const y=T instanceof Error?T.message:t("auth.loginFailed");B.error(y),s(z=>({...z,isAuthenticating:!1,error:y}))}},[j,h,f,p,t]),w=c.useCallback(()=>{const S=a.provider;r.current+=1,d.current?.abort(),f(),m.current=!1,s(je),S&&Qe.cliproxy.auth.cancel(S).catch(()=>{})},[a.provider,f]),P=c.useCallback(async S=>{if(!a.provider)return;const A=r.current,N=a.provider;s(k=>({...k,isSubmittingCallback:!0,error:null}));try{const k=await fetch(`/api/cliproxy/auth/${N}/submit-callback`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({redirectUrl:S})});if(!j(A))return;const x=await ct(k);if(!j(A))return;const g=x.success===!0,I=x.status==="wait",u=typeof x.account=="object"&&x.account!==null;if(k.ok&&I)s(T=>({...T,isSubmittingCallback:!1,error:null}));else if(k.ok&&g&&u)f(),p.invalidateQueries({queryKey:["cliproxy-auth"]}),p.invalidateQueries({queryKey:["cliproxy-accounts"]}),p.invalidateQueries({queryKey:["account-quota"]}),dt(p),B.success(t("toasts.providerAuthSuccess",{provider:N})),s(je);else{const T=typeof x.error=="string"?x.error:t(g?"toasts.providerAccountRegistrationFailed":"toasts.providerCallbackFailed");throw new Error(T)}}catch(k){if(!j(A))return;const x=k instanceof Error?k.message:t("toasts.providerSubmitCallbackFailed");B.error(x),s(g=>({...g,isSubmittingCallback:!1,error:x}))}},[j,a.provider,p,f,t]);return c.useMemo(()=>({...a,startAuth:E,cancelAuth:w,submitCallback:P}),[a,E,w,P])}function vt({className:t,compact:a=!1,showAcknowledgement:s=!1,acknowledgementPhrase:n=Je,acknowledgementText:r="",onAcknowledgementTextChange:d,disabled:o=!1,showProxySettingsLink:l=!1}){const{t:i}=W(),m=i("accountSafetyWarning.title"),p=i("accountSafetyWarning.subtitle"),j=i("accountSafetyWarning.firstLine"),f=i("accountSafetyWarning.secondLine"),h="https://github.com/kaitranntt/ccs/issues/509",E=i("accountSafetyWarning.issueLabel"),w=i("accountSafetyWarning.proxySettingsLabel");return a?e.jsx("section",{role:"alert",className:X("border-b border-amber-200/70 bg-amber-50/45 dark:bg-amber-950/5",t),children:e.jsxs("div",{className:"flex flex-col gap-3 px-6 py-3 lg:flex-row lg:items-start lg:justify-between",children:[e.jsxs("div",{className:"min-w-0 flex items-start gap-3",children:[e.jsx("div",{className:"mt-0.5 inline-flex h-6 w-6 items-center justify-center rounded-md bg-amber-500/12 text-amber-700 dark:text-amber-300",children:e.jsx(Ye,{className:"h-3.5 w-3.5"})}),e.jsxs("div",{className:"min-w-0 space-y-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("p",{className:"text-xs font-semibold leading-5",children:m}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:p})]}),e.jsx("p",{className:"text-xs leading-5 text-muted-foreground",children:j}),e.jsx("p",{className:"text-xs font-medium leading-5 text-amber-900 dark:text-amber-200",children:f})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2 lg:justify-end",children:[e.jsxs("a",{href:h,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 rounded-md border border-amber-500/25 bg-background/90 px-2 py-1 text-[11px] font-medium text-amber-800 transition-colors hover:bg-amber-500/10 dark:text-amber-200",children:[E,e.jsx(Ae,{className:"h-3 w-3"})]}),l?e.jsxs("a",{href:"/settings?tab=proxy",className:"inline-flex items-center gap-1 rounded-md border border-amber-500/25 bg-background/90 px-2 py-1 text-[11px] font-medium text-amber-800 transition-colors hover:bg-amber-500/10 dark:text-amber-200",children:[e.jsx(Gt,{className:"h-3 w-3"}),w]}):null,e.jsx(q,{variant:"outline",className:"border-amber-500/40 text-[10px] text-amber-700 dark:text-amber-300",children:"High Risk"})]})]})}):e.jsxs("section",{role:"alert",className:X("relative overflow-hidden rounded-xl border border-amber-500/30 bg-gradient-to-br from-amber-50 via-background to-rose-50/70 shadow-sm dark:from-amber-950/20 dark:to-rose-950/20",t),children:[e.jsx("div",{className:"absolute inset-x-0 top-0 h-0.5 bg-gradient-to-r from-amber-500 via-orange-500 to-rose-500"}),e.jsxs("div",{className:"space-y-3 p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("div",{className:"mt-0.5 inline-flex h-7 w-7 items-center justify-center rounded-md bg-amber-500/15 text-amber-700 dark:text-amber-400",children:e.jsx(Ye,{className:"h-4 w-4"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold leading-5",children:m}),e.jsx("p",{className:"text-xs text-muted-foreground",children:p})]})]}),e.jsx(q,{variant:"outline",className:"border-amber-500/40 text-amber-700 dark:text-amber-300",children:"High Risk"})]}),e.jsxs("div",{className:"space-y-2 text-sm leading-relaxed",children:[e.jsx("p",{children:j}),e.jsx("p",{className:"font-medium text-amber-900 dark:text-amber-200",children:f}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"CCS is provided as-is and does not take responsibility for suspension, bans, or access loss from upstream providers."})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("a",{href:h,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1.5 rounded-md border border-amber-500/30 bg-amber-500/10 px-2.5 py-1 text-xs font-medium text-amber-800 transition-colors hover:bg-amber-500/15 dark:text-amber-200",children:[E,e.jsx(Ae,{className:"h-3.5 w-3.5"})]}),l&&e.jsxs("a",{href:"/settings?tab=proxy",className:"inline-flex items-center gap-1.5 rounded-md border border-amber-500/30 bg-amber-500/10 px-2.5 py-1 text-xs font-medium text-amber-800 transition-colors hover:bg-amber-500/15 dark:text-amber-200",children:[e.jsx(Gt,{className:"h-3.5 w-3.5"}),w]}),e.jsx("span",{className:"rounded-md border border-border/70 bg-muted/60 px-2.5 py-1 text-xs text-muted-foreground",children:"Applies to CLI and dashboard auth"})]}),s&&d&&e.jsxs("div",{className:"rounded-lg border border-amber-500/25 bg-amber-500/5 p-2.5",children:[e.jsxs(ee,{htmlFor:"account-risk-ack-text",className:"text-xs leading-5",children:["Type exact phrase to continue:"," ",e.jsx("code",{className:"rounded bg-muted px-1 py-0.5 font-mono",children:n})]}),e.jsx(de,{id:"account-risk-ack-text",value:r,onChange:P=>d(P.target.value),placeholder:n,disabled:o,className:"mt-2 font-mono text-xs"})]})]})]})}function on({className:t,value:a,onChange:s,disabled:n=!1}){const{t:r}=W(),d=[a.reviewedIssue509,a.understandsBanRisk,a.acceptsFullResponsibility,a.typedPhrase.trim().replace(/\s+/g," ").toUpperCase()===Bt].filter(Boolean).length,o=d/4*100,l=i=>{s({...a,...i})};return e.jsxs("section",{role:"alert",className:X("relative overflow-hidden rounded-xl border border-rose-500/35 bg-gradient-to-br from-rose-50 via-background to-amber-50/70 p-4 shadow-sm dark:from-rose-950/20 dark:to-amber-950/20",t),children:[e.jsx("div",{className:"absolute inset-x-0 top-0 h-0.5 bg-gradient-to-r from-rose-500 via-orange-500 to-amber-500"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("div",{className:"mt-0.5 inline-flex h-7 w-7 items-center justify-center rounded-md bg-rose-500/15 text-rose-700 dark:text-rose-300",children:e.jsx(Ye,{className:"h-4 w-4"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-semibold leading-5",children:r("antigravityChecklist.title")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:r("antigravityChecklist.subtitle")})]})]}),e.jsx(q,{variant:"outline",className:"border-rose-500/40 text-rose-700 dark:text-rose-300",children:r("antigravityChecklist.mandatory")})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[e.jsx("span",{children:r("antigravityChecklist.completion")}),e.jsx("span",{children:r("antigravityChecklist.stepsCount",{current:d})})]}),e.jsx(Rs,{value:o,className:"h-2"})]}),e.jsxs("div",{className:"space-y-3 rounded-lg border border-rose-500/20 bg-rose-500/5 p-3",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Xe,{id:"agy-step-reviewed-issue",checked:a.reviewedIssue509,onCheckedChange:i=>l({reviewedIssue509:!!i}),disabled:n}),e.jsx(ee,{htmlFor:"agy-step-reviewed-issue",className:"text-xs leading-5",children:"Step 1: I reviewed issue #509 and understand AGY OAuth can trigger account bans/suspensions."})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Xe,{id:"agy-step-understands-risk",checked:a.understandsBanRisk,onCheckedChange:i=>l({understandsBanRisk:!!i}),disabled:n}),e.jsx(ee,{htmlFor:"agy-step-understands-risk",className:"text-xs leading-5",children:"Step 2: I understand this OAuth action is my own decision and I accept the upstream risk."})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Xe,{id:"agy-step-accept-responsibility",checked:a.acceptsFullResponsibility,onCheckedChange:i=>l({acceptsFullResponsibility:!!i}),disabled:n}),e.jsx(ee,{htmlFor:"agy-step-accept-responsibility",className:"text-xs leading-5",children:"Step 3: I accept full responsibility. CCS is not liable for suspension, bans, or access loss."})]})]}),e.jsxs("div",{className:"space-y-2 rounded-lg border border-amber-500/25 bg-amber-500/5 p-3",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-medium text-amber-800 dark:text-amber-200",children:[e.jsx(ms,{className:"h-3.5 w-3.5"}),"Step 4: Type exact phrase to continue"]}),e.jsx(de,{value:a.typedPhrase,onChange:i=>l({typedPhrase:i.target.value}),placeholder:Bt,disabled:n,className:"font-mono text-xs"})]}),e.jsx("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:e.jsxs("a",{href:"https://github.com/kaitranntt/ccs/issues/509",target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1.5 rounded-md border border-rose-500/30 bg-rose-500/10 px-2.5 py-1 font-medium text-rose-800 transition-colors hover:bg-rose-500/15 dark:text-rose-200",children:["Read issue #509",e.jsx(Ae,{className:"h-3.5 w-3.5"})]})})]})]})}function ln(t){return t.trim().replace(/\s+/g," ").toUpperCase()}function dn({open:t,onClose:a,provider:s,displayName:n,catalog:r,isFirstAccount:d=!1}){const[o,l]=c.useState(""),[i,m]=c.useState(""),[p,j]=c.useState(!1),[f,h]=c.useState(null),[E,w]=c.useState(""),[P,S]=c.useState(ot),[A,N]=c.useState(!1),[k,x]=c.useState(!1),[g,I]=c.useState(Lt),[u,T]=c.useState(""),[y,z]=c.useState(""),[D,O]=c.useState(Ft),[_,G]=c.useState("oauth"),[V,H]=c.useState(""),[C,R]=c.useState(""),{t:b}=W(),J=c.useRef(!1),Y=c.useRef(0),ne=c.useRef(!1),U=rn(),re=Os(),$=s==="kiro",Z=s==="gitlab",ae=s==="agy"||s==="gemini",pe=s==="gemini"&&!A,xe=s==="agy"&&!A,Pe=ae&&k,ye=Pa(P),v=ln(E)===Je,K=os(s),we=_s(g),ge=$&&g==="idc",ke=$&&Fs(g),Te=$?Ls(g,D):void 0,at=$?Ks(g):void 0,nt=$?Te==="device_code":K,ie=U.isAuthenticating||re.isPending,_e=o.trim(),Le=u.trim(),Fe=y.trim(),Ue=V.trim(),L=C.trim(),te=f||U.error,oe=c.useCallback(async()=>{const M=await fetch("/api/settings/auth/antigravity-risk");if(!M.ok)throw new Error("Failed to load power user mode setting");return(await M.json()).antigravityAckBypass===!0},[]),ve=c.useCallback(async({pendingMessage:M=null,disabledMessage:he=null}={})=>{const it=++Y.current;x(!0),M!==null&&h(M);try{const Ke=await oe();return Y.current!==it||(N(Ke),he?h(Ke?null:he):M!==null&&h(null)),Ke}catch{return Y.current!==it||(N(!1),h(he??b("addAccountDialog.powerUserLoadFailed")),ne.current||(ne.current=!0,B.error(b("addAccountDialog.powerUserLoadFailed")))),!1}finally{Y.current===it&&x(!1)}},[oe,b]),rt=()=>{l(""),m(""),j(!1),h(null),w(""),S(ot),N(!1),x(!1),I(Lt),T(""),z(""),O(Ft),G("oauth"),H(""),R(""),Y.current+=1,ne.current=!1,J.current=!1,a()};c.useEffect(()=>{t&&(w(""),S(ot),h(null))},[s,t]),c.useEffect(()=>()=>{Y.current+=1},[]),c.useEffect(()=>{if(!t||!ae){Y.current+=1,N(!1),x(!1);return}ve()},[t,s,ae,ve]),c.useEffect(()=>{if(!t||s!=="agy"||!U.error||!A)return;const M=U.error.toLowerCase();(M.includes("agy_risk_ack_required")||M.includes("responsibility acknowledgement")||M.includes("responsibility checklist"))&&ve({pendingMessage:b("addAccountDialog.powerUserLoading"),disabledMessage:b("addAccountDialog.powerUserUnavailableRetry")})},[U.error,t,A,s,ve,b]),c.useEffect(()=>{!U.isAuthenticating&&!U.error&&U.provider===null&&t&&J.current&&(J.current=!1,(async()=>{try{const he=await gt(s,void 0,r);he.success&&he.presetName&&d&&B.success(`Applied "${he.presetName}" preset`)}catch{}rt()})())},[U.isAuthenticating,U.error,U.provider]);const Ot=()=>{U.cancelAuth(),rt()},ys=async()=>{U.authUrl&&(await navigator.clipboard.writeText(U.authUrl),j(!0),setTimeout(()=>j(!1),2e3))},ws=()=>{i.trim()&&U.submitCallback(i.trim())},ks=()=>{if(Pe){h(b("addAccountDialog.powerUserLoading"));return}if(xe&&!ye){h("Complete all Antigravity responsibility steps before authenticating this provider.");return}if(pe&&!v){h(`Type "${Je}" to acknowledge the account safety warning before authenticating this provider.`);return}if(h(null),ge&&!Le){h("IDC Start URL is required for Kiro IAM Identity Center login.");return}if(Z&&_==="pat"&&!L){h(b("addAccountDialog.gitlabPatRequired"));return}J.current=!0,U.startAuth(s,{nickname:_e||void 0,kiroMethod:$?g:void 0,kiroIDCStartUrl:ge?Le:void 0,kiroIDCRegion:ge&&Fe?Fe:void 0,kiroIDCFlow:ge?D:void 0,gitlabAuthMode:Z?_:void 0,gitlabBaseUrl:Z&&Ue?Ue:void 0,gitlabPersonalAccessToken:Z&&_==="pat"&&L?L:void 0,flowType:$?Te:void 0,startEndpoint:$?at:Z&&_==="pat"?"start":void 0,riskAcknowledgement:xe?{version:Ma,reviewedIssue509:P.reviewedIssue509,understandsBanRisk:P.understandsBanRisk,acceptsFullResponsibility:P.acceptsFullResponsibility,typedPhrase:P.typedPhrase}:void 0})},Cs=()=>{J.current=!0,re.mutate(void 0,{onSuccess:async()=>{const M=await gt("kiro",void 0,r);M.success&&M.presetName&&d&&B.success(`Applied "${M.presetName}" preset`),rt()}})},As=M=>{M||Ot()},le=U.isAuthenticating;return e.jsx(Nt,{open:t,onOpenChange:As,children:e.jsxs(yt,{className:"grid max-h-[calc(100dvh-2rem)] w-[calc(100vw-2rem)] max-w-md grid-rows-[auto_minmax(0,1fr)] overflow-hidden p-0 sm:max-w-md",onInteractOutside:M=>{le&&M.preventDefault()},children:[e.jsxs(wt,{className:"min-w-0 px-6 pt-6 pr-12",children:[e.jsx(kt,{children:b("addAccountDialog.title",{displayName:n})}),e.jsx(is,{children:b($?"addAccountDialog.descKiro":nt?"addAccountDialog.descDeviceCode":"addAccountDialog.descOauth")})]}),e.jsxs("div",{className:"min-h-0 space-y-4 overflow-y-auto px-6 py-4",children:[xe&&!le&&e.jsx(on,{value:P,onChange:M=>{S(M),h(null)},disabled:ie}),ae&&A&&!le&&e.jsxs("div",{className:"rounded-lg border border-amber-400/35 bg-amber-50/70 p-3 text-xs text-amber-900 dark:border-amber-800/60 dark:bg-amber-950/25 dark:text-amber-100",children:[e.jsxs("div",{className:"mb-1.5 flex items-center gap-1.5 font-semibold",children:[e.jsx(ms,{className:"h-3.5 w-3.5"}),b("addAccountDialog.powerUserEnabled")]}),b("addAccountDialog.powerUserSkipped")]}),pe&&!le&&e.jsx(vt,{showAcknowledgement:!0,acknowledgementPhrase:Je,acknowledgementText:E,onAcknowledgementTextChange:M=>{w(M),h(null)},disabled:ie}),$&&!le&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{htmlFor:"kiro-auth-method",children:b("addAccountDialog.authMethod")}),e.jsxs(Be,{value:g,onValueChange:M=>{I(M),h(null)},children:[e.jsx(Ve,{id:"kiro-auth-method",children:e.jsx($e,{placeholder:b("addAccountDialog.selectKiroAuthMethod")})}),e.jsx(We,{children:Us.map(M=>e.jsx(Ce,{value:M.id,children:M.label},M.id))})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:we.description}),ke&&e.jsxs("p",{className:"text-xs text-muted-foreground",children:["If your browser does not return automatically after login, CCS can accept the final",e.jsx("span",{className:"mx-1 rounded bg-muted px-1.5 py-0.5 font-mono text-[11px]",children:"kiro://..."}),"callback URL in the next step."]})]}),ge&&!le&&e.jsxs("div",{className:"space-y-4 rounded-lg border border-border/60 bg-muted/20 p-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{htmlFor:"kiro-idc-start-url",children:"IDC Start URL"}),e.jsx(de,{id:"kiro-idc-start-url",value:u,onChange:M=>{T(M.target.value),h(null)},placeholder:"https://d-xxx.awsapps.com/start",disabled:ie}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Required for organization IAM Identity Center login."})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{htmlFor:"kiro-idc-region",children:"IDC Region"}),e.jsx(de,{id:"kiro-idc-region",value:y,onChange:M=>{z(M.target.value),h(null)},placeholder:"us-east-1",disabled:ie}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Optional. Leave blank to use the upstream default region."})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{htmlFor:"kiro-idc-flow",children:"IDC Flow"}),e.jsxs(Be,{value:D,onValueChange:M=>{O(M),h(null)},children:[e.jsx(Ve,{id:"kiro-idc-flow",children:e.jsx($e,{placeholder:"{/* TODO i18n: missing key */}Select IDC flow"})}),e.jsxs(We,{children:[e.jsx(Ce,{value:"authcode",children:"Authorization Code"}),e.jsx(Ce,{value:"device",children:"Device Code"})]})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Auth Code opens a browser and may need the final callback URL pasted back. Device Code shows a verification code instead."})]})]}),Z&&!le&&e.jsxs("div",{className:"space-y-4 rounded-lg border border-border/60 bg-muted/20 p-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{htmlFor:"gitlab-auth-mode",children:b("addAccountDialog.gitlabAuthMethod")}),e.jsxs(Be,{value:_,onValueChange:M=>{G(M),h(null)},children:[e.jsx(Ve,{id:"gitlab-auth-mode",children:e.jsx($e,{placeholder:b("addAccountDialog.selectGitlabAuthMethod")})}),e.jsxs(We,{children:[e.jsx(Ce,{value:"oauth",children:b("addAccountDialog.gitlabAuthOAuth")}),e.jsx(Ce,{value:"pat",children:b("addAccountDialog.gitlabAuthPat")})]})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:b("addAccountDialog.gitlabAuthHint")})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{htmlFor:"gitlab-base-url",children:b("addAccountDialog.gitlabUrl")}),e.jsx(de,{id:"gitlab-base-url",value:V,onChange:M=>{H(M.target.value),h(null)},placeholder:b("addAccountDialog.gitlabUrlPlaceholder"),disabled:ie}),e.jsx("p",{className:"text-xs text-muted-foreground",children:b("addAccountDialog.gitlabUrlHint")})]}),_==="pat"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{htmlFor:"gitlab-pat",children:b("addAccountDialog.gitlabPat")}),e.jsx(de,{id:"gitlab-pat",type:"password",value:C,onChange:M=>{R(M.target.value),h(null)},placeholder:b("addAccountDialog.gitlabPatPlaceholder"),disabled:ie}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[b("addAccountDialog.gitlabPatHint")," ",e.jsx("span",{className:"font-mono",children:"api"})," and"," ",e.jsx("span",{className:"font-mono",children:"read_user"})," scopes."]})]})]}),!le&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{htmlFor:"nickname",children:b("addAccountDialog.nicknameOptional")}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Re,{className:"w-4 h-4 text-muted-foreground"}),e.jsx(de,{id:"nickname",value:o,onChange:M=>{l(M.target.value),h(null)},placeholder:b("addAccountDialog.nicknamePlaceholder"),disabled:ie,className:"flex-1"})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:b("addAccountDialog.nicknameOptionalHint")})]}),le&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"text-center",children:[e.jsxs("p",{className:"text-sm text-muted-foreground",children:[e.jsx(ce,{className:"w-4 h-4 inline mr-2 animate-spin"}),b("addAccountDialog.waitingForAuth")]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:U.isDeviceCodeFlow?b("addAccountDialog.deviceCodeHint"):ke?"Complete sign-in in your browser. If it does not return automatically, paste the final kiro:// callback URL below.":b("addAccountDialog.browserHint")})]}),U.authUrl&&!U.isDeviceCodeFlow&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{className:"text-xs",children:b("addAccountDialog.openUrlLabel")}),e.jsxs("div",{className:"p-3 bg-muted rounded-md",children:[e.jsx("p",{className:"text-xs text-muted-foreground break-all font-mono line-clamp-3",children:U.authUrl}),e.jsxs("div",{className:"flex gap-2 mt-2",children:[e.jsx(F,{variant:"outline",size:"sm",onClick:ys,children:p?e.jsxs(e.Fragment,{children:[e.jsx(Se,{className:"w-3 h-3 mr-1"}),b("addAccountDialog.copied")]}):e.jsxs(e.Fragment,{children:[e.jsx(us,{className:"w-3 h-3 mr-1"}),b("addAccountDialog.copy")]})}),e.jsxs(F,{variant:"outline",size:"sm",onClick:()=>{if(!U.authUrl)return;const M=window.open(U.authUrl,"_blank");(!M||M.closed||typeof M.closed>"u")&&B.warning(b("addAccountDialog.popupBlocked"),{duration:5e3})},children:[e.jsx(Ae,{className:"w-3 h-3 mr-1"}),b("addAccountDialog.open")]})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{htmlFor:"callback-url",className:"text-xs",children:ke?"Browser did not return? Paste the final kiro:// callback URL:":b("addAccountDialog.redirectPasteLabel")}),e.jsx(de,{id:"callback-url",value:i,onChange:M=>m(M.target.value),placeholder:ke?"kiro://kiro.kiroAgent/authenticate-success?code=...&state=...":b("addAccountDialog.callbackPlaceholder"),className:"font-mono text-xs"}),e.jsx(F,{variant:"secondary",size:"sm",onClick:ws,disabled:!i.trim()||U.isSubmittingCallback,children:U.isSubmittingCallback?e.jsxs(e.Fragment,{children:[e.jsx(ce,{className:"w-3 h-3 mr-1 animate-spin"}),b("addAccountDialog.submitting")]}):b("addAccountDialog.submitCallback")})]})]}),!U.authUrl&&!U.isDeviceCodeFlow&&e.jsx("p",{className:"text-xs text-center text-muted-foreground",children:ke?"Preparing the Kiro sign-in URL. If it does not open automatically, it will appear here shortly.":b("addAccountDialog.preparingUrl")})]}),te&&e.jsx("p",{className:"text-xs text-center text-destructive whitespace-pre-line",children:te}),re.isPending&&e.jsxs("p",{className:"text-sm text-center text-muted-foreground",children:[e.jsx(ce,{className:"w-4 h-4 inline mr-2 animate-spin"}),b("addAccountDialog.importingToken")]}),e.jsxs("div",{className:"flex flex-col-reverse gap-2 pt-2 sm:flex-row sm:items-center sm:justify-end",children:[e.jsx(F,{variant:"ghost",onClick:Ot,className:"w-full sm:w-auto",children:b("addAccountDialog.cancel")}),$&&!le&&e.jsx(F,{variant:"outline",onClick:Cs,disabled:ie,className:"w-full sm:w-auto",children:re.isPending?e.jsxs(e.Fragment,{children:[e.jsx(ce,{className:"w-4 h-4 mr-2 animate-spin"}),b("addAccountDialog.importing")]}):e.jsxs(e.Fragment,{children:[e.jsx(Na,{className:"w-4 h-4 mr-2"}),b("addAccountDialog.importFromIde")]})}),!le&&e.jsxs(F,{onClick:ks,className:"w-full sm:w-auto",disabled:ie||Pe||xe&&!ye||pe&&!v,children:[e.jsx(Ae,{className:"w-4 h-4 mr-2"}),b("addAccountDialog.authenticate")]})]})]})]})})}const cn=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"];function un(t){const a=t?.env||{};return cn.filter(s=>!a[s]?.trim())}function mn(t,a){const[s,n]=c.useState(null),[r,d]=c.useState(!1),o=jt(),{data:l,isLoading:i,refetch:m}=Yt({queryKey:["settings",t],queryFn:async()=>{const D=await fetch(`/api/settings/${t}/raw`);if(!D.ok){const O=t==="cursor"?`~/.ccs/cliproxy/providers/${t}.settings.json`:Ee(t)?`~/.ccs/${t}.settings.json`:`~/.ccs/profiles/${t}/settings.json`;return{profile:t,settings:{env:{}},mtime:Date.now(),path:O}}return D.json()}}),p=l?.settings,j=c.useMemo(()=>s!==null?s:p?JSON.stringify(p,null,2):`{
|
|
3
|
-
"env": {}
|
|
4
|
-
}`,[s,p]),f=c.useCallback(D=>{n(D)},[]),h=c.useMemo(()=>{try{return JSON.parse(j)}catch{return p||{env:{}}}},[j,p]),E=h?.env?.ANTHROPIC_MODEL,w=h?.env?.ANTHROPIC_DEFAULT_OPUS_MODEL,P=h?.env?.ANTHROPIC_DEFAULT_SONNET_MODEL,S=h?.env?.ANTHROPIC_DEFAULT_HAIKU_MODEL,A=c.useMemo(()=>Hs(h?.env||{}),[h]),N=c.useCallback((D,O)=>qs(D,O,{supportsExtendedContext:_=>Ba(t,_,a)}),[a,t]),k=c.useCallback((D,O)=>{const _={...h?.env||{},[D]:O},G=Ut(D)?N(_,A):_;delete G.CCS_EXTENDED_CONTEXT;const V={...h,env:G};n(JSON.stringify(V,null,2))},[N,h,A]),x=c.useCallback(D=>{const O=h?.env||{},_=N(O,D);delete _.CCS_EXTENDED_CONTEXT;const G={...h,env:_};n(JSON.stringify(G,null,2))},[N,h]),g=c.useCallback(D=>{const O={...h?.env||{},...D},G=Object.keys(D).some(Ut)?N(O,A):O;delete G.CCS_EXTENDED_CONTEXT;const V={...h,env:G};n(JSON.stringify(V,null,2))},[N,h,A]),I=c.useMemo(()=>{try{return JSON.parse(j),!0}catch{return!1}},[j]),u=c.useMemo(()=>s===null?!1:s!==JSON.stringify(p,null,2),[s,p]),T=c.useMemo(()=>un(h),[h]),y=Ss({mutationFn:async()=>{const D=JSON.parse(j),O=await fetch(`/api/settings/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:D,expectedMtime:l?.mtime})});if(O.status===409)throw new Error("CONFLICT");if(!O.ok)throw new Error("Failed to save");return O.json()},onSuccess:D=>{o.invalidateQueries({queryKey:["settings",t]}),n(null),D?.warning?B.success(me.t("settings.saved"),{description:D.warning}):B.success(me.t("settings.saved"))},onError:D=>{D.message==="CONFLICT"?d(!0):B.error(D.message)}}),z=async D=>{d(!1),D?(await m(),y.mutate()):n(null)};return{data:l,isLoading:i,refetch:m,rawJsonContent:j,rawJsonEdits:s,isRawJsonValid:I,hasChanges:u,currentSettings:h,currentModel:E,opusModel:w,sonnetModel:P,haikuModel:S,extendedContextEnabled:A,toggleExtendedContext:x,handleRawJsonChange:f,updateEnvValue:k,updateEnvValues:g,saveMutation:{mutate:()=>y.mutate(),isPending:y.isPending},conflictDialog:r,setConflictDialog:d,handleConflictResolve:z,missingRequiredFields:T}}const pn=/-(medium|high|xhigh|fast)$/i,xn=["medium","high","xhigh"];function hn(t){return t?.trim()??""}function st(t){let a=hn(t),s,n;for(let r=0;r<2;r+=1){const d=a.match(pn);if(!d?.[1])break;const o=d[1].toLowerCase();if(o==="fast"){if(n)break;n="fast"}else{if(s)break;s=o}a=a.slice(0,-d[0].length)}return{baseModel:a,effort:s,serviceTier:n}}function Ns(t){return st(t).effort}function fn(t){return st(t).serviceTier}function gn(t){return st(t).baseModel}function Wt(t,a){const s=st(t),n=s.baseModel;return!n||!a?s.serviceTier?`${n}-${s.serviceTier}`:n:[n,a,s.serviceTier].filter(Boolean).join("-")}function vn(t,a,s=[]){if(!a){const o=Ns(t);return[Wt(t,o)]}const n=gn(t),r=[],d=o=>{const l=o?Wt(n,o):n;r.push(l);for(const i of s)r.push(`${l}-${i}`)};d(void 0);for(const o of xn)if(d(o),o===a)break;return r}function jn(t,a){if(!t)return null;const s=Ns(t);return s?{label:`Pinned ${s}`,explicit:!0}:{label:"Auto effort",explicit:!1}}function bn({label:t}){return e.jsx(q,{variant:"outline",className:"text-[9px] h-4 px-1",children:t})}function qe({modelId:t}){const a=jn(t);return a?e.jsx(q,{variant:a.explicit?"secondary":"outline",className:"text-[9px] h-4 px-1 uppercase",children:a.label}):null}function ze({modelId:t}){const a=fn(t);return a?e.jsx(q,{variant:"secondary",className:"text-[9px] h-4 px-1 uppercase",children:a}):null}function Qt(t,a){if(!t)return"";if(!a?.prefix)return t;const s=`${a.prefix}/`;return t.startsWith(s)?t.slice(s.length):t}function Ge(t,a){return a?.recommendedModelId??t}function ut(t,a,s,n){return n?vn(s,t,a):[s]}function Ne({label:t,description:a,value:s,onChange:n,catalog:r,allModels:d,routing:o,disabled:l}){const{t:i}=W(),m=r?.provider==="codex",p=c.useMemo(()=>Rt(r,d),[d,r]),j=c.useMemo(()=>Ga(r?.provider??"",r,d),[d,r]),f=new Set(p.map(x=>x.id)),h=c.useMemo(()=>new Map((o?.models??[]).map(x=>[x.modelId.toLowerCase(),x])),[o]),E=c.useMemo(()=>new Set(p.flatMap(x=>ut(x.codexMaxEffort,x.codexServiceTiers,Ge(x.id,h.get(x.id.toLowerCase())),m))),[m,p,h]),w=c.useMemo(()=>h.get(Qt(s,o).toLowerCase()),[o,h,s]),P=p.flatMap(x=>{const g=h.get(x.id.toLowerCase());return ut(x.codexMaxEffort,x.codexServiceTiers,Ge(x.id,g),m).map(u=>({value:u,groupKey:"recommended",searchText:`${u} ${x.id} ${x.name} ${g?.recommendedModelId??""}`,keywords:[x.tier??"",r?.provider??""],triggerContent:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate font-mono text-xs",children:u}),g?.pinnedAvailable?e.jsx(q,{variant:"secondary",className:"text-[9px] h-4 px-1 uppercase",children:g.prefix}):null,m&&e.jsx(qe,{modelId:u}),m&&e.jsx(ze,{modelId:u})]}),itemContent:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate font-mono text-xs",children:u}),x.tier==="paid"&&e.jsx(bn,{label:i("providerModelSelector.paid")}),g?.unprefixedStatus==="shadowed"?e.jsx(q,{variant:"outline",className:"text-[9px] h-4 px-1",children:i("providerModelSelector.shadowed")}):null,g?.unprefixedStatus==="prefix-only"?e.jsx(q,{variant:"outline",className:"text-[9px] h-4 px-1",children:i("providerModelSelector.prefixOnly")}):null,m&&e.jsx(qe,{modelId:u}),m&&e.jsx(ze,{modelId:u})]})}))}),S=j.filter(x=>!f.has(x.id)).filter(x=>!E.has(Ge(x.id,h.get(x.id.toLowerCase())))).flatMap(x=>{const g=h.get(x.id.toLowerCase());return ut(void 0,void 0,Ge(x.id,g),m).map(u=>({value:u,groupKey:"all",searchText:`${u} ${x.id} ${g?.recommendedModelId??""}`,keywords:[x.owned_by],triggerContent:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate font-mono text-xs",children:u}),g?.pinnedAvailable?e.jsx(q,{variant:"secondary",className:"text-[9px] h-4 px-1 uppercase",children:g.prefix}):null,m&&e.jsx(qe,{modelId:u}),m&&e.jsx(ze,{modelId:u})]}),itemContent:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate font-mono text-xs",children:u}),g?.unprefixedStatus==="shadowed"?e.jsx(q,{variant:"outline",className:"text-[9px] h-4 px-1",children:i("providerModelSelector.shadowed")}):null,g?.unprefixedStatus==="prefix-only"?e.jsx(q,{variant:"outline",className:"text-[9px] h-4 px-1",children:i("providerModelSelector.prefixOnly")}):null,m&&e.jsx(qe,{modelId:u}),m&&e.jsx(ze,{modelId:u})]})}))}),A=!!s&&!P.some(x=>x.value===s)&&!S.some(x=>x.value===s),N=s?{value:s,groupKey:"current",searchText:s,triggerContent:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate font-mono text-xs",children:s}),e.jsx(q,{variant:"outline",className:"text-[9px] h-4 px-1",children:i("providerModelSelector.current")})]}),itemContent:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate font-mono text-xs",children:s}),e.jsx(q,{variant:"outline",className:"text-[9px] h-4 px-1",children:i("providerModelSelector.current")})]})}:null,k=P.length+S.length>0;return e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium",children:t}),a&&e.jsx("p",{className:"text-[10px] text-muted-foreground",children:a})]}),e.jsx(Ia,{value:s||void 0,onChange:n,disabled:l,placeholder:i("providerModelSelector.selectModel"),searchPlaceholder:i("searchableSelect.searchModels"),emptyText:i(k?"searchableSelect.noResults":"providerModelSelector.noModelsAvailable"),triggerClassName:"h-9",groups:[...A&&N?[{key:"current",label:e.jsx("span",{className:"text-xs text-muted-foreground",children:i("providerModelSelector.currentValue")})}]:[],{key:"recommended",label:e.jsx("span",{className:"text-xs text-primary",children:i("providerModelSelector.recommended")})},...S.length>0?[{key:"all",label:e.jsx("span",{className:"text-xs text-muted-foreground",children:i("providerModelSelector.allModelsCount",{count:S.length})})}]:[]],options:[...A&&N?[N]:[],...P,...S]}),w?e.jsxs("div",{className:X("rounded-md border px-2.5 py-2 text-[11px]",w.unprefixedStatus==="safe"?"border-border/70 bg-muted/25 text-muted-foreground":"border-amber-300/60 bg-amber-50 text-amber-900 dark:border-amber-500/30 dark:bg-amber-950/25 dark:text-amber-100"),children:[e.jsxs("div",{className:"font-medium",children:[w.pinnedAvailable?i("providerModelSelector.preferredPinnedModel"):i("providerModelSelector.pinnedRouteStatus")," ",e.jsx("code",{children:w.pinnedAvailable?w.recommendedModelId:w.pinnedModelId})]}),e.jsx("p",{className:"mt-1 leading-5",children:w.summary})]}):null,s&&!w&&Qt(s,o)!==s?e.jsx("div",{className:"rounded-md border border-amber-300/60 bg-amber-50 px-2.5 py-2 text-[11px] text-amber-900 dark:border-amber-500/30 dark:bg-amber-950/25 dark:text-amber-100",children:i("providerModelSelector.pinnedModelNotAdvertised",{model:s})}):null]})}function Jt(t,a){const s=n=>a?.models.find(d=>d.modelId.toLowerCase()===n.toLowerCase())?.recommendedModelId??n;return{default:s(t.default),opus:s(t.opus),sonnet:s(t.sonnet),haiku:s(t.haiku)}}function Nn({open:t,onClose:a,currentValues:s,onApply:n,onSave:r,isSaving:d,catalog:o,allModels:l,routing:i}){const{t:m}=W(),[p,j]=c.useState(Jt(s,i)),[f,h]=c.useState(""),E=w=>{w?(j(Jt(s,i)),h("")):a()};return e.jsx(Nt,{open:t,onOpenChange:E,children:e.jsxs(yt,{className:"sm:max-w-md",children:[e.jsx(wt,{children:e.jsxs(kt,{className:"flex items-center gap-2",children:[e.jsx(Mt,{className:"w-4 h-4"}),m("customPresetDialog.title")]})}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(ee,{htmlFor:"preset-name",children:m("customPresetDialog.presetNameOptional")}),e.jsx(de,{id:"preset-name",value:f,onChange:w=>h(w.target.value),placeholder:m("customPresetDialog.presetNamePlaceholder"),className:"text-sm"})]}),e.jsx(Tt,{}),o?.provider==="codex"&&e.jsxs("p",{className:"text-[11px] text-muted-foreground rounded-md border bg-muted/30 px-2.5 py-2",children:[m("customPresetDialog.codexTipPrefix")," ",e.jsx("code",{children:"-medium"}),", ",e.jsx("code",{children:"-high"}),", and"," ",e.jsx("code",{children:"-xhigh"})," ",m("customPresetDialog.codexTipSuffix")]}),e.jsx(Ne,{label:m("customPresetDialog.defaultModel"),description:m("customPresetDialog.defaultModelDesc"),value:p.default,onChange:w=>j({...p,default:w}),catalog:o,allModels:l,routing:i}),e.jsx(Ne,{label:m("customPresetDialog.opusModel"),description:m("customPresetDialog.opusModelDesc"),value:p.opus,onChange:w=>j({...p,opus:w}),catalog:o,allModels:l,routing:i}),e.jsx(Ne,{label:m("customPresetDialog.sonnetModel"),description:m("customPresetDialog.sonnetModelDesc"),value:p.sonnet,onChange:w=>j({...p,sonnet:w}),catalog:o,allModels:l,routing:i}),e.jsx(Ne,{label:m("customPresetDialog.haikuModel"),description:m("customPresetDialog.haikuModelDesc"),value:p.haiku,onChange:w=>j({...p,haiku:w}),catalog:o,allModels:l,routing:i})]}),e.jsxs(zs,{className:"gap-2 sm:gap-0",children:[e.jsx(F,{variant:"outline",onClick:a,children:m("customPresetDialog.cancel")}),r&&e.jsxs(F,{variant:"secondary",onClick:()=>r(p,f||void 0),disabled:d||!f.trim(),children:[d?e.jsx(ce,{className:"w-4 h-4 mr-1 animate-spin"}):e.jsx(Dt,{className:"w-4 h-4 mr-1"}),m("customPresetDialog.savePreset")]}),e.jsxs(F,{onClick:()=>n(p,f||void 0),children:[e.jsx(Oe,{className:"w-4 h-4 mr-1"}),m("customPresetDialog.applyPreset")]})]})]})})}function be({label:t,command:a}){return e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-muted-foreground",children:t}),e.jsxs("div",{className:"mt-1 flex gap-2",children:[e.jsx("code",{className:"flex-1 px-2 py-1.5 bg-muted rounded text-xs font-mono truncate",children:a}),e.jsx(ls,{value:a,size:"icon",className:"h-6 w-6"})]})]})}function yn({provider:t,displayName:a,baseProvider:s,defaultTarget:n,data:r,authStatus:d,supportsModelConfig:o=!1}){const{t:l}=W(),i=n||"claude",m=i==="droid",p=t==="codex",j=s||d.provider||t,f=Gs(j),h=i==="claude"?`ccs ${t}`:`ccs ${t} --target claude`,E=`${h} --config`,w=`${h} --auth --add`,P=`${h} --accounts`;return e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"p-4 space-y-6",children:[e.jsxs("div",{children:[e.jsxs("h3",{className:"text-sm font-medium flex items-center gap-2 mb-3",children:[e.jsx(ps,{className:"w-4 h-4"}),"Provider Information"]}),e.jsxs("div",{className:"space-y-3 bg-card rounded-lg border p-4 shadow-sm",children:[e.jsxs("div",{className:"grid grid-cols-[100px_1fr] gap-2 text-sm items-center",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:l("providerEditor.provider")}),e.jsx("span",{className:"font-mono",children:a})]}),r&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid grid-cols-[100px_1fr] gap-2 text-sm items-center",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:l("providerEditor.filePath")}),e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx("code",{className:"bg-muted px-1.5 py-0.5 rounded text-xs break-all",children:r.path}),e.jsx(ls,{value:r.path,size:"icon",className:"h-5 w-5"})]})]}),e.jsxs("div",{className:"grid grid-cols-[100px_1fr] gap-2 text-sm items-center",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:l("providerEditor.lastModified")}),e.jsx("span",{className:"text-xs",children:new Date(r.mtime).toLocaleString()})]})]}),e.jsxs("div",{className:"grid grid-cols-[100px_1fr] gap-2 text-sm items-center",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:l("providerEditor.status")}),d.authenticated?e.jsxs(q,{variant:"outline",className:"w-fit text-green-600 border-green-200 bg-green-50",children:[e.jsx(ya,{className:"w-3 h-3 mr-1"}),"Authenticated"]}):e.jsx(q,{variant:"outline",className:"w-fit text-muted-foreground",children:"Not connected"})]}),e.jsxs("div",{className:"grid grid-cols-[100px_1fr] gap-2 text-sm items-center",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:l("providerEditor.defaultTarget")}),e.jsx("span",{className:"font-mono",children:i})]}),f&&e.jsxs("div",{className:"grid grid-cols-[100px_1fr] gap-2 text-sm items-start",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:l("providerConfig.trackLabel")}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"font-mono",children:l(f.labelKey)}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[l(f.hintKey),Bs(j)?` ${l("providerConfig.plusTrackNote")}`:""]})]})]})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-medium mb-3",children:l("providerEditor.quickUsage")}),e.jsxs("div",{className:"space-y-3 bg-card rounded-lg border p-4 shadow-sm",children:[e.jsx(be,{label:"Run with prompt",command:`ccs ${t} "your prompt"`}),p&&e.jsxs(e.Fragment,{children:[e.jsx(be,{label:"Run on native Codex (shortcut)",command:'ccsxp "your prompt"'}),e.jsx(be,{label:"Run on native Codex (--target)",command:`ccs ${t} --target codex "your prompt"`})]}),e.jsx(be,{label:m?"Droid alias (explicit)":"Run on Droid",command:`ccs-droid ${t} "your prompt"`}),e.jsx(be,{label:m?"Override to Claude":"Run on Droid (--target)",command:`ccs ${t} --target ${m?"claude":"droid"} "your prompt"`}),o&&e.jsx(be,{label:i==="claude"?"Change model":"Change model (Claude target)",command:E}),e.jsx(be,{label:i==="claude"?"Add account":"Add account (Claude target)",command:w}),e.jsx(be,{label:i==="claude"?"List accounts":"List accounts (Claude target)",command:P}),i!=="claude"&&e.jsx("p",{className:"text-xs text-muted-foreground",children:"Account and model-management flags stay on Claude target. Codex and Droid runtime launches reject those CLIProxy management commands."})]})]})]})})}function wn(t){const a=t.replace(/\\/g,"/"),n=a.lastIndexOf("/cliproxy/providers/");return n!==-1?a.slice(n+1):a.replace(/^.*\//,"")}function kn({displayName:t,logoProvider:a,provider:s,data:n,isLoading:r,hasChanges:d,isRawJsonValid:o,isSaving:l,isRemoteMode:i,port:m,onRefetch:p,onSave:j}){const{t:f}=W();return e.jsxs("div",{className:"px-6 py-4 border-b bg-background flex items-center justify-between shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(At,{provider:a||s,size:"lg"}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h2",{className:"text-lg font-semibold",children:t}),i&&e.jsxs(q,{variant:"secondary",className:"text-xs gap-1 bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400",children:[e.jsx(xs,{className:"w-3 h-3"}),"Remote"]}),m&&e.jsxs(q,{variant:"outline",className:"text-xs gap-1 font-mono",children:[e.jsx(wa,{className:"w-3 h-3"}),":",m]}),!i&&n?.path&&e.jsx(q,{variant:"outline",className:"text-xs",children:wn(n.path)})]}),i?e.jsx("p",{className:"text-xs text-blue-600 dark:text-blue-400 mt-0.5",children:"Traffic auto-routed to remote server"}):n&&e.jsxs("p",{className:"text-xs text-muted-foreground mt-0.5",children:[f("providerEditor.lastModified"),": ",new Date(n.mtime).toLocaleString()]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(F,{variant:"ghost",size:"sm",onClick:p,disabled:r,children:e.jsx(Pt,{className:`w-4 h-4 ${r?"animate-spin":""}`})}),e.jsx(F,{size:"sm",onClick:j,disabled:l||!d||!o,children:l?e.jsxs(e.Fragment,{children:[e.jsx(ce,{className:"w-4 h-4 mr-1 animate-spin"}),"Saving..."]}):e.jsxs(e.Fragment,{children:[e.jsx(ka,{className:"w-4 h-4 mr-1"}),"Save"]})})]})]})}function Cn({models:t,provider:a,enabled:s,onToggle:n,disabled:r,className:d}){const{t:o}=W();if(t.length===0)return null;const l=t.some(p=>Kt(p.id)),i=t.some(p=>!Kt(p.id));let m="Compatible mappings stay on standard context unless you turn this on.";return l&&i?m="Gemini-compatible mappings can use 1M automatically. Claude mappings stay plain unless you turn this on.":l&&(m="Gemini-compatible mappings can use 1M by default. Turn this off to keep standard context."),e.jsxs("div",{className:X("rounded-lg border p-3 space-y-2",s?"border-primary/50 bg-primary/5":"border-border bg-muted/30",d),children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Oe,{className:X("w-4 h-4",s?"text-primary":"text-muted-foreground")}),e.jsx("span",{className:"text-sm font-medium",children:o("extendedContext.extendedContext")}),e.jsx(q,{variant:s?"default":"secondary",className:"text-[10px] h-5 px-1.5",children:"1M tokens"})]}),e.jsx(ds,{checked:s,onCheckedChange:n,disabled:r})]}),e.jsxs("div",{className:"flex items-start gap-2 text-xs text-muted-foreground",children:[e.jsx(ps,{className:"w-3.5 h-3.5 mt-0.5 shrink-0"}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("p",{children:["Applies the explicit ",e.jsx("code",{children:"[1m]"})," long-context suffix to compatible saved mappings."]}),e.jsx("p",{className:"text-[10px]",children:m}),e.jsxs("p",{className:"text-amber-600 dark:text-amber-500",children:["CCS only saves ",e.jsx("code",{children:"[1m]"}),". Provider pricing and entitlement are separate, and some accounts can still return 429 extra-usage errors for long-context requests."]})]})]})]})}function An(t,a){const s=t.presetMapping||{default:t.id,opus:t.id,sonnet:t.id,haiku:t.id};return{ANTHROPIC_MODEL:a(s.default),ANTHROPIC_DEFAULT_OPUS_MODEL:a(s.opus),ANTHROPIC_DEFAULT_SONNET_MODEL:a(s.sonnet),ANTHROPIC_DEFAULT_HAIKU_MODEL:a(s.haiku)}}function Sn({catalog:t,savedPresets:a,currentModel:s,opusModel:n,sonnetModel:r,haikuModel:d,providerModels:o,routing:l,provider:i,extendedContextEnabled:m,onExtendedContextToggle:p,onApplyPreset:j,onUpdateEnvValue:f,onOpenCustomPreset:h,onDeletePreset:E,isDeletePending:w}){const{t:P}=W(),S=(l?.models??[]).some(u=>u.pinnedAvailable),A=c.useMemo(()=>new Map((l?.models??[]).map(u=>[u.modelId.toLowerCase(),u])),[l]),N=u=>A.get(u.toLowerCase())?.recommendedModelId??u,k=c.useMemo(()=>{if(!t)return[];const u=[s,n,r,d].filter(y=>!!y).map(y=>Vs(y));return[...new Set(u)].map(y=>bs(t.provider,y,t)).filter(y=>!!y?.extendedContext)},[t,s,n,r,d]),x=c.useMemo(()=>Rt(t,o),[t,o]),g=c.useMemo(()=>{const u=x.filter(y=>y.presetMapping);return u.length===0?[]:u.some(y=>y.tier==="paid")?[{key:"free",label:"Free Tier",description:"Available on free or paid plans",badgeClassName:"text-[10px] bg-green-100 text-green-700 border-green-200",iconClassName:"text-green-600",models:u.filter(y=>y.tier!=="paid")},{key:"paid",label:"Paid Tier",description:"Requires paid access",badgeClassName:"text-[10px] bg-amber-100 text-amber-700 border-amber-200",iconClassName:"text-amber-700",models:u.filter(y=>y.tier==="paid")}].filter(y=>y.models.length>0):[{key:"default",models:u.slice(0,4)}]},[x]),I=g.length>0||a.length>0;return e.jsxs(e.Fragment,{children:[I&&e.jsxs("div",{children:[e.jsxs("h3",{className:"text-sm font-medium mb-2 flex items-center gap-2",children:[e.jsx(Mt,{className:"w-4 h-4"}),"Presets"]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:P("providerEditor.presets")}),e.jsxs("div",{className:"space-y-4",children:[g.map(u=>e.jsxs("div",{children:["label"in u&&u.label&&e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(q,{variant:"outline",className:u.badgeClassName,children:u.label}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:u.description})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:u.models.map(T=>e.jsxs(F,{variant:"outline",size:"sm",className:"text-xs h-7 gap-1",onClick:()=>j(An(T,N)),children:[e.jsx(Oe,{className:`w-3 h-3 ${"iconClassName"in u?u.iconClassName:""}`}),T.name]},T.id))})]},u.key)),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[a.map(u=>e.jsxs("div",{className:"group relative",children:[e.jsxs(F,{variant:"secondary",size:"sm",className:"text-xs h-7 gap-1 pr-6",onClick:()=>{j({ANTHROPIC_MODEL:N(u.default),ANTHROPIC_DEFAULT_OPUS_MODEL:N(u.opus),ANTHROPIC_DEFAULT_SONNET_MODEL:N(u.sonnet),ANTHROPIC_DEFAULT_HAIKU_MODEL:N(u.haiku)})},children:[e.jsx(Dt,{className:"w-3 h-3 fill-current"}),u.name]}),e.jsx(F,{variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-7 w-5 opacity-0 group-hover:opacity-100 hover:text-destructive",onClick:T=>{T.stopPropagation(),E(u.name)},disabled:w,children:e.jsx(It,{className:"w-3 h-3"})})]},u.name)),e.jsxs(F,{variant:"outline",size:"sm",className:"text-xs h-7 gap-1 border-primary/50 text-primary hover:bg-primary/10 hover:border-primary",onClick:h,children:[e.jsx(tt,{className:"w-3 h-3"}),"Custom"]})]})]})]}),e.jsx(Tt,{}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-medium mb-2",children:P("providerEditor.modelMapping")}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"Configure which models to use for each tier"}),l?e.jsx("p",{className:"text-[11px] text-muted-foreground mb-3 rounded-md border bg-muted/30 px-2.5 py-2",children:S?e.jsxs(e.Fragment,{children:["Preferred pinned model names use the ",e.jsxs("code",{children:[l.prefix,"/"]})," prefix. Unprefixed names can still resolve to a different backend when providers overlap."]}):e.jsxs(e.Fragment,{children:["Managed pinning for ",e.jsxs("code",{children:[l.prefix,"/"]})," is not currently advertised by the proxy. Unprefixed names may still be ambiguous until prefix repair completes."]})}):null,i==="codex"&&e.jsxs("p",{className:"text-[11px] text-muted-foreground mb-3 rounded-md border bg-muted/30 px-2.5 py-2",children:["Codex tip: suffixes ",e.jsx("code",{children:"-medium"}),", ",e.jsx("code",{children:"-high"}),", and ",e.jsx("code",{children:"-xhigh"})," ","pin reasoning effort. ",e.jsx("code",{children:"-fast"})," enables the Codex fast service tier on models that support it, including combined forms such as ",e.jsx("code",{children:"gpt-5.4-high-fast"}),"."]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(Ne,{label:"Default Model",description:"Used when no specific tier is requested",value:s,onChange:u=>f("ANTHROPIC_MODEL",u),catalog:t,allModels:o,routing:l}),k.length>0&&p&&e.jsx(Cn,{models:k,provider:i,enabled:m??!1,onToggle:p}),e.jsx(Ne,{label:"Opus (Most capable)",description:"For complex reasoning tasks",value:n,onChange:u=>f("ANTHROPIC_DEFAULT_OPUS_MODEL",u),catalog:t,allModels:o,routing:l}),e.jsx(Ne,{label:"Sonnet (Balanced)",description:"Balance of speed and capability",value:r,onChange:u=>f("ANTHROPIC_DEFAULT_SONNET_MODEL",u),catalog:t,allModels:o,routing:l}),e.jsx(Ne,{label:"Haiku (Fast)",description:"Quick responses for simple tasks",value:d,onChange:u=>f("ANTHROPIC_DEFAULT_HAIKU_MODEL",u),catalog:t,allModels:o,routing:l})]})]})]})}function Pn(t,a,s){return t?e.jsx(mt,{children:e.jsxs(pt,{children:[e.jsx(xt,{asChild:!0,children:e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[e.jsx(Aa,{className:"w-3 h-3","aria-hidden":"true"}),e.jsx("span",{className:X("font-mono max-w-[180px] truncate",a&&bt),title:t,children:t})]})}),e.jsx(ht,{side:"bottom",children:e.jsx("p",{className:"text-xs",children:s("providerEditor.gcpProjectIdReadonly")})})]})}):e.jsx(mt,{children:e.jsxs(pt,{children:[e.jsx(xt,{asChild:!0,children:e.jsxs("div",{className:"flex items-center gap-1 text-xs text-amber-600 dark:text-amber-500",children:[e.jsx(Ye,{className:"w-3 h-3","aria-label":"Warning"}),e.jsx("span",{children:s("providerEditor.projectIdNA")})]})}),e.jsx(ht,{side:"bottom",className:"max-w-[250px]",children:e.jsxs("div",{className:"text-xs space-y-1",children:[e.jsx("p",{className:"font-medium text-amber-600",children:s("providerEditor.missingProjectId")}),e.jsx("p",{children:s("providerEditor.missingProjectIdHint")})]})})]})})}function Mn({account:t,onSetDefault:a,onRemove:s,onPauseToggle:n,isRemoving:r,isPausingAccount:d,privacyMode:o,showQuota:l,selectable:i,selected:m,onSelectChange:p}){const{t:j}=W(),f=t.provider.toLowerCase(),{data:h}=$s(l),{data:E,isLoading:w}=Ws(f,t.id,l),P=Qs(h,t)?.lastUsedAt,S=i||n?e.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[i&&e.jsx("button",{type:"button",onClick:()=>p?.(!m),className:X("flex items-center justify-center w-5 h-5 rounded border-2 transition-colors shrink-0",m?"bg-primary border-primary text-primary-foreground":"border-muted-foreground/30 hover:border-primary/50"),"aria-label":m?"Deselect account":"Select account",children:m&&e.jsx(Se,{className:"w-3 h-3"})}),n&&e.jsx(mt,{children:e.jsxs(pt,{children:[e.jsx(xt,{asChild:!0,children:e.jsx(F,{variant:"ghost",size:"icon",className:"h-7 w-7 shrink-0",onClick:()=>n(!t.paused),disabled:d,children:d?e.jsx(ce,{className:"w-4 h-4 animate-spin"}):t.paused?e.jsx(hs,{className:"w-4 h-4 text-emerald-500"}):e.jsx(fs,{className:"w-4 h-4 text-muted-foreground hover:text-foreground"})})}),e.jsx(ht,{side:"top",children:t.paused?"Resume account":"Pause account"})]})})]}):void 0,A=e.jsxs(Js,{children:[e.jsx(Xs,{asChild:!0,children:e.jsx(F,{variant:"ghost",size:"icon",className:"h-7 w-7 shrink-0",children:e.jsx(Ca,{className:"w-4 h-4"})})}),e.jsxs(Ys,{align:"end",children:[!t.isDefault&&e.jsxs(Ht,{onClick:a,children:[e.jsx(Dt,{className:"w-4 h-4 mr-2"}),"Set as default"]}),e.jsxs(Ht,{className:"text-destructive focus:text-destructive",onClick:s,disabled:r,children:[e.jsx(gs,{className:"w-4 h-4 mr-2"}),r?"Removing...":"Remove account"]})]})]});return e.jsx("div",{className:X("rounded-lg border p-3 transition-colors overflow-hidden",t.isDefault?"border-primary/30 bg-primary/5":"border-border hover:bg-muted/30",t.paused&&"opacity-75",m&&"ring-2 ring-primary/50 bg-primary/5"),children:e.jsx(Zs,{mode:"detailed",provider:t.provider,accountId:t.id,email:t.email,displayEmail:t.email||t.id,tokenFile:t.tokenFile,tier:t.tier,isDefault:t.isDefault,paused:t.paused,privacyMode:o,showQuota:l,quota:E,quotaLoading:w,runtimeLastUsed:P,beforeIdentity:S,headerEnd:A,bodySlot:t.provider==="agy"?Pn(t.projectId,o,j):null,quotaInsetClassName:"pl-11"})})}function Dn({selectedCount:t,onPauseSelected:a,onResumeSelected:s,onClearSelection:n,isPausing:r,isResuming:d}){if(t<1)return null;const o=r||d;return e.jsxs("div",{className:"flex items-center gap-3 p-2 bg-muted/50 rounded-lg border mt-2",children:[e.jsxs("span",{className:"text-sm text-muted-foreground",children:[t," selected"]}),e.jsx(F,{variant:"ghost",size:"sm",className:"text-xs h-6 px-2",onClick:n,disabled:o,children:"Clear"}),e.jsxs("div",{className:"flex gap-2 ml-auto",children:[e.jsxs(F,{size:"sm",variant:"outline",className:"h-7 text-xs gap-1",onClick:a,disabled:o,children:[r?e.jsx(ce,{className:"w-3 h-3 animate-spin"}):e.jsx(fs,{className:"w-3 h-3"}),"Pause Selected"]}),e.jsxs(F,{size:"sm",variant:"outline",className:"h-7 text-xs gap-1",onClick:s,disabled:o,children:[d?e.jsx(ce,{className:"w-3 h-3 animate-spin"}):e.jsx(hs,{className:"w-3 h-3"}),"Resume Selected"]})]})]})}function In({accounts:t,onAddAccount:a,onSetDefault:s,onRemoveAccount:n,onPauseToggle:r,onSoloMode:d,onBulkPause:o,onBulkResume:l,isRemovingAccount:i,isPausingAccount:m,isSoloingAccount:p,isBulkPausing:j,isBulkResuming:f,privacyMode:h,showQuota:E,isKiro:w,kiroNoIncognito:P,onKiroNoIncognitoChange:S,kiroSettingsLoading:A}){const{t:N}=W(),[k,x]=c.useState(new Set),g=c.useMemo(()=>new Set(t.map(C=>C.id)),[t]),I=c.useMemo(()=>new Set([...k].filter(C=>g.has(C))),[k,g]),u=!!(o&&l),T=I.size,y=t.length>0&&I.size===t.length,z=I.size>0&&I.size<t.length,D=c.useCallback(C=>{x(R=>{const b=new Set(R);return b.has(C)?b.delete(C):b.add(C),b})},[]),O=c.useCallback(()=>{x(new Set(t.map(C=>C.id)))},[t]),_=c.useCallback(()=>{x(new Set)},[]),G=c.useCallback(()=>{y?_():O()},[y,O,_]),V=c.useCallback(()=>{o&&I.size>0&&(o(Array.from(I)),x(new Set))},[o,I]),H=c.useCallback(()=>{l&&I.size>0&&(l(Array.from(I)),x(new Set))},[l,I]);return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsxs("h3",{className:"text-sm font-medium flex items-center gap-2",children:[u&&t.length>0&&e.jsx(Xe,{checked:y,onCheckedChange:G,"aria-label":"Select all accounts",className:z?"data-[state=checked]:bg-primary/50":"",...z?{"data-state":"indeterminate"}:{}}),e.jsx(Re,{className:"w-4 h-4"}),N("providerEditor.accounts"),t.length>0&&e.jsx(q,{variant:"secondary",className:"text-xs",children:t.length})]}),e.jsxs(F,{variant:"default",size:"sm",className:"h-7 text-xs gap-1",onClick:a,children:[e.jsx(tt,{className:"w-3 h-3"}),N("providerEditor.addAccount")]})]}),u&&T>0&&e.jsx(Dn,{selectedCount:T,onPauseSelected:V,onResumeSelected:H,onClearSelection:_,isPausing:!!j,isResuming:!!f}),t.length>0?e.jsx("div",{className:"space-y-2",children:t.map(C=>e.jsx(Mn,{account:C,onSetDefault:()=>s(C.id),onRemove:()=>n(C.id),onPauseToggle:r?R=>r(C.id,R):void 0,onSoloMode:d?()=>d(C.id):void 0,isRemoving:i,isPausingAccount:m,isSoloingAccount:p,privacyMode:h,showQuota:E,selectable:u,selected:I.has(C.id),onSelectChange:()=>D(C.id)},C.id))}):e.jsxs("div",{className:"py-6 text-center text-muted-foreground bg-muted/30 rounded-lg border border-dashed",children:[e.jsx(Re,{className:"w-8 h-8 mx-auto mb-2 opacity-50"}),e.jsx("p",{className:"text-sm",children:N("providerEditor.noAccountsConnected")}),e.jsx("p",{className:"text-xs opacity-70",children:N("providerEditor.addAccountToStart")})]}),w&&S&&e.jsx("div",{className:"mt-3 pt-3 border-t border-dashed",children:e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(xs,{className:"w-3.5 h-3.5"}),e.jsx("span",{children:N("providerEditor.useIncognito")})]}),e.jsx(ds,{checked:!P,onCheckedChange:C=>S(!C),disabled:A,className:"scale-90"})]})})]})}function Tn({provider:t,catalog:a,savedPresets:s,currentModel:n,opusModel:r,sonnetModel:d,haikuModel:o,providerModels:l,routing:i,extendedContextEnabled:m,onExtendedContextToggle:p,onApplyPreset:j,onUpdateEnvValue:f,onOpenCustomPreset:h,onDeletePreset:E,isDeletePending:w,accounts:P,onAddAccount:S,onSetDefault:A,onRemoveAccount:N,onPauseToggle:k,onSoloMode:x,onBulkPause:g,onBulkResume:I,isRemovingAccount:u,isPausingAccount:T,isSoloingAccount:y,isBulkPausing:z,isBulkResuming:D,privacyMode:O,isRemoteMode:_}){const G=t.toLowerCase(),V=(ea.includes(G)||["anthropic","antigravity","gemini-cli","copilot","github-copilot"].includes(G))&&!_,H=t==="kiro",[C,R]=c.useState(!0),[b,J]=c.useState(!0),[Y,ne]=c.useState(!1),U=c.useCallback(async()=>{if(H)try{J(!0);const Z=(await Qe.config.get()).cliproxy;R(Z?.kiro_no_incognito??!0)}catch{R(!0)}finally{J(!1)}},[H]),re=c.useCallback(async $=>{R($),ne(!0);try{const Z=await Qe.config.get(),ae=Z.cliproxy??{};await Qe.config.update({...Z,cliproxy:{...ae,kiro_no_incognito:$}})}catch{R(!$)}finally{ne(!1)}},[]);return c.useEffect(()=>{U()},[U]),e.jsx(Ct,{className:"flex-1",children:e.jsxs("div",{className:"p-4 space-y-6",children:[e.jsx(Sn,{catalog:a,savedPresets:s,currentModel:n,opusModel:r,sonnetModel:d,haikuModel:o,providerModels:l,routing:i,provider:t,extendedContextEnabled:m,onExtendedContextToggle:p,onApplyPreset:j,onUpdateEnvValue:f,onOpenCustomPreset:h,onDeletePreset:E,isDeletePending:w}),e.jsx(Tt,{}),e.jsx(In,{accounts:P,onAddAccount:S,onSetDefault:A,onRemoveAccount:N,onPauseToggle:k,onSoloMode:x,onBulkPause:g,onBulkResume:I,isRemovingAccount:u,isPausingAccount:T,isSoloingAccount:y,isBulkPausing:z,isBulkResuming:D,privacyMode:O,showQuota:V,isKiro:H,kiroNoIncognito:C,onKiroNoIncognitoChange:re,kiroSettingsLoading:b||Y})]})})}function Xt({provider:t,displayName:a,authStatus:s,catalog:n,routing:r,logoProvider:d,baseProvider:o,isRemoteMode:l,port:i,defaultTarget:m,topNotice:p,onAddAccount:j,onSetDefault:f,onRemoveAccount:h,onPauseToggle:E,onSoloMode:w,onBulkPause:P,onBulkResume:S,isRemovingAccount:A,isPausingAccount:N,isSoloingAccount:k,isBulkPausing:x,isBulkResuming:g}){const[I,u]=c.useState(!1),{privacyMode:T}=rs(),{t:y}=W(),{data:z}=ta(),{data:D}=sa(t),O=aa(),_=na(),G=o||t,V=G.toLowerCase()==="agy",H=c.useMemo(()=>{const L=D?.presets||[];return V?L.filter(te=>!ue(te.default)&&!ue(te.opus)&&!ue(te.sonnet)&&!ue(te.haiku)):L},[V,D?.presets]),C=c.useMemo(()=>{if(!z?.models)return[];const te={gemini:["google"],agy:["antigravity"],codex:["openai"],cursor:["cursor"],gitlab:["gitlab","duo"],codebuddy:["codebuddy"],qwen:["alibaba","qwen"],iflow:["iflow"],kilo:["kilo"],kiro:["kiro","aws"],ghcp:["github","copilot"],kimi:["kimi","moonshot"]}[G.toLowerCase()]||[G.toLowerCase()];return z.models.filter(oe=>te.some(ve=>oe.owned_by.toLowerCase().includes(ve))?V?!ue(oe.id):!0:!1)},[V,z,G]),R=(o||t).toLowerCase(),{data:b,isLoading:J,refetch:Y,rawJsonContent:ne,rawJsonEdits:U,isRawJsonValid:re,hasChanges:$,currentModel:Z,opusModel:ae,sonnetModel:pe,haikuModel:xe,extendedContextEnabled:Pe,toggleExtendedContext:ye,handleRawJsonChange:v,updateEnvValue:K,updateEnvValues:we,saveMutation:ge,conflictDialog:ke,handleConflictResolve:Te,missingRequiredFields:at}=mn(t,n),nt=c.useMemo(()=>(s.accounts||[]).map(L=>({...L,provider:L.provider||o||t})),[s.accounts,o,t]),{data:ie}=Yt({queryKey:["auth-tokens-raw"],queryFn:async()=>{const L=await fetch("/api/settings/auth/tokens/raw");return L.ok?L.json():{apiKey:{value:"ccs-internal-managed"}}},staleTime:6e4}),_e=ie?.apiKey?.value??"ccs-internal-managed",Le=L=>{if(V&&[L.ANTHROPIC_MODEL,L.ANTHROPIC_DEFAULT_OPUS_MODEL,L.ANTHROPIC_DEFAULT_SONNET_MODEL,L.ANTHROPIC_DEFAULT_HAIKU_MODEL].some(oe=>typeof oe=="string"&&ue(oe))){B.error(y("providerEditor.agyDenylist"));return}we({ANTHROPIC_BASE_URL:`http://127.0.0.1:${i??ft}/api/provider/${R}`,ANTHROPIC_AUTH_TOKEN:_e,...L}),B.success(`Applied "${L.ANTHROPIC_MODEL?.split("/").pop()||"preset"}" preset`)},Fe=(L,te)=>{if(V&&[L.default,L.opus,L.sonnet,L.haiku].some(ve=>ue(ve))){B.error(y("providerEditor.agyDenylist"));return}we({ANTHROPIC_BASE_URL:`http://127.0.0.1:${i??ft}/api/provider/${R}`,ANTHROPIC_AUTH_TOKEN:_e,ANTHROPIC_MODEL:L.default,ANTHROPIC_DEFAULT_OPUS_MODEL:L.opus,ANTHROPIC_DEFAULT_SONNET_MODEL:L.sonnet,ANTHROPIC_DEFAULT_HAIKU_MODEL:L.haiku}),B.success(`Applied ${te?`"${te}"`:"custom"} preset`),u(!1)},Ue=(L,te)=>{if(!te){B.error(me.t("commonToast.enterPresetName"));return}if(V&&[L.default,L.opus,L.sonnet,L.haiku].some(oe=>ue(oe))){B.error(y("providerEditor.agyDenylist"));return}O.mutate({profile:t,data:{name:te,...L}}),u(!1)};return e.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden",children:[e.jsx(kn,{provider:t,displayName:a,logoProvider:d,data:b,isLoading:J,hasChanges:$,isRawJsonValid:re,isSaving:ge.isPending,isRemoteMode:l,port:i,onRefetch:Y,onSave:()=>ge.mutate()}),p?e.jsx("div",{className:"border-b bg-muted/10 px-4 py-3",children:p}):null,J?e.jsxs("div",{className:"flex-1 flex items-center justify-center",children:[e.jsx(ce,{className:"w-8 h-8 animate-spin text-muted-foreground"}),e.jsx("span",{className:"ml-3 text-muted-foreground",children:y("providerEditor.loadingSettings")})]}):e.jsxs("div",{className:"min-h-0 flex-1 grid grid-cols-[40%_60%] divide-x overflow-hidden",children:[e.jsx("div",{className:"flex min-h-0 min-w-0 flex-col overflow-hidden bg-muted/5",children:e.jsxs(ra,{defaultValue:"config",className:"h-full flex flex-col",children:[e.jsx("div",{className:"px-4 pt-4 shrink-0",children:e.jsxs(ia,{className:"w-full",children:[e.jsx(qt,{value:"config",className:"flex-1",children:"Model Config"}),e.jsx(qt,{value:"info",className:"flex-1",children:"Info & Usage"})]})}),e.jsxs("div",{className:"flex-1 overflow-hidden flex flex-col",children:[e.jsx(zt,{value:"config",className:"flex-1 mt-0 border-0 p-0 data-[state=inactive]:hidden flex flex-col overflow-hidden",children:e.jsx(Tn,{provider:t,catalog:n,savedPresets:H,currentModel:Z,opusModel:ae,sonnetModel:pe,haikuModel:xe,providerModels:C,routing:r,extendedContextEnabled:Pe,onExtendedContextToggle:ye,onApplyPreset:Le,onUpdateEnvValue:K,onOpenCustomPreset:()=>u(!0),onDeletePreset:L=>_.mutate({profile:t,name:L}),isDeletePending:_.isPending,accounts:nt,onAddAccount:j,onSetDefault:f,onRemoveAccount:h,onPauseToggle:E,onSoloMode:w,onBulkPause:P,onBulkResume:S,isRemovingAccount:A,isPausingAccount:N,isSoloingAccount:k,isBulkPausing:x,isBulkResuming:g,privacyMode:T,isRemoteMode:l})}),e.jsx(zt,{value:"info",className:"h-full mt-0 border-0 p-0 data-[state=inactive]:hidden",children:e.jsx(yn,{provider:t,displayName:a,baseProvider:o,defaultTarget:m,data:b,authStatus:s,supportsModelConfig:!!n})})]})]})}),e.jsxs("div",{className:"flex min-h-0 min-w-0 flex-col overflow-hidden",children:[e.jsxs("div",{className:"px-6 py-2 bg-muted/30 border-b flex items-center gap-2 shrink-0 h-[45px]",children:[e.jsx(Sa,{className:"w-4 h-4 text-muted-foreground"}),e.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:[y("rawEditorSection.rawConfig")," (JSON)"]})]}),e.jsx(oa,{rawJsonContent:ne,isRawJsonValid:re,rawJsonEdits:U,onRawJsonChange:v,profileEnv:b?.settings?.env,missingRequiredFields:at})]})]}),e.jsx(Da,{open:ke,title:"File Modified Externally",description:"This settings file was modified by another process. Overwrite with your changes or discard?",confirmText:"Overwrite",variant:"destructive",onConfirm:()=>Te(!0),onCancel:()=>Te(!1)}),e.jsx(Nn,{open:I,onClose:()=>u(!1),currentValues:{default:Z||"",opus:ae||"",sonnet:pe||"",haiku:xe||""},onApply:Fe,onSave:Ue,isSaving:O.isPending,catalog:n,allModels:C,routing:r})]})}function En({status:t,isSelected:a,onSelect:s}){const{t:n}=W(),r=t.accounts?.length||0;return e.jsxs("button",{className:X("w-full flex items-center gap-3 px-3 py-2.5 rounded-lg transition-colors cursor-pointer text-left",a?"bg-primary/10 border border-primary/20":"hover:bg-muted border border-transparent"),onClick:s,children:[e.jsx(At,{provider:t.provider,size:"md"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium text-sm truncate",children:t.displayName}),r>0&&e.jsx(q,{variant:"secondary",className:"text-[10px] h-4 px-1",children:r})]}),e.jsx("div",{className:"flex items-center gap-1.5 mt-0.5",children:t.authenticated?e.jsxs(e.Fragment,{children:[e.jsx(Se,{className:"w-3 h-3 text-green-600"}),e.jsx("span",{className:"text-xs text-green-600",children:n("cliproxyPage.connected")})]}):e.jsxs(e.Fragment,{children:[e.jsx(It,{className:"w-3 h-3 text-muted-foreground"}),e.jsx("span",{className:"text-xs text-muted-foreground",children:n("cliproxyPage.notConnected")})]})})]})]})}function Rn({variant:t,parentAuth:a,isSelected:s,onSelect:n,onDelete:r,isDeleting:d}){const{t:o}=W(),l=()=>{n()};return e.jsxs("div",{role:"button",tabIndex:0,className:X("group w-full flex items-center gap-3 px-3 py-2 rounded-lg transition-colors cursor-pointer text-left pl-6",s?"bg-primary/10 border border-primary/20":"hover:bg-muted border border-transparent"),onClick:l,onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),l())},children:[e.jsxs("div",{className:"relative",children:[e.jsx(At,{provider:t.provider,size:"sm"}),e.jsx(Ze,{className:"w-2.5 h-2.5 absolute -bottom-0.5 -right-0.5 text-muted-foreground"})]}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium text-sm truncate",children:t.name}),e.jsx(q,{variant:"outline",className:"text-[9px] h-4 px-1",children:o("cliproxyPage.variant")}),e.jsx(q,{variant:"outline",className:"text-[9px] h-4 px-1 uppercase",children:t.target||"claude"})]}),e.jsx("div",{className:"flex items-center gap-1.5 mt-0.5",children:a?.authenticated?e.jsxs(e.Fragment,{children:[e.jsx(Se,{className:"w-3 h-3 text-green-600"}),e.jsx("span",{className:"text-xs text-muted-foreground truncate",children:o("cliproxyPage.viaProvider",{provider:t.provider})})]}):e.jsxs(e.Fragment,{children:[e.jsx(It,{className:"w-3 h-3 text-muted-foreground"}),e.jsx("span",{className:"text-xs text-muted-foreground",children:o("cliproxyPage.parentNotConnected")})]})})]}),e.jsx(F,{variant:"ghost",size:"icon",className:"h-6 w-6 opacity-0 group-hover:opacity-100 hover:text-destructive",onClick:i=>{i.stopPropagation(),r()},disabled:d,children:e.jsx(gs,{className:"w-3 h-3"})})]})}function On({onAddAccount:t,onCreateVariant:a}){const{t:s}=W();return e.jsx("div",{className:"flex-1 flex items-center justify-center bg-muted/20",children:e.jsxs("div",{className:"text-center max-w-md px-8",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-muted flex items-center justify-center mx-auto mb-6",children:e.jsx(Oe,{className:"w-8 h-8 text-muted-foreground"})}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:s("cliproxyPage.emptyTitle")}),e.jsx("p",{className:"text-muted-foreground mb-4",children:s("cliproxyPage.emptyDesc")}),e.jsxs("p",{className:"text-xs text-muted-foreground mb-6",children:[s("cliproxyPage.emptyControlPanelPrefix")," ",e.jsx("a",{href:"/cliproxy/control-panel",className:"text-primary hover:underline",children:s("cliproxyPage.controlPanel")}),"."]}),e.jsxs("div",{className:"flex flex-col justify-center gap-2 sm:flex-row",children:[e.jsxs(F,{onClick:t,className:"gap-2",children:[e.jsx(tt,{className:"w-4 h-4"}),s("cliproxyPage.addAccount")]}),e.jsxs(F,{onClick:a,variant:"outline",className:"gap-2",children:[e.jsx(Ze,{className:"w-4 h-4"}),s("cliproxyPage.advancedVariant")]})]})]})})}function Zn(){const{t}=W(),a=jt(),{data:s,isLoading:n}=as(),{data:r,isFetching:d}=la(),{data:o}=ns(),{data:l}=da(),i=ca(),m=ua(),p=ma(),j=pa(),f=xa(),h=ha(),E=fa(),w=ga(),[P,S]=c.useState(()=>{if(typeof window<"u"){const K=new URLSearchParams(window.location.search).get("provider")?.trim().toLowerCase();return K&&Ee(K)?K:localStorage.getItem("cliproxy-selected-provider")}return null}),[A,N]=c.useState(null),[k,x]=c.useState(!1),[g,I]=c.useState(()=>{if(typeof window>"u")return null;const v=new URLSearchParams(window.location.search),K=v.get("provider")?.trim().toLowerCase();return v.get("action")!=="auth"||!K||!Ee(K)?null:{provider:K,displayName:He(K),isFirstAccount:!1}}),u=c.useMemo(()=>s?.authStatus||[],[s?.authStatus]),T=c.useMemo(()=>va(u,v=>v.provider),[u]),y=s?.source==="remote",z=c.useMemo(()=>r?.variants||[],[r?.variants]),D=c.useMemo(()=>Et(o?.catalogs),[o?.catalogs]),O=o?.routing??{},_=!!o,G=v=>{S(v),v&&localStorage.setItem("cliproxy-selected-provider",v)},V=c.useMemo(()=>A?null:P&&u.some(v=>v.provider===P)?P:u.length>0&&(u.find(K=>(K.accounts?.length||0)>0)?.provider||u[0]?.provider)||null,[P,A,u]),H=u.find(v=>v.provider===V),C=z.find(v=>v.name===A),R=C?u.find(v=>v.provider===C.provider):void 0,b=C&&R?{provider:C.provider,displayName:R.displayName,accountCount:R.accounts?.length||0}:H?{provider:H.provider,displayName:H.displayName,accountCount:H.accounts?.length||0}:null,J=C?{provider:C.provider,displayName:He(C.provider),accountCount:0}:P&&Ee(P)?{provider:P,displayName:He(P),accountCount:0}:{provider:"gemini",displayName:He("gemini"),accountCount:0},Y=b??J,ne=(C?.provider||H?.provider||"").toLowerCase().trim(),U=ne==="gemini"||ne==="agy",re=()=>{a.invalidateQueries({queryKey:["cliproxy"]}),a.invalidateQueries({queryKey:["cliproxy-auth"]}),a.invalidateQueries({queryKey:["cliproxy-catalog"]}),a.invalidateQueries({queryKey:["cliproxy-models"]})},$=(v,K,we)=>{p.isPending||j.isPending||(we?p.mutate({provider:v,accountId:K}):j.mutate({provider:v,accountId:K}))},Z=(v,K)=>{f.isPending||f.mutate({provider:v,accountId:K})},ae=(v,K)=>{h.isPending||h.mutate({provider:v,accountIds:K})},pe=(v,K)=>{E.isPending||E.mutate({provider:v,accountIds:K})},xe=v=>{G(v),N(null)},Pe=v=>{N(v),G(null)},ye=()=>{I({provider:Y.provider,displayName:Y.displayName,isFirstAccount:Y.accountCount===0})};return e.jsxs("div",{className:"flex h-full min-h-0 overflow-hidden",children:[e.jsxs("div",{className:"w-80 border-r flex flex-col bg-muted/30",children:[e.jsxs("div",{className:"p-4 border-b bg-background",children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Oe,{className:"w-5 h-5 text-primary"}),e.jsx("h1",{className:"font-semibold",children:l?.backendLabel??"CLIProxy"})]}),e.jsx(F,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:re,disabled:d,children:e.jsx(Pt,{className:X("w-4 h-4",d&&"animate-spin")})})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:t("cliproxyPage.accountManagement")}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(F,{variant:"default",size:"sm",className:"w-full gap-2",onClick:ye,children:[e.jsx(tt,{className:"w-4 h-4"}),t("cliproxyPage.addAccount")]}),e.jsxs(F,{variant:"outline",size:"sm",className:"w-full gap-2",onClick:()=>x(!0),children:[e.jsx(Ze,{className:"w-4 h-4"}),t("cliproxyPage.advancedVariant")]}),e.jsx("p",{className:"text-[11px] leading-relaxed text-muted-foreground",children:t("cliproxyPage.setupActionsHint")})]})]}),e.jsx(Ct,{className:"flex-1",children:e.jsxs("div",{className:"p-2",children:[e.jsx("div",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide px-3 py-2",children:t("cliproxyPage.providers")}),n?e.jsx("div",{className:"space-y-2 px-2",children:[1,2,3,4].map(v=>e.jsx(ja,{className:"h-14 w-full rounded-lg"},v))}):e.jsx("div",{className:"space-y-4",children:T.map(v=>e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"px-3",children:[e.jsx("div",{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",children:t(v.labelKey)}),e.jsx("p",{className:"mt-1 text-[11px] leading-relaxed text-muted-foreground",children:t(v.hintKey)})]}),e.jsx("div",{className:"space-y-1",children:v.items.map(K=>e.jsx(En,{status:K,isSelected:V===K.provider,onSelect:()=>xe(K.provider)},K.provider))})]},v.id))}),z.length>0&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide px-3 py-2 mt-4 flex items-center gap-1.5",children:[e.jsx(Ze,{className:"w-3 h-3"}),t("cliproxyPage.variants")]}),e.jsx("div",{className:"space-y-1",children:z.map(v=>e.jsx(Rn,{variant:v,parentAuth:u.find(K=>K.provider===v.provider),isSelected:A===v.name,onSelect:()=>Pe(v.name),onDelete:()=>w.mutate(v.name),isDeleting:w.isPending},v.name))})]})]})}),e.jsx("div",{className:"p-3 border-t",children:e.jsx(Ta,{})}),e.jsx("div",{className:"p-3 border-t bg-background text-xs text-muted-foreground",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{children:t("cliproxyPage.providerCount",{count:u.length})}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(Se,{className:"w-3 h-3 text-green-600"}),t("cliproxyPage.connectedCount",{count:u.filter(v=>v.authenticated).length})]})]})})]}),e.jsx("div",{className:"flex-1 flex min-w-0 flex-col overflow-hidden bg-background",children:C&&R?e.jsx(e.Fragment,{children:e.jsx(Xt,{provider:C.name,displayName:t("cliproxyPage.variantDisplay",{name:C.name,provider:C.provider}),authStatus:R,catalog:D[C.provider],routing:O[C.provider],logoProvider:C.provider,baseProvider:C.provider,defaultTarget:C.target,isRemoteMode:y,port:C.port,topNotice:U?e.jsx(vt,{compact:!0,showProxySettingsLink:!0}):void 0,onAddAccount:()=>I({provider:C.provider,displayName:R.displayName,isFirstAccount:(R.accounts?.length||0)===0}),onSetDefault:v=>i.mutate({provider:C.provider,accountId:v}),onRemoveAccount:v=>m.mutate({provider:C.provider,accountId:v}),onPauseToggle:(v,K)=>$(C.provider,v,K),onSoloMode:v=>Z(C.provider,v),onBulkPause:v=>ae(C.provider,v),onBulkResume:v=>pe(C.provider,v),isRemovingAccount:m.isPending,isPausingAccount:p.isPending||j.isPending,isSoloingAccount:f.isPending,isBulkPausing:h.isPending,isBulkResuming:E.isPending})}):H?e.jsx(e.Fragment,{children:e.jsx(Xt,{provider:H.provider,displayName:H.displayName,authStatus:H,catalog:D[H.provider],routing:O[H.provider],isRemoteMode:y,topNotice:U?e.jsx(vt,{compact:!0,showProxySettingsLink:!0}):void 0,onAddAccount:()=>I({provider:H.provider,displayName:H.displayName,isFirstAccount:(H.accounts?.length||0)===0}),onSetDefault:v=>i.mutate({provider:H.provider,accountId:v}),onRemoveAccount:v=>m.mutate({provider:H.provider,accountId:v}),onPauseToggle:(v,K)=>$(H.provider,v,K),onSoloMode:v=>Z(H.provider,v),onBulkPause:v=>ae(H.provider,v),onBulkResume:v=>pe(H.provider,v),isRemovingAccount:m.isPending,isPausingAccount:p.isPending||j.isPending,isSoloingAccount:f.isPending,isBulkPausing:h.isPending,isBulkResuming:E.isPending})}):e.jsx(On,{onAddAccount:ye,onCreateVariant:()=>x(!0)})}),e.jsx(en,{open:k,onClose:()=>x(!1)}),e.jsx(dn,{open:g!==null,onClose:()=>I(null),provider:g?.provider||"",displayName:g?.displayName||"",catalog:_&&g?.provider?D[g.provider]:void 0,isFirstAccount:g?.isFirstAccount||!1})]})}export{Zn as CliproxyPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./radix-ui-nu4wz29m.js";import{r as s}from"./react-vendor-Bjx91N7w.js";import{u as S}from"./tanstack-bhJxV1h8.js";import{a as D,bf as g,Y as I}from"./index-BRZp_Csi.js";import{C as _}from"./default-ports-1QQSffYX.js";import{G as Q,R as $,w as X}from"./icons-DzKUh8vG.js";import"./notifications-B4_o8bcr.js";import"./utils-CzKF5WmX.js";import"./form-utils-CuHzLhJZ.js";import"./code-highlight-D4E79GKQ.js";const k="cli-proxy-auth",O="isLoggedIn",U="apiBase",K="apiUrl",F="managementKey";function A(a){return a.startsWith("/")?new URL(a.replace(/\/$/,""),window.location.origin).href:a.replace(/\/$/,"")}function J(a,u){window.localStorage.removeItem(k),window.localStorage.setItem(U,a),window.localStorage.setItem(K,a),window.localStorage.setItem(F,u),window.localStorage.setItem(O,"true")}function T(){window.localStorage.removeItem(k),window.localStorage.removeItem(U),window.localStorage.removeItem(K),window.localStorage.removeItem(F),window.localStorage.removeItem(O)}function V({port:a=_}){const{t:u}=D(),f=s.useRef(null),[M,N]=s.useState(null),[B,Y]=s.useState(0),[L,v]=s.useState(null),[G,E]=s.useState(!1),{data:l,error:w}=S({queryKey:["cliproxy-server-config"],queryFn:()=>I.cliproxyServer.get(),staleTime:3e4});s.useEffect(()=>{w&&console.warn("[ControlPanelEmbed] Config fetch failed, using local mode:",w)},[w]);const j=!!(l?.remote?.enabled&&l?.remote?.host),{data:y,error:x}=S({queryKey:["auth-tokens-raw",j?"remote":"local"],enabled:l!==void 0&&!j,queryFn:async()=>{try{const t=await fetch(g("/settings/auth/tokens/raw"));if(!t.ok)throw new Error("Failed to fetch auth tokens");const n=await t.json(),o=n.managementSecret.value.trim();if(!o)throw new Error("Management secret missing");return J(A(g("/cliproxy-local/")),o),n}catch(t){throw T(),t}},staleTime:3e4}),{managementUrl:R,checkUrl:h,authToken:b,isRemote:i,displayHost:c}=s.useMemo(()=>{const t=l?.remote,n=l?.local?.port??a;if(t?.enabled&&t?.host){const o=t.protocol||"http",m=t.port||(o==="https"?443:_),p=o==="https"&&m===443||o==="http"&&m===80?"":`:${m}`,r=`${o}://${t.host}${p}`;return{managementUrl:`${r}/management.html`,checkUrl:`${r}/`,authToken:t.auth_token||void 0,isRemote:!0,displayHost:`${t.host}${p}`}}return{managementUrl:g("/cliproxy-local/management.html"),checkUrl:g("/cliproxy-local/"),authToken:y?.managementSecret?.value||void 0,isRemote:!1,displayHost:`localhost:${n}`}},[l,y,a]),C=`${R}:${i?"remote":"local"}:${h}:${b??"missing"}:${B}`,P=l!==void 0&&(i||!!y||!!x);s.useEffect(()=>{x&&console.warn("[ControlPanelEmbed] Failed to preload local control panel session, falling back to manual login:",x)},[x]),s.useEffect(()=>{if(!i)return()=>{T()}},[i]);const H=!P||!(M===C),q=()=>{if(!(!i||!f.current?.contentWindow||!b))try{const t=A(h),n=new URL(`${t}/`).origin;if(new URL(f.current.src,window.location.origin).origin!==n){console.warn("[ControlPanelEmbed] Remote iframe origin mismatch, skipping postMessage");return}f.current.contentWindow.postMessage({type:"ccs-auto-login",apiBase:t,managementKey:b},n)}catch(t){console.debug("[ControlPanelEmbed] Remote postMessage bootstrap failed:",t)}};s.useEffect(()=>{const t=new AbortController;let n=!1;const o=(r,d)=>{n||(E(r),v(d))},m=async()=>{try{if(i){const r=l?.remote,d=await I.cliproxyServer.test({host:r?.host??"",port:r?.port,protocol:r?.protocol??"http",authToken:r?.auth_token});d?.reachable?o(!0,null):o(!1,d?.error?`Remote CLIProxy at ${c}: ${d.error}`:`Remote CLIProxy at ${c} returned an error`)}else(await fetch(h,{signal:t.signal})).ok?o(!0,null):o(!1,"CLIProxy returned an error")}catch(r){if(r instanceof Error&&r.name==="AbortError")return;o(!1,i?`Remote CLIProxy at ${c} is not reachable`:"CLIProxy is not running")}},p=setTimeout(()=>t.abort(),2e3);return m().finally(()=>clearTimeout(p)),()=>{n=!0,t.abort()}},[h,i,c,l]);const W=()=>{N(C),q()},z=()=>{N(null),Y(t=>t+1),v(null),E(!1)};return!G&&L?e.jsxs("div",{className:"flex-1 flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Q,{className:"w-5 h-5 text-primary"}),e.jsx("h2",{className:"font-semibold",children:u("cliproxyHeader.cliproxyControlPanel")})]}),e.jsxs("button",{className:"inline-flex items-center gap-2 px-3 py-1.5 text-sm border rounded-md hover:bg-muted",onClick:z,children:[e.jsx($,{className:"w-4 h-4"}),"Retry"]})]}),e.jsx("div",{className:"flex-1 flex items-center justify-center bg-muted/20",children:e.jsxs("div",{className:"text-center max-w-md px-8",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-destructive/10 flex items-center justify-center mx-auto mb-6",children:e.jsx(X,{className:"w-8 h-8 text-destructive"})}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:u("cliproxyHeader.cliproxyNotAvailable")}),e.jsx("p",{className:"text-muted-foreground mb-4",children:L}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Start a CLIProxy session with"," ",e.jsx("code",{className:"bg-muted px-1 rounded",children:"ccs gemini"})," or run"," ",e.jsx("code",{className:"bg-muted px-1 rounded",children:"ccs config"})," which auto-starts it."]})]})})]}):e.jsx("div",{className:"flex-1 flex flex-col",children:e.jsxs("div",{className:"flex-1 flex flex-col relative",children:[H&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-background/80 z-10",children:e.jsxs("div",{className:"text-center",children:[e.jsx($,{className:"w-8 h-8 animate-spin text-primary mx-auto mb-2"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:i?`Loading Control Panel from ${c}...`:"Loading Control Panel..."})]})}),P?e.jsx("iframe",{ref:f,src:R,className:"flex-1 w-full border-0",title:"CLIProxy Management Panel",onLoad:W},C):null]})})}function me(){return e.jsx("div",{className:"flex h-full min-h-0 flex-col overflow-hidden",children:e.jsx(V,{})})}export{me as CliproxyControlPanelPage};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{r as P}from"./react-vendor-Bjx91N7w.js";import{c as ae}from"./utils-CzKF5WmX.js";var ue=Object.create,Z=Object.defineProperty,ce=Object.defineProperties,pe=Object.getOwnPropertyDescriptor,ge=Object.getOwnPropertyDescriptors,ne=Object.getOwnPropertyNames,G=Object.getOwnPropertySymbols,de=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable,Q=(e,t,n)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,L=(e,t)=>{for(var n in t||(t={}))K.call(t,n)&&Q(e,n,t[n]);if(G)for(var n of G(t))re.call(t,n)&&Q(e,n,t[n]);return e},q=(e,t)=>ce(e,ge(t)),oe=(e,t)=>{var n={};for(var i in e)K.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&G)for(var i of G(e))t.indexOf(i)<0&&re.call(e,i)&&(n[i]=e[i]);return n},ye=(e,t)=>function(){return t||(0,e[ne(e)[0]])((t={exports:{}}).exports,t),t.exports},fe=(e,t)=>{for(var n in t)Z(e,n,{get:t[n],enumerable:!0})},be=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let f of ne(t))!K.call(e,f)&&f!==n&&Z(e,f,{get:()=>t[f],enumerable:!(i=pe(t,f))||i.enumerable});return e},me=(e,t,n)=>(n=e!=null?ue(de(e)):{},be(!e||!e.__esModule?Z(n,"default",{value:e,enumerable:!0}):n,e)),he=ye({"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=(function(){var i=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,f=0,h={},c={util:{encode:function r(a){return a instanceof m?new m(a.type,r(a.content),a.alias):Array.isArray(a)?a.map(r):a.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(r){return Object.prototype.toString.call(r).slice(8,-1)},objId:function(r){return r.__id||Object.defineProperty(r,"__id",{value:++f}),r.__id},clone:function r(a,s){s=s||{};var u,l;switch(c.util.type(a)){case"Object":if(l=c.util.objId(a),s[l])return s[l];u={},s[l]=u;for(var y in a)a.hasOwnProperty(y)&&(u[y]=r(a[y],s));return u;case"Array":return l=c.util.objId(a),s[l]?s[l]:(u=[],s[l]=u,a.forEach(function(k,w){u[w]=r(k,s)}),u);default:return a}},getLanguage:function(r){for(;r;){var a=i.exec(r.className);if(a)return a[1].toLowerCase();r=r.parentElement}return"none"},setLanguage:function(r,a){r.className=r.className.replace(RegExp(i,"gi"),""),r.classList.add("language-"+a)},isActive:function(r,a,s){for(var u="no-"+a;r;){var l=r.classList;if(l.contains(a))return!0;if(l.contains(u))return!1;r=r.parentElement}return!!s}},languages:{plain:h,plaintext:h,text:h,txt:h,extend:function(r,a){var s=c.util.clone(c.languages[r]);for(var u in a)s[u]=a[u];return s},insertBefore:function(r,a,s,u){u=u||c.languages;var l=u[r],y={};for(var k in l)if(l.hasOwnProperty(k)){if(k==a)for(var w in s)s.hasOwnProperty(w)&&(y[w]=s[w]);s.hasOwnProperty(k)||(y[k]=l[k])}var A=u[r];return u[r]=y,c.languages.DFS(c.languages,function(x,_){_===A&&x!=r&&(this[x]=y)}),y},DFS:function r(a,s,u,l){l=l||{};var y=c.util.objId;for(var k in a)if(a.hasOwnProperty(k)){s.call(a,k,a[k],u||k);var w=a[k],A=c.util.type(w);A==="Object"&&!l[y(w)]?(l[y(w)]=!0,r(w,s,null,l)):A==="Array"&&!l[y(w)]&&(l[y(w)]=!0,r(w,s,k,l))}}},plugins:{},highlight:function(r,a,s){var u={code:r,grammar:a,language:s};if(c.hooks.run("before-tokenize",u),!u.grammar)throw new Error('The language "'+u.language+'" has no grammar.');return u.tokens=c.tokenize(u.code,u.grammar),c.hooks.run("after-tokenize",u),m.stringify(c.util.encode(u.tokens),u.language)},tokenize:function(r,a){var s=a.rest;if(s){for(var u in s)a[u]=s[u];delete a.rest}var l=new b;return d(l,l.head,r),g(r,l,a,l.head,0),E(l)},hooks:{all:{},add:function(r,a){var s=c.hooks.all;s[r]=s[r]||[],s[r].push(a)},run:function(r,a){var s=c.hooks.all[r];if(!(!s||!s.length))for(var u=0,l;l=s[u++];)l(a)}},Token:m};function m(r,a,s,u){this.type=r,this.content=a,this.alias=s,this.length=(u||"").length|0}m.stringify=function r(a,s){if(typeof a=="string")return a;if(Array.isArray(a)){var u="";return a.forEach(function(A){u+=r(A,s)}),u}var l={type:a.type,content:r(a.content,s),tag:"span",classes:["token",a.type],attributes:{},language:s},y=a.alias;y&&(Array.isArray(y)?Array.prototype.push.apply(l.classes,y):l.classes.push(y)),c.hooks.run("wrap",l);var k="";for(var w in l.attributes)k+=" "+w+'="'+(l.attributes[w]||"").replace(/"/g,""")+'"';return"<"+l.tag+' class="'+l.classes.join(" ")+'"'+k+">"+l.content+"</"+l.tag+">"};function p(r,a,s,u){r.lastIndex=a;var l=r.exec(s);if(l&&u&&l[1]){var y=l[1].length;l.index+=y,l[0]=l[0].slice(y)}return l}function g(r,a,s,u,l,y){for(var k in s)if(!(!s.hasOwnProperty(k)||!s[k])){var w=s[k];w=Array.isArray(w)?w:[w];for(var A=0;A<w.length;++A){if(y&&y.cause==k+","+A)return;var x=w[A],_=x.inside,F=!!x.lookbehind,D=!!x.greedy,N=x.alias;if(D&&!x.pattern.global){var I=x.pattern.toString().match(/[imsuy]*$/)[0];x.pattern=RegExp(x.pattern.source,I+"g")}for(var V=x.pattern||x,S=u.next,O=l;S!==a.tail&&!(y&&O>=y.reach);O+=S.value.length,S=S.next){var B=S.value;if(a.length>r.length)return;if(!(B instanceof m)){var j=1,R;if(D){if(R=p(V,O,r,F),!R||R.index>=r.length)break;var z=R.index,le=R.index+R[0].length,C=O;for(C+=S.value.length;z>=C;)S=S.next,C+=S.value.length;if(C-=S.value.length,O=C,S.value instanceof m)continue;for(var $=S;$!==a.tail&&(C<le||typeof $.value=="string");$=$.next)j++,C+=$.value.length;j--,B=r.slice(O,C),R.index-=O}else if(R=p(V,0,B,F),!R)continue;var z=R.index,M=R[0],W=B.slice(0,z),X=B.slice(z+M.length),H=O+B.length;y&&H>y.reach&&(y.reach=H);var U=S.prev;W&&(U=d(a,U,W),O+=W.length),v(a,U,j);var ie=new m(k,_?c.tokenize(M,_):M,N,M);if(S=d(a,U,ie),X&&d(a,S,X),j>1){var Y={cause:k+","+A,reach:H};g(r,a,s,S.prev,O,Y),y&&Y.reach>y.reach&&(y.reach=Y.reach)}}}}}}function b(){var r={value:null,prev:null,next:null},a={value:null,prev:r,next:null};r.next=a,this.head=r,this.tail=a,this.length=0}function d(r,a,s){var u=a.next,l={value:s,prev:a,next:u};return a.next=l,u.prev=l,r.length++,l}function v(r,a,s){for(var u=a.next,l=0;l<s&&u!==r.tail;l++)u=u.next;a.next=u,u.prev=a,r.length-=l}function E(r){for(var a=[],s=r.head.next;s!==r.tail;)a.push(s.value),s=s.next;return a}return c})();t.exports=n,n.default=n}}),o=me(he());o.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,i){var n={},n=(n["language-"+i]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:o.languages[i]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}),i=(n["language-"+i]={pattern:/[\s\S]+/,inside:o.languages[i]},{});i[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},o.languages.insertBefore("markup","cdata",i)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,(function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,i="(?:[^\\\\-]|"+n.source+")",i=RegExp(i+"-"+i),f={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:i,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":t,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":t,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":f}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":f}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}})(o),o.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,o.languages.actionscript=o.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),o.languages.actionscript["class-name"].alias="function",delete o.languages.actionscript.parameter,delete o.languages.actionscript["literal-property"],o.languages.markup&&o.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:o.languages.markup}}),(function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript})(o),(function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(n,i){(n=typeof n=="string"?[n]:n).forEach(function(f){var h=function(d){d.inside||(d.inside={}),d.inside.rest=i},c="doc-comment";if(m=e.languages[f]){var m,p=m[c];if((p=p||(m=e.languages.insertBefore(f,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[c])instanceof RegExp&&(p=m[c]={pattern:p}),Array.isArray(p))for(var g=0,b=p.length;g<b;g++)p[g]instanceof RegExp&&(p[g]={pattern:p[g]}),h(p[g]);else h(p)}})}}),t.addSupport(["java","javascript","php"],t)})(o),(function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup);t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))})(o),(function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp(`\\[(?:[^[\\]"']|`+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})})(o),(function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,i="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+n.source+")?)",f=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),h=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function c(m,p){p=(p||"").replace(/m/g,"")+"m";var g=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,function(){return i}).replace(/<<value>>/g,function(){return m});return RegExp(g,p)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,function(){return i})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,function(){return i}).replace(/<<key>>/g,function(){return"(?:"+f+"|"+h+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:c(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:c(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:c(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:c(h),lookbehind:!0,greedy:!0},number:{pattern:c(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml})(o),(function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(g){return g=g.replace(/<inner>/g,function(){return t}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+g+")")}var i=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,f=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return i}),h=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,c=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+f+h+"(?:"+f+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+f+h+")(?:"+f+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(i),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+f+")"+h+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+f+"$"),inside:{"table-header":{pattern:RegExp(i),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(g){["url","bold","italic","strike","code-snippet"].forEach(function(b){g!==b&&(e.languages.markdown[g].inside.content.inside[b]=e.languages.markdown[b])})}),e.hooks.add("after-tokenize",function(g){g.language!=="markdown"&&g.language!=="md"||(function b(d){if(d&&typeof d!="string")for(var v=0,E=d.length;v<E;v++){var r,a=d[v];a.type!=="code"?b(a.content):(r=a.content[1],a=a.content[3],r&&a&&r.type==="code-language"&&a.type==="code-block"&&typeof r.content=="string"&&(r=r.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),r="language-"+(r=(/[a-z][\w-]*/i.exec(r)||[""])[0].toLowerCase()),a.alias?typeof a.alias=="string"?a.alias=[a.alias,r]:a.alias.push(r):a.alias=[r]))}})(g.tokens)}),e.hooks.add("wrap",function(g){if(g.type==="code-block"){for(var b="",d=0,v=g.classes.length;d<v;d++){var E=g.classes[d],E=/language-(.+)/.exec(E);if(E){b=E[1];break}}var r,a=e.languages[b];a?g.content=e.highlight((function(s){return s=s.replace(c,""),s=s.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(u,l){var y;return(l=l.toLowerCase())[0]==="#"?(y=l[1]==="x"?parseInt(l.slice(2),16):Number(l.slice(1)),p(y)):m[l]||u})})(g.content),a,b):b&&b!=="none"&&e.plugins.autoloader&&(r="md-"+new Date().valueOf()+"-"+Math.floor(1e16*Math.random()),g.attributes.id=r,e.plugins.autoloader.loadLanguages(b,function(){var s=document.getElementById(r);s&&(s.innerHTML=e.highlight(s.textContent,e.languages[b],b))}))}}),RegExp(e.languages.markup.tag.pattern.source,"gi")),m={amp:"&",lt:"<",gt:">",quot:'"'},p=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown})(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",function(e){if(e.language==="graphql")for(var t=e.tokens.filter(function(r){return typeof r!="string"&&r.type!=="comment"&&r.type!=="scalar"}),n=0;n<t.length;){var i=t[n++];if(i.type==="keyword"&&i.content==="mutation"){var f=[];if(d(["definition-mutation","punctuation"])&&b(1).content==="("){n+=2;var h=v(/^\($/,/^\)$/);if(h===-1)continue;for(;n<h;n++){var c=b(0);c.type==="variable"&&(E(c,"variable-input"),f.push(c.content))}n=h+1}if(d(["punctuation","property-query"])&&b(0).content==="{"&&(n++,E(b(0),"property-mutation"),0<f.length)){var m=v(/^\{$/,/^\}$/);if(m!==-1)for(var p=n;p<m;p++){var g=t[p];g.type==="variable"&&0<=f.indexOf(g.content)&&E(g,"variable-input")}}}}function b(r){return t[n+r]}function d(r,a){a=a||0;for(var s=0;s<r.length;s++){var u=b(s+a);if(!u||u.type!==r[s])return}return 1}function v(r,a){for(var s=1,u=n;u<t.length;u++){var l=t[u],y=l.content;if(l.type==="punctuation"&&typeof y=="string"){if(r.test(y))s++;else if(a.test(y)&&--s===0)return u}}return-1}function E(r,a){var s=r.alias;s?Array.isArray(s)||(r.alias=s=[s]):r.alias=s=[],s.push(a)}}),o.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},(function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,i=t.inside.interpolation,f=i.inside["interpolation-punctuation"],h=i.pattern.source;function c(d,v){if(e.languages[d])return{pattern:RegExp("((?:"+v+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:d}}}}function m(d,v,E){return d={code:d,grammar:v,language:E},e.hooks.run("before-tokenize",d),d.tokens=e.tokenize(d.code,d.grammar),e.hooks.run("after-tokenize",d),d.tokens}function p(d,v,E){var s=e.tokenize(d,{interpolation:{pattern:RegExp(h),lookbehind:!0}}),r=0,a={},s=m(s.map(function(l){if(typeof l=="string")return l;for(var y,k,l=l.content;d.indexOf((k=r++,y="___"+E.toUpperCase()+"_"+k+"___"))!==-1;);return a[y]=l,y}).join(""),v,E),u=Object.keys(a);return r=0,(function l(y){for(var k=0;k<y.length;k++){if(r>=u.length)return;var w,A,x,_,F,D,N,I=y[k];typeof I=="string"||typeof I.content=="string"?(w=u[r],(N=(D=typeof I=="string"?I:I.content).indexOf(w))!==-1&&(++r,A=D.substring(0,N),F=a[w],x=void 0,(_={})["interpolation-punctuation"]=f,(_=e.tokenize(F,_)).length===3&&((x=[1,1]).push.apply(x,m(_[1],e.languages.javascript,"javascript")),_.splice.apply(_,x)),x=new e.Token("interpolation",_,i.alias,F),_=D.substring(N+w.length),F=[],A&&F.push(A),F.push(x),_&&(l(D=[_]),F.push.apply(F,D)),typeof I=="string"?(y.splice.apply(y,[k,1].concat(F)),k+=F.length-1):I.content=F)):(N=I.content,Array.isArray(N)?l(N):l([N]))}})(s),new e.Token(E,s,"language-"+E,d)}e.languages.javascript["template-string"]=[c("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),c("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),c("svg",/\bsvg/.source),c("markdown",/\b(?:markdown|md)/.source),c("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),c("sql",/\bsql/.source),t].filter(Boolean);var g={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function b(d){return typeof d=="string"?d:Array.isArray(d)?d.map(b).join(""):b(d.content)}e.hooks.add("after-tokenize",function(d){d.language in g&&(function v(E){for(var r=0,a=E.length;r<a;r++){var s,u,l,y=E[r];typeof y!="string"&&(s=y.content,Array.isArray(s)?y.type==="template-string"?(y=s[1],s.length===3&&typeof y!="string"&&y.type==="embedded-code"&&(u=b(y),y=y.alias,y=Array.isArray(y)?y[0]:y,l=e.languages[y])&&(s[1]=p(u,l,y))):v(s):typeof s!="string"&&v([s]))}})(d.tokens)})})(o),(function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript})(o),(function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,i="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(i+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(i+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,function(){return n})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)})(o),(function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})})(o),o.languages.n4js=o.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),o.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),o.languages.n4jsd=o.languages.n4js,(function(e){function t(c,m){return RegExp(c.replace(/<ID>/g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),m)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],i=0;i<n.length;i++){var h=n[i],f=e.languages.javascript[h],h=(f=e.util.type(f)==="RegExp"?e.languages.javascript[h]={pattern:f}:f).inside||{};(f.inside=h)["maybe-class-name"]=/^[A-Z][\s\S]*/}})(o),(function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,i=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,f=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function h(p,g){return p=p.replace(/<S>/g,function(){return n}).replace(/<BRACES>/g,function(){return i}).replace(/<SPREAD>/g,function(){return f}),RegExp(p,g)}f=h(f).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=h(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:h(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:h(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);function c(p){for(var g=[],b=0;b<p.length;b++){var d=p[b],v=!1;typeof d!="string"&&(d.type==="tag"&&d.content[0]&&d.content[0].type==="tag"?d.content[0].content[0].content==="</"?0<g.length&&g[g.length-1].tagName===m(d.content[0].content[1])&&g.pop():d.content[d.content.length-1].content!=="/>"&&g.push({tagName:m(d.content[0].content[1]),openedBraces:0}):0<g.length&&d.type==="punctuation"&&d.content==="{"?g[g.length-1].openedBraces++:0<g.length&&0<g[g.length-1].openedBraces&&d.type==="punctuation"&&d.content==="}"?g[g.length-1].openedBraces--:v=!0),(v||typeof d=="string")&&0<g.length&&g[g.length-1].openedBraces===0&&(v=m(d),b<p.length-1&&(typeof p[b+1]=="string"||p[b+1].type==="plain-text")&&(v+=m(p[b+1]),p.splice(b+1,1)),0<b&&(typeof p[b-1]=="string"||p[b-1].type==="plain-text")&&(v=m(p[b-1])+v,p.splice(b-1,1),b--),p[b]=new e.Token("plain-text",v,null,v)),d.content&&typeof d.content!="string"&&c(d.content)}}var m=function(p){return p?typeof p=="string"?p:typeof p.content=="string"?p.content:p.content.map(m).join(""):""};e.hooks.add("after-tokenize",function(p){p.language!=="jsx"&&p.language!=="tsx"||c(p.tokens)})})(o),(function(e){var t=e.util.clone(e.languages.typescript),t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag);t.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0})(o),o.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ ]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},o.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=o.languages.swift}),(function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin})(o),o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,(function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,function(){return t});t=t.replace(/<self>/g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string})(o),o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],(function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,function(){return t.source});e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,function(){return t.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,function(){return n})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])})(o),o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern://,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json;var ve={};fe(ve,{dracula:()=>we,duotoneDark:()=>xe,duotoneLight:()=>Se,github:()=>Fe,gruvboxMaterialDark:()=>at,gruvboxMaterialLight:()=>rt,jettwaveDark:()=>Ye,jettwaveLight:()=>Ve,nightOwl:()=>Re,nightOwlLight:()=>Oe,oceanicNext:()=>Ne,okaidia:()=>Ce,oneDark:()=>Qe,oneLight:()=>et,palenight:()=>$e,shadesOfPurple:()=>je,synthwave84:()=>Me,ultramin:()=>Ge,vsDark:()=>se,vsLight:()=>We});var ke={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},we=ke,Ee={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},xe=Ee,Ae={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},Se=Ae,_e={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},Fe=_e,Te={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},Re=Te,Ie={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},Oe=Ie,T={char:"#D8DEE9",comment:"#999999",keyword:"#c5a5c5",primitive:"#5a9bcf",string:"#8dc891",variable:"#d7deea",boolean:"#ff8b50",tag:"#fc929e",function:"#79b6f2",className:"#FAC863"},Le={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:T.keyword}},{types:["attr-value"],style:{color:T.string}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:T.comment}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:T.primitive}},{types:["boolean"],style:{color:T.boolean}},{types:["tag"],style:{color:T.tag}},{types:["string"],style:{color:T.string}},{types:["punctuation"],style:{color:T.string}},{types:["selector","char","builtin","inserted"],style:{color:T.char}},{types:["function"],style:{color:T.function}},{types:["operator","entity","url","variable"],style:{color:T.variable}},{types:["keyword"],style:{color:T.keyword}},{types:["atrule","class-name"],style:{color:T.className}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},Ne=Le,De={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},Ce=De,Be={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},$e=Be,Pe={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},je=Pe,ze={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},Me=ze,Ue={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},Ge=Ue,Ze={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},se=Ze,qe={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},We=qe,He={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},Ye=He,Ke={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},Ve=Ke,Xe={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},Qe=Xe,Je={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},et=Je,tt={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},at=tt,nt={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},rt=nt,ot=e=>P.useCallback(t=>{var n=t,{className:i,style:f,line:h}=n,c=oe(n,["className","style","line"]);const m=q(L({},c),{className:ae("token-line",i)});return typeof e=="object"&&"plain"in e&&(m.style=e.plain),typeof f=="object"&&(m.style=L(L({},m.style||{}),f)),m},[e]),st=e=>{const t=P.useCallback(({types:n,empty:i})=>{if(e!=null){{if(n.length===1&&n[0]==="plain")return i!=null?{display:"inline-block"}:void 0;if(n.length===1&&i!=null)return e[n[0]]}return Object.assign(i!=null?{display:"inline-block"}:{},...n.map(f=>e[f]))}},[e]);return P.useCallback(n=>{var i=n,{token:f,className:h,style:c}=i,m=oe(i,["token","className","style"]);const p=q(L({},m),{className:ae("token",...f.types,h),children:f.content,style:t(f)});return c!=null&&(p.style=L(L({},p.style||{}),c)),p},[t])},lt=/\r\n|\r|\n/,J=e=>{e.length===0?e.push({types:["plain"],content:`
|
|
2
|
-
`,empty:!0}):e.length===1&&e[0].content===""&&(e[0].content=`
|
|
3
|
-
`,e[0].empty=!0)},ee=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},it=e=>{const t=[[]],n=[e],i=[0],f=[e.length];let h=0,c=0,m=[];const p=[m];for(;c>-1;){for(;(h=i[c]++)<f[c];){let g,b=t[c];const v=n[c][h];if(typeof v=="string"?(b=c>0?b:["plain"],g=v):(b=ee(b,v.type),v.alias&&(b=ee(b,v.alias)),g=v.content),typeof g!="string"){c++,t.push(b),n.push(g),i.push(0),f.push(g.length);continue}const E=g.split(lt),r=E.length;m.push({types:b,content:E[0]});for(let a=1;a<r;a++)J(m),p.push(m=[]),m.push({types:b,content:E[a]})}c--,t.pop(),n.pop(),i.pop(),f.pop()}return J(m),p},te=it,ut=({prism:e,code:t,grammar:n,language:i})=>P.useMemo(()=>{if(n==null)return te([t]);const f={code:t,grammar:n,language:i,tokens:[]};return e.hooks.run("before-tokenize",f),f.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",f),te(f.tokens)},[t,n,i,e]),ct=(e,t)=>{const{plain:n}=e,i=e.styles.reduce((f,h)=>{const{languages:c,style:m}=h;return c&&!c.includes(t)||h.types.forEach(p=>{const g=L(L({},f[p]),m);f[p]=g}),f},{});return i.root=n,i.plain=q(L({},n),{backgroundColor:void 0}),i},pt=ct,gt=({children:e,language:t,code:n,theme:i,prism:f})=>{const h=t.toLowerCase(),c=pt(i,h),m=ot(c),p=st(c),g=f.languages[h],b=ut({prism:f,language:h,code:n,grammar:g});return e({tokens:b,className:`prism-code language-${h}`,style:c!=null?c.root:{},getLineProps:m,getTokenProps:p})},ft=e=>P.createElement(gt,q(L({},e),{prism:e.prism||o,theme:e.theme||se,code:e.code,language:e.language}));export{ft as H,ve as t};
|