forgebadger 0.1.2 → 0.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -5
- package/dist/gateway/src/cli/init.js +9 -4
- package/dist/gateway/src/cli/init.js.map +1 -1
- package/dist/gateway/src/config/env.d.ts +0 -7
- package/dist/gateway/src/config/env.js +1 -9
- package/dist/gateway/src/config/env.js.map +1 -1
- package/dist/gateway/src/db/migrations/0129_session_notification_type.sql +4 -0
- package/dist/gateway/src/db/migrations/0130_template_adapter_backfill.sql +4 -0
- package/dist/gateway/src/db/migrations/0131_single_project_autonomy.sql +7 -0
- package/dist/gateway/src/db/migrations/0132_api_format_protocol_values.sql +29 -0
- package/dist/gateway/src/db/migrations/0133_copilot_run_trace.sql +16 -0
- package/dist/gateway/src/db/migrations/0134_drop_copilot_project_autonomy.sql +5 -0
- package/dist/gateway/src/db/migrations/meta/_journal.json +42 -0
- package/dist/gateway/src/db/migrations/meta/migration-checksums.json +7 -1
- package/dist/gateway/src/db/repositories/mcp-session-observation-repository.d.ts +18 -0
- package/dist/gateway/src/db/repositories/mcp-session-observation-repository.js +40 -0
- package/dist/gateway/src/db/repositories/mcp-session-observation-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/mcp-token-repository.d.ts +2 -1
- package/dist/gateway/src/db/repositories/mcp-token-repository.js +7 -1
- package/dist/gateway/src/db/repositories/mcp-token-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/model-provider-repository.d.ts +7 -1
- package/dist/gateway/src/db/repositories/model-provider-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/notification-repository.js +1 -1
- package/dist/gateway/src/db/repositories/notification-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/project-management-repository.d.ts +1 -2
- package/dist/gateway/src/db/repositories/project-management-repository.js +6 -6
- package/dist/gateway/src/db/repositories/project-management-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/project-manager-repository.d.ts +3 -0
- package/dist/gateway/src/db/repositories/project-manager-repository.js +16 -0
- package/dist/gateway/src/db/repositories/project-manager-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/project-repository.d.ts +0 -3
- package/dist/gateway/src/db/repositories/project-repository.js +0 -16
- package/dist/gateway/src/db/repositories/project-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/task-dispatch-evidence-repository.js +2 -2
- package/dist/gateway/src/db/schema.d.ts +160 -34
- package/dist/gateway/src/db/schema.js +9 -4
- package/dist/gateway/src/db/schema.js.map +1 -1
- package/dist/gateway/src/lib/terminal-wheel-input.d.ts +2 -0
- package/dist/gateway/src/lib/terminal-wheel-input.js +5 -0
- package/dist/gateway/src/lib/terminal-wheel-input.js.map +1 -0
- package/dist/gateway/src/mvp0/api.d.ts +1 -1
- package/dist/gateway/src/mvp0/api.js +1 -1
- package/dist/gateway/src/mvp0/api.js.map +1 -1
- package/dist/gateway/src/routes/copilot.js +9 -0
- package/dist/gateway/src/routes/copilot.js.map +1 -1
- package/dist/gateway/src/routes/mcp-tokens.js +44 -3
- package/dist/gateway/src/routes/mcp-tokens.js.map +1 -1
- package/dist/gateway/src/routes/model-providers.js +58 -1
- package/dist/gateway/src/routes/model-providers.js.map +1 -1
- package/dist/gateway/src/routes/project-management.js +0 -21
- package/dist/gateway/src/routes/project-management.js.map +1 -1
- package/dist/gateway/src/routes/session-hooks.d.ts +2 -2
- package/dist/gateway/src/routes/session-hooks.js +50 -53
- package/dist/gateway/src/routes/session-hooks.js.map +1 -1
- package/dist/gateway/src/routes/sessions.js +1 -3
- package/dist/gateway/src/routes/sessions.js.map +1 -1
- package/dist/gateway/src/routes/templates.js +3 -3
- package/dist/gateway/src/routes/templates.js.map +1 -1
- package/dist/gateway/src/runtime/start-gateway.js +1 -3
- package/dist/gateway/src/runtime/start-gateway.js.map +1 -1
- package/dist/gateway/src/server.d.ts +2 -2
- package/dist/gateway/src/server.js +14 -14
- package/dist/gateway/src/server.js.map +1 -1
- package/dist/gateway/src/services/agent/context-recovery.js +5 -4
- package/dist/gateway/src/services/agent/context-recovery.js.map +1 -1
- package/dist/gateway/src/services/agent/context.d.ts +9 -8
- package/dist/gateway/src/services/agent/context.js +16 -19
- package/dist/gateway/src/services/agent/context.js.map +1 -1
- package/dist/gateway/src/services/agent/dispatch-supervisor.js +1 -1
- package/dist/gateway/src/services/agent/dispatch-supervisor.js.map +1 -1
- package/dist/gateway/src/services/agent/followups.js +2 -0
- package/dist/gateway/src/services/agent/followups.js.map +1 -1
- package/dist/gateway/src/services/agent/llm-client.d.ts +0 -2
- package/dist/gateway/src/services/agent/llm-client.js +12 -12
- package/dist/gateway/src/services/agent/llm-client.js.map +1 -1
- package/dist/gateway/src/services/agent/orchestrator-types.d.ts +1 -0
- package/dist/gateway/src/services/agent/orchestrator.js +59 -27
- package/dist/gateway/src/services/agent/orchestrator.js.map +1 -1
- package/dist/gateway/src/services/agent/redaction.js +1 -1
- package/dist/gateway/src/services/agent/redaction.js.map +1 -1
- package/dist/gateway/src/services/agent/restricted-runs.d.ts +1 -0
- package/dist/gateway/src/services/agent/restricted-runs.js +2 -3
- package/dist/gateway/src/services/agent/restricted-runs.js.map +1 -1
- package/dist/gateway/src/services/agent/run-authorization.d.ts +38 -0
- package/dist/gateway/src/services/agent/run-authorization.js +65 -0
- package/dist/gateway/src/services/agent/run-authorization.js.map +1 -0
- package/dist/gateway/src/services/agent/run-governance.js +7 -2
- package/dist/gateway/src/services/agent/run-governance.js.map +1 -1
- package/dist/gateway/src/services/agent/run-ledger.d.ts +2 -0
- package/dist/gateway/src/services/agent/run-ledger.js +48 -13
- package/dist/gateway/src/services/agent/run-ledger.js.map +1 -1
- package/dist/gateway/src/services/agent/run-trace.d.ts +25 -0
- package/dist/gateway/src/services/agent/run-trace.js +42 -0
- package/dist/gateway/src/services/agent/run-trace.js.map +1 -0
- package/dist/gateway/src/services/agent/security-policy.js +7 -2
- package/dist/gateway/src/services/agent/security-policy.js.map +1 -1
- package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.js +17 -0
- package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.js.map +1 -1
- package/dist/gateway/src/services/agent/skills/copilot-skills.js +9 -11
- package/dist/gateway/src/services/agent/skills/copilot-skills.js.map +1 -1
- package/dist/gateway/src/services/agent/task-review.js +2 -1
- package/dist/gateway/src/services/agent/task-review.js.map +1 -1
- package/dist/gateway/src/services/agent/token-estimate.d.ts +36 -0
- package/dist/gateway/src/services/agent/token-estimate.js +79 -0
- package/dist/gateway/src/services/agent/token-estimate.js.map +1 -0
- package/dist/gateway/src/services/agent/tool-availability.d.ts +2 -5
- package/dist/gateway/src/services/agent/tool-availability.js +7 -14
- package/dist/gateway/src/services/agent/tool-availability.js.map +1 -1
- package/dist/gateway/src/services/agent/tool-surface.d.ts +50 -0
- package/dist/gateway/src/services/agent/tool-surface.js +78 -0
- package/dist/gateway/src/services/agent/tool-surface.js.map +1 -0
- package/dist/gateway/src/services/agent/tools/platform-coverage.js +3 -6
- package/dist/gateway/src/services/agent/tools/platform-coverage.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/platform-management.js +3 -3
- package/dist/gateway/src/services/agent/tools/platform-management.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/project-manager.js +1 -1
- package/dist/gateway/src/services/agent/tools/project-manager.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/sessions.js +5 -1
- package/dist/gateway/src/services/agent/tools/sessions.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/terminal.js +3 -4
- package/dist/gateway/src/services/agent/tools/terminal.js.map +1 -1
- package/dist/gateway/src/services/channels/channel-diagnostics.js +5 -13
- package/dist/gateway/src/services/channels/channel-diagnostics.js.map +1 -1
- package/dist/gateway/src/services/channels/channel-identity-service.js +1 -1
- package/dist/gateway/src/services/channels/channel-identity-service.js.map +1 -1
- package/dist/gateway/src/services/channels/channel-run-scope.d.ts +2 -4
- package/dist/gateway/src/services/channels/channel-run-scope.js +33 -20
- package/dist/gateway/src/services/channels/channel-run-scope.js.map +1 -1
- package/dist/gateway/src/services/claude-notification-settings.js +15 -7
- package/dist/gateway/src/services/claude-notification-settings.js.map +1 -1
- package/dist/gateway/src/services/claude-route/gateway-url.js +1 -1
- package/dist/gateway/src/services/claude-route/gateway-url.js.map +1 -1
- package/dist/gateway/src/services/cli-config-apply.d.ts +7 -7
- package/dist/gateway/src/services/cli-config-apply.js +49 -34
- package/dist/gateway/src/services/cli-config-apply.js.map +1 -1
- package/dist/gateway/src/services/cli-config.js +3 -2
- package/dist/gateway/src/services/cli-config.js.map +1 -1
- package/dist/gateway/src/services/cli-notification-settings.js +2 -2
- package/dist/gateway/src/services/development/authority.js +2 -5
- package/dist/gateway/src/services/development/authority.js.map +1 -1
- package/dist/gateway/src/services/development/repair-scope.js +2 -9
- package/dist/gateway/src/services/development/repair-scope.js.map +1 -1
- package/dist/gateway/src/services/event-bus.d.ts +3 -3
- package/dist/gateway/src/services/event-bus.js +1 -1
- package/dist/gateway/src/services/event-bus.js.map +1 -1
- package/dist/gateway/src/services/mcp/lifecycle-tools.d.ts +3 -0
- package/dist/gateway/src/services/mcp/lifecycle-tools.js +29 -0
- package/dist/gateway/src/services/mcp/lifecycle-tools.js.map +1 -0
- package/dist/gateway/src/services/mcp/lifecycle.d.ts +480 -0
- package/dist/gateway/src/services/mcp/lifecycle.js +216 -0
- package/dist/gateway/src/services/mcp/lifecycle.js.map +1 -0
- package/dist/gateway/src/services/mcp/mcp-server.js +45 -13
- package/dist/gateway/src/services/mcp/mcp-server.js.map +1 -1
- package/dist/gateway/src/services/native-directory-picker.js +42 -12
- package/dist/gateway/src/services/native-directory-picker.js.map +1 -1
- package/dist/gateway/src/services/notification-dedupe.d.ts +1 -1
- package/dist/gateway/src/services/notification-dedupe.js +1 -1
- package/dist/gateway/src/services/notification-events.js +10 -12
- package/dist/gateway/src/services/notification-events.js.map +1 -1
- package/dist/gateway/src/services/notifications/feishu-notification-card.js +2 -2
- package/dist/gateway/src/services/notifications/feishu-notification-card.js.map +1 -1
- package/dist/gateway/src/services/notifications/feishu-notifications.js +1 -1
- package/dist/gateway/src/services/notifications/feishu-notifications.js.map +1 -1
- package/dist/gateway/src/services/opencode-notification-settings.d.ts +1 -1
- package/dist/gateway/src/services/opencode-notification-settings.js +1 -1
- package/dist/gateway/src/services/platform-commands/actions.js +2 -10
- package/dist/gateway/src/services/platform-commands/actions.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/agent-actions.js +1 -1
- package/dist/gateway/src/services/platform-commands/agent-actions.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/catalog.js +2 -5
- package/dist/gateway/src/services/platform-commands/catalog.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/tool-commands.js +4 -0
- package/dist/gateway/src/services/platform-commands/tool-commands.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/types.d.ts +2 -0
- package/dist/gateway/src/services/programmatic-terminal-submit.d.ts +1 -1
- package/dist/gateway/src/services/programmatic-terminal-submit.js +75 -28
- package/dist/gateway/src/services/programmatic-terminal-submit.js.map +1 -1
- package/dist/gateway/src/services/project-config-files.d.ts +1 -1
- package/dist/gateway/src/services/project-config-files.js +11 -2
- package/dist/gateway/src/services/project-config-files.js.map +1 -1
- package/dist/gateway/src/services/project-config-render.js +10 -3
- package/dist/gateway/src/services/project-config-render.js.map +1 -1
- package/dist/gateway/src/services/project-manager/access.js +1 -1
- package/dist/gateway/src/services/project-manager/access.js.map +1 -1
- package/dist/gateway/src/services/project-manager/management.d.ts +1 -6
- package/dist/gateway/src/services/project-manager/management.js +2 -6
- package/dist/gateway/src/services/project-manager/management.js.map +1 -1
- package/dist/gateway/src/services/project-manager/task-execution.js +0 -3
- package/dist/gateway/src/services/project-manager/task-execution.js.map +1 -1
- package/dist/gateway/src/services/provider-capabilities.js +7 -7
- package/dist/gateway/src/services/provider-capabilities.js.map +1 -1
- package/dist/gateway/src/services/runtime-settings.d.ts +2 -3
- package/dist/gateway/src/services/runtime-settings.js +1 -17
- package/dist/gateway/src/services/runtime-settings.js.map +1 -1
- package/dist/gateway/src/services/session-launch-plan.js +1 -1
- package/dist/gateway/src/services/session-launch-plan.js.map +1 -1
- package/dist/gateway/src/services/session-manager.d.ts +9 -0
- package/dist/gateway/src/services/session-manager.js +51 -7
- package/dist/gateway/src/services/session-manager.js.map +1 -1
- package/dist/gateway/src/services/session-stop-target.js +10 -2
- package/dist/gateway/src/services/session-stop-target.js.map +1 -1
- package/dist/gateway/src/services/template-git-import.d.ts +1 -1
- package/dist/gateway/src/services/template-git-import.js +3 -2
- package/dist/gateway/src/services/template-git-import.js.map +1 -1
- package/dist/gateway/src/services/terminal-notification-ingestion.js +2 -2
- package/dist/gateway/src/services/terminal-notification-ingestion.js.map +1 -1
- package/dist/gateway/src/websocket/events.js +2 -2
- package/dist/gateway/src/websocket/events.js.map +1 -1
- package/dist/gateway/src/websocket/terminal.d.ts +1 -1
- package/dist/gateway/src/websocket/terminal.js +3 -6
- package/dist/gateway/src/websocket/terminal.js.map +1 -1
- package/dist/runtime/backup.js +1 -1
- package/dist/runtime/config.js +2 -2
- package/dist/web/standalone/packages/web/.next/BUILD_ID +1 -1
- package/dist/web/standalone/packages/web/.next/build-manifest.json +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page/react-loadable-manifest.json +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.rsc +11 -11
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.rsc +14 -14
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_full.segment.rsc +14 -14
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations/__PAGE__.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_full.segment.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels/__PAGE__.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_full.segment.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions/__PAGE__.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_full.segment.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings/__PAGE__.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_full.segment.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/copilot.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_full.segment.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/history.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/history.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/index.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/index.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/join/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/join/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/join.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/join.rsc +12 -12
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/_full.segment.rsc +12 -12
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/join/__PAGE__.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/join.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/login/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/login.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/login.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/_full.segment.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/login.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/members.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/members.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/models.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/models.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/notifications.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/notifications.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/projects.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/projects.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_full.segment.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/register/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/register/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/register.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/register.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/_full.segment.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/register/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/register.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/sessions.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/sessions.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/settings.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/settings.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_full.segment.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_full.segment.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_full.segment.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/skills.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/skills.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/teams.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/teams.rsc +14 -14
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_full.segment.rsc +14 -14
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/templates.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/templates.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_full.segment.rsc +17 -17
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/usage.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/usage.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_full.segment.rsc +16 -16
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.rsc +14 -14
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_full.segment.rsc +14 -14
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__03inbb0._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__05uxdhs._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0mvyp71._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0~hqizj._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__13w0f1~._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-8y7~8._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-gw886._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_038nxrj._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_03n-g57._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_04xf5q9._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_055d-ao._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_05zx7t7._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/{_12w9fro._.js → _06.zuca._.js} +2 -2
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_07xrtbe._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09qlnot._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09uis~9._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_6knqk._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_7nkt6._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0aj4ajk._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0awj3ix._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d4~sy4._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0eyvq.q._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0l.3_po._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0p-i6oy._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0pgkuef._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0qlo6ux._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r8225d._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0s2linz._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0xjjrmf._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0xxhxhp._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~6bpee._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_12h5j52._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0euki8~._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xlg_r9._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xsup7i._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_models_page_tsx_0_ccn2i._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_sessions_[id]_page_tsx_0x9_6se._.js +3 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_settings_page_tsx_05ku4-o._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_templates_page_tsx_0.s32f~._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_copilot_CopilotChannelsPage_tsx_10jdmdv._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_session-tabs_tsx_0qnm.9x._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/middleware-build-manifest.js +3 -3
- package/dist/web/standalone/packages/web/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/pages/500.html +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/{0txrk44pdmdsw.js → 01-hqvam3w0~~.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/02net~gj5seu8.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{0g.jepdilt76o.js → 034bfwrk4dtch.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/042m5fzwa.5rb.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/04t8.94ylt2j6.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/079pi3esz7ztj.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/07dsa~2xhj7fp.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/084df1q.t96px.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/09-77kwttecp8.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0ahamdhz5rqd0.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0aymq5zo45jwo.css +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0a~p89jkiv-xy.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0blz40tkx36ya.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0bo35rh3et6nh.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0c3i0-wz63ys6.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0c3qwax9lt4tx.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0crxf3wawwn83.js +2 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0gz0he~jrjk8a.js +3 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0j3ve5insz6.3.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0l-uwd_dr1mbk.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{0.1mxnjmxr~su.js → 0nxwqjcq79-4u.js} +2 -2
- package/dist/web/standalone/packages/web/.next/static/chunks/{0rvmfvjpdwe.w.js → 0p3t7a~kdodga.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0rs04qz9_.2h5.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0sv0hnum1q_mj.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0tf8lwgh~fndc.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0wnkj_m4ke__p.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0xszl0jyt02ly.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0y8o9-d.39uek.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0~.y-iqdl1g2v.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{0b5zptp8.z.nn.js → 0~0f5pw_ezzrh.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/112uoiiyc.o-i.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/117spe00n0ln_.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/129g7a~bc67a8.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/13qimumcmf67m.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/15y1w~u~sxuqn.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/16evga~sgvskl.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/1708mw9d18sq2.js +1 -0
- package/dist/web/standalone/packages/web/public/forgebadger-runtime.js +1 -1
- package/docs/PERSONAL-TEAM-WORKFLOWS.md +6 -6
- package/docs/README.zh-CN.md +5 -5
- package/docs/README.zh-TW.md +5 -5
- package/package.json +1 -1
- package/dist/gateway/src/services/adapter-autonomy.d.ts +0 -10
- package/dist/gateway/src/services/adapter-autonomy.js +0 -25
- package/dist/gateway/src/services/adapter-autonomy.js.map +0 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0dwolw1._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0s85g_~._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0t6hcz2._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__12_~9x3._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_00u25e5._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_029s~22._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_02q4sxr._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_055deww._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_06y~qef._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_081_abe._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d70f63._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0e2js.7._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0l2_hbr._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0nko1ur._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0of~gco._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0pgj5uk._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r7r2dd._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0u.z_-u._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0vxw15j._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0wz9mfr._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0x14feb._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~z3iws._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_132t5iu._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13cs2xv._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13jwtym._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_ui_select_tsx_0led5xt._.js +0 -3
- package/dist/web/standalone/packages/web/.next/static/chunks/0.athqv8ojt0q.js +0 -3
- package/dist/web/standalone/packages/web/.next/static/chunks/0.s72kofo_rqw.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/00gq~jtzei49d.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/01u~p.mfnnn02.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/04iwl3440l6ci.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/04~5~zhq-13bw.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/06tu7kgxg31~o.js +0 -2
- package/dist/web/standalone/packages/web/.next/static/chunks/0b_338udx-~jl.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0eg3_d4n2kkia.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0f4~n_u2rd.u..js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0i4_5dn3hx-l4.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0jdbsw64_fybj.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0lgdaqjuo1zdw.css +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0n8lawbi2_4vp.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0qz-8gatr0e58.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0qz5kbcs~i-jm.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0s~9.kdkdky_4.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0t8mzjjlw~wnz.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0tgs66vwkse.2.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0uqsh8sbcz046.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0v4~sp3bx1l88.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0z6vq-3bfwo0y.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0~kf3_6b2c_lt.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/11y_6l.0_a2jc.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/13e0ddfy-03de.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/17lr--xdjl9wa.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/185bxlmpgwiu-.js +0 -1
- /package/dist/web/standalone/packages/web/.next/static/{rZYlH0_cQ6CsojVFUjtlA → wkc8XKp3khKRctgTww1hC}/_buildManifest.js +0 -0
- /package/dist/web/standalone/packages/web/.next/static/{rZYlH0_cQ6CsojVFUjtlA → wkc8XKp3khKRctgTww1hC}/_clientMiddlewareManifest.js +0 -0
- /package/dist/web/standalone/packages/web/.next/static/{rZYlH0_cQ6CsojVFUjtlA → wkc8XKp3khKRctgTww1hC}/_ssgManifest.js +0 -0
package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xlg_r9._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[4730,a=>{"use strict";var b=a.i(20486),c=a.i(42261),d=a.i(3366),e=a.i(39465);let f=(0,c.cva)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:c="default",asChild:g=!1,...h}){let i=g?d.Slot.Root:"span";return(0,b.jsx)(i,{"data-slot":"badge","data-variant":c,className:(0,e.cn)(f({variant:c}),a),...h})}])},83164,a=>{"use strict";var b=a.i(39042);a.s(["getPlatformAction",0,function(a){return(0,b.fetchJson)(`/api/v1/platform-actions/${encodeURIComponent(a)}`)},"getProjectOverview",0,function(){return(0,b.fetchJson)("/api/v1/project-manager/overview")},"getSessionWriter",0,function(a){return(0,b.fetchJson)(`/api/v1/sessions/${encodeURIComponent(a)}/writer`)},"
|
|
1
|
+
module.exports=[4730,a=>{"use strict";var b=a.i(20486),c=a.i(42261),d=a.i(3366),e=a.i(39465);let f=(0,c.cva)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:c="default",asChild:g=!1,...h}){let i=g?d.Slot.Root:"span";return(0,b.jsx)(i,{"data-slot":"badge","data-variant":c,className:(0,e.cn)(f({variant:c}),a),...h})}])},83164,a=>{"use strict";var b=a.i(39042);a.s(["getPlatformAction",0,function(a){return(0,b.fetchJson)(`/api/v1/platform-actions/${encodeURIComponent(a)}`)},"getProjectOverview",0,function(){return(0,b.fetchJson)("/api/v1/project-manager/overview")},"getSessionWriter",0,function(a){return(0,b.fetchJson)(`/api/v1/sessions/${encodeURIComponent(a)}/writer`)},"takeoverSession",0,function(a){return(0,b.fetchJson)(`/api/v1/sessions/${encodeURIComponent(a)}/takeover`,{method:"POST",body:"{}"})}])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_web_src_0xlg_r9._.js.map
|
package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xsup7i._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[75906,a=>{"use strict";var b=a.i(39042);a.s(["acceptAutomationSuggestion",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/suggestions/${encodeURIComponent(a)}/accept`,{method:"POST"})},"cancelFollowup",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/followups/${encodeURIComponent(a)}`,{method:"DELETE"})},"cancelRun",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/runs/${encodeURIComponent(a)}/cancel`,{method:"POST"})},"createAutomation",0,function(a){return(0,b.fetchJson)("/api/v1/copilot/automations",{method:"POST",body:JSON.stringify(a)})},"createConversation",0,function(a){return(0,b.fetchJson)("/api/v1/copilot/conversations",{method:"POST",body:JSON.stringify(a?{title:a}:{})})},"decidePendingAction",0,function(a,c,d){return(0,b.fetchJson)(`/api/v1/copilot/runs/${encodeURIComponent(a)}/pending-actions/${encodeURIComponent(c)}/decide`,{method:"POST",body:JSON.stringify({approved:d})})},"deleteAutomation",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(a)}`,{method:"DELETE"})},"deleteConversation",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}`,{method:"DELETE"})},"deleteMemoryEntry",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/memory/entries/${encodeURIComponent(a)}`,{method:"DELETE"})},"dismissAutomationSuggestion",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/suggestions/${encodeURIComponent(a)}/dismiss`,{method:"POST"})},"editMessage",0,function(a,c,d,e){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/edit-message`,{method:"POST",body:JSON.stringify({messageId:c,content:d,...e})})},"enableAutomation",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(a)}/enable`,{method:"POST"})},"getCopilotCapabilities",0,function(){return(0,b.fetchJson)("/api/v1/copilot/capabilities")},"getCopilotPreferences",0,function(){return(0,b.fetchJson)("/api/v1/copilot/preferences")},"getRun",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/runs/${encodeURIComponent(a)}`)},"listAutomationSuggestions",0,function(){return(0,b.fetchJson)("/api/v1/copilot/automations/suggestions")},"listAutomations",0,function(){return(0,b.fetchJson)("/api/v1/copilot/automations")},"listConversationRuns",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/runs`)},"listConversations",0,function(){return(0,b.fetchJson)("/api/v1/copilot/conversations")},"listFollowups",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/followups`)},"listMemoryEntries",0,function(a={}){let c=new URLSearchParams;return a.scope&&c.set("scope",a.scope),a.projectId&&c.set("projectId",a.projectId),a.limit&&c.set("limit",String(a.limit)),(0,b.fetchJson)(`/api/v1/copilot/memory/entries?${c.toString()}`)},"listMessages",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/messages`)},"pauseAutomation",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(a)}/pause`,{method:"POST"})},"queueFollowup",0,function(a,c,d){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/followups`,{method:"POST",body:JSON.stringify({content:c,...d})})},"renameConversation",0,function(a,c){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}`,{method:"PATCH",body:JSON.stringify({title:c})})},"runAutomationNow",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(a)}/run`,{method:"POST"})},"sendMessage",0,function(a,c,d,e){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/messages`,{method:"POST",body:JSON.stringify({content:c,...d?{modelId:d}:{},...e})})},"setCopilotToolEnabled",0,function(a,c){return(0,b.fetchJson)(`/api/v1/copilot/capabilities/${encodeURIComponent(a)}/enabled`,{method:"PUT",body:JSON.stringify({enabled:c})})},"updateCopilotPreferences",0,function(a){return(0,b.fetchJson)("/api/v1/copilot/preferences",{method:"PUT",body:JSON.stringify(a)})}])},64709,a=>{"use strict";var b=a.i(20486),c=a.i(60427),d=a.i(39465);function e({suggestions:a,onPick:c,compact:f=!1,className:g}){return(0,b.jsx)("div",{className:(0,d.cn)("flex flex-wrap justify-center",f?"gap-1.5":"gap-2",g),children:a.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>c(a),className:(0,d.cn)("rounded-full border border-border/70 bg-card text-muted-foreground shadow-sm transition-all hover:-translate-y-0.5 hover:border-brand/60 hover:text-foreground hover:shadow-md",f?"px-2.5 py-1 text-xs":"px-3.5 py-1.5 text-sm"),children:a},a))})}var f=a.i(79914);a.s(["CopilotEmptyState",0,function({icon:a,title:c,description:e,className:f}){return(0,b.jsxs)("div",{className:(0,d.cn)("flex flex-col items-center gap-2.5 rounded-md border border-border/70 bg-muted/20 px-4 py-8 text-center",f),children:[(0,b.jsx)("div",{className:"flex size-9 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(a,{className:"size-4","aria-hidden":"true"})}),(0,b.jsx)("p",{className:"text-sm font-medium",children:c}),e&&(0,b.jsx)("p",{className:"max-w-sm text-xs leading-relaxed text-muted-foreground",children:e})]})},"CopilotWelcomeState",0,function({onSuggestion:a,compact:g=!1,className:h}){let{t:i}=(0,f.useLanguage)(),j=[i("copilot.suggestion1"),i("copilot.suggestion2"),i("copilot.suggestion3")];return g?(0,b.jsxs)("div",{className:(0,d.cn)("flex h-full flex-col items-center justify-center gap-3 text-center",h),children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:i("copilot.welcomeTitle")}),(0,b.jsx)("p",{className:"mt-1 max-w-xs text-xs text-muted-foreground",children:i("copilot.welcomeSubtitle")})]}),(0,b.jsx)(e,{suggestions:j,onPick:a,compact:!0})]}):(0,b.jsxs)("div",{className:(0,d.cn)("flex h-full flex-col items-center justify-center gap-5 py-10 text-center",h),children:[(0,b.jsx)("span",{className:"flex size-12 items-center justify-center rounded-xl border border-border/60 bg-muted/60 shadow-inner",children:(0,b.jsx)(c.Bot,{className:"size-6 text-muted-foreground"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-base font-semibold",children:i("copilot.welcomeTitle")}),(0,b.jsx)("p",{className:"mx-auto mt-1.5 max-w-md text-sm leading-relaxed text-muted-foreground",children:i("copilot.welcomeSubtitle")})]}),(0,b.jsx)(e,{suggestions:j,onPick:a})]})}],64709)},6377,84142,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(4837),e=a.i(39747),f=a.i(26248),g=a.i(48459),h=a.i(71700),i=a.i(4730),j=a.i(55068),k=a.i(10917),l=a.i(75196),m=a.i(79914),n=a.i(85564),o=a.i(39042),p=a.i(75906);let q="/api/v1/copilot",r=a=>`${q}/skills/${encodeURIComponent(a)}`,s=a=>`${q}/connections/${encodeURIComponent(a)}`,t=["copilot","skills"];a.s(["adoptBuiltinSkill",0,(a,b,c)=>(0,o.fetchJson)(`${r(a)}/adopt-builtin`,{method:"POST",body:JSON.stringify({expectedRevisionId:b,version:c})}),"copilotConnectionsKey",0,["copilot","connections"],"copilotSkillsKey",0,t,"createCopilotConnection",0,a=>(0,o.fetchJson)(`${q}/connections`,{method:"POST",body:JSON.stringify(a)}),"deleteCopilotConnection",0,(a,b)=>(0,o.fetchJson)(`${s(a)}?revision=${b}`,{method:"DELETE"}),"discoverCopilotConnection",0,(a,b)=>(0,o.fetchJson)(`${s(a)}/discover`,{method:"POST",body:JSON.stringify({revision:b})}),"getCopilotSkill",0,a=>(0,o.fetchJson)(r(a)),"getSkillRevision",0,(a,b)=>(0,o.fetchJson)(`${r(a)}/revisions/${encodeURIComponent(b)}`),"importCopilotSkill",0,a=>(0,o.fetchJson)(`${q}/skills/imports`,{method:"POST",body:JSON.stringify(a)}),"listCopilotConnections",0,()=>(0,o.fetchJson)(`${q}/connections`),"listCopilotSkills",0,()=>(0,o.fetchJson)(`${q}/skills`),"listSkillRevisions",0,a=>(0,o.fetchJson)(`${r(a)}/revisions`),"rollbackCopilotSkill",0,(a,b,c)=>(0,o.fetchJson)(`${r(a)}/rollback`,{method:"POST",body:JSON.stringify({revisionId:b,expectedRevisionId:c})}),"setCopilotSkillEnabled",0,(a,b,c)=>(0,o.fetchJson)(`${r(a)}/enabled`,{method:"PUT",body:JSON.stringify({enabled:b,expectedRevisionId:c})}),"updateCopilotConnection",0,(a,b)=>(0,o.fetchJson)(s(a),{method:"PUT",body:JSON.stringify(b)}),"updateCopilotSkill",0,(a,b)=>(0,o.fetchJson)(r(a),{method:"PUT",body:JSON.stringify(b)})],84142);let u=["model-providers"],v=["copilot","capabilities"],w=["copilot","preferences"],x=["off","low","medium","high"],y="__default_model__";function z({title:a,tools:c,pending:d,onToggle:e}){return(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold tracking-wide text-muted-foreground/70 uppercase",children:a}),c.map(a=>(0,b.jsx)(A,{tool:a,pending:d,onToggle:b=>e(a.name,b)},a.name))]})}function A({tool:a,pending:c,onToggle:d}){let{t:e}=(0,m.useLanguage)(),f=`copilot.toolDesc.${a.name}`,g=e(f),j=g===f?a.description:g;return(0,b.jsxs)("div",{className:`flex items-start justify-between gap-3 rounded-md border border-border/70 bg-card px-3 py-2 transition-opacity ${a.enabled&&a.available?"":"opacity-60"}`,"data-testid":`tool-row-${a.name}`,children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-0.5",children:[(0,b.jsxs)("p",{className:"flex flex-wrap items-center gap-1.5 text-xs font-medium",children:[(0,b.jsx)(h.Wrench,{className:"size-3 shrink-0 text-muted-foreground","aria-hidden":"true"}),(0,b.jsx)("span",{className:"font-mono",children:a.name}),"operate"===a.risk?(0,b.jsx)(i.Badge,{variant:"outline",className:"border-amber-500/50 px-1 py-0 text-[10px] text-amber-500",children:"operate"}):null,a.requiresApproval&&a.available?(0,b.jsx)(i.Badge,{variant:"outline",className:"px-1 py-0 text-[10px] text-muted-foreground",children:e("copilot.toolAuthorization")}):null]}),(0,b.jsx)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:j}),a.available?null:(0,b.jsxs)("p",{className:"text-xs text-amber-500",children:[e("copilot.toolUnavailable"),": ",a.unavailableReason??e("copilot.toolUnavailable")]})]}),(0,b.jsx)(k.Switch,{"aria-label":a.name,size:"sm",className:"mt-0.5 shrink-0",disabled:c||!a.available,checked:a.enabled,onCheckedChange:d})]})}a.s(["CapabilitiesSection",0,function({active:a}){let{t:h}=(0,m.useLanguage)(),i=(0,f.useQueryClient)(),[k,l]=(0,c.useState)(""),o=(0,e.useQuery)({queryKey:v,queryFn:p.getCopilotCapabilities,enabled:a,retry:!1}),q=(0,d.useMutation)({mutationFn:({name:a,enabled:b})=>(0,p.setCopilotToolEnabled)(a,b),onSuccess:()=>{i.invalidateQueries({queryKey:v}),i.invalidateQueries({queryKey:t})},onError:()=>n.toast.error(h("copilot.capabilitiesToggleError"))}),r=(0,c.useRef)(!1);(0,c.useEffect)(()=>{o.isError&&!r.current&&(r.current=!0,n.toast.error(h("copilot.capabilitiesLoadError"))),o.isError||(r.current=!1)},[o.isError,h]);let s=o.data?.tools??[],u=k.trim().toLowerCase(),w=u?s.filter(a=>`${a.name} ${a.description}`.toLowerCase().includes(u)):s,x=w.filter(a=>"operate"===a.risk),y=w.filter(a=>"operate"!==a.risk);return(0,b.jsxs)("section",{className:"space-y-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:h("copilot.capabilities")}),o.isPending||o.isError||!(s.length>0)?null:(0,b.jsxs)("div",{className:"relative w-48 max-w-full",children:[(0,b.jsx)(g.Search,{className:"absolute top-1/2 left-2.5 size-3.5 -translate-y-1/2 text-muted-foreground","aria-hidden":"true"}),(0,b.jsx)(j.Input,{value:k,onChange:a=>l(a.target.value),placeholder:h("copilot.toolsSearch"),className:"h-8 pl-8 text-xs"})]})]}),o.isPending?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("common.loading")}):o.isError?null:0===s.length?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("copilot.capabilitiesEmpty")}):0===w.length?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("copilot.toolsSearchEmpty")}):(0,b.jsxs)("div",{className:"space-y-3",children:[x.length>0?(0,b.jsx)(z,{title:h("copilot.toolGroupOperate"),tools:x,pending:q.isPending,onToggle:(a,b)=>q.mutate({name:a,enabled:b})}):null,y.length>0?(0,b.jsx)(z,{title:h("copilot.toolGroupRead"),tools:y,pending:q.isPending,onToggle:(a,b)=>q.mutate({name:a,enabled:b})}):null]})]})},"CopilotStatusBar",0,function({onModelChange:a,controlsDisabled:g,onSavingChange:h}){let{t:j}=(0,m.useLanguage)(),k=(0,f.useQueryClient)(),q=(0,e.useQuery)({queryKey:u,queryFn:o.listModelProviders}),r=(0,e.useQuery)({queryKey:w,queryFn:p.getCopilotPreferences,retry:!1}),s=(q.data?.models??[]).filter(a=>"disabled"!==a.status),t=r.isSuccess,v=s.find(a=>a.isDefault)??s[0],z=r.data?.modelId??null,A=(z?s.find(a=>a.id===z):void 0)??v,B=A?`${A.providerName} / ${A.name}`:j("copilot.followSystemDefault"),C=v?`${v.providerName} / ${v.name}`:null,D=(0,d.useMutation)({mutationFn:p.updateCopilotPreferences,onSuccess:b=>{k.setQueryData(w,b),a?.(b.modelId),k.invalidateQueries({queryKey:w})},onError:()=>n.toast.error(j("copilot.preferencesFailed"))}),E=(0,c.useRef)(!1);(0,c.useEffect)(()=>{r.isError&&!E.current&&(E.current=!0,n.toast.error(j("copilot.loadError"))),r.isError||(E.current=!1)},[r.isError,j]),(0,c.useEffect)(()=>{t&&a?.(z)},[t,z,a]),(0,c.useEffect)(()=>{h?.(D.isPending)},[D.isPending,h]);let F=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(q.data&&z&&a){if(s.some(a=>a.id===z)){F.current=null;return}F.current!==z&&(F.current=z,a(null),D.mutate({modelId:null}))}},[q.data,z,a]),(0,b.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-x-2 gap-y-1 border-b px-3 py-1.5 text-xs text-muted-foreground","data-testid":"copilot-status-bar",children:[(0,b.jsx)("span",{className:"sr-only shrink-0 sm:not-sr-only",children:j("copilot.currentModel")}),a?(0,b.jsxs)(l.Select,{value:z??y,disabled:!t||D.isPending||g,onValueChange:a=>{D.mutate({modelId:a===y?null:a})},children:[(0,b.jsx)(l.SelectTrigger,{"aria-label":j("copilot.currentModel"),size:"sm",className:"min-w-0 max-w-64 flex-1 text-xs sm:flex-none",children:(0,b.jsx)(l.SelectValue,{})}),(0,b.jsxs)(l.SelectContent,{children:[(0,b.jsxs)(l.SelectItem,{value:y,children:[j("copilot.followSystemDefault"),C?`(${C})`:""]}),s.map(a=>(0,b.jsxs)(l.SelectItem,{value:a.id,children:[a.providerName," / ",a.name]},a.id))]})]}):(0,b.jsx)("span",{className:"truncate",children:B}),(0,b.jsx)("span",{className:"sr-only shrink-0 sm:not-sr-only",children:j("copilot.thinkingEffort")}),(0,b.jsxs)(l.Select,{value:r.data?.thinkingEffort??"off",disabled:!t||D.isPending||g,onValueChange:a=>{D.mutate({thinkingEffort:a})},children:[(0,b.jsx)(l.SelectTrigger,{"aria-label":j("copilot.thinkingEffort"),size:"sm",className:"text-xs",children:(0,b.jsx)(l.SelectValue,{})}),(0,b.jsx)(l.SelectContent,{children:x.map(a=>(0,b.jsx)(l.SelectItem,{value:a,children:j(`copilot.thinking${a.charAt(0).toUpperCase()}${a.slice(1)}`)},a))})]}),(0,b.jsxs)(i.Badge,{variant:"secondary",className:"ml-auto hidden gap-1.5 whitespace-nowrap sm:inline-flex",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-full bg-emerald-500"}),j("copilot.nativeRuntime")]})]})},"copilotPreferencesQueryKey",0,w,"modelProvidersQueryKey",0,u],6377)}];
|
|
1
|
+
module.exports=[75906,a=>{"use strict";var b=a.i(39042);a.s(["acceptAutomationSuggestion",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/suggestions/${encodeURIComponent(a)}/accept`,{method:"POST"})},"cancelFollowup",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/followups/${encodeURIComponent(a)}`,{method:"DELETE"})},"cancelRun",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/runs/${encodeURIComponent(a)}/cancel`,{method:"POST"})},"createAutomation",0,function(a){return(0,b.fetchJson)("/api/v1/copilot/automations",{method:"POST",body:JSON.stringify(a)})},"createConversation",0,function(a){return(0,b.fetchJson)("/api/v1/copilot/conversations",{method:"POST",body:JSON.stringify(a?{title:a}:{})})},"decidePendingAction",0,function(a,c,d){return(0,b.fetchJson)(`/api/v1/copilot/runs/${encodeURIComponent(a)}/pending-actions/${encodeURIComponent(c)}/decide`,{method:"POST",body:JSON.stringify({approved:d})})},"deleteAutomation",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(a)}`,{method:"DELETE"})},"deleteConversation",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}`,{method:"DELETE"})},"deleteMemoryEntry",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/memory/entries/${encodeURIComponent(a)}`,{method:"DELETE"})},"dismissAutomationSuggestion",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/suggestions/${encodeURIComponent(a)}/dismiss`,{method:"POST"})},"editMessage",0,function(a,c,d,e){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/edit-message`,{method:"POST",body:JSON.stringify({messageId:c,content:d,...e})})},"enableAutomation",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(a)}/enable`,{method:"POST"})},"getCopilotCapabilities",0,function(){return(0,b.fetchJson)("/api/v1/copilot/capabilities")},"getCopilotPreferences",0,function(){return(0,b.fetchJson)("/api/v1/copilot/preferences")},"getRun",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/runs/${encodeURIComponent(a)}`)},"listAutomationSuggestions",0,function(){return(0,b.fetchJson)("/api/v1/copilot/automations/suggestions")},"listAutomations",0,function(){return(0,b.fetchJson)("/api/v1/copilot/automations")},"listConversationRuns",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/runs`)},"listConversations",0,function(){return(0,b.fetchJson)("/api/v1/copilot/conversations")},"listFollowups",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/followups`)},"listMemoryEntries",0,function(a={}){let c=new URLSearchParams;return a.scope&&c.set("scope",a.scope),a.projectId&&c.set("projectId",a.projectId),a.limit&&c.set("limit",String(a.limit)),(0,b.fetchJson)(`/api/v1/copilot/memory/entries?${c.toString()}`)},"listMessages",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/messages`)},"pauseAutomation",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(a)}/pause`,{method:"POST"})},"queueFollowup",0,function(a,c,d){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/followups`,{method:"POST",body:JSON.stringify({content:c,...d})})},"renameConversation",0,function(a,c){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}`,{method:"PATCH",body:JSON.stringify({title:c})})},"revokeRunRepairs",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/runs/${encodeURIComponent(a)}/repairs`,{method:"DELETE"})},"runAutomationNow",0,function(a){return(0,b.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(a)}/run`,{method:"POST"})},"sendMessage",0,function(a,c,d,e){return(0,b.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(a)}/messages`,{method:"POST",body:JSON.stringify({content:c,...d?{modelId:d}:{},...e})})},"setCopilotToolEnabled",0,function(a,c){return(0,b.fetchJson)(`/api/v1/copilot/capabilities/${encodeURIComponent(a)}/enabled`,{method:"PUT",body:JSON.stringify({enabled:c})})},"updateCopilotPreferences",0,function(a){return(0,b.fetchJson)("/api/v1/copilot/preferences",{method:"PUT",body:JSON.stringify(a)})}])},64709,a=>{"use strict";var b=a.i(20486),c=a.i(60427),d=a.i(39465);function e({suggestions:a,onPick:c,compact:f=!1,className:g}){return(0,b.jsx)("div",{className:(0,d.cn)("flex flex-wrap justify-center",f?"gap-1.5":"gap-2",g),children:a.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>c(a),className:(0,d.cn)("rounded-full border border-border/70 bg-card text-muted-foreground shadow-sm transition-all hover:-translate-y-0.5 hover:border-brand/60 hover:text-foreground hover:shadow-md",f?"px-2.5 py-1 text-xs":"px-3.5 py-1.5 text-sm"),children:a},a))})}var f=a.i(79914);a.s(["CopilotEmptyState",0,function({icon:a,title:c,description:e,className:f}){return(0,b.jsxs)("div",{className:(0,d.cn)("flex flex-col items-center gap-2.5 rounded-md border border-border/70 bg-muted/20 px-4 py-8 text-center",f),children:[(0,b.jsx)("div",{className:"flex size-9 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(a,{className:"size-4","aria-hidden":"true"})}),(0,b.jsx)("p",{className:"text-sm font-medium",children:c}),e&&(0,b.jsx)("p",{className:"max-w-sm text-xs leading-relaxed text-muted-foreground",children:e})]})},"CopilotWelcomeState",0,function({onSuggestion:a,compact:g=!1,className:h}){let{t:i}=(0,f.useLanguage)(),j=[i("copilot.suggestion1"),i("copilot.suggestion2"),i("copilot.suggestion3")];return g?(0,b.jsxs)("div",{className:(0,d.cn)("flex h-full flex-col items-center justify-center gap-3 text-center",h),children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:i("copilot.welcomeTitle")}),(0,b.jsx)("p",{className:"mt-1 max-w-xs text-xs text-muted-foreground",children:i("copilot.welcomeSubtitle")})]}),(0,b.jsx)(e,{suggestions:j,onPick:a,compact:!0})]}):(0,b.jsxs)("div",{className:(0,d.cn)("flex h-full flex-col items-center justify-center gap-5 py-10 text-center",h),children:[(0,b.jsx)("span",{className:"flex size-12 items-center justify-center rounded-xl border border-border/60 bg-muted/60 shadow-inner",children:(0,b.jsx)(c.Bot,{className:"size-6 text-muted-foreground"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-base font-semibold",children:i("copilot.welcomeTitle")}),(0,b.jsx)("p",{className:"mx-auto mt-1.5 max-w-md text-sm leading-relaxed text-muted-foreground",children:i("copilot.welcomeSubtitle")})]}),(0,b.jsx)(e,{suggestions:j,onPick:a})]})}],64709)},6377,84142,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(4837),e=a.i(39747),f=a.i(26248),g=a.i(48459),h=a.i(71700),i=a.i(4730),j=a.i(55068),k=a.i(10917),l=a.i(75196),m=a.i(79914),n=a.i(85564),o=a.i(39042),p=a.i(75906);let q="/api/v1/copilot",r=a=>`${q}/skills/${encodeURIComponent(a)}`,s=a=>`${q}/connections/${encodeURIComponent(a)}`,t=["copilot","skills"];a.s(["adoptBuiltinSkill",0,(a,b,c)=>(0,o.fetchJson)(`${r(a)}/adopt-builtin`,{method:"POST",body:JSON.stringify({expectedRevisionId:b,version:c})}),"copilotConnectionsKey",0,["copilot","connections"],"copilotSkillsKey",0,t,"createCopilotConnection",0,a=>(0,o.fetchJson)(`${q}/connections`,{method:"POST",body:JSON.stringify(a)}),"deleteCopilotConnection",0,(a,b)=>(0,o.fetchJson)(`${s(a)}?revision=${b}`,{method:"DELETE"}),"discoverCopilotConnection",0,(a,b)=>(0,o.fetchJson)(`${s(a)}/discover`,{method:"POST",body:JSON.stringify({revision:b})}),"getCopilotSkill",0,a=>(0,o.fetchJson)(r(a)),"getSkillRevision",0,(a,b)=>(0,o.fetchJson)(`${r(a)}/revisions/${encodeURIComponent(b)}`),"importCopilotSkill",0,a=>(0,o.fetchJson)(`${q}/skills/imports`,{method:"POST",body:JSON.stringify(a)}),"listCopilotConnections",0,()=>(0,o.fetchJson)(`${q}/connections`),"listCopilotSkills",0,()=>(0,o.fetchJson)(`${q}/skills`),"listSkillRevisions",0,a=>(0,o.fetchJson)(`${r(a)}/revisions`),"rollbackCopilotSkill",0,(a,b,c)=>(0,o.fetchJson)(`${r(a)}/rollback`,{method:"POST",body:JSON.stringify({revisionId:b,expectedRevisionId:c})}),"setCopilotSkillEnabled",0,(a,b,c)=>(0,o.fetchJson)(`${r(a)}/enabled`,{method:"PUT",body:JSON.stringify({enabled:b,expectedRevisionId:c})}),"updateCopilotConnection",0,(a,b)=>(0,o.fetchJson)(s(a),{method:"PUT",body:JSON.stringify(b)}),"updateCopilotSkill",0,(a,b)=>(0,o.fetchJson)(r(a),{method:"PUT",body:JSON.stringify(b)})],84142);let u=["model-providers"],v=["copilot","capabilities"],w=["copilot","preferences"],x=["off","low","medium","high"],y="__default_model__";function z({title:a,tools:c,pending:d,onToggle:e}){return(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold tracking-wide text-muted-foreground/70 uppercase",children:a}),c.map(a=>(0,b.jsx)(A,{tool:a,pending:d,onToggle:b=>e(a.name,b)},a.name))]})}function A({tool:a,pending:c,onToggle:d}){let{t:e}=(0,m.useLanguage)(),f=`copilot.toolDesc.${a.name}`,g=e(f),j=g===f?a.description:g;return(0,b.jsxs)("div",{className:`flex items-start justify-between gap-3 rounded-md border border-border/70 bg-card px-3 py-2 transition-opacity ${a.enabled&&a.available?"":"opacity-60"}`,"data-testid":`tool-row-${a.name}`,children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-0.5",children:[(0,b.jsxs)("p",{className:"flex flex-wrap items-center gap-1.5 text-xs font-medium",children:[(0,b.jsx)(h.Wrench,{className:"size-3 shrink-0 text-muted-foreground","aria-hidden":"true"}),(0,b.jsx)("span",{className:"font-mono",children:a.name}),"operate"===a.risk?(0,b.jsx)(i.Badge,{variant:"outline",className:"border-amber-500/50 px-1 py-0 text-[10px] text-amber-500",children:"operate"}):null,a.requiresApproval&&a.available?(0,b.jsx)(i.Badge,{variant:"outline",className:"px-1 py-0 text-[10px] text-muted-foreground",children:e("copilot.toolAuthorization")}):null]}),(0,b.jsx)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:j}),a.available?null:(0,b.jsxs)("p",{className:"text-xs text-amber-500",children:[e("copilot.toolUnavailable"),": ",a.unavailableReason??e("copilot.toolUnavailable")]})]}),(0,b.jsx)(k.Switch,{"aria-label":a.name,size:"sm",className:"mt-0.5 shrink-0",disabled:c||!a.available,checked:a.enabled,onCheckedChange:d})]})}a.s(["CapabilitiesSection",0,function({active:a}){let{t:h}=(0,m.useLanguage)(),i=(0,f.useQueryClient)(),[k,l]=(0,c.useState)(""),o=(0,e.useQuery)({queryKey:v,queryFn:p.getCopilotCapabilities,enabled:a,retry:!1}),q=(0,d.useMutation)({mutationFn:({name:a,enabled:b})=>(0,p.setCopilotToolEnabled)(a,b),onSuccess:()=>{i.invalidateQueries({queryKey:v}),i.invalidateQueries({queryKey:t})},onError:()=>n.toast.error(h("copilot.capabilitiesToggleError"))}),r=(0,c.useRef)(!1);(0,c.useEffect)(()=>{o.isError&&!r.current&&(r.current=!0,n.toast.error(h("copilot.capabilitiesLoadError"))),o.isError||(r.current=!1)},[o.isError,h]);let s=o.data?.tools??[],u=k.trim().toLowerCase(),w=u?s.filter(a=>`${a.name} ${a.description}`.toLowerCase().includes(u)):s,x=w.filter(a=>"operate"===a.risk),y=w.filter(a=>"operate"!==a.risk);return(0,b.jsxs)("section",{className:"space-y-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:h("copilot.capabilities")}),o.isPending||o.isError||!(s.length>0)?null:(0,b.jsxs)("div",{className:"relative w-48 max-w-full",children:[(0,b.jsx)(g.Search,{className:"absolute top-1/2 left-2.5 size-3.5 -translate-y-1/2 text-muted-foreground","aria-hidden":"true"}),(0,b.jsx)(j.Input,{value:k,onChange:a=>l(a.target.value),placeholder:h("copilot.toolsSearch"),className:"h-8 pl-8 text-xs"})]})]}),o.isPending?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("common.loading")}):o.isError?null:0===s.length?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("copilot.capabilitiesEmpty")}):0===w.length?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("copilot.toolsSearchEmpty")}):(0,b.jsxs)("div",{className:"space-y-3",children:[x.length>0?(0,b.jsx)(z,{title:h("copilot.toolGroupOperate"),tools:x,pending:q.isPending,onToggle:(a,b)=>q.mutate({name:a,enabled:b})}):null,y.length>0?(0,b.jsx)(z,{title:h("copilot.toolGroupRead"),tools:y,pending:q.isPending,onToggle:(a,b)=>q.mutate({name:a,enabled:b})}):null]})]})},"CopilotStatusBar",0,function({onModelChange:a,controlsDisabled:g,onSavingChange:h}){let{t:j}=(0,m.useLanguage)(),k=(0,f.useQueryClient)(),q=(0,e.useQuery)({queryKey:u,queryFn:o.listModelProviders}),r=(0,e.useQuery)({queryKey:w,queryFn:p.getCopilotPreferences,retry:!1}),s=(q.data?.models??[]).filter(a=>"disabled"!==a.status),t=r.isSuccess,v=s.find(a=>a.isDefault)??s[0],z=r.data?.modelId??null,A=(z?s.find(a=>a.id===z):void 0)??v,B=A?`${A.providerName} / ${A.name}`:j("copilot.followSystemDefault"),C=v?`${v.providerName} / ${v.name}`:null,D=(0,d.useMutation)({mutationFn:p.updateCopilotPreferences,onSuccess:b=>{k.setQueryData(w,b),a?.(b.modelId),k.invalidateQueries({queryKey:w})},onError:()=>n.toast.error(j("copilot.preferencesFailed"))}),E=(0,c.useRef)(!1);(0,c.useEffect)(()=>{r.isError&&!E.current&&(E.current=!0,n.toast.error(j("copilot.loadError"))),r.isError||(E.current=!1)},[r.isError,j]),(0,c.useEffect)(()=>{t&&a?.(z)},[t,z,a]),(0,c.useEffect)(()=>{h?.(D.isPending)},[D.isPending,h]);let F=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(q.data&&z&&a){if(s.some(a=>a.id===z)){F.current=null;return}F.current!==z&&(F.current=z,a(null),D.mutate({modelId:null}))}},[q.data,z,a]),(0,b.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-x-2 gap-y-1 border-b px-3 py-1.5 text-xs text-muted-foreground","data-testid":"copilot-status-bar",children:[(0,b.jsx)("span",{className:"sr-only shrink-0 sm:not-sr-only",children:j("copilot.currentModel")}),a?(0,b.jsxs)(l.Select,{value:z??y,disabled:!t||D.isPending||g,onValueChange:a=>{D.mutate({modelId:a===y?null:a})},children:[(0,b.jsx)(l.SelectTrigger,{"aria-label":j("copilot.currentModel"),size:"sm",className:"min-w-0 max-w-64 flex-1 text-xs sm:flex-none",children:(0,b.jsx)(l.SelectValue,{})}),(0,b.jsxs)(l.SelectContent,{children:[(0,b.jsxs)(l.SelectItem,{value:y,children:[j("copilot.followSystemDefault"),C?`(${C})`:""]}),s.map(a=>(0,b.jsxs)(l.SelectItem,{value:a.id,children:[a.providerName," / ",a.name]},a.id))]})]}):(0,b.jsx)("span",{className:"truncate",children:B}),(0,b.jsx)("span",{className:"sr-only shrink-0 sm:not-sr-only",children:j("copilot.thinkingEffort")}),(0,b.jsxs)(l.Select,{value:r.data?.thinkingEffort??"off",disabled:!t||D.isPending||g,onValueChange:a=>{D.mutate({thinkingEffort:a})},children:[(0,b.jsx)(l.SelectTrigger,{"aria-label":j("copilot.thinkingEffort"),size:"sm",className:"text-xs",children:(0,b.jsx)(l.SelectValue,{})}),(0,b.jsx)(l.SelectContent,{children:x.map(a=>(0,b.jsx)(l.SelectItem,{value:a,children:j(`copilot.thinking${a.charAt(0).toUpperCase()}${a.slice(1)}`)},a))})]}),(0,b.jsxs)(i.Badge,{variant:"secondary",className:"ml-auto hidden gap-1.5 whitespace-nowrap sm:inline-flex",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-full bg-emerald-500"}),j("copilot.nativeRuntime")]})]})},"copilotPreferencesQueryKey",0,w,"modelProvidersQueryKey",0,u],6377)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_web_src_0xsup7i._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[76640,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(13376),e=a.i(4837),f=a.i(39747),g=a.i(26248),h=a.i(35485);let i=(0,h.default)("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);var j=a.i(90259),k=a.i(97494),l=a.i(67305),m=a.i(14060),n=a.i(67164),o=a.i(48459),p=a.i(73008),q=a.i(62384),r=a.i(55068),s=a.i(3030),t=a.i(39042);function u(a){return{productType:"payg_api",apiFormat:"openai-compatible",authType:"api_key",supportedAdapters:["claude","opencode","kimi","pi"],...a}}let v=[u({id:"openai",name:"OpenAI",description:"Official OpenAI API endpoint.",apiFormat:"openai",openaiBaseUrl:"https://api.openai.com/v1",supportedAdapters:["opencode","codex","kimi","pi"]}),u({id:"anthropic-api",name:"Anthropic API",description:"Official Anthropic API for Claude models.",apiFormat:"anthropic",anthropicBaseUrl:"https://api.anthropic.com"}),u({id:"deepseek-api",name:"DeepSeek API",description:"DeepSeek API with OpenAI and Anthropic-compatible endpoints.",anthropicBaseUrl:"https://api.deepseek.com/anthropic",openaiBaseUrl:"https://api.deepseek.com"}),u({id:"qwen-payg-cn",name:"Qwen API 中国大陆",description:"Alibaba Cloud Model Studio pay-as-you-go endpoint for mainland China accounts.",anthropicBaseUrl:"https://dashscope.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1"}),u({id:"qwen-payg-intl-sg",name:"Qwen API 国际版",description:"Alibaba Cloud Model Studio international endpoint.",anthropicBaseUrl:"https://dashscope-intl.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1"}),u({id:"qwen-coding-plan-cn",name:"Qwen Coding Plan 中国大陆",description:"Alibaba Cloud Model Studio Coding Plan endpoint for mainland China.",productType:"coding_plan",anthropicBaseUrl:"https://coding.dashscope.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://coding.dashscope.aliyuncs.com/v1"}),u({id:"qwen-coding-plan-intl",name:"Qwen Coding Plan 国际版",description:"Alibaba Cloud Model Studio Coding Plan international endpoint.",productType:"coding_plan",anthropicBaseUrl:"https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1"}),u({id:"qwen-token-plan-cn",name:"Qwen Token Plan 中国大陆",description:"Alibaba Cloud Model Studio Token Plan endpoint for mainland China.",productType:"token_plan",anthropicBaseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1"}),u({id:"kimi-code",name:"Kimi For Coding",description:"Kimi coding subscription endpoint.",productType:"coding_plan",anthropicBaseUrl:"https://api.kimi.com/coding/",openaiBaseUrl:"https://api.kimi.com/coding/v1"}),u({id:"kimi-api",name:"Kimi API",description:"Moonshot AI Kimi pay-as-you-go endpoint with Anthropic and OpenAI-compatible APIs.",anthropicBaseUrl:"https://api.moonshot.cn/anthropic",openaiBaseUrl:"https://api.moonshot.cn/v1"}),u({id:"minimax-global",name:"MiniMax 国际版",description:"MiniMax international API endpoint for coding tools.",anthropicBaseUrl:"https://api.minimax.io/anthropic",openaiBaseUrl:"https://api.minimax.io/v1"}),u({id:"minimax-cn",name:"MiniMax 中国大陆",description:"MiniMax mainland China API endpoint for coding tools.",anthropicBaseUrl:"https://api.minimaxi.com/anthropic",openaiBaseUrl:"https://api.minimaxi.com/v1"}),u({id:"zai-coding-plan",name:"Z.AI GLM Coding Plan",description:"Z.AI coding plan endpoints for GLM coding models.",productType:"coding_plan",anthropicBaseUrl:"https://api.z.ai/api/anthropic",openaiBaseUrl:"https://api.z.ai/api/coding/paas/v4"}),u({id:"zai-glm-api",name:"Z.AI GLM API",description:"Z.AI GLM pay-as-you-go endpoint with Anthropic and OpenAI-compatible APIs.",anthropicBaseUrl:"https://api.z.ai/api/anthropic",openaiBaseUrl:"https://api.z.ai/api/paas/v4"}),u({id:"xiaomi-mimo-api",name:"Xiaomi MiMo API",description:"Xiaomi MiMo pay-as-you-go API with OpenAI and Anthropic-compatible endpoints.",anthropicBaseUrl:"https://api.xiaomimimo.com/anthropic",openaiBaseUrl:"https://api.xiaomimimo.com/v1"}),u({id:"xiaomi-mimo-token-plan-cn",name:"Xiaomi MiMo Token Plan 中国大陆",description:"Xiaomi MiMo Token Plan endpoint for mainland China.",productType:"token_plan",anthropicBaseUrl:"https://token-plan-cn.xiaomimimo.com/anthropic",openaiBaseUrl:"https://token-plan-cn.xiaomimimo.com/v1"}),u({id:"xiaomi-mimo-token-plan-sgp",name:"Xiaomi MiMo Token Plan Singapore",description:"Xiaomi MiMo Token Plan endpoint for Singapore.",productType:"token_plan",anthropicBaseUrl:"https://token-plan-sgp.xiaomimimo.com/anthropic",openaiBaseUrl:"https://token-plan-sgp.xiaomimimo.com/v1"}),u({id:"xiaomi-mimo-token-plan-ams",name:"Xiaomi MiMo Token Plan Europe",description:"Xiaomi MiMo Token Plan endpoint for Amsterdam/Europe.",productType:"token_plan",anthropicBaseUrl:"https://token-plan-ams.xiaomimimo.com/anthropic",openaiBaseUrl:"https://token-plan-ams.xiaomimimo.com/v1"}),u({id:"baidu-qianfan-coding-plan",name:"Baidu Qianfan Coding Plan",description:"Baidu Qianfan Coding Plan endpoint for AI coding tools.",productType:"coding_plan",anthropicBaseUrl:"https://qianfan.baidubce.com/anthropic/coding",openaiBaseUrl:"https://qianfan.baidubce.com/v2"}),u({id:"stepfun-coding-plan-cn",name:"StepFun Coding Plan 中国大陆",description:"StepFun coding plan endpoint for mainland China.",productType:"coding_plan",anthropicBaseUrl:"https://api.stepfun.com/step_plan",openaiBaseUrl:"https://api.stepfun.com/v1"}),u({id:"stepfun-coding-plan-intl",name:"StepFun Coding Plan 国际版",description:"StepFun coding plan international endpoint.",productType:"coding_plan",anthropicBaseUrl:"https://api.stepfun.ai/step_plan",openaiBaseUrl:"https://api.stepfun.ai/v1"}),u({id:"modelscope-api",name:"ModelScope API",description:"ModelScope inference endpoint with Anthropic and OpenAI-compatible APIs.",anthropicBaseUrl:"https://api-inference.modelscope.cn",openaiBaseUrl:"https://api-inference.modelscope.cn/v1"}),u({id:"siliconflow-api",name:"SiliconFlow 硅基流动",description:"SiliconFlow model API platform with Anthropic and OpenAI-compatible endpoints.",anthropicBaseUrl:"https://api.siliconflow.cn",openaiBaseUrl:"https://api.siliconflow.cn/v1"}),u({id:"siliconflow-intl",name:"SiliconFlow 国际版",description:"SiliconFlow international endpoint.",anthropicBaseUrl:"https://api.siliconflow.com",openaiBaseUrl:"https://api.siliconflow.com/v1"}),u({id:"volcengine-agent-plan-cn",name:"火山引擎 Agent Plan 中国大陆",description:"Volcengine Ark Agent Plan endpoint for mainland China.",productType:"coding_plan",anthropicBaseUrl:"https://ark.cn-beijing.volces.com/api/coding",openaiBaseUrl:"https://ark.cn-beijing.volces.com/api/coding/v1"}),u({id:"volcengine-agent-plan-intl",name:"火山引擎 Agent Plan 国际版",description:"Volcengine BytePlus Agent Plan endpoint for international users.",productType:"coding_plan",anthropicBaseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding",openaiBaseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v1"}),u({id:"volcengine-ark-api-cn",name:"火山方舟豆包 API 中国大陆",description:"Volcengine Ark Doubao Seed pay-as-you-go endpoint for mainland China.",openaiBaseUrl:"https://ark.cn-beijing.volces.com/api/v3"}),u({id:"openrouter-api",name:"OpenRouter",description:"OpenRouter model routing platform with Anthropic and OpenAI-compatible endpoints.",anthropicBaseUrl:"https://openrouter.ai/api",openaiBaseUrl:"https://openrouter.ai/api/v1"}),u({id:"novita-api",name:"Novita AI",description:"Novita AI model platform with Anthropic and OpenAI-compatible endpoints.",anthropicBaseUrl:"https://api.novita.ai/anthropic",openaiBaseUrl:"https://api.novita.ai/v1"})],w={name:"",providerKey:"",apiFormat:"anthropic",authType:"api_key",baseUrl:"",anthropicBaseUrl:"",openaiBaseUrl:"",supportedAdapters:["claude"],allowPlaintextHttp:!1,allowPrivateNetworks:!1};function x(a){return a.anthropicBaseUrl.trim()||a.openaiBaseUrl.trim()||a.baseUrl.trim()}let y={label:"",plaintextSecret:""},z={name:"",modelId:"",capabilities:["chat","code"],customCapabilities:"",contextWindow:"",supportEfforts:[],defaultEffort:""};function A(a,b){let c=new Date(a);return Number.isNaN(c.getTime())?a:c.toLocaleString(b)}function B(a){return Math.min(100,Math.max(0,a))}function C(a,b){switch(a){case"anthropic":return b("models.apiFormatAnthropic");case"openai":return b("models.apiFormatOpenai");case"openai-compatible":return b("models.apiFormatOpenaiCompatible");case"google":return b("models.apiFormatGoogle");case"bedrock":return b("models.apiFormatBedrock");case"local":return b("models.apiFormatLocal");default:return a}}function D(a,b){switch(a){case"api_key":return b("models.authTypeApiKey");case"bearer_token":return b("models.authTypeBearerToken");case"oauth":return b("models.authTypeOauth");case"none":return b("models.authTypeNone");default:return a}}let E=["chat","code","vision","video","tools","reasoning","embedding"],F=["low","medium","high","xhigh","max"];function G({text:a}){return(0,b.jsx)("div",{className:"flex items-center justify-center rounded-md border border-dashed border-border/70 px-4 py-6 text-center text-sm text-muted-foreground",children:a})}let H=["anthropic","openai","openai-compatible","google","bedrock","local"],I=["api_key","bearer_token","oauth","none"],J=[...t.runtimeAdapterIds];function K({open:a,customProvider:d,setupCredential:e,isCreating:f,existing:g,onOpenChange:h,onCustomProviderChange:i,onSetupCredentialChange:l,onSubmit:t,t:u}){let w,y=null!=g,z=(0,c.useRef)(!1),[A,B]=(0,c.useState)("");(0,c.useEffect)(()=>{a||(z.current=!1,B(""))},[a]);let E=(w=A.trim().toLowerCase())?v.filter(a=>[a.id,a.name,a.description,a.anthropicBaseUrl??"",a.openaiBaseUrl??""].join("\n").toLowerCase().includes(w)):v,F="none"!==d.authType,G=!!x(d),L=G&&[d.baseUrl,d.anthropicBaseUrl,d.openaiBaseUrl].map(a=>a.trim()).filter(Boolean).some(a=>a.toLowerCase().startsWith("http://")),M=G&&[d.baseUrl,d.anthropicBaseUrl,d.openaiBaseUrl].map(a=>a.trim()).filter(Boolean).some(a=>{let b;try{b=new URL(a).hostname.toLowerCase()}catch{return!1}if(b.startsWith("[")&&b.endsWith("]")&&(b=b.slice(1,-1)),"localhost"===b||"::1"===b||b.startsWith("fd")||b.startsWith("fc")||b.endsWith(".local")||!b.includes("."))return!0;if(/^\d{1,3}(\.\d{1,3}){3}$/.test(b)){let a=b.split(".").map(a=>Number.parseInt(a,10)),c=a[0]??0,d=a[1]??0;if(127===c||10===c||0===c||192===c&&168===d||172===c&&d>=16&&d<=31||169===c&&254===d||100===c&&d>=64&&d<=127)return!0}return!1}),N=[];0===d.name.trim().length&&N.push(u("models.providerFormMissingName")),0===d.providerKey.trim().length&&N.push(u("models.providerFormMissingKey")),G||N.push(u("models.providerFormMissingEndpoint")),0===d.supportedAdapters.length&&N.push(u("models.supportedAdapters"));let O=N.join("、"),P=!f&&0===N.length;return(0,b.jsx)(q.Dialog,{open:a,onOpenChange:h,children:(0,b.jsx)(q.DialogContent,{className:y?"max-h-[90vh] overflow-y-auto sm:max-w-2xl":"max-h-[90vh] overflow-hidden sm:max-w-4xl",children:(0,b.jsxs)("form",{className:y?"space-y-4":"grid max-h-[80vh] gap-5 md:grid-cols-[240px_minmax(0,1fr)]",onSubmit:t,children:[!y&&(0,b.jsxs)("div",{className:"flex min-h-0 flex-col gap-2",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:u("models.presets")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:u("models.presetsDescription")})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(o.Search,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(r.Input,{value:A,onChange:a=>B(a.target.value),placeholder:u("models.searchProviderPlaceholder"),"aria-label":u("models.searchProviderPlaceholder"),className:"h-9 pl-9"})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 space-y-1 overflow-y-auto rounded-md border border-border/70 p-1",children:0===E.length?(0,b.jsx)("p",{className:"px-3 py-4 text-center text-xs text-muted-foreground",children:u("models.noPresetMatches")}):E.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{z.current=!0,i({name:a.name,providerKey:a.id,apiFormat:a.apiFormat,authType:a.authType,baseUrl:"",anthropicBaseUrl:a.anthropicBaseUrl??"",openaiBaseUrl:a.openaiBaseUrl??"",supportedAdapters:[...a.supportedAdapters],allowPlaintextHttp:!1,allowPrivateNetworks:!1})},className:`w-full rounded px-3 py-2 text-left hover:bg-muted/50 ${d.providerKey===a.id?"bg-muted/40":""}`,children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:a.name}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:C(a.apiFormat,u)})]}),(0,b.jsx)("div",{className:"mt-0.5 truncate text-xs text-muted-foreground",children:a.openaiBaseUrl??a.anthropicBaseUrl})]},a.id))})]}),(0,b.jsxs)("div",{className:y?"contents":"min-h-0 space-y-4 overflow-y-auto pr-1",children:[!y&&(0,b.jsxs)(q.DialogHeader,{children:[(0,b.jsx)(q.DialogTitle,{children:u("models.addProvider")}),(0,b.jsx)(q.DialogDescription,{children:u("models.addProviderDescription")})]}),y&&(0,b.jsxs)(q.DialogHeader,{children:[(0,b.jsx)(q.DialogTitle,{children:u("models.editProvider")}),(0,b.jsx)(q.DialogDescription,{children:u("models.editProviderDescription")})]}),(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-name",children:u("common.name")}),(0,b.jsx)(r.Input,{id:"provider-name",value:d.name,onChange:a=>{var b;return b=a.target.value,void i({...d,name:b,providerKey:z.current?d.providerKey:b.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")})},required:!0})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-key",children:u("models.providerKey")}),(0,b.jsx)(r.Input,{id:"provider-key",value:d.providerKey,onChange:a=>{z.current=!0,i({...d,providerKey:a.target.value})},disabled:y,required:!0}),y&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:u("models.providerKeyLocked")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-api-format",children:u("models.apiFormat")}),(0,b.jsx)("select",{id:"provider-api-format",className:"h-10 w-full rounded-md border bg-background px-3 text-sm text-foreground",value:d.apiFormat,onChange:a=>i({...d,apiFormat:a.target.value}),children:H.map(a=>(0,b.jsx)("option",{value:a,children:C(a,u)},a))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:function(a,b){switch(a){case"anthropic":return b("models.apiFormatHintAnthropic");case"openai":return b("models.apiFormatHintOpenai");case"openai-compatible":return b("models.apiFormatHintOpenaiCompatible");case"google":return b("models.apiFormatHintGoogle");case"bedrock":return b("models.apiFormatHintBedrock");case"local":return b("models.apiFormatHintLocal");default:return""}}(d.apiFormat,u)})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-auth-type",children:u("models.authType")}),(0,b.jsx)("select",{id:"provider-auth-type",className:"h-10 w-full rounded-md border bg-background px-3 text-sm text-foreground",value:d.authType,onChange:a=>i({...d,authType:a.target.value}),children:I.map(a=>(0,b.jsx)("option",{value:a,children:D(a,u)},a))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:function(a,b){switch(a){case"api_key":return b("models.authTypeHintApiKey");case"bearer_token":return b("models.authTypeHintBearerToken");case"oauth":return b("models.authTypeHintOauth");case"none":return b("models.authTypeHintNone");default:return""}}(d.authType,u)})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-openai-base-url",children:u("models.openaiBaseUrl")}),(0,b.jsx)(r.Input,{id:"provider-openai-base-url",value:d.openaiBaseUrl,onChange:a=>i({...d,openaiBaseUrl:a.target.value}),placeholder:"https://example.com/v1"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-anthropic-base-url",children:u("models.anthropicBaseUrl")}),(0,b.jsx)(r.Input,{id:"provider-anthropic-base-url",value:d.anthropicBaseUrl,onChange:a=>i({...d,anthropicBaseUrl:a.target.value}),placeholder:"https://example.com/anthropic"})]})]}),N.length>0?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:u("models.providerFormCannotSave").replace("{reasons}",O)}):null,L&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,b.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",className:"mt-0.5 size-4 accent-brand",checked:d.allowPlaintextHttp,onChange:a=>i({...d,allowPlaintextHttp:a.target.checked})}),(0,b.jsx)("span",{children:u("models.allowPlaintextHttp")})]}),(0,b.jsx)("p",{className:"pl-6 text-xs text-muted-foreground",children:u("models.allowPlaintextHttpHint")})]}),M&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,b.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",className:"mt-0.5 size-4 accent-brand",checked:d.allowPrivateNetworks,onChange:a=>i({...d,allowPrivateNetworks:a.target.checked})}),(0,b.jsx)("span",{children:u("models.allowPrivateNetworks")})]}),(0,b.jsx)("p",{className:"pl-6 text-xs text-muted-foreground",children:u("models.allowPrivateNetworksHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:u("models.supportedAdapters")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-3",children:J.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:d.supportedAdapters.includes(a),onChange:()=>{let b;return b=d.supportedAdapters.includes(a)?d.supportedAdapters.filter(b=>b!==a):[...d.supportedAdapters,a],void i({...d,supportedAdapters:b})}}),(0,b.jsx)(p.CliBrandIcon,{aiTool:a,className:"size-4"}),"claude"===a?"Claude Code":"opencode"===a?"OpenCode":"codex"===a?"Codex":"kimi"===a?"Kimi Code":a]},a))})]}),!y&&(F?(0,b.jsxs)("div",{className:"grid gap-3 rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"setup-credential-label",children:u("models.credentialLabel")}),(0,b.jsx)(r.Input,{id:"setup-credential-label",value:e.label,onChange:a=>l({...e,label:a.target.value}),placeholder:u("models.defaultCredentialLabel")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"setup-api-key",children:u("models.apiKey")}),(0,b.jsx)(r.Input,{id:"setup-api-key",type:"password",value:e.plaintextSecret,onChange:a=>l({...e,plaintextSecret:a.target.value}),placeholder:u("models.apiKeyPlaceholder")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:u("models.setupCredentialOptionalHint")})]})]}):(0,b.jsx)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-sm text-muted-foreground",children:u("models.noCredentialRequired")})),(0,b.jsx)(q.DialogFooter,{children:(0,b.jsxs)(k.Button,{type:"submit",disabled:!P,title:N.length>0?u("models.providerFormCannotSave").replace("{reasons}",O):void 0,children:[f?(0,b.jsx)(m.RefreshCw,{className:"size-4 animate-spin"}):y?(0,b.jsx)(n.Save,{className:"size-4"}):(0,b.jsx)(j.Plus,{className:"size-4"}),y?u("common.save"):u("models.saveAndSyncModels")]})})]})]})})})}var L=a.i(37060),M=a.i(2337),N=a.i(85564),O=a.i(23834),P=a.i(4730),Q=a.i(79914),R=a.i(39465);let S=[{slot:"opus",label:"Opus"},{slot:"sonnet",label:"Sonnet"},{slot:"haiku",label:"Haiku"}],T=[{slot:"fable",label:"Fable"},{slot:"subagent",label:"Subagent"}],U=["minimal","low","medium","high"],V=[];function W({provider:a,models:d,credentials:h,open:i,initialAdapter:j,onOpenChange:l}){let{t:m}=(0,Q.useLanguage)(),n=(0,g.useQueryClient)(),o=(0,c.useMemo)(()=>[...a.supportedAdapters],[a.supportedAdapters]),p=(0,c.useMemo)(()=>d.filter(a=>"active"===a.status),[d]),r=(0,c.useMemo)(()=>h.filter(a=>"active"===a.status),[h]),u=p.find(a=>a.isDefault)??p[0],[v,w]=(0,c.useState)(o[0]??"claude"),x="claude"===v&&!a.anthropicBaseUrl&&"anthropic"!==a.apiFormat,y=x&&("openai"===a.apiFormat||"openai-compatible"===a.apiFormat),z=x&&!y,A=(0,f.useQuery)({queryKey:["claude-route"],queryFn:t.getClaudeRoute,enabled:i&&x,retry:!1,staleTime:3e4}),B=A.data?.enabled===!0,[C,D]=(0,c.useState)(""),[E,F]=(0,c.useState)(""),[G,H]=(0,c.useState)({}),[I,J]=(0,c.useState)(""),K=(0,f.useQuery)({queryKey:O.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:t.discoverAdapters,enabled:i,staleTime:3e4}),Y=(0,c.useMemo)(()=>K.data?.adapters??V,[K.data]),[Z,$]=(0,c.useState)(!1),_=(0,c.useRef)(x);_.current=x,(0,c.useEffect)(()=>{if(!i)return;let a=j&&o.includes(j)?j:void 0,b=a??(0,O.chooseDefaultAdapter)(Y,o)??o[0]??"claude",c=new Map(Y.map(a=>[a.id,a]));w(d=>!a&&o.includes(d)&&(!c.get(d)||(0,O.isAdapterSelectable)(c.get(d),o))?d:b),D(u?.id??""),F(r[0]?.id??""),H({}),J(""),$(_.current),ac(!1)},[i,o,u?.id,r,Y,j]);let aa=(0,c.useMemo)(()=>{let b=Object.fromEntries(Object.entries(G).filter(([,a])=>!!a));return{providerProfileId:a.id,..."opencode"!==v&&C?{modelProfileId:C}:{},...E?{credentialId:E}:{},..."claude"===v&&Object.keys(b).length>0?{modelMapping:b}:{},..."codex"===v&&I?{reasoningEffort:I}:{},...x?{routeThroughGateway:!0}:{}}},[v,E,G,C,x,a.id,I]),[ab,ac]=(0,c.useState)(!1),[ad,ae]=(0,c.useState)(aa);(0,c.useEffect)(()=>{if(!ab)return;let a=setTimeout(()=>ae(aa),400);return()=>clearTimeout(a)},[aa,ab]);let af=(0,f.useQuery)({queryKey:["cli-config-apply-preview",v,ad],queryFn:()=>(0,t.previewCliConfigApply)(v,ad),enabled:i&&ab&&o.length>0&&ad===aa,retry:!1,staleTime:0}),ag=(0,e.useMutation)({mutationFn:async()=>(x&&!B&&await (0,t.setClaudeRoute)(!0),(0,t.applyCliConfigToAdapter)(v,{...aa,...x?{routeThroughGateway:!0}:{}})),onSuccess:async a=>{let b=a.files?.[0]?.targetPath??"—";N.toast.success(m("models.applyToCliSuccess").replace("{targetPath}",b)),a.backupId&&N.toast.info(m("models.applyToCliRollbackHint")),l(!1),await n.invalidateQueries({queryKey:["cli-config"]}),await n.invalidateQueries({queryKey:["applied-providers"]}),await n.invalidateQueries({queryKey:["applied-provider"]}),"claude"===v&&await n.invalidateQueries({queryKey:["claude-route"]})},onError:a=>{N.toast.error(a instanceof Error?a.message:m("models.applyToCliFailed"))}}),ah=af.data,ai=ah?.files??[],aj=ah?.warnings??[],ak=aj.includes("CODEX_WIRE_API_UNSUPPORTED"),al=aj.filter(a=>"OPENAI_PROTOCOL_REQUIRES_ROUTE"!==a&&"CODEX_WIRE_API_UNSUPPORTED"!==a),am="pi"===v?m("models.applyToCliDefaultModel"):m("projects.model");return(0,b.jsx)(q.Dialog,{open:i,onOpenChange:a=>{ag.isPending||l(a)},children:(0,b.jsxs)(q.DialogContent,{className:"sm:max-w-xl",children:[(0,b.jsxs)(q.DialogHeader,{children:[(0,b.jsx)(q.DialogTitle,{children:m("models.applyToCli")}),(0,b.jsx)(q.DialogDescription,{children:m("models.applyToCliDescription")})]}),(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"apply-cli-adapter",children:m("common.aiTool")}),(0,b.jsx)(O.AdapterSelect,{id:"apply-cli-adapter",ariaLabel:m("common.aiTool"),className:"h-9 w-full",value:v,onValueChange:w,supported:o,placeholder:m("common.loading")})]}),"opencode"!==v&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"apply-cli-model",children:am}),(0,b.jsxs)("select",{id:"apply-cli-model","aria-label":am,className:"h-9 w-full rounded-md border bg-background px-3 text-sm",value:C,onChange:a=>D(a.target.value),children:[0===p.length?(0,b.jsx)("option",{value:"",children:m("models.noModelsAvailable")}):null,p.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),"pi"===v&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:m("models.applyToCliPiHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"apply-cli-credential",children:m("models.credentials")}),(0,b.jsxs)("select",{id:"apply-cli-credential","aria-label":m("models.credentials"),className:"h-9 w-full rounded-md border bg-background px-3 text-sm",value:E,onChange:a=>F(a.target.value),children:[(0,b.jsx)("option",{value:"",children:m("models.applyToCliNoCredential")}),r.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label??m("models.unnamedCredential")},a.id))]})]})]}),"opencode"===v&&(0,b.jsx)("p",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-xs text-muted-foreground",children:m("models.opencodeApplyHint")}),("claude"===v||"codex"===v||x)&&(0,b.jsxs)("div",{className:"rounded-md border border-border/70",children:[(0,b.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-2 px-3 py-2 text-left text-sm font-medium","aria-expanded":Z,onClick:()=>$(a=>!a),children:[m("models.applyAdvancedOptions"),(0,b.jsx)(L.ChevronDown,{className:(0,R.cn)("size-4 text-muted-foreground transition-transform duration-200",Z&&"rotate-180")})]}),Z&&(0,b.jsxs)("div",{className:"space-y-3 border-t border-border/70 px-3 py-3",children:["claude"===v&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"space-y-0.5",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:m("models.roleMapping")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:m("models.roleMappingDescription")})]}),(0,b.jsx)("div",{className:"grid gap-3 md:grid-cols-3",children:[...S,...T].map(({slot:a,label:c})=>(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(s.Label,{htmlFor:`apply-cli-slot-${a}`,className:"text-xs",children:c}),(0,b.jsxs)("select",{id:`apply-cli-slot-${a}`,"aria-label":c,className:"h-9 w-full rounded-md border bg-background px-3 text-sm",value:G[a]??"",onChange:b=>H(c=>({...c,[a]:b.target.value})),children:[(0,b.jsx)("option",{value:"",children:m("models.followPrimaryModel")}),p.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})]},a))})]}),"codex"===v&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"apply-cli-effort",children:m("models.reasoningEffort")}),(0,b.jsxs)("select",{id:"apply-cli-effort","aria-label":m("models.reasoningEffort"),className:"h-9 w-full rounded-md border bg-background px-3 text-sm md:max-w-xs",value:I,onChange:a=>J(a.target.value),children:[(0,b.jsx)("option",{value:"",children:m("models.reasoningEffortDefault")}),U.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),z&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:m("models.claudeRouteUnsupported")}),y&&(0,b.jsxs)("div",{className:B?"space-y-1 rounded-md border border-emerald-500/40 bg-emerald-500/10 px-3 py-2 text-xs":"space-y-1 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-xs",children:[(0,b.jsx)("p",{className:B?"font-medium text-emerald-700 dark:text-emerald-300":"font-medium text-amber-700 dark:text-amber-300",children:B?m("models.claudeRouteEnabledHint").replace("{gatewayUrl}",A.data?.gatewayUrl??"—"):m("models.claudeRouteBanner")}),!B&&(0,b.jsx)("p",{className:"text-muted-foreground",children:m("models.claudeRouteBannerDescription")})]})]})]}),(0,b.jsxs)("div",{className:"rounded-md border border-border/70",children:[(0,b.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-2 px-3 py-2 text-left text-sm font-medium","aria-expanded":ab,onClick:()=>ac(a=>!a),children:[m("models.applyChangeSummary"),(0,b.jsx)(L.ChevronDown,{className:(0,R.cn)("size-4 text-muted-foreground transition-transform duration-200",ab&&"rotate-180")})]}),ab&&(0,b.jsx)("div",{className:"space-y-2 border-t border-border/70 px-3 py-3 text-xs",children:af.isPending?(0,b.jsx)("p",{className:"text-muted-foreground",children:m("common.loading")}):af.error?(0,b.jsx)("p",{className:"text-destructive",children:af.error instanceof Error?af.error.message:m("models.applyPreviewFailed")}):ah?(0,b.jsxs)(b.Fragment,{children:[ak&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:m("models.codexWireApiBlocked")}),ai.map(a=>(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[m("models.applyTargetPath"),":"]}),(0,b.jsx)("span",{className:"break-all font-mono",children:a.targetPath||"—"}),(0,b.jsx)(P.Badge,{variant:"outline",children:a.operation})]}),a.proposed?(0,b.jsx)("pre",{className:"max-h-48 overflow-auto rounded-md border border-border/70 bg-background/60 p-2 font-mono whitespace-pre-wrap",children:X(a.proposed)}):null]},a.targetPath)),al.length>0?(0,b.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-amber-700 dark:text-amber-300",children:al.map(a=>(0,b.jsx)("li",{children:X(a)},a))}):null]}):null})]}),(0,b.jsxs)(q.DialogFooter,{children:[(0,b.jsx)(k.Button,{type:"button",variant:"outline",disabled:ag.isPending,onClick:()=>l(!1),children:m("common.cancel")}),(0,b.jsxs)(k.Button,{type:"button",disabled:ag.isPending||z||ak||x&&A.isLoading,onClick:()=>ag.mutate(),children:[(0,b.jsx)(M.ShieldCheck,{className:"size-4"}),ag.isPending?m("models.applyingToCli"):B&&x?m("models.claudeRouteApply"):x?m("models.claudeRouteEnableAndApply"):m("models.applyConfig")]})]})]})})}function X(a){return a.replace(/\b(sk-[A-Za-z0-9_-]{2})[A-Za-z0-9_-]+/g,"$1…").replace(/((?:api[-_]?key|auth[-_]?token|token|secret)["'\s]*[:=]["'\s]*)([^\s,"']{4})[^\s,"']*/giu,"$1$2…").replace(/(Bearer\s+)([A-Za-z0-9._-]{6})[A-Za-z0-9._-]+/giu,"$1$2…").replace(/\b((?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9_]{4})[A-Za-z0-9_]+/g,"$1…").replace(/\b(github_pat_[A-Za-z0-9_]{4})[A-Za-z0-9_]+/g,"$1…").replace(/\b(xox[baprs]-[A-Za-z0-9-]{4})[A-Za-z0-9-]+/giu,"$1…").replace(/\b((?:AKIA|ASIA|ABIA|ACCA)[A-Z0-9]{4})[A-Z0-9]+/g,"$1…").replace(/\b(AIza[0-9A-Za-z_-]{4})[0-9A-Za-z_-]+/g,"$1…").replace(/\b(eyJ[A-Za-z0-9_-]{4})[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g,"$1…")}var Y=a.i(62803),Z=a.i(38094),$=a.i(27856),_=a.i(35133),aa=a.i(90991),ab=a.i(38640),ac=a.i(802),ad=a.i(76310),ae=a.i(25538),af=a.i(10339);let ag=[...t.runtimeAdapterIds];function ah({open:a,adapter:d,onOpenChange:h}){let{t:i}=(0,Q.useLanguage)(),{user:j}=(0,af.useAuth)(),l=j?.role==="admin",m=(0,g.useQueryClient)(),[n,o]=(0,c.useState)(d);(0,c.useEffect)(()=>{a&&o(d)},[a,d]);let p=(0,f.useQuery)({queryKey:["cli-config-fields",n],queryFn:()=>(0,t.getCliConfigFields)(n),enabled:a}),q=(0,f.useQuery)({queryKey:["cli-config",n],queryFn:()=>(0,t.getCliConfig)(n),retry:!1,enabled:a}),r=(0,f.useQuery)({queryKey:["cli-config-field-values",n],queryFn:()=>(0,t.getCliConfigFieldValues)(n),retry:!1,enabled:a}),s=q.data,u=s?s.files.find(a=>s.configFile.endsWith(a.relativePath))??s.files[0]:void 0,v=(0,f.useQuery)({queryKey:["cli-config-file",n,u?.relativePath],queryFn:()=>(0,t.getCliConfigFile)(n,u.relativePath),enabled:a&&!!u?.relativePath,retry:!1}),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(""),[A,B]=(0,c.useState)(!1);(0,c.useEffect)(()=>{x(!1),z(""),B(!1)},[n,a]);let C=v.data?.content??"",D=w&&y!==C,E=(0,e.useMutation)({mutationFn:()=>(0,t.writeCliConfigFile)(n,u.relativePath,y),onSuccess:async()=>{N.toast.success(i("cliConfig.saved")),x(!1),await Promise.all([m.invalidateQueries({queryKey:["cli-config",n]}),m.invalidateQueries({queryKey:["cli-config-file",n,u?.relativePath]}),m.invalidateQueries({queryKey:["cli-config-field-values",n]}),m.invalidateQueries({queryKey:["applied-providers"]})])},onError:a=>{N.toast.error(a instanceof Error?a.message:i("cliConfig.saveFailed"))}}),F=p.data?.fields??[];return(0,b.jsxs)(ad.Sheet,{open:a,onOpenChange:function(a){!a&&D?B(!0):h(a)},children:[(0,b.jsxs)(ad.SheetContent,{side:"right",className:"w-full gap-0 overflow-y-auto sm:max-w-xl",children:[(0,b.jsxs)(ad.SheetHeader,{children:[(0,b.jsx)(ad.SheetTitle,{children:i("models.cliConfigSection")}),(0,b.jsx)(ad.SheetDescription,{children:i("models.cliConfigSectionDescription")})]}),(0,b.jsxs)("div",{className:"space-y-5 px-4 pb-6",children:[!l&&(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-300",children:[(0,b.jsx)($.ShieldAlert,{className:"size-3.5 shrink-0"}),i("models.cliConfigAdminOnly")]}),(0,b.jsx)(ae.Tabs,{value:n,onValueChange:a=>o(a),children:(0,b.jsx)(ae.TabsList,{children:ag.map(a=>(0,b.jsx)(ae.TabsTrigger,{value:a,children:(0,b.jsx)(_.CliBrandChip,{aiTool:a})},a))})}),F.length>0||p.isLoading||p.error?(0,b.jsxs)("section",{className:"space-y-2",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:i("cliConfig.commonFields")}),p.isLoading?(0,b.jsx)(al,{text:i("common.loading")}):p.error?(0,b.jsx)(al,{destructive:!0,text:am(p.error,i("cliConfig.loadFailed"))}):(0,b.jsx)("div",{className:"grid gap-2 md:grid-cols-2",children:F.map(a=>(0,b.jsx)(aj,{field:a,value:r.data?.values[a.key],valuesLoading:r.isLoading,t:i},a.key))}),r.error?(0,b.jsx)(al,{destructive:!0,text:am(r.error,i("cliConfig.loadFieldValuesFailed"))}):null]}):null,(0,b.jsxs)("section",{className:"space-y-2",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:i("cliConfig.configMetadata")}),q.isLoading?(0,b.jsx)(al,{text:i("common.loading")}):q.error||!s?(0,b.jsx)(al,{destructive:!0,text:am(q.error,i("cliConfig.loadFailed"))}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsx)(ak,{label:i("cliConfig.configRoot"),value:s.configRoot}),(0,b.jsx)(ak,{label:i("cliConfig.mainConfigFile"),value:s.configFile}),(0,b.jsx)(ak,{label:i("cliConfig.defaultModel"),value:s.defaultModel||"—"}),(0,b.jsx)(ak,{label:i("cliConfig.providers"),value:String(s.providers.length)})]}),(0,b.jsx)("div",{className:"space-y-2",children:s.files.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-md border border-border/70 px-3 py-2 text-sm",children:[(0,b.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-2",children:[(0,b.jsx)(Y.FileCode2,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"truncate font-mono text-xs",children:a.relativePath})]}),(0,b.jsxs)("span",{className:"flex shrink-0 gap-2",children:[(0,b.jsx)(P.Badge,{variant:"outline",children:a.fileType}),(0,b.jsx)(P.Badge,{variant:a.exists?"secondary":"outline",children:a.exists?(0,ab.formatBytes)(a.sizeBytes):i("cliConfig.fileMissing")})]})]},a.relativePath))})]})]}),(0,b.jsxs)("section",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("h3",{className:"text-sm font-medium",children:[i("cliConfig.rawEditor"),u?(0,b.jsx)("span",{className:"ml-2 font-mono text-xs font-normal text-muted-foreground",children:u.relativePath}):null]}),w?null:(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"outline",disabled:!l||!u||v.isLoading,title:l?void 0:i("models.cliConfigAdminOnly"),onClick:()=>{z(v.data?.content??""),x(!0)},children:[(0,b.jsx)(Z.Pencil,{className:"size-4"}),i("cliConfig.editRawFile")]})]}),u?w?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("textarea",{"aria-label":i("cliConfig.rawEditor"),className:"min-h-64 w-full rounded-md border bg-background p-3 font-mono text-xs",value:y,onChange:a=>z(a.target.value),spellCheck:!1}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(k.Button,{type:"button",size:"sm",variant:"outline",disabled:E.isPending,onClick:function(){D?B(!0):(x(!1),z(""))},children:i("common.cancel")}),(0,b.jsx)(k.Button,{type:"button",size:"sm",disabled:E.isPending||!D,onClick:()=>E.mutate(),children:E.isPending?i("common.saving"):i("common.save")})]})]}):v.isLoading?(0,b.jsx)(al,{text:i("common.loading")}):v.error?(0,b.jsx)(al,{destructive:!0,text:am(v.error,i("cliConfig.loadFailed"))}):v.data?.content!==void 0?(0,b.jsx)(ai,{fileName:u.relativePath,content:v.data.content}):(0,b.jsx)(al,{text:i("cliConfig.rawFileContentUnavailable")}):(0,b.jsx)(al,{text:i("common.loading")})]})]})]}),(0,b.jsx)(aa.ConfirmDialog,{open:A,title:i("cliConfig.unsavedChangesTitle"),description:i("cliConfig.unsavedChangesDescription"),confirmLabel:i("common.close"),destructive:!0,pending:E.isPending,onOpenChange:B,onConfirm:function(){B(!1),x(!1),z(""),h(!1)}})]})}function ai({fileName:a,content:d}){let[e,f]=(0,c.useState)(null);return((0,c.useEffect)(()=>{let b=!1;if(f(null),d)return(0,ac.highlightWorkspaceCode)(d,a).then(a=>{b||f(a)}),()=>{b=!0}},[a,d]),e)?(0,b.jsx)("div",{className:"max-h-96 overflow-auto rounded-md border border-border/70 bg-muted/20 p-3 font-mono text-xs leading-5",children:e.map((a,c)=>(0,b.jsx)("div",{className:"whitespace-pre-wrap",children:a.length>0?a.map((a,c)=>{let d=(0,ac.tokenFontStyle)(a.fontStyle);return(0,b.jsx)("span",{style:{color:a.color,fontStyle:d.italic?"italic":void 0,fontWeight:d.bold?600:void 0,textDecoration:d.underline?"underline":void 0},children:a.content},c)}):" "},c))}):(0,b.jsx)("pre",{className:"max-h-96 overflow-auto rounded-md border border-border/70 bg-muted/20 p-3 font-mono text-xs whitespace-pre-wrap",children:d})}function aj({field:a,value:c,valuesLoading:d,t:e}){let f=d?e("common.loading"):"secret"===a.type?e(!0===c?"cliConfig.hasKey":"cliConfig.noKey"):void 0===c||""===c?e("cliConfig.fieldNotSet"):String(c);return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a.label}),(0,b.jsx)("div",{className:"mt-1 font-mono text-xs text-muted-foreground",children:a.path}),(0,b.jsx)("div",{className:"mt-2 text-xs",children:f})]})}function ak({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"mt-1 break-all font-mono text-xs",children:c})]})}function al({text:a,destructive:c=!1}){return(0,b.jsx)("div",{className:`rounded-md border border-dashed px-4 py-6 text-center text-sm ${c?"text-destructive":"text-muted-foreground"}`,children:a})}function am(a,b){return a instanceof Error?a.message:b}var an=a.i(37134);function ao({target:a,isDeleting:c,onOpenChange:d,onConfirm:e,t:f}){let g=f(a?.kind==="model"?"models.deleteModelTitle":a?.kind==="credential"?"models.deleteCredentialTitle":"models.deleteProviderTitle"),h=a?.kind==="model"?`${f("models.deleteModelWarning")} ${a.name}`:a?.kind==="credential"?`${f("models.deleteCredentialConfirm")} ${a.name}`:`${f("models.deleteProviderWarning")} ${a?.name??""}`;return(0,b.jsx)(q.Dialog,{open:null!==a,onOpenChange:a=>{a||c||d(!1)},children:(0,b.jsxs)(q.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(q.DialogHeader,{children:[(0,b.jsxs)(q.DialogTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(an.Trash2,{className:"size-5 shrink-0 text-destructive"}),g]}),(0,b.jsx)(q.DialogDescription,{children:h})]}),(0,b.jsxs)(q.DialogFooter,{children:[(0,b.jsx)(k.Button,{type:"button",variant:"outline",disabled:c,onClick:()=>d(!1),children:f("common.cancel")}),(0,b.jsxs)(k.Button,{type:"button",variant:"destructive",disabled:c,onClick:e,children:[(0,b.jsx)(an.Trash2,{className:"size-4"}),f(c?"models.deleting":"common.delete")]})]})]})})}var ap=a.i(70458);function aq({providers:a,providerCount:c,modelCounts:d,queryText:e,selectedProviderId:f,isLoading:g,onQueryTextChange:h,onSelectProvider:j,onEditProvider:l,t:m}){return(0,b.jsxs)(ap.Card,{className:"min-w-0 forgebadger-animate-in xl:sticky xl:top-4",children:[(0,b.jsx)(ap.CardHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(i,{className:"size-4"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)(ap.CardTitle,{className:"text-base",children:m("models.providers")}),(0,b.jsx)(ap.CardDescription,{className:"mt-1",children:m("models.providersDescription")})]})]})}),(0,b.jsxs)(ap.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(o.Search,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(r.Input,{value:e,onChange:a=>h(a.target.value),placeholder:m("models.searchConfiguredProviders"),"aria-label":m("models.searchConfiguredProviders"),className:"pl-9"})]}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:[a.length,"/",c," ",m("models.catalogMatches")]}),(0,b.jsx)("div",{"data-testid":"configured-provider-list",className:"max-h-[560px] overflow-y-auto",children:g?(0,b.jsx)(G,{text:m("common.loading")}):0===a.length?(0,b.jsx)(G,{text:m("models.emptyProviders")}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:a.map((a,c)=>{let e=a.id===f;return(0,b.jsxs)("div",{className:`flex w-full items-center gap-2 px-3 py-2.5 text-sm transition-colors forgebadger-animate-in ${e?"bg-brand/5":"hover:bg-muted/40"}`,style:{animationDelay:`${40*c}ms`},children:[(0,b.jsx)("span",{className:`size-1.5 shrink-0 rounded-full ${e?"bg-brand":"bg-muted-foreground/30"}`}),(0,b.jsxs)("button",{type:"button","aria-pressed":e,className:"min-w-0 flex-1 text-left",onClick:()=>j(a.id),children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a.name}),(0,b.jsxs)(P.Badge,{variant:"outline",title:m("models.modelsWorkspace"),className:"shrink-0 text-[10px]",children:[d.get(a.id)??0," ",m("models.modelUnit")]})]}),(0,b.jsx)("span",{className:"block truncate text-xs text-muted-foreground",children:a.baseUrl??a.providerKey})]}),(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 shrink-0 text-muted-foreground hover:text-foreground",title:m("common.edit"),"aria-label":m("common.edit"),onClick:()=>l(a.id),children:(0,b.jsx)(Z.Pencil,{className:"size-4"})})]},a.id)})})})]})]})}var ar=a.i(82977);let as=(0,h.default)("ServerCog",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5",key:"tn8das"}],["path",{d:"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5",key:"1g2pve"}],["path",{d:"M6 6h.01",key:"1utrut"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"m15.7 13.4-.9-.3",key:"1jwmzr"}],["path",{d:"m9.2 10.9-.9-.3",key:"qapnim"}],["path",{d:"m10.6 15.7.3-.9",key:"quwk0k"}],["path",{d:"m13.6 15.7-.4-1",key:"cb9xp7"}],["path",{d:"m10.8 9.3-.4-1",key:"1uaiz5"}],["path",{d:"m8.3 13.6 1-.4",key:"s6srou"}],["path",{d:"m14.7 10.8 1-.4",key:"4d31cq"}],["path",{d:"m13.4 8.3-.3.9",key:"1bm987"}]]),at=(0,h.default)("Wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]);var au=a.i(94851),av=a.i(53650),av=av,aw=a.i(27291),ax=a.i(94588);let ay=[...t.runtimeAdapterIds];function az({provider:a,onApply:d,onViewConfig:e}){let{t:h}=(0,Q.useLanguage)(),i=(0,f.useQuery)({queryKey:["applied-providers"],queryFn:t.getAppliedProviders,retry:!1,staleTime:3e4}),j=(0,f.useQuery)({queryKey:O.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:t.discoverAdapters,retry:!1,staleTime:3e4}),l=(0,f.useQuery)({queryKey:["claude-route"],queryFn:t.getClaudeRoute,retry:!1,staleTime:6e4}),n=(0,f.useQuery)({queryKey:["cli-accounts"],queryFn:t.getCliAccounts,retry:!1,staleTime:6e4,refetchInterval:6e4}),o=new Map((j.data?.adapters??[]).map(a=>[a.id,a])),q=i.data?.adapters,r=l.data,s=new Map((n.data?.accounts??[]).map(a=>[a.login.adapter,a])),u=(0,g.useQueryClient)(),[v,w]=(0,c.useState)(null);return(0,b.jsxs)(ap.Card,{"data-testid":"cli-status-section",children:[(0,b.jsxs)(ap.CardHeader,{children:[(0,b.jsx)(ap.CardTitle,{className:"text-base",children:h("models.cliStatusTitle")}),(0,b.jsx)(ap.CardDescription,{className:"mt-1",children:h("models.cliStatusDescription")})]}),(0,b.jsxs)(ap.CardContent,{children:[i.isLoading?(0,b.jsx)("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-4","data-testid":"cli-status-skeleton",children:ay.map(a=>(0,b.jsx)("div",{className:"h-28 animate-pulse rounded-md border border-border/70 bg-muted/20 px-3 py-2.5"},a))}):(0,b.jsx)("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-4",children:ay.map(c=>{var f;let g=(0,aw.getCliBrand)(c),i=o.get(c),l=i?.available===!0,n=i?.status==="check_failed",x=q?.find(a=>a.adapter===c)??null,y=x?.applied??null,z=(f=a.id,!!(x?.applied&&x.applied.providerProfileId===f)),A=a.supportedAdapters.includes(c),B="claude"===c&&r?.enabled===!0&&r.assignment?.providerProfileId===a.id,C=s.get(c),D=C?.login??null;return(0,b.jsxs)("div",{"data-testid":`cli-status-${c}`,className:`flex min-w-0 flex-col gap-2 rounded-md border px-3 py-2.5 ${z?"border-emerald-500/40 bg-emerald-500/5":"border-border/70 bg-muted/20"}`,children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-1.5 text-sm font-medium",children:[(0,b.jsx)(p.CliBrandIcon,{aiTool:c,className:"size-4 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:g.label})]}),(0,b.jsxs)("span",{className:"flex flex-wrap items-center gap-1",children:[B&&(0,b.jsx)(P.Badge,{variant:"secondary",className:"text-[10px]",children:h("models.claudeRouteBadge")}),(0,b.jsx)(P.Badge,{variant:l?"secondary":"outline",className:"text-[10px]",children:l?h("models.sdkInstalled"):n?h("models.cliStatusCheckFailed"):h("models.sdkMissing")}),D?(0,b.jsx)(aA,{login:D,t:h}):null]})]}),(0,b.jsxs)("div",{className:"min-w-0 text-xs",children:[y?(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:`truncate font-medium ${z?"text-emerald-700 dark:text-emerald-300":""}`,children:[y.providerName??`${h("models.cliStatusUnknownProvider")} \xb7 ${y.providerProfileId.slice(0,8)}`,z?` \xb7 ${h("models.cliStatusActiveHere")}`:""]}),(0,b.jsx)("div",{className:"truncate text-muted-foreground",children:y.modelName??y.modelId??h("models.cliStatusNoModel")})]}):(0,b.jsx)("span",{className:"text-muted-foreground",children:h("models.cliStatusNotConfigured")}),x?.stale?(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-1 text-amber-700 dark:text-amber-300",children:[(0,b.jsx)(av.default,{className:"size-3 shrink-0"}),h("models.cliStatusStale")]}):null]}),D?(0,b.jsxs)("div",{className:"space-y-1.5",children:["not_authenticated"===D.state?(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",title:h(ax.LOGIN_HINT_KEYS[D.adapter]),children:h(ax.LOGIN_HINT_KEYS[D.adapter])}),(0,b.jsx)(k.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6 shrink-0 text-muted-foreground",disabled:v===D.adapter,"aria-label":h("models.cliAccountQuotaRefresh"),title:h("models.cliAccountQuotaRefresh"),onClick:()=>{var a;w(a=D.adapter),(0,t.refreshCliAccountQuota)(a).then(()=>u.invalidateQueries({queryKey:["cli-accounts"]})).catch(()=>N.toast.error(h("models.cliAccountQuotaRefreshFailed"))).finally(()=>w(null))},children:(0,b.jsx)(m.RefreshCw,{className:(0,R.cn)("size-3",v===D.adapter&&"animate-spin")})})]}):null,(0,b.jsx)(ax.CliQuotaSummary,{quota:C?.quota,t:h})]}):null,(0,b.jsxs)("div",{className:"mt-auto flex items-center gap-1.5 pt-1",children:[(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"outline",className:"h-7 flex-1 px-2 text-xs",disabled:!A,title:A?void 0:h("models.cliStatusApplyUnsupported"),onClick:()=>d(c),children:[(0,b.jsx)(M.ShieldCheck,{className:"size-3.5"}),h("models.cliStatusApply")]}),(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"ghost",className:"h-7 flex-1 px-2 text-xs",disabled:j.isSuccess&&!l,title:j.isSuccess&&!l?h("models.cliStatusCliMissing"):void 0,onClick:()=>e(c),children:[(0,b.jsx)(Y.FileCode2,{className:"size-3.5"}),h("models.cliStatusViewConfig")]})]})]},c)})}),i.isError?(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:h("models.cliStatusLoadFailed")}):null]})]})}function aA({login:a,t:c}){if("cli_missing"===a.state)return null;if("custom_endpoint"===a.state)return(0,b.jsx)(P.Badge,{variant:"outline",className:"text-[10px] text-muted-foreground",title:c("models.cliAccountCustomEndpointHint"),children:c("models.cliAccountCustomEndpoint")});if("ready"===a.state){let d=(0,ax.loginMethodLabel)(a.method,c);return(0,b.jsxs)(P.Badge,{variant:"default",className:"text-[10px]",children:[c("models.cliAccountLoggedIn"),d?` \xb7 ${d}`:""]})}return"not_authenticated"===a.state?(0,b.jsx)(P.Badge,{variant:"outline",className:"text-[10px]",children:c("models.cliAccountNotLoggedIn")}):(0,b.jsx)(P.Badge,{variant:"outline",className:"text-[10px] text-muted-foreground",children:c("models.cliAccountDetectFailed")})}function aB({credentials:a,selectedCredentialId:c,credentialForm:d,rotateDialogOpen:e,isSaving:f,isRotating:g,isDeleting:h,onCredentialFormChange:i,onRotateDialogOpenChange:l,onSelectCredential:n,onSubmitCredential:o,onOpenRotate:p,onConfirmRotate:t,onDeleteCredential:u,t:v}){return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("form",{className:"grid items-end gap-3 md:grid-cols-[1fr_1fr_auto]",onSubmit:o,children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"credential-label",children:v("models.credentialLabel")}),(0,b.jsx)(r.Input,{id:"credential-label",placeholder:v("models.defaultCredentialLabel"),value:d.label,onChange:a=>i({...d,label:a.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"credential-secret",children:v("models.apiKey")}),(0,b.jsx)(r.Input,{id:"credential-secret",type:"password",placeholder:v("models.apiKeyPlaceholder"),value:d.plaintextSecret,onChange:a=>i({...d,plaintextSecret:a.target.value}),required:!0})]}),(0,b.jsxs)(k.Button,{type:"submit",disabled:f,children:[(0,b.jsx)(j.Plus,{className:"size-4"}),v("models.saveCredential")]})]}),0===a.length?(0,b.jsx)(G,{text:v("models.emptyCredentials")}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:a.map((a,d)=>(0,b.jsxs)("div",{className:`flex items-center gap-3 px-4 py-3 transition-colors forgebadger-animate-in hover:bg-muted/40 ${a.id===c?"bg-brand/5":""}`,style:{animationDelay:`${40*d}ms`},children:[(0,b.jsxs)("button",{type:"button",className:"min-w-0 flex-1 text-left",onClick:()=>n(a.id),children:[(0,b.jsx)("div",{className:"truncate text-sm font-medium",children:a.label??v("models.unnamedCredential")}),(0,b.jsx)("div",{className:"mt-0.5 truncate font-mono text-xs text-muted-foreground",children:a.secretPreview})]}),(0,b.jsx)(P.Badge,{variant:"outline",className:"shrink-0",children:a.status}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",title:v("models.rotate"),"aria-label":v("models.rotate"),onClick:()=>p(a.id),children:(0,b.jsx)(m.RefreshCw,{className:"size-4"})}),(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-destructive",disabled:h,title:v("models.deleteCredential"),"aria-label":v("models.deleteCredential"),onClick:()=>u(a.id),children:(0,b.jsx)(an.Trash2,{className:"size-4"})})]})]},a.id))}),(0,b.jsx)(q.Dialog,{open:e,onOpenChange:l,children:(0,b.jsx)(q.DialogContent,{className:"sm:max-w-md",children:(0,b.jsxs)("form",{className:"space-y-4",onSubmit:a=>{a.preventDefault(),t()},children:[(0,b.jsx)(q.DialogHeader,{children:(0,b.jsx)(q.DialogTitle,{children:v("models.rotateApiKey")})}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"rotate-credential-label",children:v("models.credentialLabel")}),(0,b.jsx)(r.Input,{id:"rotate-credential-label",placeholder:v("models.defaultCredentialLabel"),value:d.label,onChange:a=>i({...d,label:a.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"rotate-credential-secret",children:v("models.apiKey")}),(0,b.jsx)(r.Input,{id:"rotate-credential-secret",type:"password",placeholder:v("models.apiKeyPlaceholder"),value:d.plaintextSecret,onChange:a=>i({...d,plaintextSecret:a.target.value}),required:!0})]}),(0,b.jsxs)(q.DialogFooter,{children:[(0,b.jsx)(k.Button,{type:"button",variant:"outline",disabled:g,onClick:()=>l(!1),children:v("common.cancel")}),(0,b.jsxs)(k.Button,{type:"submit",disabled:g||!d.plaintextSecret,children:[(0,b.jsx)(m.RefreshCw,{className:`size-4 ${g?"animate-spin":""}`}),v("models.rotate")]})]})]})})})]})}var aC=a.i(91569);function aD({provider:a,t:d}){let f=(0,Q.useUiLocale)(),[g,h]=(0,c.useState)(null);(0,c.useEffect)(()=>{h(null)},[a.id]);let i=(0,e.useMutation)({mutationFn:()=>(0,t.testModelProviderEndpoint)(a.id,{timeoutMs:5e3}),onSuccess:a=>h(a.health)}),j=i.error instanceof Error?i.error.message:null;return(0,b.jsxs)(ap.Card,{children:[(0,b.jsx)(ap.CardHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(aC.Gauge,{className:"size-4"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)(ap.CardTitle,{className:"text-base",children:d("models.endpointTest")}),(0,b.jsx)(ap.CardDescription,{className:"mt-1",children:d("models.endpointTestDescription")})]})]})}),(0,b.jsxs)(ap.CardContent,{className:"space-y-3",children:[(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"outline",disabled:i.isPending,onClick:()=>i.mutate(),children:[(0,b.jsx)(aC.Gauge,{className:`size-4 ${i.isPending?"animate-pulse":""}`}),d(i.isPending?"models.checkingEndpoint":"models.checkEndpoint")]}),j?(0,b.jsx)("p",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:j}):null,g?(0,b.jsxs)("div",{"data-testid":"endpoint-health-row",className:"flex flex-wrap items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-xs",children:[(0,b.jsx)(P.Badge,{variant:g.healthy?"default":"outline",children:d(g.healthy?"models.endpointHealthy":"models.endpointFailed")}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:[g.latencyMs," ms",g.statusCode?` \xb7 HTTP ${g.statusCode}`:""," · ",A(g.checkedAt,f)]}),g.error?(0,b.jsx)("span",{className:"text-destructive",children:g.error}):null]}):null]})]})}function aE({models:a,selectedModelId:c,modelForm:d,dialogOpen:e,isSaving:f,isSettingDefault:g,isDeleting:h,isSyncing:i,syncDisabled:l,onSync:n,onModelFormChange:o,onDialogOpenChange:p,onNewModel:t,onEditModel:u,onSetDefault:v,onDeleteModel:w,onSubmitModel:x,t:y}){return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"min-w-0 flex-1 text-sm text-muted-foreground",children:y("models.modelsWorkspaceDescription")}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"outline",disabled:l||i,title:l?y("models.syncRequiresCredential"):y("models.syncProviderModelsDescription"),onClick:n,children:[(0,b.jsx)(m.RefreshCw,{className:`size-4 ${i?"animate-spin":""}`}),y("models.syncProviderModels")]}),l&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:y("models.syncRequiresCredential")}),(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"outline",onClick:t,children:[(0,b.jsx)(j.Plus,{className:"size-4"}),y("models.newModel")]})]})]}),0===a.length?(0,b.jsx)(G,{text:y("models.emptyModelsForProvider")}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:a.map((a,d)=>(0,b.jsxs)("div",{className:`flex items-center gap-3 px-4 py-3 transition-colors forgebadger-animate-in hover:bg-muted/40 ${a.id===c?"bg-brand/5":""}`,style:{animationDelay:`${40*d}ms`},children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.name}),a.isDefault&&(0,b.jsx)(P.Badge,{className:"shrink-0",children:y("models.default")})]}),(0,b.jsx)("div",{className:"mt-0.5 truncate font-mono text-xs text-muted-foreground",children:a.modelId})]}),(0,b.jsx)("div",{className:"hidden flex-wrap justify-end gap-1 md:flex md:max-w-40",children:a.capabilities.map(a=>(0,b.jsx)(P.Badge,{variant:"outline",children:a},a))}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",disabled:a.isDefault||g,title:y("models.setDefault"),"aria-label":y("models.setDefault"),onClick:()=>v(a.id),children:(0,b.jsx)(M.ShieldCheck,{className:"size-4"})}),(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",title:y("models.editModel"),"aria-label":y("models.editModel"),onClick:()=>u(a.id),children:(0,b.jsx)(Z.Pencil,{className:"size-4"})}),(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-destructive",disabled:h,title:y("models.deleteModel"),"aria-label":y("models.deleteModel"),onClick:()=>w(a.id),children:(0,b.jsx)(an.Trash2,{className:"size-4"})})]})]},a.id))}),(0,b.jsx)(q.Dialog,{open:e,onOpenChange:p,children:(0,b.jsx)(q.DialogContent,{className:"sm:max-w-md",children:(0,b.jsxs)("form",{className:"space-y-4",onSubmit:x,children:[(0,b.jsx)(q.DialogHeader,{children:(0,b.jsx)(q.DialogTitle,{children:c?y("models.editModel"):y("models.addModel")})}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"model-form-name",children:y("common.name")}),(0,b.jsx)(r.Input,{id:"model-form-name",value:d.name,onChange:a=>o({...d,name:a.target.value}),required:!0})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"model-form-model-id",children:y("models.modelId")}),(0,b.jsx)(r.Input,{id:"model-form-model-id",value:d.modelId,onChange:a=>o({...d,modelId:a.target.value}),required:!0})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{children:y("models.capabilities")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-3",children:E.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:d.capabilities.includes(a),onChange:()=>{let b;return b=d.capabilities.includes(a)?d.capabilities.filter(b=>b!==a):[...d.capabilities,a],void o({...d,capabilities:b})}}),a]},a))}),(0,b.jsx)(r.Input,{id:"model-form-custom-capabilities",value:d.customCapabilities,onChange:a=>o({...d,customCapabilities:a.target.value}),placeholder:y("models.customCapabilitiesPlaceholder")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"model-form-context-window",children:y("models.contextWindow")}),(0,b.jsx)(r.Input,{id:"model-form-context-window",type:"number",min:1,step:1,placeholder:y("models.contextWindowPlaceholder"),value:d.contextWindow,onChange:a=>o({...d,contextWindow:a.target.value})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:y("models.contextWindowHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{children:y("models.thinkingEfforts")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-3",children:F.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:d.supportEfforts.includes(a),onChange:()=>{let b;return b=d.supportEfforts.includes(a),void o({...d,supportEfforts:b?d.supportEfforts.filter(b=>b!==a):[...d.supportEfforts,a],defaultEffort:b&&d.defaultEffort===a?"":d.defaultEffort})}}),a]},a))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:y("models.thinkingEffortsHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"model-form-default-effort",children:y("models.defaultEffort")}),(0,b.jsxs)("select",{id:"model-form-default-effort",className:"h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",value:d.defaultEffort,onChange:a=>o({...d,defaultEffort:a.target.value}),children:[(0,b.jsx)("option",{value:"",children:y("models.defaultEffortUnset")}),d.supportEfforts.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),(0,b.jsxs)(q.DialogFooter,{children:[(0,b.jsx)(k.Button,{type:"button",variant:"outline",disabled:f,onClick:()=>p(!1),children:y("common.cancel")}),(0,b.jsx)(k.Button,{type:"submit",disabled:f,children:c?y("models.saveModel"):y("models.addModel")})]})]})})})]})}function aF({provider:a,isSyncing:c,syncDisabled:d,balance:e,balanceError:g,isCheckingBalance:h,isDeletingProvider:i,onEditProvider:j,onSync:l,onCheckBalance:n,onDeleteProvider:o,onApplyToCli:p,onViewCliConfig:q,modelsTab:r,credentialTab:s,t:u}){var v;let w=(0,Q.useUiLocale)(),{data:x}=(0,f.useQuery)({queryKey:["claude-route"],queryFn:t.getClaudeRoute,retry:!1,staleTime:6e4}),y=x?.enabled===!0&&a.supportedAdapters.includes("claude")&&x.assignment?.providerProfileId===a.id;return(0,b.jsxs)("div",{className:"min-w-0 space-y-6",children:[(0,b.jsx)(ap.Card,{className:"forgebadger-animate-in",children:(0,b.jsxs)(ap.CardContent,{className:"space-y-4 p-4 md:p-5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(as,{className:"size-4"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-base font-semibold",children:a.name}),(0,b.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:a.baseUrl??a.providerKey})]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-2",children:[(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"brand",onClick:()=>p(),children:[(0,b.jsx)(M.ShieldCheck,{className:"size-4"}),u("models.applyToCli")]}),(0,b.jsxs)(au.DropdownMenu,{children:[(0,b.jsx)(au.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"outline",className:"size-9","aria-label":u("common.actions"),children:(0,b.jsx)(ar.MoreHorizontal,{className:"size-4"})})}),(0,b.jsxs)(au.DropdownMenuContent,{align:"end",children:[(0,b.jsxs)(au.DropdownMenuItem,{onSelect:j,children:[(0,b.jsx)(Z.Pencil,{className:"size-4"}),u("models.editProvider")]}),(0,b.jsxs)(au.DropdownMenuItem,{disabled:h,onSelect:n,children:[(0,b.jsx)(at,{className:"size-4"}),u("models.checkBalance")]}),(0,b.jsxs)(au.DropdownMenuItem,{className:"text-destructive focus:text-destructive",disabled:i,onSelect:o,children:[(0,b.jsx)(an.Trash2,{className:"size-4"}),u("models.deleteProviderTitle")]})]})]})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(P.Badge,{variant:"outline",children:C(a.apiFormat,u)}),y&&(0,b.jsx)(P.Badge,{variant:"secondary",children:u("models.claudeRouteBadge")}),a.region?(0,b.jsx)(P.Badge,{variant:"outline",children:a.region}):null,(0,b.jsx)(P.Badge,{variant:"secondary",children:(v=a.productType,"coding_plan"===v?u("models.productTypeCodingPlan"):"token_plan"===v?u("models.productTypeTokenPlan"):"subscription"===v?u("models.productTypeSubscription"):"local"===v?u("models.productTypeLocal"):u("models.productTypePaygApi"))}),(0,b.jsx)(P.Badge,{variant:"outline",children:D(a.authType,u)}),(!a?[]:[...a.supportedAdapters]).map(a=>(0,b.jsx)(_.CliBrandChip,{aiTool:a},a))]}),(0,b.jsxs)("div",{className:"min-h-10 space-y-2","data-testid":"provider-balance-row",children:[g?(0,b.jsx)("span",{className:"text-xs text-destructive",children:g}):e&&!e.supported?(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:u("models.balanceNotSupported")}):!e&&h?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,b.jsx)(m.RefreshCw,{className:"size-3 animate-spin"}),u("models.balanceLoading")]}):e?0===e.balances.length?(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:u("models.balanceEmpty")}):e.balances.map(a=>(0,b.jsx)(aG,{entry:a,t:u},`${a.label}-${a.resetsAt??""}`)):(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:u("models.balanceNotQueried")}),e?.supported&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[h&&(0,b.jsx)(m.RefreshCw,{className:"size-3 animate-spin"}),(0,b.jsx)("span",{children:A(e.checkedAt,w)})]})]})]})}),(0,b.jsx)(az,{provider:a,onApply:a=>p(a),onViewConfig:q}),(0,b.jsxs)(ae.Tabs,{defaultValue:"models",className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsxs)(ae.TabsList,{children:[(0,b.jsx)(ae.TabsTrigger,{value:"models",children:u("models.modelsWorkspace")}),(0,b.jsx)(ae.TabsTrigger,{value:"credentials",children:u("models.credentials")}),(0,b.jsx)(ae.TabsTrigger,{value:"diagnostics",children:u("models.diagnosticsTab")})]}),(0,b.jsx)(ae.TabsContent,{value:"models",className:"pt-4",children:(0,b.jsx)(aE,{...r,isSyncing:c,syncDisabled:d,onSync:l,t:u})}),(0,b.jsx)(ae.TabsContent,{value:"credentials",className:"pt-4",children:(0,b.jsx)(aB,{...s,t:u})}),(0,b.jsx)(ae.TabsContent,{value:"diagnostics",className:"pt-4",forceMount:!0,children:(0,b.jsx)(aD,{provider:a,t:u})})]})]})}function aG({entry:a,t:c}){let d=(0,Q.useUiLocale)(),e="%"===a.unit?B(100-a.remaining):void 0!==a.limit&&a.limit>0?B((1-a.remaining/a.limit)*100):void 0,f=!1===a.isAvailable,g=void 0!==e?`${Math.round(e)}%`:`${a.remaining} ${a.unit}`,h=void 0===e?"":e>=80?"bg-red-500":e>=50?"bg-amber-500":"bg-emerald-500";return(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 text-xs",children:[(0,b.jsxs)("span",{className:f?"text-amber-700 dark:text-amber-300":"text-muted-foreground",children:[a.label,f?` \xb7 ${c("models.balanceUnavailable")}`:"",a.resetsAt?` \xb7 ${c("models.balanceResetsAt")}: ${A(a.resetsAt,d)}`:""]}),(0,b.jsx)("span",{className:`font-medium ${f?"text-amber-700 dark:text-amber-300":""}`,children:g})]}),void 0!==e&&(0,b.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-muted/40",children:(0,b.jsx)("div",{className:`h-full rounded-full transition-[width] duration-500 ${h}`,style:{width:`${e}%`}})})]})}function aH(a,b){return a instanceof Error?a.message:b}a.s(["default",0,function(){let{t:a}=(0,Q.useLanguage)(),h=(0,g.useQueryClient)(),m=(0,d.useRouter)(),n=(0,d.usePathname)(),o=(0,d.useSearchParams)(),[p,q]=(0,c.useState)(()=>o.get("provider")??""),[r,s]=(0,c.useState)(w),[u,v]=(0,c.useState)(y),[A,B]=(0,c.useState)(z),[C,D]=(0,c.useState)(""),[F,G]=(0,c.useState)(""),[H,I]=(0,c.useState)(""),[J,L]=(0,c.useState)(y),[M,O]=(0,c.useState)(null),[P,R]=(0,c.useState)(!1),[S,T]=(0,c.useState)(null),[U,V]=(0,c.useState)({open:!1}),[X,Y]=(0,c.useState)({open:!1,adapter:"claude"}),[Z,$]=(0,c.useState)(!1),[_,aa]=(0,c.useState)(!1);function ab(a){q(a);let b=new URLSearchParams(o.toString());a?b.set("provider",a):b.delete("provider");let c=b.toString();m.replace(c?`${n}?${c}`:n,{scroll:!1})}let ac=(0,f.useQuery)({queryKey:["model-providers"],queryFn:t.listModelProviders}),ad=ac.data?.providers??[],ae=ac.data?.models??[],af=ac.data?.credentials??[],ag=(0,c.useMemo)(()=>{let a=H.trim().toLowerCase();return a?ad.filter(b=>[b.name,b.providerKey,b.baseUrl,b.apiFormat,b.opencodeNpm].filter(Boolean).join(" ").toLowerCase().includes(a)):ad},[H,ad]);(0,c.useEffect)(()=>{let a=ad[0];a&&(p&&ad.some(a=>a.id===p)||ab(a.id))},[ad,p]);let ai=ad.find(a=>a.id===p),aj=(0,c.useMemo)(()=>ae.filter(a=>a.providerProfileId===p),[ae,p]),ak=(0,c.useMemo)(()=>af.filter(a=>a.providerProfileId===p),[af,p]),al=(0,c.useMemo)(()=>aj.find(a=>a.id===C),[aj,C]),am=(0,c.useMemo)(()=>ak.find(a=>a.id===F),[ak,F]),an=(0,c.useMemo)(()=>{let a=new Map;for(let b of ae)a.set(b.providerProfileId,(a.get(b.providerProfileId)??0)+1);return a},[ae]);(0,c.useEffect)(()=>{D(a=>aj.some(b=>b.id===a)?a:aj[0]?.id||""),G(a=>ak.some(b=>b.id===a)?a:ak[0]?.id||"")},[aj,ak]),(0,c.useEffect)(()=>{if(al){let{checked:a,custom:b}=function(a){let b=new Set(E),c=[],d=[];for(let e of a)b.has(e)?c.push(e):d.push(e);return{checked:c,custom:d.join(",")}}(al.capabilities);B({name:al.name,modelId:al.modelId,capabilities:a,customCapabilities:b,contextWindow:al.contextWindow?String(al.contextWindow):"",supportEfforts:al.supportEfforts,defaultEffort:al.defaultEffort??""})}else B(z)},[al]),(0,c.useEffect)(()=>{am&&v(a=>({...a,label:am.label??""}))},[am]);let ap=(0,e.useMutation)({mutationFn:async()=>{let a,b=r.anthropicBaseUrl.trim(),c=r.openaiBaseUrl.trim(),d=await (0,t.createModelProvider)({name:r.name.trim(),providerKey:r.providerKey.trim(),authType:r.authType,apiFormat:r.apiFormat,baseUrl:x(r),...b?{anthropicBaseUrl:b}:{},...c?{openaiBaseUrl:c}:{},supportedAdapters:r.supportedAdapters,...r.allowPlaintextHttp?{allowPlaintextHttp:!0}:{},...r.allowPrivateNetworks?{allowPrivateNetworks:!0}:{}}),e=J.plaintextSecret.trim(),f="none"!==d.provider.authType&&e?(await (0,t.createProviderCredential)(d.provider.id,{label:J.label.trim()||void 0,plaintextSecret:e})).credential:void 0;if(f||"none"===d.provider.authType)try{await (0,t.syncProviderModels)(d.provider.id,{credentialId:f?.id})}catch(b){a=b}return{provider:d.provider,credential:f,syncError:a}},onSuccess:async b=>{ab(b.provider.id),G(b.credential?.id??""),D(""),s(w),L(y),R(!1),T(null),N.toast.success(a("models.providerCreated")),b.syncError&&N.toast.error(b.syncError instanceof Error?b.syncError.message:a("models.modelSyncFailed")),await aG()},onError:b=>N.toast.error(aH(b,a("models.failedLoad")))}),ar=(0,e.useMutation)({mutationFn:async()=>{if(!S)throw Error(a("models.providerRequired"));let b=r.anthropicBaseUrl.trim(),c=r.openaiBaseUrl.trim();return(0,t.updateModelProvider)(S.id,{name:r.name.trim(),authType:r.authType,apiFormat:r.apiFormat,baseUrl:x(r),...b?{anthropicBaseUrl:b}:{},...c?{openaiBaseUrl:c}:{},supportedAdapters:r.supportedAdapters,...r.allowPlaintextHttp?{allowPlaintextHttp:!0}:{},...r.allowPrivateNetworks?{allowPrivateNetworks:!0}:{}})},onSuccess:async()=>{R(!1),T(null),s(w),N.toast.success(a("models.updated")),await aG()},onError:b=>N.toast.error(aH(b,a("models.failedLoad")))}),as=(0,e.useMutation)({mutationFn:a=>(0,t.deleteModelProvider)(a),onSuccess:async(b,c)=>{O(null),ab(ad.find(a=>a.id!==c)?.id||""),D(""),G(""),N.toast.success(a("models.providerDeleted")),await aG()},onError:b=>N.toast.error(aH(b,a("models.failedLoad")))}),at=(0,e.useMutation)({mutationFn:()=>(0,t.createProviderCredential)(p,{label:u.label.trim()||void 0,plaintextSecret:u.plaintextSecret}),onSuccess:async b=>{v(y),G(b.credential.id),N.toast.success(a("models.credentialSaved")),await aG()},onError:b=>N.toast.error(aH(b,a("models.failedLoad")))}),au=(0,e.useMutation)({mutationFn:()=>{if(!F)throw Error(a("models.credentialRequired"));return(0,t.rotateProviderCredential)(p,F,{label:u.label.trim()||void 0,plaintextSecret:u.plaintextSecret})},onSuccess:async b=>{v(y),G(b.credential.id),aa(!1),N.toast.success(a("models.credentialRotated")),await aG()},onError:b=>N.toast.error(aH(b,a("models.failedLoad")))}),av=(0,e.useMutation)({mutationFn:a=>(0,t.deleteProviderCredential)(p,a),onSuccess:async(b,c)=>{O(null),G(ak.find(a=>a.id!==c)?.id||""),v(y),N.toast.success("revoked"===b.disposition?a("models.credentialRevoked"):a("models.credentialDeleted")),await aG()},onError:b=>N.toast.error(aH(b,a("models.failedLoad")))}),aw=()=>({name:A.name.trim(),modelId:A.modelId.trim(),capabilities:function(a,b){let c=[];for(let d of[...a,...function(a){let b=new Set;for(let c of a.split(",")){let a=c.trim();a&&b.add(a)}return[...b]}(b)])d&&!c.includes(d)&&c.push(d);return c}(A.capabilities,A.customCapabilities),supportEfforts:A.supportEfforts}),ax=(0,e.useMutation)({mutationFn:()=>(0,t.createProviderModel)(p,{...aw(),...A.contextWindow.trim()?{contextWindow:Number(A.contextWindow.trim())}:{},...A.defaultEffort?{defaultEffort:A.defaultEffort}:{}}),onSuccess:async b=>{B(z),D(b.model.id),$(!1),N.toast.success(a("models.modelProfileSaved")),await aG()},onError:b=>N.toast.error(aH(b,a("models.failedLoad")))}),ay=(0,e.useMutation)({mutationFn:()=>{if(!C)throw Error(a("models.modelRequired"));return(0,t.updateProviderModel)(p,C,{...aw(),contextWindow:A.contextWindow.trim()?Number(A.contextWindow.trim()):null,defaultEffort:A.defaultEffort||null})},onSuccess:async b=>{D(b.model.id),$(!1),N.toast.success(a("models.updated")),await aG()},onError:b=>N.toast.error(aH(b,a("models.failedLoad")))}),az=(0,e.useMutation)({mutationFn:a=>(0,t.deleteProviderModel)(p,a),onSuccess:async(b,c)=>{O(null);let d=aj.find(a=>a.id!==c)?.id||"";D(d),B(d?A:z),N.toast.success(a("models.deleted")),await aG()},onError:b=>N.toast.error(aH(b,a("models.failedLoad")))}),aA=(0,e.useMutation)({mutationFn:a=>(0,t.setDefaultProviderModel)(p,a),onSuccess:async b=>{D(b.model.id),N.toast.success(a("models.defaultUpdated")),await aG()},onError:b=>N.toast.error(aH(b,a("models.failedLoad")))}),aB=as.isPending||az.isPending||av.isPending,aC=ak.find(a=>"active"===a.status),aD=(0,f.useQuery)({queryKey:["provider-balance",p,aC?.id??""],queryFn:()=>(0,t.checkProviderBalance)(p,aC?{credentialId:aC.id}:{}),enabled:!!ai&&(ai?.authType==="none"||!!aC),refetchInterval:a=>a.state.data?.supported!==!1&&6e4,retry:!1}),aE=(0,e.useMutation)({mutationFn:()=>{if(!ai)throw Error(a("models.providerRequired"));return(0,t.syncProviderModels)(ai.id,{credentialId:"none"===ai.authType?void 0:aC?.id})},onSuccess:async b=>{let c=b.createdCount+(b.updatedCount??0);N.toast.success(c>0?a("models.modelSyncComplete"):a("models.modelSyncNoChanges")),await aG()},onError:b=>N.toast.error(aH(b,a("models.modelSyncFailed")))});function aG(){return h.invalidateQueries({queryKey:["model-providers"]})}function aI(){T(null),s(w),L(y),R(!0)}function aJ(a){let b,c,d,e;T(a),s((b=a.anthropicBaseUrl??"",c=a.openaiBaseUrl??"",e=(d=a.baseUrl??"")&&!b&&!c?d:"",{name:a.name,providerKey:a.providerKey,apiFormat:a.apiFormat,authType:a.authType,baseUrl:d,anthropicBaseUrl:b||("anthropic"===a.apiFormat?e:""),openaiBaseUrl:c||("anthropic"===a.apiFormat?"":e),supportedAdapters:[...a.supportedAdapters],allowPlaintextHttp:a.allowPlaintextHttp??!1,allowPrivateNetworks:a.allowPrivateNetworks??!1})),L(y),R(!0)}return(0,b.jsxs)("div",{className:"mx-auto max-w-[1400px] space-y-6 p-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3 forgebadger-animate-in",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:a("models.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a("models.providerCenterSubtitle")})]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"brand",onClick:aI,children:[(0,b.jsx)(j.Plus,{className:"size-4"}),a("models.addProvider")]})})]}),ac.isError?(0,b.jsx)(l.QueryState,{isLoading:!1,isError:!0,isEmpty:!1,onRetry:()=>void ac.refetch(),empty:null}):(0,b.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[300px_minmax(0,1fr)]",children:[(0,b.jsx)("div",{className:"min-w-0 space-y-6",children:(0,b.jsx)(aq,{providers:ag,providerCount:ad.length,modelCounts:an,queryText:H,selectedProviderId:p,isLoading:ac.isLoading,onQueryTextChange:I,onSelectProvider:ab,onEditProvider:a=>{let b=ad.find(b=>b.id===a);b&&aJ(b)},t:a})}),(0,b.jsx)("div",{className:"min-w-0",children:ai?(0,b.jsx)(aF,{provider:ai,isSyncing:aE.isPending,syncDisabled:"none"!==ai.authType&&!aC,isDeletingProvider:as.isPending,onEditProvider:()=>aJ(ai),balance:aD.data??null,balanceError:aD.isError?aD.error instanceof Error?aD.error.message:a("models.balanceCheckFailed"):null,isCheckingBalance:aD.isFetching,onSync:()=>aE.mutate(),onCheckBalance:()=>void aD.refetch(),onDeleteProvider:()=>{O({kind:"provider",providerId:ai.id,name:ai.name})},onApplyToCli:a=>V({open:!0,adapter:a}),onViewCliConfig:a=>Y({open:!0,adapter:a}),modelsTab:{models:aj,selectedModelId:C,modelForm:A,dialogOpen:Z,isSaving:ax.isPending||ay.isPending,isSettingDefault:aA.isPending,isDeleting:az.isPending,onModelFormChange:B,onDialogOpenChange:$,onNewModel:function(){D(""),B(z),$(!0)},onEditModel:function(a){D(a),$(!0)},onSetDefault:a=>aA.mutate(a),onDeleteModel:a=>{O({kind:"model",modelId:a,name:aj.find(b=>b.id===a)?.name??a})},onSubmitModel:function(a){a.preventDefault(),C?ay.mutate():ax.mutate()}},credentialTab:{credentials:ak,selectedCredentialId:F,credentialForm:u,rotateDialogOpen:_,isSaving:at.isPending,isRotating:au.isPending,isDeleting:av.isPending,onCredentialFormChange:v,onRotateDialogOpenChange:aa,onSelectCredential:G,onSubmitCredential:function(a){a.preventDefault(),at.mutate()},onOpenRotate:function(a){G(a),v(a=>({...a,plaintextSecret:""})),aa(!0)},onConfirmRotate:()=>au.mutate(),onDeleteCredential:a=>{O({kind:"credential",credentialId:a,name:ak.find(b=>b.id===a)?.label??a})}},t:a}):0===ad.length?(0,b.jsxs)("div",{className:"flex min-h-[420px] flex-col items-center justify-center gap-4 rounded-lg border border-dashed border-border/70 bg-card/50 px-6 py-12 text-center forgebadger-animate-in",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(i,{className:"size-5"})}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("models.emptyWorkspaceTitle")}),(0,b.jsx)("p",{className:"max-w-md text-sm text-muted-foreground",children:a("models.emptyProviders")})]}),(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"brand",onClick:aI,children:[(0,b.jsx)(j.Plus,{className:"size-4"}),a("models.addProvider")]})]}):(0,b.jsxs)("div",{className:"flex min-h-[280px] flex-col items-center justify-center gap-3 rounded-lg border border-dashed border-border/70 bg-card/50 px-6 py-10 text-center forgebadger-animate-in",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-muted text-muted-foreground",children:(0,b.jsx)(i,{className:"size-5"})}),(0,b.jsx)("p",{className:"max-w-sm text-sm text-muted-foreground",children:a("models.noProviderSelected")})]})})]}),(0,b.jsx)(ah,{open:X.open,adapter:X.adapter,onOpenChange:a=>Y(b=>({...b,open:a}))}),(0,b.jsx)(K,{open:P,customProvider:r,setupCredential:J,isCreating:ap.isPending||ar.isPending,existing:S??void 0,onOpenChange:function(a){!a&&(ap.isPending||ar.isPending)||R(a)},onCustomProviderChange:s,onSetupCredentialChange:L,onSubmit:function(a){a.preventDefault(),S?ar.mutate():ap.mutate()},t:a}),(0,b.jsx)(ao,{target:M,isDeleting:aB,onOpenChange:a=>{a||aB||O(null)},onConfirm:function(){M&&("provider"===M.kind?as.mutate(M.providerId):"model"===M.kind?az.mutate(M.modelId):av.mutate(M.credentialId))},t:a}),ai?(0,b.jsx)(W,{provider:ai,models:aj,credentials:ak,open:U.open,initialAdapter:U.adapter,onOpenChange:a=>V(b=>({...b,open:a}))}):null]})}],76640)}];
|
|
1
|
+
module.exports=[76640,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(13376),e=a.i(4837),f=a.i(39747),g=a.i(26248),h=a.i(35485);let i=(0,h.default)("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);var j=a.i(90259),k=a.i(97494),l=a.i(67305),m=a.i(14060),n=a.i(67164),o=a.i(48459),p=a.i(73008),q=a.i(62384),r=a.i(55068),s=a.i(3030),t=a.i(39042);function u(a){return{productType:"payg_api",apiFormat:"openai-compatible",authType:"api_key",supportedAdapters:["claude","opencode","kimi","pi"],...a}}let v=[u({id:"openai",name:"OpenAI",description:"Official OpenAI API endpoint.",apiFormat:"openai-responses",openaiBaseUrl:"https://api.openai.com/v1",supportedAdapters:["opencode","codex","kimi","pi"]}),u({id:"anthropic-api",name:"Anthropic API",description:"Official Anthropic API for Claude models.",apiFormat:"anthropic",anthropicBaseUrl:"https://api.anthropic.com"}),u({id:"deepseek-api",name:"DeepSeek API",description:"DeepSeek API with OpenAI and Anthropic-compatible endpoints.",anthropicBaseUrl:"https://api.deepseek.com/anthropic",openaiBaseUrl:"https://api.deepseek.com"}),u({id:"qwen-payg-cn",name:"Qwen API 中国大陆",description:"Alibaba Cloud Model Studio pay-as-you-go endpoint for mainland China accounts.",anthropicBaseUrl:"https://dashscope.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1"}),u({id:"qwen-payg-intl-sg",name:"Qwen API 国际版",description:"Alibaba Cloud Model Studio international endpoint.",anthropicBaseUrl:"https://dashscope-intl.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1"}),u({id:"qwen-coding-plan-cn",name:"Qwen Coding Plan 中国大陆",description:"Alibaba Cloud Model Studio Coding Plan endpoint for mainland China.",productType:"coding_plan",anthropicBaseUrl:"https://coding.dashscope.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://coding.dashscope.aliyuncs.com/v1"}),u({id:"qwen-coding-plan-intl",name:"Qwen Coding Plan 国际版",description:"Alibaba Cloud Model Studio Coding Plan international endpoint.",productType:"coding_plan",anthropicBaseUrl:"https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1"}),u({id:"qwen-token-plan-cn",name:"Qwen Token Plan 中国大陆",description:"Alibaba Cloud Model Studio Token Plan endpoint for mainland China.",productType:"token_plan",anthropicBaseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1"}),u({id:"kimi-code",name:"Kimi For Coding",description:"Kimi coding subscription endpoint.",productType:"coding_plan",anthropicBaseUrl:"https://api.kimi.com/coding/",openaiBaseUrl:"https://api.kimi.com/coding/v1"}),u({id:"kimi-api",name:"Kimi API",description:"Moonshot AI Kimi pay-as-you-go endpoint with Anthropic and OpenAI-compatible APIs.",anthropicBaseUrl:"https://api.moonshot.cn/anthropic",openaiBaseUrl:"https://api.moonshot.cn/v1"}),u({id:"minimax-global",name:"MiniMax 国际版",description:"MiniMax international API endpoint for coding tools.",anthropicBaseUrl:"https://api.minimax.io/anthropic",openaiBaseUrl:"https://api.minimax.io/v1"}),u({id:"minimax-cn",name:"MiniMax 中国大陆",description:"MiniMax mainland China API endpoint for coding tools.",anthropicBaseUrl:"https://api.minimaxi.com/anthropic",openaiBaseUrl:"https://api.minimaxi.com/v1"}),u({id:"zai-coding-plan",name:"Z.AI GLM Coding Plan",description:"Z.AI coding plan endpoints for GLM coding models.",productType:"coding_plan",anthropicBaseUrl:"https://api.z.ai/api/anthropic",openaiBaseUrl:"https://api.z.ai/api/coding/paas/v4"}),u({id:"zai-glm-api",name:"Z.AI GLM API",description:"Z.AI GLM pay-as-you-go endpoint with Anthropic and OpenAI-compatible APIs.",anthropicBaseUrl:"https://api.z.ai/api/anthropic",openaiBaseUrl:"https://api.z.ai/api/paas/v4"}),u({id:"xiaomi-mimo-api",name:"Xiaomi MiMo API",description:"Xiaomi MiMo pay-as-you-go API with OpenAI and Anthropic-compatible endpoints.",anthropicBaseUrl:"https://api.xiaomimimo.com/anthropic",openaiBaseUrl:"https://api.xiaomimimo.com/v1"}),u({id:"xiaomi-mimo-token-plan-cn",name:"Xiaomi MiMo Token Plan 中国大陆",description:"Xiaomi MiMo Token Plan endpoint for mainland China.",productType:"token_plan",anthropicBaseUrl:"https://token-plan-cn.xiaomimimo.com/anthropic",openaiBaseUrl:"https://token-plan-cn.xiaomimimo.com/v1"}),u({id:"xiaomi-mimo-token-plan-sgp",name:"Xiaomi MiMo Token Plan Singapore",description:"Xiaomi MiMo Token Plan endpoint for Singapore.",productType:"token_plan",anthropicBaseUrl:"https://token-plan-sgp.xiaomimimo.com/anthropic",openaiBaseUrl:"https://token-plan-sgp.xiaomimimo.com/v1"}),u({id:"xiaomi-mimo-token-plan-ams",name:"Xiaomi MiMo Token Plan Europe",description:"Xiaomi MiMo Token Plan endpoint for Amsterdam/Europe.",productType:"token_plan",anthropicBaseUrl:"https://token-plan-ams.xiaomimimo.com/anthropic",openaiBaseUrl:"https://token-plan-ams.xiaomimimo.com/v1"}),u({id:"baidu-qianfan-coding-plan",name:"Baidu Qianfan Coding Plan",description:"Baidu Qianfan Coding Plan endpoint for AI coding tools.",productType:"coding_plan",anthropicBaseUrl:"https://qianfan.baidubce.com/anthropic/coding",openaiBaseUrl:"https://qianfan.baidubce.com/v2"}),u({id:"stepfun-coding-plan-cn",name:"StepFun Coding Plan 中国大陆",description:"StepFun coding plan endpoint for mainland China.",productType:"coding_plan",anthropicBaseUrl:"https://api.stepfun.com/step_plan",openaiBaseUrl:"https://api.stepfun.com/v1"}),u({id:"stepfun-coding-plan-intl",name:"StepFun Coding Plan 国际版",description:"StepFun coding plan international endpoint.",productType:"coding_plan",anthropicBaseUrl:"https://api.stepfun.ai/step_plan",openaiBaseUrl:"https://api.stepfun.ai/v1"}),u({id:"modelscope-api",name:"ModelScope API",description:"ModelScope inference endpoint with Anthropic and OpenAI-compatible APIs.",anthropicBaseUrl:"https://api-inference.modelscope.cn",openaiBaseUrl:"https://api-inference.modelscope.cn/v1"}),u({id:"siliconflow-api",name:"SiliconFlow 硅基流动",description:"SiliconFlow model API platform with Anthropic and OpenAI-compatible endpoints.",anthropicBaseUrl:"https://api.siliconflow.cn",openaiBaseUrl:"https://api.siliconflow.cn/v1"}),u({id:"siliconflow-intl",name:"SiliconFlow 国际版",description:"SiliconFlow international endpoint.",anthropicBaseUrl:"https://api.siliconflow.com",openaiBaseUrl:"https://api.siliconflow.com/v1"}),u({id:"volcengine-agent-plan-cn",name:"火山引擎 Agent Plan 中国大陆",description:"Volcengine Ark Agent Plan endpoint for mainland China.",productType:"coding_plan",anthropicBaseUrl:"https://ark.cn-beijing.volces.com/api/coding",openaiBaseUrl:"https://ark.cn-beijing.volces.com/api/coding/v1"}),u({id:"volcengine-agent-plan-intl",name:"火山引擎 Agent Plan 国际版",description:"Volcengine BytePlus Agent Plan endpoint for international users.",productType:"coding_plan",anthropicBaseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding",openaiBaseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v1"}),u({id:"volcengine-ark-api-cn",name:"火山方舟豆包 API 中国大陆",description:"Volcengine Ark Doubao Seed pay-as-you-go endpoint for mainland China.",openaiBaseUrl:"https://ark.cn-beijing.volces.com/api/v3"}),u({id:"openrouter-api",name:"OpenRouter",description:"OpenRouter model routing platform with Anthropic and OpenAI-compatible endpoints.",anthropicBaseUrl:"https://openrouter.ai/api",openaiBaseUrl:"https://openrouter.ai/api/v1"}),u({id:"novita-api",name:"Novita AI",description:"Novita AI model platform with Anthropic and OpenAI-compatible endpoints.",anthropicBaseUrl:"https://api.novita.ai/anthropic",openaiBaseUrl:"https://api.novita.ai/v1"})],w={name:"",providerKey:"",apiFormat:"anthropic",authType:"api_key",baseUrl:"",anthropicBaseUrl:"",openaiBaseUrl:"",supportedAdapters:["claude"],allowPlaintextHttp:!1,allowPrivateNetworks:!1};function x(a){return a.anthropicBaseUrl.trim()||a.openaiBaseUrl.trim()||a.baseUrl.trim()}let y={label:"",plaintextSecret:""},z={name:"",modelId:"",capabilities:["chat","code"],customCapabilities:"",contextWindow:"",supportEfforts:[],defaultEffort:""};function A(a,b){let c=new Date(a);return Number.isNaN(c.getTime())?a:c.toLocaleString(b)}function B(a){return Math.min(100,Math.max(0,a))}function C(a,b){switch(a){case"anthropic":return b("models.apiFormatAnthropic");case"openai-responses":return b("models.apiFormatOpenaiResponses");case"openai-compatible":return b("models.apiFormatOpenaiChat");case"google":return b("models.apiFormatGoogle");default:return a}}function D(a,b){switch(a){case"api_key":return b("models.authTypeApiKey");case"bearer_token":return b("models.authTypeBearerToken");case"oauth":return b("models.authTypeOauth");case"none":return b("models.authTypeNone");default:return a}}let E=["chat","code","vision","video","tools","reasoning","embedding"],F=["low","medium","high","xhigh","max"];function G({text:a}){return(0,b.jsx)("div",{className:"flex items-center justify-center rounded-md border border-dashed border-border/70 px-4 py-6 text-center text-sm text-muted-foreground",children:a})}let H=["anthropic","openai-responses","openai-compatible","google"],I=["api_key","bearer_token","oauth","none"],J=[...t.runtimeAdapterIds];function K({open:a,customProvider:d,setupCredential:e,isCreating:f,existing:g,onOpenChange:h,onCustomProviderChange:i,onSetupCredentialChange:l,onSubmit:t,t:u}){let w,y=null!=g,z=(0,c.useRef)(!1),[A,B]=(0,c.useState)("");(0,c.useEffect)(()=>{a||(z.current=!1,B(""))},[a]);let E=(w=A.trim().toLowerCase())?v.filter(a=>[a.id,a.name,a.description,a.anthropicBaseUrl??"",a.openaiBaseUrl??""].join("\n").toLowerCase().includes(w)):v,F="none"!==d.authType,G=!!x(d),L=G&&[d.baseUrl,d.anthropicBaseUrl,d.openaiBaseUrl].map(a=>a.trim()).filter(Boolean).some(a=>a.toLowerCase().startsWith("http://")),M=G&&[d.baseUrl,d.anthropicBaseUrl,d.openaiBaseUrl].map(a=>a.trim()).filter(Boolean).some(a=>{let b;try{b=new URL(a).hostname.toLowerCase()}catch{return!1}if(b.startsWith("[")&&b.endsWith("]")&&(b=b.slice(1,-1)),"localhost"===b||"::1"===b||b.startsWith("fd")||b.startsWith("fc")||b.endsWith(".local")||!b.includes("."))return!0;if(/^\d{1,3}(\.\d{1,3}){3}$/.test(b)){let a=b.split(".").map(a=>Number.parseInt(a,10)),c=a[0]??0,d=a[1]??0;if(127===c||10===c||0===c||192===c&&168===d||172===c&&d>=16&&d<=31||169===c&&254===d||100===c&&d>=64&&d<=127)return!0}return!1}),N=[];0===d.name.trim().length&&N.push(u("models.providerFormMissingName")),0===d.providerKey.trim().length&&N.push(u("models.providerFormMissingKey")),G||N.push(u("models.providerFormMissingEndpoint")),0===d.supportedAdapters.length&&N.push(u("models.supportedAdapters"));let O=N.join("、"),P=!f&&0===N.length;return(0,b.jsx)(q.Dialog,{open:a,onOpenChange:h,children:(0,b.jsx)(q.DialogContent,{className:y?"max-h-[90vh] overflow-y-auto sm:max-w-2xl":"max-h-[90vh] overflow-hidden sm:max-w-4xl",children:(0,b.jsxs)("form",{className:y?"space-y-4":"grid max-h-[80vh] gap-5 md:grid-cols-[240px_minmax(0,1fr)]",onSubmit:t,children:[!y&&(0,b.jsxs)("div",{className:"flex min-h-0 flex-col gap-2",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:u("models.presets")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:u("models.presetsDescription")})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(o.Search,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(r.Input,{value:A,onChange:a=>B(a.target.value),placeholder:u("models.searchProviderPlaceholder"),"aria-label":u("models.searchProviderPlaceholder"),className:"h-9 pl-9"})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 space-y-1 overflow-y-auto rounded-md border border-border/70 p-1",children:0===E.length?(0,b.jsx)("p",{className:"px-3 py-4 text-center text-xs text-muted-foreground",children:u("models.noPresetMatches")}):E.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{z.current=!0,i({name:a.name,providerKey:a.id,apiFormat:a.apiFormat,authType:a.authType,baseUrl:"",anthropicBaseUrl:a.anthropicBaseUrl??"",openaiBaseUrl:a.openaiBaseUrl??"",supportedAdapters:[...a.supportedAdapters],allowPlaintextHttp:!1,allowPrivateNetworks:!1})},className:`w-full rounded px-3 py-2 text-left hover:bg-muted/50 ${d.providerKey===a.id?"bg-muted/40":""}`,children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:a.name}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:C(a.apiFormat,u)})]}),(0,b.jsx)("div",{className:"mt-0.5 truncate text-xs text-muted-foreground",children:a.openaiBaseUrl??a.anthropicBaseUrl})]},a.id))})]}),(0,b.jsxs)("div",{className:y?"contents":"min-h-0 space-y-4 overflow-y-auto pr-1",children:[!y&&(0,b.jsxs)(q.DialogHeader,{children:[(0,b.jsx)(q.DialogTitle,{children:u("models.addProvider")}),(0,b.jsx)(q.DialogDescription,{children:u("models.addProviderDescription")})]}),y&&(0,b.jsxs)(q.DialogHeader,{children:[(0,b.jsx)(q.DialogTitle,{children:u("models.editProvider")}),(0,b.jsx)(q.DialogDescription,{children:u("models.editProviderDescription")})]}),(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-name",children:u("common.name")}),(0,b.jsx)(r.Input,{id:"provider-name",value:d.name,onChange:a=>{var b;return b=a.target.value,void i({...d,name:b,providerKey:z.current?d.providerKey:b.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")})},required:!0})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-key",children:u("models.providerKey")}),(0,b.jsx)(r.Input,{id:"provider-key",value:d.providerKey,onChange:a=>{z.current=!0,i({...d,providerKey:a.target.value})},disabled:y,required:!0}),y&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:u("models.providerKeyLocked")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-api-format",children:u("models.apiFormat")}),(0,b.jsx)("select",{id:"provider-api-format",className:"h-10 w-full rounded-md border bg-background px-3 text-sm text-foreground",value:d.apiFormat,onChange:a=>i({...d,apiFormat:a.target.value}),children:H.map(a=>(0,b.jsx)("option",{value:a,children:C(a,u)},a))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:function(a,b){switch(a){case"anthropic":return b("models.apiFormatHintAnthropic");case"openai-responses":return b("models.apiFormatHintOpenaiResponses");case"openai-compatible":return b("models.apiFormatHintOpenaiChat");case"google":return b("models.apiFormatHintGoogle");default:return""}}(d.apiFormat,u)})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-auth-type",children:u("models.authType")}),(0,b.jsx)("select",{id:"provider-auth-type",className:"h-10 w-full rounded-md border bg-background px-3 text-sm text-foreground",value:d.authType,onChange:a=>i({...d,authType:a.target.value}),children:I.map(a=>(0,b.jsx)("option",{value:a,children:D(a,u)},a))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:function(a,b){switch(a){case"api_key":return b("models.authTypeHintApiKey");case"bearer_token":return b("models.authTypeHintBearerToken");case"oauth":return b("models.authTypeHintOauth");case"none":return b("models.authTypeHintNone");default:return""}}(d.authType,u)})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-openai-base-url",children:u("models.openaiBaseUrl")}),(0,b.jsx)(r.Input,{id:"provider-openai-base-url",value:d.openaiBaseUrl,onChange:a=>i({...d,openaiBaseUrl:a.target.value}),placeholder:"https://example.com/v1"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"provider-anthropic-base-url",children:u("models.anthropicBaseUrl")}),(0,b.jsx)(r.Input,{id:"provider-anthropic-base-url",value:d.anthropicBaseUrl,onChange:a=>i({...d,anthropicBaseUrl:a.target.value}),placeholder:"https://example.com/anthropic"})]})]}),N.length>0?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:u("models.providerFormCannotSave").replace("{reasons}",O)}):null,L&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,b.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",className:"mt-0.5 size-4 accent-brand",checked:d.allowPlaintextHttp,onChange:a=>i({...d,allowPlaintextHttp:a.target.checked})}),(0,b.jsx)("span",{children:u("models.allowPlaintextHttp")})]}),(0,b.jsx)("p",{className:"pl-6 text-xs text-muted-foreground",children:u("models.allowPlaintextHttpHint")})]}),M&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,b.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",className:"mt-0.5 size-4 accent-brand",checked:d.allowPrivateNetworks,onChange:a=>i({...d,allowPrivateNetworks:a.target.checked})}),(0,b.jsx)("span",{children:u("models.allowPrivateNetworks")})]}),(0,b.jsx)("p",{className:"pl-6 text-xs text-muted-foreground",children:u("models.allowPrivateNetworksHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:u("models.supportedAdapters")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-3",children:J.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:d.supportedAdapters.includes(a),onChange:()=>{let b;return b=d.supportedAdapters.includes(a)?d.supportedAdapters.filter(b=>b!==a):[...d.supportedAdapters,a],void i({...d,supportedAdapters:b})}}),(0,b.jsx)(p.CliBrandIcon,{aiTool:a,className:"size-4"}),"claude"===a?"Claude Code":"opencode"===a?"OpenCode":"codex"===a?"Codex":"kimi"===a?"Kimi Code":a]},a))})]}),!y&&(F?(0,b.jsxs)("div",{className:"grid gap-3 rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"setup-credential-label",children:u("models.credentialLabel")}),(0,b.jsx)(r.Input,{id:"setup-credential-label",value:e.label,onChange:a=>l({...e,label:a.target.value}),placeholder:u("models.defaultCredentialLabel")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"setup-api-key",children:u("models.apiKey")}),(0,b.jsx)(r.Input,{id:"setup-api-key",type:"password",value:e.plaintextSecret,onChange:a=>l({...e,plaintextSecret:a.target.value}),placeholder:u("models.apiKeyPlaceholder")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:u("models.setupCredentialOptionalHint")})]})]}):(0,b.jsx)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-sm text-muted-foreground",children:u("models.noCredentialRequired")})),(0,b.jsx)(q.DialogFooter,{children:(0,b.jsxs)(k.Button,{type:"submit",disabled:!P,title:N.length>0?u("models.providerFormCannotSave").replace("{reasons}",O):void 0,children:[f?(0,b.jsx)(m.RefreshCw,{className:"size-4 animate-spin"}):y?(0,b.jsx)(n.Save,{className:"size-4"}):(0,b.jsx)(j.Plus,{className:"size-4"}),y?u("common.save"):u("models.saveAndSyncModels")]})})]})]})})})}var L=a.i(37060),M=a.i(2337),N=a.i(85564),O=a.i(23834),P=a.i(4730),Q=a.i(79914),R=a.i(39465);let S=[{slot:"opus",label:"Opus"},{slot:"sonnet",label:"Sonnet"},{slot:"haiku",label:"Haiku"}],T=[{slot:"fable",label:"Fable"},{slot:"subagent",label:"Subagent"}],U=["minimal","low","medium","high"],V=[];function W({provider:a,models:d,credentials:h,open:i,initialAdapter:j,onOpenChange:l}){let{t:m}=(0,Q.useLanguage)(),n=(0,g.useQueryClient)(),o=(0,c.useMemo)(()=>[...a.supportedAdapters],[a.supportedAdapters]),p=(0,c.useMemo)(()=>d.filter(a=>"active"===a.status),[d]),r=(0,c.useMemo)(()=>h.filter(a=>"active"===a.status),[h]),u=p.find(a=>a.isDefault)??p[0],[v,w]=(0,c.useState)(o[0]??""),x="claude"===v&&!a.anthropicBaseUrl&&"anthropic"!==a.apiFormat,y=x&&("openai-responses"===a.apiFormat||"openai-compatible"===a.apiFormat),z=x&&!y,A=(0,f.useQuery)({queryKey:["claude-route"],queryFn:t.getClaudeRoute,enabled:i&&x,retry:!1,staleTime:3e4}),B=A.data?.enabled===!0,[C,D]=(0,c.useState)(""),[E,F]=(0,c.useState)(""),[G,H]=(0,c.useState)({}),[I,J]=(0,c.useState)(""),K=(0,f.useQuery)({queryKey:O.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:t.discoverAdapters,enabled:i,staleTime:3e4}),Y=(0,c.useMemo)(()=>K.data?.adapters??V,[K.data]),[Z,$]=(0,c.useState)(!1),_=(0,c.useRef)(x);_.current=x,(0,c.useEffect)(()=>{if(!i)return;let a=j&&o.includes(j)?j:void 0,b=a??(0,O.chooseDefaultAdapter)(Y,o)??o[0]??"",c=new Map(Y.map(a=>[a.id,a]));w(d=>""!==d&&!a&&o.includes(d)&&(!c.get(d)||(0,O.isAdapterSelectable)(c.get(d),o))?d:b),D(u?.id??""),F(r[0]?.id??""),H({}),J(""),$(_.current),ac(!1)},[i,o,u?.id,r,Y,j]);let aa=(0,c.useMemo)(()=>{let b=Object.fromEntries(Object.entries(G).filter(([,a])=>!!a));return{providerProfileId:a.id,..."opencode"!==v&&C?{modelProfileId:C}:{},...E?{credentialId:E}:{},..."claude"===v&&Object.keys(b).length>0?{modelMapping:b}:{},..."codex"===v&&I?{reasoningEffort:I}:{},...x?{routeThroughGateway:!0}:{}}},[v,E,G,C,x,a.id,I]),[ab,ac]=(0,c.useState)(!1),[ad,ae]=(0,c.useState)(aa);(0,c.useEffect)(()=>{if(!ab)return;let a=setTimeout(()=>ae(aa),400);return()=>clearTimeout(a)},[aa,ab]);let af=(0,f.useQuery)({queryKey:["cli-config-apply-preview",v,ad],queryFn:()=>{if(""===v)throw Error("No CLI selected");return(0,t.previewCliConfigApply)(v,ad)},enabled:i&&ab&&o.length>0&&ad===aa,retry:!1,staleTime:0}),ag=(0,e.useMutation)({mutationFn:async()=>{if(!v)throw Error("No CLI selected");return x&&!B&&await (0,t.setClaudeRoute)(!0),(0,t.applyCliConfigToAdapter)(v,{...aa,...x?{routeThroughGateway:!0}:{}})},onSuccess:async a=>{let b=a.files?.[0]?.targetPath??"—";N.toast.success(m("models.applyToCliSuccess").replace("{targetPath}",b)),a.backupId&&N.toast.info(m("models.applyToCliRollbackHint")),l(!1),await n.invalidateQueries({queryKey:["cli-config"]}),await n.invalidateQueries({queryKey:["applied-providers"]}),await n.invalidateQueries({queryKey:["applied-provider"]}),"claude"===v&&await n.invalidateQueries({queryKey:["claude-route"]})},onError:a=>{N.toast.error(a instanceof Error?a.message:m("models.applyToCliFailed"))}}),ah=af.data,ai=ah?.files??[],aj=ah?.warnings??[],ak=aj.includes("CODEX_WIRE_API_UNSUPPORTED"),al=aj.filter(a=>"OPENAI_PROTOCOL_REQUIRES_ROUTE"!==a&&"CODEX_WIRE_API_UNSUPPORTED"!==a),am="pi"===v?m("models.applyToCliDefaultModel"):m("projects.model");return(0,b.jsx)(q.Dialog,{open:i,onOpenChange:a=>{ag.isPending||l(a)},children:(0,b.jsxs)(q.DialogContent,{className:"sm:max-w-xl",children:[(0,b.jsxs)(q.DialogHeader,{children:[(0,b.jsx)(q.DialogTitle,{children:m("models.applyToCli")}),(0,b.jsx)(q.DialogDescription,{children:m("models.applyToCliDescription")})]}),(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"apply-cli-adapter",children:m("common.aiTool")}),(0,b.jsx)(O.AdapterSelect,{id:"apply-cli-adapter",ariaLabel:m("common.aiTool"),className:"h-9 w-full",value:v,onValueChange:w,supported:o,placeholder:m("common.loading")})]}),"opencode"!==v&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"apply-cli-model",children:am}),(0,b.jsxs)("select",{id:"apply-cli-model","aria-label":am,className:"h-9 w-full rounded-md border bg-background px-3 text-sm",value:C,onChange:a=>D(a.target.value),children:[0===p.length?(0,b.jsx)("option",{value:"",children:m("models.noModelsAvailable")}):null,p.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),"pi"===v&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:m("models.applyToCliPiHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"apply-cli-credential",children:m("models.credentials")}),(0,b.jsxs)("select",{id:"apply-cli-credential","aria-label":m("models.credentials"),className:"h-9 w-full rounded-md border bg-background px-3 text-sm",value:E,onChange:a=>F(a.target.value),children:[(0,b.jsx)("option",{value:"",children:m("models.applyToCliNoCredential")}),r.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label??m("models.unnamedCredential")},a.id))]})]})]}),"opencode"===v&&(0,b.jsx)("p",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-xs text-muted-foreground",children:m("models.opencodeApplyHint")}),("claude"===v||"codex"===v||x)&&(0,b.jsxs)("div",{className:"rounded-md border border-border/70",children:[(0,b.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-2 px-3 py-2 text-left text-sm font-medium","aria-expanded":Z,onClick:()=>$(a=>!a),children:[m("models.applyAdvancedOptions"),(0,b.jsx)(L.ChevronDown,{className:(0,R.cn)("size-4 text-muted-foreground transition-transform duration-200",Z&&"rotate-180")})]}),Z&&(0,b.jsxs)("div",{className:"space-y-3 border-t border-border/70 px-3 py-3",children:["claude"===v&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"space-y-0.5",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:m("models.roleMapping")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:m("models.roleMappingDescription")})]}),(0,b.jsx)("div",{className:"grid gap-3 md:grid-cols-3",children:[...S,...T].map(({slot:a,label:c})=>(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(s.Label,{htmlFor:`apply-cli-slot-${a}`,className:"text-xs",children:c}),(0,b.jsxs)("select",{id:`apply-cli-slot-${a}`,"aria-label":c,className:"h-9 w-full rounded-md border bg-background px-3 text-sm",value:G[a]??"",onChange:b=>H(c=>({...c,[a]:b.target.value})),children:[(0,b.jsx)("option",{value:"",children:m("models.followPrimaryModel")}),p.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})]},a))})]}),"codex"===v&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"apply-cli-effort",children:m("models.reasoningEffort")}),(0,b.jsxs)("select",{id:"apply-cli-effort","aria-label":m("models.reasoningEffort"),className:"h-9 w-full rounded-md border bg-background px-3 text-sm md:max-w-xs",value:I,onChange:a=>J(a.target.value),children:[(0,b.jsx)("option",{value:"",children:m("models.reasoningEffortDefault")}),U.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),z&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:m("models.claudeRouteUnsupported")}),y&&(0,b.jsxs)("div",{className:B?"space-y-1 rounded-md border border-emerald-500/40 bg-emerald-500/10 px-3 py-2 text-xs":"space-y-1 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-xs",children:[(0,b.jsx)("p",{className:B?"font-medium text-emerald-700 dark:text-emerald-300":"font-medium text-amber-700 dark:text-amber-300",children:B?m("models.claudeRouteEnabledHint").replace("{gatewayUrl}",A.data?.gatewayUrl??"—"):m("models.claudeRouteBanner")}),!B&&(0,b.jsx)("p",{className:"text-muted-foreground",children:m("models.claudeRouteBannerDescription")})]})]})]}),(0,b.jsxs)("div",{className:"rounded-md border border-border/70",children:[(0,b.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-2 px-3 py-2 text-left text-sm font-medium","aria-expanded":ab,onClick:()=>ac(a=>!a),children:[m("models.applyChangeSummary"),(0,b.jsx)(L.ChevronDown,{className:(0,R.cn)("size-4 text-muted-foreground transition-transform duration-200",ab&&"rotate-180")})]}),ab&&(0,b.jsx)("div",{className:"space-y-2 border-t border-border/70 px-3 py-3 text-xs",children:af.isPending?(0,b.jsx)("p",{className:"text-muted-foreground",children:m("common.loading")}):af.error?(0,b.jsx)("p",{className:"text-destructive",children:af.error instanceof Error?af.error.message:m("models.applyPreviewFailed")}):ah?(0,b.jsxs)(b.Fragment,{children:[ak&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:m("models.codexWireApiBlocked")}),ai.map(a=>(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[m("models.applyTargetPath"),":"]}),(0,b.jsx)("span",{className:"break-all font-mono",children:a.targetPath||"—"}),(0,b.jsx)(P.Badge,{variant:"outline",children:a.operation})]}),a.proposed?(0,b.jsx)("pre",{className:"max-h-48 overflow-auto rounded-md border border-border/70 bg-background/60 p-2 font-mono whitespace-pre-wrap",children:X(a.proposed)}):null]},a.targetPath)),al.length>0?(0,b.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-amber-700 dark:text-amber-300",children:al.map(a=>(0,b.jsx)("li",{children:X(a)},a))}):null]}):null})]}),(0,b.jsxs)(q.DialogFooter,{children:[(0,b.jsx)(k.Button,{type:"button",variant:"outline",disabled:ag.isPending,onClick:()=>l(!1),children:m("common.cancel")}),(0,b.jsxs)(k.Button,{type:"button",disabled:!v||ag.isPending||z||ak||x&&A.isLoading,onClick:()=>ag.mutate(),children:[(0,b.jsx)(M.ShieldCheck,{className:"size-4"}),ag.isPending?m("models.applyingToCli"):B&&x?m("models.claudeRouteApply"):x?m("models.claudeRouteEnableAndApply"):m("models.applyConfig")]})]})]})})}function X(a){return a.replace(/\b(sk-[A-Za-z0-9_-]{2})[A-Za-z0-9_-]+/g,"$1…").replace(/((?:api[-_]?key|auth[-_]?token|token|secret)["'\s]*[:=]["'\s]*)([^\s,"']{4})[^\s,"']*/giu,"$1$2…").replace(/(Bearer\s+)([A-Za-z0-9._-]{6})[A-Za-z0-9._-]+/giu,"$1$2…").replace(/\b((?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9_]{4})[A-Za-z0-9_]+/g,"$1…").replace(/\b(github_pat_[A-Za-z0-9_]{4})[A-Za-z0-9_]+/g,"$1…").replace(/\b(xox[baprs]-[A-Za-z0-9-]{4})[A-Za-z0-9-]+/giu,"$1…").replace(/\b((?:AKIA|ASIA|ABIA|ACCA)[A-Z0-9]{4})[A-Z0-9]+/g,"$1…").replace(/\b(AIza[0-9A-Za-z_-]{4})[0-9A-Za-z_-]+/g,"$1…").replace(/\b(eyJ[A-Za-z0-9_-]{4})[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g,"$1…")}var Y=a.i(62803),Z=a.i(38094),$=a.i(27856),_=a.i(35133),aa=a.i(90991),ab=a.i(38640),ac=a.i(802),ad=a.i(76310),ae=a.i(25538),af=a.i(10339);let ag=[...t.runtimeAdapterIds];function ah({open:a,adapter:d,onOpenChange:h}){let{t:i}=(0,Q.useLanguage)(),{user:j}=(0,af.useAuth)(),l=j?.role==="admin",m=(0,g.useQueryClient)(),[n,o]=(0,c.useState)(d);(0,c.useEffect)(()=>{a&&o(d)},[a,d]);let p=(0,f.useQuery)({queryKey:["cli-config-fields",n],queryFn:()=>(0,t.getCliConfigFields)(n),enabled:a}),q=(0,f.useQuery)({queryKey:["cli-config",n],queryFn:()=>(0,t.getCliConfig)(n),retry:!1,enabled:a}),r=(0,f.useQuery)({queryKey:["cli-config-field-values",n],queryFn:()=>(0,t.getCliConfigFieldValues)(n),retry:!1,enabled:a}),s=q.data,u=s?s.files.find(a=>s.configFile.endsWith(a.relativePath))??s.files[0]:void 0,v=(0,f.useQuery)({queryKey:["cli-config-file",n,u?.relativePath],queryFn:()=>(0,t.getCliConfigFile)(n,u.relativePath),enabled:a&&!!u?.relativePath,retry:!1}),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(""),[A,B]=(0,c.useState)(!1);(0,c.useEffect)(()=>{x(!1),z(""),B(!1)},[n,a]);let C=v.data?.content??"",D=w&&y!==C,E=(0,e.useMutation)({mutationFn:()=>(0,t.writeCliConfigFile)(n,u.relativePath,y),onSuccess:async()=>{N.toast.success(i("cliConfig.saved")),x(!1),await Promise.all([m.invalidateQueries({queryKey:["cli-config",n]}),m.invalidateQueries({queryKey:["cli-config-file",n,u?.relativePath]}),m.invalidateQueries({queryKey:["cli-config-field-values",n]}),m.invalidateQueries({queryKey:["applied-providers"]})])},onError:a=>{N.toast.error(a instanceof Error?a.message:i("cliConfig.saveFailed"))}}),F=p.data?.fields??[];return(0,b.jsxs)(ad.Sheet,{open:a,onOpenChange:function(a){!a&&D?B(!0):h(a)},children:[(0,b.jsxs)(ad.SheetContent,{side:"right",className:"w-full gap-0 overflow-y-auto sm:max-w-xl",children:[(0,b.jsxs)(ad.SheetHeader,{children:[(0,b.jsx)(ad.SheetTitle,{children:i("models.cliConfigSection")}),(0,b.jsx)(ad.SheetDescription,{children:i("models.cliConfigSectionDescription")})]}),(0,b.jsxs)("div",{className:"space-y-5 px-4 pb-6",children:[!l&&(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-300",children:[(0,b.jsx)($.ShieldAlert,{className:"size-3.5 shrink-0"}),i("models.cliConfigAdminOnly")]}),(0,b.jsx)(ae.Tabs,{value:n,onValueChange:a=>o(a),children:(0,b.jsx)(ae.TabsList,{children:ag.map(a=>(0,b.jsx)(ae.TabsTrigger,{value:a,children:(0,b.jsx)(_.CliBrandChip,{aiTool:a})},a))})}),F.length>0||p.isLoading||p.error?(0,b.jsxs)("section",{className:"space-y-2",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:i("cliConfig.commonFields")}),p.isLoading?(0,b.jsx)(al,{text:i("common.loading")}):p.error?(0,b.jsx)(al,{destructive:!0,text:am(p.error,i("cliConfig.loadFailed"))}):(0,b.jsx)("div",{className:"grid gap-2 md:grid-cols-2",children:F.map(a=>(0,b.jsx)(aj,{field:a,value:r.data?.values[a.key],valuesLoading:r.isLoading,t:i},a.key))}),r.error?(0,b.jsx)(al,{destructive:!0,text:am(r.error,i("cliConfig.loadFieldValuesFailed"))}):null]}):null,(0,b.jsxs)("section",{className:"space-y-2",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:i("cliConfig.configMetadata")}),q.isLoading?(0,b.jsx)(al,{text:i("common.loading")}):q.error||!s?(0,b.jsx)(al,{destructive:!0,text:am(q.error,i("cliConfig.loadFailed"))}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsx)(ak,{label:i("cliConfig.configRoot"),value:s.configRoot}),(0,b.jsx)(ak,{label:i("cliConfig.mainConfigFile"),value:s.configFile}),(0,b.jsx)(ak,{label:i("cliConfig.defaultModel"),value:s.defaultModel||"—"}),(0,b.jsx)(ak,{label:i("cliConfig.providers"),value:String(s.providers.length)})]}),(0,b.jsx)("div",{className:"space-y-2",children:s.files.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-md border border-border/70 px-3 py-2 text-sm",children:[(0,b.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-2",children:[(0,b.jsx)(Y.FileCode2,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"truncate font-mono text-xs",children:a.relativePath})]}),(0,b.jsxs)("span",{className:"flex shrink-0 gap-2",children:[(0,b.jsx)(P.Badge,{variant:"outline",children:a.fileType}),(0,b.jsx)(P.Badge,{variant:a.exists?"secondary":"outline",children:a.exists?(0,ab.formatBytes)(a.sizeBytes):i("cliConfig.fileMissing")})]})]},a.relativePath))})]})]}),(0,b.jsxs)("section",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("h3",{className:"text-sm font-medium",children:[i("cliConfig.rawEditor"),u?(0,b.jsx)("span",{className:"ml-2 font-mono text-xs font-normal text-muted-foreground",children:u.relativePath}):null]}),w?null:(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"outline",disabled:!l||!u||v.isLoading,title:l?void 0:i("models.cliConfigAdminOnly"),onClick:()=>{z(v.data?.content??""),x(!0)},children:[(0,b.jsx)(Z.Pencil,{className:"size-4"}),i("cliConfig.editRawFile")]})]}),u?w?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("textarea",{"aria-label":i("cliConfig.rawEditor"),className:"min-h-64 w-full rounded-md border bg-background p-3 font-mono text-xs",value:y,onChange:a=>z(a.target.value),spellCheck:!1}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(k.Button,{type:"button",size:"sm",variant:"outline",disabled:E.isPending,onClick:function(){D?B(!0):(x(!1),z(""))},children:i("common.cancel")}),(0,b.jsx)(k.Button,{type:"button",size:"sm",disabled:E.isPending||!D,onClick:()=>E.mutate(),children:E.isPending?i("common.saving"):i("common.save")})]})]}):v.isLoading?(0,b.jsx)(al,{text:i("common.loading")}):v.error?(0,b.jsx)(al,{destructive:!0,text:am(v.error,i("cliConfig.loadFailed"))}):v.data?.content!==void 0?(0,b.jsx)(ai,{fileName:u.relativePath,content:v.data.content}):(0,b.jsx)(al,{text:i("cliConfig.rawFileContentUnavailable")}):(0,b.jsx)(al,{text:i("common.loading")})]})]})]}),(0,b.jsx)(aa.ConfirmDialog,{open:A,title:i("cliConfig.unsavedChangesTitle"),description:i("cliConfig.unsavedChangesDescription"),confirmLabel:i("common.close"),destructive:!0,pending:E.isPending,onOpenChange:B,onConfirm:function(){B(!1),x(!1),z(""),h(!1)}})]})}function ai({fileName:a,content:d}){let[e,f]=(0,c.useState)(null);return((0,c.useEffect)(()=>{let b=!1;if(f(null),d)return(0,ac.highlightWorkspaceCode)(d,a).then(a=>{b||f(a)}),()=>{b=!0}},[a,d]),e)?(0,b.jsx)("div",{className:"max-h-96 overflow-auto rounded-md border border-border/70 bg-muted/20 p-3 font-mono text-xs leading-5",children:e.map((a,c)=>(0,b.jsx)("div",{className:"whitespace-pre-wrap",children:a.length>0?a.map((a,c)=>{let d=(0,ac.tokenFontStyle)(a.fontStyle);return(0,b.jsx)("span",{style:{color:a.color,fontStyle:d.italic?"italic":void 0,fontWeight:d.bold?600:void 0,textDecoration:d.underline?"underline":void 0},children:a.content},c)}):" "},c))}):(0,b.jsx)("pre",{className:"max-h-96 overflow-auto rounded-md border border-border/70 bg-muted/20 p-3 font-mono text-xs whitespace-pre-wrap",children:d})}function aj({field:a,value:c,valuesLoading:d,t:e}){let f=d?e("common.loading"):"secret"===a.type?e(!0===c?"cliConfig.hasKey":"cliConfig.noKey"):void 0===c||""===c?e("cliConfig.fieldNotSet"):String(c);return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a.label}),(0,b.jsx)("div",{className:"mt-1 font-mono text-xs text-muted-foreground",children:a.path}),(0,b.jsx)("div",{className:"mt-2 text-xs",children:f})]})}function ak({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"mt-1 break-all font-mono text-xs",children:c})]})}function al({text:a,destructive:c=!1}){return(0,b.jsx)("div",{className:`rounded-md border border-dashed px-4 py-6 text-center text-sm ${c?"text-destructive":"text-muted-foreground"}`,children:a})}function am(a,b){return a instanceof Error?a.message:b}var an=a.i(37134);function ao({target:a,isDeleting:c,onOpenChange:d,onConfirm:e,t:f}){let g=f(a?.kind==="model"?"models.deleteModelTitle":a?.kind==="credential"?"models.deleteCredentialTitle":"models.deleteProviderTitle"),h=a?.kind==="model"?`${f("models.deleteModelWarning")} ${a.name}`:a?.kind==="credential"?`${f("models.deleteCredentialConfirm")} ${a.name}`:`${f("models.deleteProviderWarning")} ${a?.name??""}`;return(0,b.jsx)(q.Dialog,{open:null!==a,onOpenChange:a=>{a||c||d(!1)},children:(0,b.jsxs)(q.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(q.DialogHeader,{children:[(0,b.jsxs)(q.DialogTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(an.Trash2,{className:"size-5 shrink-0 text-destructive"}),g]}),(0,b.jsx)(q.DialogDescription,{children:h})]}),(0,b.jsxs)(q.DialogFooter,{children:[(0,b.jsx)(k.Button,{type:"button",variant:"outline",disabled:c,onClick:()=>d(!1),children:f("common.cancel")}),(0,b.jsxs)(k.Button,{type:"button",variant:"destructive",disabled:c,onClick:e,children:[(0,b.jsx)(an.Trash2,{className:"size-4"}),f(c?"models.deleting":"common.delete")]})]})]})})}var ap=a.i(70458);function aq({providers:a,providerCount:c,modelCounts:d,queryText:e,selectedProviderId:f,isLoading:g,onQueryTextChange:h,onSelectProvider:j,onEditProvider:l,t:m}){return(0,b.jsxs)(ap.Card,{className:"min-w-0 forgebadger-animate-in xl:sticky xl:top-4",children:[(0,b.jsx)(ap.CardHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(i,{className:"size-4"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)(ap.CardTitle,{className:"text-base",children:m("models.providers")}),(0,b.jsx)(ap.CardDescription,{className:"mt-1",children:m("models.providersDescription")})]})]})}),(0,b.jsxs)(ap.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(o.Search,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(r.Input,{value:e,onChange:a=>h(a.target.value),placeholder:m("models.searchConfiguredProviders"),"aria-label":m("models.searchConfiguredProviders"),className:"pl-9"})]}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:[a.length,"/",c," ",m("models.catalogMatches")]}),(0,b.jsx)("div",{"data-testid":"configured-provider-list",className:"max-h-[560px] overflow-y-auto",children:g?(0,b.jsx)(G,{text:m("common.loading")}):0===a.length?(0,b.jsx)(G,{text:m("models.emptyProviders")}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:a.map((a,c)=>{let e=a.id===f;return(0,b.jsxs)("div",{className:`flex w-full items-center gap-2 px-3 py-2.5 text-sm transition-colors forgebadger-animate-in ${e?"bg-brand/5":"hover:bg-muted/40"}`,style:{animationDelay:`${40*c}ms`},children:[(0,b.jsx)("span",{className:`size-1.5 shrink-0 rounded-full ${e?"bg-brand":"bg-muted-foreground/30"}`}),(0,b.jsxs)("button",{type:"button","aria-pressed":e,className:"min-w-0 flex-1 text-left",onClick:()=>j(a.id),children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a.name}),(0,b.jsxs)(P.Badge,{variant:"outline",title:m("models.modelsWorkspace"),className:"shrink-0 text-[10px]",children:[d.get(a.id)??0," ",m("models.modelUnit")]})]}),(0,b.jsx)("span",{className:"block truncate text-xs text-muted-foreground",children:a.baseUrl??a.providerKey})]}),(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 shrink-0 text-muted-foreground hover:text-foreground",title:m("common.edit"),"aria-label":m("common.edit"),onClick:()=>l(a.id),children:(0,b.jsx)(Z.Pencil,{className:"size-4"})})]},a.id)})})})]})]})}var ar=a.i(82977);let as=(0,h.default)("ServerCog",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5",key:"tn8das"}],["path",{d:"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5",key:"1g2pve"}],["path",{d:"M6 6h.01",key:"1utrut"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"m15.7 13.4-.9-.3",key:"1jwmzr"}],["path",{d:"m9.2 10.9-.9-.3",key:"qapnim"}],["path",{d:"m10.6 15.7.3-.9",key:"quwk0k"}],["path",{d:"m13.6 15.7-.4-1",key:"cb9xp7"}],["path",{d:"m10.8 9.3-.4-1",key:"1uaiz5"}],["path",{d:"m8.3 13.6 1-.4",key:"s6srou"}],["path",{d:"m14.7 10.8 1-.4",key:"4d31cq"}],["path",{d:"m13.4 8.3-.3.9",key:"1bm987"}]]),at=(0,h.default)("Wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]);var au=a.i(94851),av=a.i(53650),av=av,aw=a.i(27291),ax=a.i(94588);let ay=[...t.runtimeAdapterIds];function az({provider:a,onApply:d,onViewConfig:e}){let{t:h}=(0,Q.useLanguage)(),i=(0,f.useQuery)({queryKey:["applied-providers"],queryFn:t.getAppliedProviders,retry:!1,staleTime:3e4}),j=(0,f.useQuery)({queryKey:O.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:t.discoverAdapters,retry:!1,staleTime:3e4}),l=(0,f.useQuery)({queryKey:["claude-route"],queryFn:t.getClaudeRoute,retry:!1,staleTime:6e4}),n=(0,f.useQuery)({queryKey:["cli-accounts"],queryFn:t.getCliAccounts,retry:!1,staleTime:6e4,refetchInterval:6e4}),o=new Map((j.data?.adapters??[]).map(a=>[a.id,a])),q=i.data?.adapters,r=l.data,s=new Map((n.data?.accounts??[]).map(a=>[a.login.adapter,a])),u=(0,g.useQueryClient)(),[v,w]=(0,c.useState)(null);return(0,b.jsxs)(ap.Card,{"data-testid":"cli-status-section",children:[(0,b.jsxs)(ap.CardHeader,{children:[(0,b.jsx)(ap.CardTitle,{className:"text-base",children:h("models.cliStatusTitle")}),(0,b.jsx)(ap.CardDescription,{className:"mt-1",children:h("models.cliStatusDescription")})]}),(0,b.jsxs)(ap.CardContent,{children:[i.isLoading?(0,b.jsx)("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-4","data-testid":"cli-status-skeleton",children:ay.map(a=>(0,b.jsx)("div",{className:"h-28 animate-pulse rounded-md border border-border/70 bg-muted/20 px-3 py-2.5"},a))}):(0,b.jsx)("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-4",children:ay.map(c=>{var f;let g=(0,aw.getCliBrand)(c),i=o.get(c),l=i?.available===!0,n=i?.status==="check_failed",x=q?.find(a=>a.adapter===c)??null,y=x?.applied??null,z=(f=a.id,!!(x?.applied&&x.applied.providerProfileId===f)),A=a.supportedAdapters.includes(c),B="claude"===c&&r?.enabled===!0&&r.assignment?.providerProfileId===a.id,C=s.get(c),D=C?.login??null;return(0,b.jsxs)("div",{"data-testid":`cli-status-${c}`,className:`flex min-w-0 flex-col gap-2 rounded-md border px-3 py-2.5 ${z?"border-emerald-500/40 bg-emerald-500/5":"border-border/70 bg-muted/20"}`,children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-1.5 text-sm font-medium",children:[(0,b.jsx)(p.CliBrandIcon,{aiTool:c,className:"size-4 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:g.label})]}),(0,b.jsxs)("span",{className:"flex flex-wrap items-center gap-1",children:[B&&(0,b.jsx)(P.Badge,{variant:"secondary",className:"text-[10px]",children:h("models.claudeRouteBadge")}),(0,b.jsx)(P.Badge,{variant:l?"secondary":"outline",className:"text-[10px]",children:l?h("models.sdkInstalled"):n?h("models.cliStatusCheckFailed"):h("models.sdkMissing")}),D?(0,b.jsx)(aA,{login:D,t:h}):null]})]}),(0,b.jsxs)("div",{className:"min-w-0 text-xs",children:[y?(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:`truncate font-medium ${z?"text-emerald-700 dark:text-emerald-300":""}`,children:[y.providerName??`${h("models.cliStatusUnknownProvider")} \xb7 ${y.providerProfileId.slice(0,8)}`,z?` \xb7 ${h("models.cliStatusActiveHere")}`:""]}),(0,b.jsx)("div",{className:"truncate text-muted-foreground",children:y.modelName??y.modelId??h("models.cliStatusNoModel")})]}):(0,b.jsx)("span",{className:"text-muted-foreground",children:h("models.cliStatusNotConfigured")}),x?.stale?(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-1 text-amber-700 dark:text-amber-300",children:[(0,b.jsx)(av.default,{className:"size-3 shrink-0"}),h("models.cliStatusStale")]}):null]}),D?(0,b.jsxs)("div",{className:"space-y-1.5",children:["not_authenticated"===D.state?(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("p",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",title:h(ax.LOGIN_HINT_KEYS[D.adapter]),children:h(ax.LOGIN_HINT_KEYS[D.adapter])}),(0,b.jsx)(k.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6 shrink-0 text-muted-foreground",disabled:v===D.adapter,"aria-label":h("models.cliAccountQuotaRefresh"),title:h("models.cliAccountQuotaRefresh"),onClick:()=>{var a;w(a=D.adapter),(0,t.refreshCliAccountQuota)(a).then(()=>u.invalidateQueries({queryKey:["cli-accounts"]})).catch(()=>N.toast.error(h("models.cliAccountQuotaRefreshFailed"))).finally(()=>w(null))},children:(0,b.jsx)(m.RefreshCw,{className:(0,R.cn)("size-3",v===D.adapter&&"animate-spin")})})]}):null,(0,b.jsx)(ax.CliQuotaSummary,{quota:C?.quota,t:h})]}):null,(0,b.jsxs)("div",{className:"mt-auto flex items-center gap-1.5 pt-1",children:[(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"outline",className:"h-7 flex-1 px-2 text-xs",disabled:!A,title:A?void 0:h("models.cliStatusApplyUnsupported"),onClick:()=>d(c),children:[(0,b.jsx)(M.ShieldCheck,{className:"size-3.5"}),h("models.cliStatusApply")]}),(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"ghost",className:"h-7 flex-1 px-2 text-xs",disabled:j.isSuccess&&!l,title:j.isSuccess&&!l?h("models.cliStatusCliMissing"):void 0,onClick:()=>e(c),children:[(0,b.jsx)(Y.FileCode2,{className:"size-3.5"}),h("models.cliStatusViewConfig")]})]})]},c)})}),i.isError?(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:h("models.cliStatusLoadFailed")}):null]})]})}function aA({login:a,t:c}){if("cli_missing"===a.state)return null;if("custom_endpoint"===a.state)return(0,b.jsx)(P.Badge,{variant:"outline",className:"text-[10px] text-muted-foreground",title:c("models.cliAccountCustomEndpointHint"),children:c("models.cliAccountCustomEndpoint")});if("ready"===a.state){let d=(0,ax.loginMethodLabel)(a.method,c);return(0,b.jsxs)(P.Badge,{variant:"default",className:"text-[10px]",children:[c("models.cliAccountLoggedIn"),d?` \xb7 ${d}`:""]})}return"not_authenticated"===a.state?(0,b.jsx)(P.Badge,{variant:"outline",className:"text-[10px]",children:c("models.cliAccountNotLoggedIn")}):(0,b.jsx)(P.Badge,{variant:"outline",className:"text-[10px] text-muted-foreground",children:c("models.cliAccountDetectFailed")})}var aB=a.i(14027),aC=a.i(91167);let aD=(0,h.default)("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);function aE(a,b){return a.id===b.id&&a.providerProfileId===b.providerProfileId&&"active"===a.status&&a.generation===b.generation}function aF({credentials:a,selectedCredentialId:d,credentialForm:e,rotateDialogOpen:f,isSaving:g,isRotating:h,isDeleting:i,onCredentialFormChange:l,onRotateDialogOpenChange:n,onSelectCredential:o,onSubmitCredential:p,onOpenRotate:u,onConfirmRotate:v,onDeleteCredential:w,t:x}){let[y,z]=(0,c.useState)(null),[A,B]=(0,c.useState)(""),[C,D]=(0,c.useState)(null),[E,F]=(0,c.useState)(null),[H,I]=(0,c.useState)(!1),J=(0,c.useRef)(0);function K(){J.current++,z(null),B(""),D(null),I(!1)}async function L(){if(!y||!A||H)return;let a=++J.current;I(!0),D(null);try{let b=await (0,t.revealProviderCredential)(y.providerProfileId,y.id,A);if(a!==J.current)return;F({credential:y,secret:b.secret}),K()}catch(b){if(a!==J.current)return;D(b instanceof Error?b.message:x("models.credentialRevealFailed")),I(!1)}}function M(){K()}async function O(a){if("u"<typeof navigator||!navigator.clipboard)return void N.toast.error(x("models.copyFailed"));try{await navigator.clipboard.writeText(a),N.toast.success(x("models.apiKeyCopied"))}catch{N.toast.error(x("models.copyFailed"))}}return(0,c.useEffect)(()=>()=>{J.current++},[]),(0,c.useEffect)(()=>{E&&!a.some(a=>aE(a,E.credential))&&F(null),y&&!a.some(a=>aE(a,y))&&(J.current++,z(null),B(""),D(null),I(!1))},[a,E,y]),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("form",{className:"grid items-end gap-3 md:grid-cols-[1fr_1fr_auto]",onSubmit:p,children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"credential-label",children:x("models.credentialLabel")}),(0,b.jsx)(r.Input,{id:"credential-label",placeholder:x("models.defaultCredentialLabel"),value:e.label,onChange:a=>l({...e,label:a.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"credential-secret",children:x("models.apiKey")}),(0,b.jsx)(r.Input,{id:"credential-secret",type:"password",placeholder:x("models.apiKeyPlaceholder"),value:e.plaintextSecret,onChange:a=>l({...e,plaintextSecret:a.target.value}),required:!0})]}),(0,b.jsxs)(k.Button,{type:"submit",disabled:g,children:[(0,b.jsx)(j.Plus,{className:"size-4"}),x("models.saveCredential")]})]}),0===a.length?(0,b.jsx)(G,{text:x("models.emptyCredentials")}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:a.map((c,e)=>{var f;let g=E&&E.credential.id===c.id&&(f=E.credential,a.some(a=>aE(a,f)))?E:null;return(0,b.jsxs)("div",{className:`flex items-center gap-3 px-4 py-3 transition-colors forgebadger-animate-in hover:bg-muted/40 ${c.id===d?"bg-brand/5":""}`,style:{animationDelay:`${40*e}ms`},children:[(0,b.jsxs)("button",{type:"button",className:"min-w-0 flex-1 text-left",onClick:()=>o(c.id),children:[(0,b.jsx)("div",{className:"truncate text-sm font-medium",children:c.label??x("models.unnamedCredential")}),(0,b.jsx)("div",{className:g?"mt-0.5 break-all font-mono text-xs text-foreground":"mt-0.5 truncate font-mono text-xs text-muted-foreground",children:g?g.secret:c.secretPreview})]}),(0,b.jsx)(P.Badge,{variant:"outline",className:"shrink-0",children:c.status}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",title:x("models.copyApiKey"),"aria-label":x("models.copyApiKey"),onClick:()=>void O(g.secret),children:(0,b.jsx)(aB.Copy,{className:"size-4"})}),(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",title:x("models.hideApiKey"),"aria-label":x("models.hideApiKey"),onClick:()=>F(null),children:(0,b.jsx)(aD,{className:"size-4"})})]}):"active"===c.status?(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",title:x("models.revealApiKey"),"aria-label":x("models.revealApiKey"),onClick:()=>{K(),z(c)},children:(0,b.jsx)(aC.Eye,{className:"size-4"})}):null,(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",title:x("models.rotate"),"aria-label":x("models.rotate"),onClick:()=>{K(),F(null),u(c.id)},children:(0,b.jsx)(m.RefreshCw,{className:"size-4"})}),(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-destructive",disabled:i,title:x("models.deleteCredential"),"aria-label":x("models.deleteCredential"),onClick:()=>{K(),F(null),w(c.id)},children:(0,b.jsx)(an.Trash2,{className:"size-4"})})]})]},c.id)})}),(0,b.jsx)(q.Dialog,{open:f,onOpenChange:n,children:(0,b.jsx)(q.DialogContent,{className:"sm:max-w-md",children:(0,b.jsxs)("form",{className:"space-y-4",onSubmit:a=>{a.preventDefault(),v()},children:[(0,b.jsx)(q.DialogHeader,{children:(0,b.jsx)(q.DialogTitle,{children:x("models.rotateApiKey")})}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"rotate-credential-label",children:x("models.credentialLabel")}),(0,b.jsx)(r.Input,{id:"rotate-credential-label",placeholder:x("models.defaultCredentialLabel"),value:e.label,onChange:a=>l({...e,label:a.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"rotate-credential-secret",children:x("models.apiKey")}),(0,b.jsx)(r.Input,{id:"rotate-credential-secret",type:"password",placeholder:x("models.apiKeyPlaceholder"),value:e.plaintextSecret,onChange:a=>l({...e,plaintextSecret:a.target.value}),required:!0})]}),(0,b.jsxs)(q.DialogFooter,{children:[(0,b.jsx)(k.Button,{type:"button",variant:"outline",disabled:h,onClick:()=>n(!1),children:x("common.cancel")}),(0,b.jsxs)(k.Button,{type:"submit",disabled:h||!e.plaintextSecret,children:[(0,b.jsx)(m.RefreshCw,{className:`size-4 ${h?"animate-spin":""}`}),x("models.rotate")]})]})]})})}),(0,b.jsx)(q.Dialog,{open:null!==y,onOpenChange:a=>!a&&M(),children:(0,b.jsx)(q.DialogContent,{className:"sm:max-w-md",children:(0,b.jsxs)("form",{className:"space-y-4",onSubmit:a=>{a.preventDefault(),L()},children:[(0,b.jsxs)(q.DialogHeader,{children:[(0,b.jsx)(q.DialogTitle,{children:x("models.revealApiKey")}),(0,b.jsx)(q.DialogDescription,{children:x("models.revealApiKeyHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"reveal-credential-password",children:x("models.revealPassword")}),(0,b.jsx)(r.Input,{id:"reveal-credential-password",type:"password",autoFocus:!0,autoComplete:"current-password",value:A,onChange:a=>B(a.target.value),required:!0}),C?(0,b.jsx)("p",{className:"text-xs text-destructive",children:C}):null]}),(0,b.jsxs)(q.DialogFooter,{children:[(0,b.jsx)(k.Button,{type:"button",variant:"outline",onClick:M,children:x("common.cancel")}),(0,b.jsxs)(k.Button,{type:"submit",disabled:H||!A,children:[(0,b.jsx)(aC.Eye,{className:"size-4"}),x("models.revealConfirm")]})]})]})})})]})}var aG=a.i(91569);function aH({provider:a,t:d}){let f=(0,Q.useUiLocale)(),[g,h]=(0,c.useState)(null);(0,c.useEffect)(()=>{h(null)},[a.id]);let i=(0,e.useMutation)({mutationFn:()=>(0,t.testModelProviderEndpoint)(a.id,{timeoutMs:5e3}),onSuccess:a=>h(a.health)}),j=i.error instanceof Error?i.error.message:null;return(0,b.jsxs)(ap.Card,{children:[(0,b.jsx)(ap.CardHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(aG.Gauge,{className:"size-4"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)(ap.CardTitle,{className:"text-base",children:d("models.endpointTest")}),(0,b.jsx)(ap.CardDescription,{className:"mt-1",children:d("models.endpointTestDescription")})]})]})}),(0,b.jsxs)(ap.CardContent,{className:"space-y-3",children:[(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"outline",disabled:i.isPending,onClick:()=>i.mutate(),children:[(0,b.jsx)(aG.Gauge,{className:`size-4 ${i.isPending?"animate-pulse":""}`}),d(i.isPending?"models.checkingEndpoint":"models.checkEndpoint")]}),j?(0,b.jsx)("p",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:j}):null,g?(0,b.jsxs)("div",{"data-testid":"endpoint-health-row",className:"flex flex-wrap items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-xs",children:[(0,b.jsx)(P.Badge,{variant:g.healthy?"default":"outline",children:d(g.healthy?"models.endpointHealthy":"models.endpointFailed")}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:[g.latencyMs," ms",g.statusCode?` \xb7 HTTP ${g.statusCode}`:""," · ",A(g.checkedAt,f)]}),g.error?(0,b.jsx)("span",{className:"text-destructive",children:g.error}):null]}):null]})]})}function aI({models:a,selectedModelId:c,modelForm:d,dialogOpen:e,isSaving:f,isSettingDefault:g,isDeleting:h,isSyncing:i,syncDisabled:l,onSync:n,onModelFormChange:o,onDialogOpenChange:p,onNewModel:t,onEditModel:u,onSetDefault:v,onDeleteModel:w,onSubmitModel:x,t:y}){return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"min-w-0 flex-1 text-sm text-muted-foreground",children:y("models.modelsWorkspaceDescription")}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"outline",disabled:l||i,title:l?y("models.syncRequiresCredential"):y("models.syncProviderModelsDescription"),onClick:n,children:[(0,b.jsx)(m.RefreshCw,{className:`size-4 ${i?"animate-spin":""}`}),y("models.syncProviderModels")]}),l&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:y("models.syncRequiresCredential")}),(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"outline",onClick:t,children:[(0,b.jsx)(j.Plus,{className:"size-4"}),y("models.newModel")]})]})]}),0===a.length?(0,b.jsx)(G,{text:y("models.emptyModelsForProvider")}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:a.map((a,d)=>(0,b.jsxs)("div",{className:`flex items-center gap-3 px-4 py-3 transition-colors forgebadger-animate-in hover:bg-muted/40 ${a.id===c?"bg-brand/5":""}`,style:{animationDelay:`${40*d}ms`},children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.name}),a.isDefault&&(0,b.jsx)(P.Badge,{className:"shrink-0",children:y("models.default")})]}),(0,b.jsx)("div",{className:"mt-0.5 truncate font-mono text-xs text-muted-foreground",children:a.modelId})]}),(0,b.jsx)("div",{className:"hidden flex-wrap justify-end gap-1 md:flex md:max-w-40",children:a.capabilities.map(a=>(0,b.jsx)(P.Badge,{variant:"outline",children:a},a))}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",disabled:a.isDefault||g,title:y("models.setDefault"),"aria-label":y("models.setDefault"),onClick:()=>v(a.id),children:(0,b.jsx)(M.ShieldCheck,{className:"size-4"})}),(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",title:y("models.editModel"),"aria-label":y("models.editModel"),onClick:()=>u(a.id),children:(0,b.jsx)(Z.Pencil,{className:"size-4"})}),(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-destructive",disabled:h,title:y("models.deleteModel"),"aria-label":y("models.deleteModel"),onClick:()=>w(a.id),children:(0,b.jsx)(an.Trash2,{className:"size-4"})})]})]},a.id))}),(0,b.jsx)(q.Dialog,{open:e,onOpenChange:p,children:(0,b.jsx)(q.DialogContent,{className:"sm:max-w-md",children:(0,b.jsxs)("form",{className:"space-y-4",onSubmit:x,children:[(0,b.jsx)(q.DialogHeader,{children:(0,b.jsx)(q.DialogTitle,{children:c?y("models.editModel"):y("models.addModel")})}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"model-form-name",children:y("common.name")}),(0,b.jsx)(r.Input,{id:"model-form-name",value:d.name,onChange:a=>o({...d,name:a.target.value}),required:!0})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"model-form-model-id",children:y("models.modelId")}),(0,b.jsx)(r.Input,{id:"model-form-model-id",value:d.modelId,onChange:a=>o({...d,modelId:a.target.value}),required:!0})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{children:y("models.capabilities")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-3",children:E.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:d.capabilities.includes(a),onChange:()=>{let b;return b=d.capabilities.includes(a)?d.capabilities.filter(b=>b!==a):[...d.capabilities,a],void o({...d,capabilities:b})}}),a]},a))}),(0,b.jsx)(r.Input,{id:"model-form-custom-capabilities",value:d.customCapabilities,onChange:a=>o({...d,customCapabilities:a.target.value}),placeholder:y("models.customCapabilitiesPlaceholder")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"model-form-context-window",children:y("models.contextWindow")}),(0,b.jsx)(r.Input,{id:"model-form-context-window",type:"number",min:1,step:1,placeholder:y("models.contextWindowPlaceholder"),value:d.contextWindow,onChange:a=>o({...d,contextWindow:a.target.value})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:y("models.contextWindowHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{children:y("models.thinkingEfforts")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-3",children:F.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:d.supportEfforts.includes(a),onChange:()=>{let b;return b=d.supportEfforts.includes(a),void o({...d,supportEfforts:b?d.supportEfforts.filter(b=>b!==a):[...d.supportEfforts,a],defaultEffort:b&&d.defaultEffort===a?"":d.defaultEffort})}}),a]},a))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:y("models.thinkingEffortsHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.Label,{htmlFor:"model-form-default-effort",children:y("models.defaultEffort")}),(0,b.jsxs)("select",{id:"model-form-default-effort",className:"h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",value:d.defaultEffort,onChange:a=>o({...d,defaultEffort:a.target.value}),children:[(0,b.jsx)("option",{value:"",children:y("models.defaultEffortUnset")}),d.supportEfforts.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),(0,b.jsxs)(q.DialogFooter,{children:[(0,b.jsx)(k.Button,{type:"button",variant:"outline",disabled:f,onClick:()=>p(!1),children:y("common.cancel")}),(0,b.jsx)(k.Button,{type:"submit",disabled:f,children:c?y("models.saveModel"):y("models.addModel")})]})]})})})]})}function aJ({provider:a,isSyncing:c,syncDisabled:d,balance:e,balanceError:g,isCheckingBalance:h,isDeletingProvider:i,onEditProvider:j,onSync:l,onCheckBalance:n,onDeleteProvider:o,onApplyToCli:p,onViewCliConfig:q,modelsTab:r,credentialTab:s,t:u}){var v;let w=(0,Q.useUiLocale)(),{data:x}=(0,f.useQuery)({queryKey:["claude-route"],queryFn:t.getClaudeRoute,retry:!1,staleTime:6e4}),y=x?.enabled===!0&&a.supportedAdapters.includes("claude")&&x.assignment?.providerProfileId===a.id;return(0,b.jsxs)("div",{className:"min-w-0 space-y-6",children:[(0,b.jsx)(ap.Card,{className:"forgebadger-animate-in",children:(0,b.jsxs)(ap.CardContent,{className:"space-y-4 p-4 md:p-5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(as,{className:"size-4"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-base font-semibold",children:a.name}),(0,b.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:a.baseUrl??a.providerKey})]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-2",children:[(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"brand",onClick:()=>p(),children:[(0,b.jsx)(M.ShieldCheck,{className:"size-4"}),u("models.applyToCli")]}),(0,b.jsxs)(au.DropdownMenu,{children:[(0,b.jsx)(au.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)(k.Button,{type:"button",size:"icon",variant:"outline",className:"size-9","aria-label":u("common.actions"),children:(0,b.jsx)(ar.MoreHorizontal,{className:"size-4"})})}),(0,b.jsxs)(au.DropdownMenuContent,{align:"end",children:[(0,b.jsxs)(au.DropdownMenuItem,{onSelect:j,children:[(0,b.jsx)(Z.Pencil,{className:"size-4"}),u("models.editProvider")]}),(0,b.jsxs)(au.DropdownMenuItem,{disabled:h,onSelect:n,children:[(0,b.jsx)(at,{className:"size-4"}),u("models.checkBalance")]}),(0,b.jsxs)(au.DropdownMenuItem,{className:"text-destructive focus:text-destructive",disabled:i,onSelect:o,children:[(0,b.jsx)(an.Trash2,{className:"size-4"}),u("models.deleteProviderTitle")]})]})]})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(P.Badge,{variant:"outline",children:C(a.apiFormat,u)}),y&&(0,b.jsx)(P.Badge,{variant:"secondary",children:u("models.claudeRouteBadge")}),a.region?(0,b.jsx)(P.Badge,{variant:"outline",children:a.region}):null,(0,b.jsx)(P.Badge,{variant:"secondary",children:(v=a.productType,"coding_plan"===v?u("models.productTypeCodingPlan"):"token_plan"===v?u("models.productTypeTokenPlan"):"subscription"===v?u("models.productTypeSubscription"):"local"===v?u("models.productTypeLocal"):u("models.productTypePaygApi"))}),(0,b.jsx)(P.Badge,{variant:"outline",children:D(a.authType,u)}),(!a?[]:[...a.supportedAdapters]).map(a=>(0,b.jsx)(_.CliBrandChip,{aiTool:a},a))]}),(0,b.jsxs)("div",{className:"min-h-10 space-y-2","data-testid":"provider-balance-row",children:[g?(0,b.jsx)("span",{className:"text-xs text-destructive",children:g}):e&&!e.supported?(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:u("models.balanceNotSupported")}):!e&&h?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,b.jsx)(m.RefreshCw,{className:"size-3 animate-spin"}),u("models.balanceLoading")]}):e?0===e.balances.length?(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:u("models.balanceEmpty")}):e.balances.map(a=>(0,b.jsx)(aK,{entry:a,t:u},`${a.label}-${a.resetsAt??""}`)):(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:u("models.balanceNotQueried")}),e?.supported&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[h&&(0,b.jsx)(m.RefreshCw,{className:"size-3 animate-spin"}),(0,b.jsx)("span",{children:A(e.checkedAt,w)})]})]})]})}),(0,b.jsx)(az,{provider:a,onApply:a=>p(a),onViewConfig:q}),(0,b.jsxs)(ae.Tabs,{defaultValue:"models",className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsxs)(ae.TabsList,{children:[(0,b.jsx)(ae.TabsTrigger,{value:"models",children:u("models.modelsWorkspace")}),(0,b.jsx)(ae.TabsTrigger,{value:"credentials",children:u("models.credentials")}),(0,b.jsx)(ae.TabsTrigger,{value:"diagnostics",children:u("models.diagnosticsTab")})]}),(0,b.jsx)(ae.TabsContent,{value:"models",className:"pt-4",children:(0,b.jsx)(aI,{...r,isSyncing:c,syncDisabled:d,onSync:l,t:u})}),(0,b.jsx)(ae.TabsContent,{value:"credentials",className:"pt-4",children:(0,b.jsx)(aF,{...s,t:u})}),(0,b.jsx)(ae.TabsContent,{value:"diagnostics",className:"pt-4",forceMount:!0,children:(0,b.jsx)(aH,{provider:a,t:u})})]})]})}function aK({entry:a,t:c}){let d=(0,Q.useUiLocale)(),e="%"===a.unit?B(100-a.remaining):void 0!==a.limit&&a.limit>0?B((1-a.remaining/a.limit)*100):void 0,f=!1===a.isAvailable,g=void 0!==e?`${Math.round(e)}%`:`${a.remaining} ${a.unit}`,h=void 0===e?"":e>=80?"bg-red-500":e>=50?"bg-amber-500":"bg-emerald-500";return(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 text-xs",children:[(0,b.jsxs)("span",{className:f?"text-amber-700 dark:text-amber-300":"text-muted-foreground",children:[a.label,f?` \xb7 ${c("models.balanceUnavailable")}`:"",a.resetsAt?` \xb7 ${c("models.balanceResetsAt")}: ${A(a.resetsAt,d)}`:""]}),(0,b.jsx)("span",{className:`font-medium ${f?"text-amber-700 dark:text-amber-300":""}`,children:g})]}),void 0!==e&&(0,b.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-muted/40",children:(0,b.jsx)("div",{className:`h-full rounded-full transition-[width] duration-500 ${h}`,style:{width:`${e}%`}})})]})}function aL(a,b){return a instanceof Error?a.message:b}a.s(["default",0,function(){let{t:a}=(0,Q.useLanguage)(),h=(0,g.useQueryClient)(),m=(0,d.useRouter)(),n=(0,d.usePathname)(),o=(0,d.useSearchParams)(),[p,q]=(0,c.useState)(()=>o.get("provider")??""),[r,s]=(0,c.useState)(w),[u,v]=(0,c.useState)(y),[A,B]=(0,c.useState)(z),[C,D]=(0,c.useState)(""),[F,G]=(0,c.useState)(""),[H,I]=(0,c.useState)(""),[J,L]=(0,c.useState)(y),[M,O]=(0,c.useState)(null),[P,R]=(0,c.useState)(!1),[S,T]=(0,c.useState)(null),[U,V]=(0,c.useState)({open:!1}),[X,Y]=(0,c.useState)({open:!1,adapter:null}),[Z,$]=(0,c.useState)(!1),[_,aa]=(0,c.useState)(!1);function ab(a){q(a);let b=new URLSearchParams(o.toString());a?b.set("provider",a):b.delete("provider");let c=b.toString();m.replace(c?`${n}?${c}`:n,{scroll:!1})}let ac=(0,f.useQuery)({queryKey:["model-providers"],queryFn:t.listModelProviders}),ad=ac.data?.providers??[],ae=ac.data?.models??[],af=ac.data?.credentials??[],ag=(0,c.useMemo)(()=>{let a=H.trim().toLowerCase();return a?ad.filter(b=>[b.name,b.providerKey,b.baseUrl,b.apiFormat,b.opencodeNpm].filter(Boolean).join(" ").toLowerCase().includes(a)):ad},[H,ad]);(0,c.useEffect)(()=>{let a=ad[0];a&&(p&&ad.some(a=>a.id===p)||ab(a.id))},[ad,p]);let ai=ad.find(a=>a.id===p),aj=(0,c.useMemo)(()=>ae.filter(a=>a.providerProfileId===p),[ae,p]),ak=(0,c.useMemo)(()=>af.filter(a=>a.providerProfileId===p),[af,p]),al=(0,c.useMemo)(()=>aj.find(a=>a.id===C),[aj,C]),am=(0,c.useMemo)(()=>ak.find(a=>a.id===F),[ak,F]),an=(0,c.useMemo)(()=>{let a=new Map;for(let b of ae)a.set(b.providerProfileId,(a.get(b.providerProfileId)??0)+1);return a},[ae]);(0,c.useEffect)(()=>{D(a=>aj.some(b=>b.id===a)?a:aj[0]?.id||""),G(a=>ak.some(b=>b.id===a)?a:ak[0]?.id||"")},[aj,ak]),(0,c.useEffect)(()=>{if(al){let{checked:a,custom:b}=function(a){let b=new Set(E),c=[],d=[];for(let e of a)b.has(e)?c.push(e):d.push(e);return{checked:c,custom:d.join(",")}}(al.capabilities);B({name:al.name,modelId:al.modelId,capabilities:a,customCapabilities:b,contextWindow:al.contextWindow?String(al.contextWindow):"",supportEfforts:al.supportEfforts,defaultEffort:al.defaultEffort??""})}else B(z)},[al]),(0,c.useEffect)(()=>{am&&v(a=>({...a,label:am.label??""}))},[am]);let ap=(0,e.useMutation)({mutationFn:async()=>{let a,b=r.anthropicBaseUrl.trim(),c=r.openaiBaseUrl.trim(),d=await (0,t.createModelProvider)({name:r.name.trim(),providerKey:r.providerKey.trim(),authType:r.authType,apiFormat:r.apiFormat,baseUrl:x(r),...b?{anthropicBaseUrl:b}:{},...c?{openaiBaseUrl:c}:{},supportedAdapters:r.supportedAdapters,...r.allowPlaintextHttp?{allowPlaintextHttp:!0}:{},...r.allowPrivateNetworks?{allowPrivateNetworks:!0}:{}}),e=J.plaintextSecret.trim(),f="none"!==d.provider.authType&&e?(await (0,t.createProviderCredential)(d.provider.id,{label:J.label.trim()||void 0,plaintextSecret:e})).credential:void 0;if(f||"none"===d.provider.authType)try{await (0,t.syncProviderModels)(d.provider.id,{credentialId:f?.id})}catch(b){a=b}return{provider:d.provider,credential:f,syncError:a}},onSuccess:async b=>{ab(b.provider.id),G(b.credential?.id??""),D(""),s(w),L(y),R(!1),T(null),N.toast.success(a("models.providerCreated")),b.syncError&&N.toast.error(b.syncError instanceof Error?b.syncError.message:a("models.modelSyncFailed")),await aF()},onError:b=>N.toast.error(aL(b,a("models.failedLoad")))}),ar=(0,e.useMutation)({mutationFn:async()=>{if(!S)throw Error(a("models.providerRequired"));let b=r.anthropicBaseUrl.trim(),c=r.openaiBaseUrl.trim();return(0,t.updateModelProvider)(S.id,{name:r.name.trim(),authType:r.authType,apiFormat:r.apiFormat,baseUrl:x(r),...b?{anthropicBaseUrl:b}:{},...c?{openaiBaseUrl:c}:{},supportedAdapters:r.supportedAdapters,...r.allowPlaintextHttp?{allowPlaintextHttp:!0}:{},...r.allowPrivateNetworks?{allowPrivateNetworks:!0}:{}})},onSuccess:async()=>{R(!1),T(null),s(w),N.toast.success(a("models.updated")),await aF()},onError:b=>N.toast.error(aL(b,a("models.failedLoad")))}),as=(0,e.useMutation)({mutationFn:a=>(0,t.deleteModelProvider)(a),onSuccess:async(b,c)=>{O(null),ab(ad.find(a=>a.id!==c)?.id||""),D(""),G(""),N.toast.success(a("models.providerDeleted")),await aF()},onError:b=>N.toast.error(aL(b,a("models.failedLoad")))}),at=(0,e.useMutation)({mutationFn:()=>(0,t.createProviderCredential)(p,{label:u.label.trim()||void 0,plaintextSecret:u.plaintextSecret}),onSuccess:async b=>{v(y),G(b.credential.id),N.toast.success(a("models.credentialSaved")),await aF()},onError:b=>N.toast.error(aL(b,a("models.failedLoad")))}),au=(0,e.useMutation)({mutationFn:()=>{if(!F)throw Error(a("models.credentialRequired"));return(0,t.rotateProviderCredential)(p,F,{label:u.label.trim()||void 0,plaintextSecret:u.plaintextSecret})},onSuccess:async b=>{v(y),G(b.credential.id),aa(!1),N.toast.success(a("models.credentialRotated")),await aF()},onError:b=>N.toast.error(aL(b,a("models.failedLoad")))}),av=(0,e.useMutation)({mutationFn:a=>(0,t.deleteProviderCredential)(p,a),onSuccess:async(b,c)=>{O(null),G(ak.find(a=>a.id!==c)?.id||""),v(y),N.toast.success("revoked"===b.disposition?a("models.credentialRevoked"):a("models.credentialDeleted")),await aF()},onError:b=>N.toast.error(aL(b,a("models.failedLoad")))}),aw=()=>({name:A.name.trim(),modelId:A.modelId.trim(),capabilities:function(a,b){let c=[];for(let d of[...a,...function(a){let b=new Set;for(let c of a.split(",")){let a=c.trim();a&&b.add(a)}return[...b]}(b)])d&&!c.includes(d)&&c.push(d);return c}(A.capabilities,A.customCapabilities),supportEfforts:A.supportEfforts}),ax=(0,e.useMutation)({mutationFn:()=>(0,t.createProviderModel)(p,{...aw(),...A.contextWindow.trim()?{contextWindow:Number(A.contextWindow.trim())}:{},...A.defaultEffort?{defaultEffort:A.defaultEffort}:{}}),onSuccess:async b=>{B(z),D(b.model.id),$(!1),N.toast.success(a("models.modelProfileSaved")),await aF()},onError:b=>N.toast.error(aL(b,a("models.failedLoad")))}),ay=(0,e.useMutation)({mutationFn:()=>{if(!C)throw Error(a("models.modelRequired"));return(0,t.updateProviderModel)(p,C,{...aw(),contextWindow:A.contextWindow.trim()?Number(A.contextWindow.trim()):null,defaultEffort:A.defaultEffort||null})},onSuccess:async b=>{D(b.model.id),$(!1),N.toast.success(a("models.updated")),await aF()},onError:b=>N.toast.error(aL(b,a("models.failedLoad")))}),az=(0,e.useMutation)({mutationFn:a=>(0,t.deleteProviderModel)(p,a),onSuccess:async(b,c)=>{O(null);let d=aj.find(a=>a.id!==c)?.id||"";D(d),B(d?A:z),N.toast.success(a("models.deleted")),await aF()},onError:b=>N.toast.error(aL(b,a("models.failedLoad")))}),aA=(0,e.useMutation)({mutationFn:a=>(0,t.setDefaultProviderModel)(p,a),onSuccess:async b=>{D(b.model.id),N.toast.success(a("models.defaultUpdated")),await aF()},onError:b=>N.toast.error(aL(b,a("models.failedLoad")))}),aB=as.isPending||az.isPending||av.isPending,aC=ak.find(a=>"active"===a.status),aD=(0,f.useQuery)({queryKey:["provider-balance",p,aC?.id??""],queryFn:()=>(0,t.checkProviderBalance)(p,aC?{credentialId:aC.id}:{}),enabled:!!ai&&(ai?.authType==="none"||!!aC),refetchInterval:a=>a.state.data?.supported!==!1&&6e4,retry:!1}),aE=(0,e.useMutation)({mutationFn:()=>{if(!ai)throw Error(a("models.providerRequired"));return(0,t.syncProviderModels)(ai.id,{credentialId:"none"===ai.authType?void 0:aC?.id})},onSuccess:async b=>{let c=b.createdCount+(b.updatedCount??0);N.toast.success(c>0?a("models.modelSyncComplete"):a("models.modelSyncNoChanges")),await aF()},onError:b=>N.toast.error(aL(b,a("models.modelSyncFailed")))});function aF(){return h.invalidateQueries({queryKey:["model-providers"]})}function aG(){T(null),s(w),L(y),R(!0)}function aH(a){let b,c,d,e;T(a),s((b=a.anthropicBaseUrl??"",c=a.openaiBaseUrl??"",e=(d=a.baseUrl??"")&&!b&&!c?d:"",{name:a.name,providerKey:a.providerKey,apiFormat:a.apiFormat,authType:a.authType,baseUrl:d,anthropicBaseUrl:b||("anthropic"===a.apiFormat?e:""),openaiBaseUrl:c||("anthropic"===a.apiFormat?"":e),supportedAdapters:[...a.supportedAdapters],allowPlaintextHttp:a.allowPlaintextHttp??!1,allowPrivateNetworks:a.allowPrivateNetworks??!1})),L(y),R(!0)}return(0,b.jsxs)("div",{className:"mx-auto max-w-[1400px] space-y-6 p-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3 forgebadger-animate-in",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:a("models.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a("models.providerCenterSubtitle")})]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"brand",onClick:aG,children:[(0,b.jsx)(j.Plus,{className:"size-4"}),a("models.addProvider")]})})]}),ac.isError?(0,b.jsx)(l.QueryState,{isLoading:!1,isError:!0,isEmpty:!1,onRetry:()=>void ac.refetch(),empty:null}):(0,b.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[300px_minmax(0,1fr)]",children:[(0,b.jsx)("div",{className:"min-w-0 space-y-6",children:(0,b.jsx)(aq,{providers:ag,providerCount:ad.length,modelCounts:an,queryText:H,selectedProviderId:p,isLoading:ac.isLoading,onQueryTextChange:I,onSelectProvider:ab,onEditProvider:a=>{let b=ad.find(b=>b.id===a);b&&aH(b)},t:a})}),(0,b.jsx)("div",{className:"min-w-0",children:ai?(0,b.jsx)(aJ,{provider:ai,isSyncing:aE.isPending,syncDisabled:"none"!==ai.authType&&!aC,isDeletingProvider:as.isPending,onEditProvider:()=>aH(ai),balance:aD.data??null,balanceError:aD.isError?aD.error instanceof Error?aD.error.message:a("models.balanceCheckFailed"):null,isCheckingBalance:aD.isFetching,onSync:()=>aE.mutate(),onCheckBalance:()=>void aD.refetch(),onDeleteProvider:()=>{O({kind:"provider",providerId:ai.id,name:ai.name})},onApplyToCli:a=>V({open:!0,adapter:a}),onViewCliConfig:a=>Y({open:!0,adapter:a}),modelsTab:{models:aj,selectedModelId:C,modelForm:A,dialogOpen:Z,isSaving:ax.isPending||ay.isPending,isSettingDefault:aA.isPending,isDeleting:az.isPending,onModelFormChange:B,onDialogOpenChange:$,onNewModel:function(){D(""),B(z),$(!0)},onEditModel:function(a){D(a),$(!0)},onSetDefault:a=>aA.mutate(a),onDeleteModel:a=>{O({kind:"model",modelId:a,name:aj.find(b=>b.id===a)?.name??a})},onSubmitModel:function(a){a.preventDefault(),C?ay.mutate():ax.mutate()}},credentialTab:{credentials:ak,selectedCredentialId:F,credentialForm:u,rotateDialogOpen:_,isSaving:at.isPending,isRotating:au.isPending,isDeleting:av.isPending,onCredentialFormChange:v,onRotateDialogOpenChange:aa,onSelectCredential:G,onSubmitCredential:function(a){a.preventDefault(),at.mutate()},onOpenRotate:function(a){G(a),v(a=>({...a,plaintextSecret:""})),aa(!0)},onConfirmRotate:()=>au.mutate(),onDeleteCredential:a=>{O({kind:"credential",credentialId:a,name:ak.find(b=>b.id===a)?.label??a})}},t:a}):0===ad.length?(0,b.jsxs)("div",{className:"flex min-h-[420px] flex-col items-center justify-center gap-4 rounded-lg border border-dashed border-border/70 bg-card/50 px-6 py-12 text-center forgebadger-animate-in",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(i,{className:"size-5"})}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("models.emptyWorkspaceTitle")}),(0,b.jsx)("p",{className:"max-w-md text-sm text-muted-foreground",children:a("models.emptyProviders")})]}),(0,b.jsxs)(k.Button,{type:"button",size:"sm",variant:"brand",onClick:aG,children:[(0,b.jsx)(j.Plus,{className:"size-4"}),a("models.addProvider")]})]}):(0,b.jsxs)("div",{className:"flex min-h-[280px] flex-col items-center justify-center gap-3 rounded-lg border border-dashed border-border/70 bg-card/50 px-6 py-10 text-center forgebadger-animate-in",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-muted text-muted-foreground",children:(0,b.jsx)(i,{className:"size-5"})}),(0,b.jsx)("p",{className:"max-w-sm text-sm text-muted-foreground",children:a("models.noProviderSelected")})]})})]}),X.adapter&&(0,b.jsx)(ah,{open:X.open,adapter:X.adapter,onOpenChange:a=>Y(b=>({...b,open:a}))}),(0,b.jsx)(K,{open:P,customProvider:r,setupCredential:J,isCreating:ap.isPending||ar.isPending,existing:S??void 0,onOpenChange:function(a){!a&&(ap.isPending||ar.isPending)||R(a)},onCustomProviderChange:s,onSetupCredentialChange:L,onSubmit:function(a){a.preventDefault(),S?ar.mutate():ap.mutate()},t:a}),(0,b.jsx)(ao,{target:M,isDeleting:aB,onOpenChange:a=>{a||aB||O(null)},onConfirm:function(){M&&("provider"===M.kind?as.mutate(M.providerId):"model"===M.kind?az.mutate(M.modelId):av.mutate(M.credentialId))},t:a}),ai?(0,b.jsx)(W,{provider:ai,models:aj,credentials:ak,open:U.open,initialAdapter:U.adapter,onOpenChange:a=>V(b=>({...b,open:a}))}):null]})}],76640)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_web_src_app_%28dashboard%29_models_page_tsx_0_ccn2i._.js.map
|