forgebadger 0.2.0-beta.1 → 0.2.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/dist/gateway/src/adapters/claude.d.ts +2 -0
- package/dist/gateway/src/adapters/claude.js +4 -1
- package/dist/gateway/src/adapters/claude.js.map +1 -1
- package/dist/gateway/src/adapters/index.d.ts +5 -0
- package/dist/gateway/src/adapters/index.js +26 -8
- package/dist/gateway/src/adapters/index.js.map +1 -1
- package/dist/gateway/src/db/migrations/0148_copilot_machine_roots.sql +13 -0
- package/dist/gateway/src/db/migrations/0149_sessions_native_session_id.sql +4 -0
- package/dist/gateway/src/db/migrations/meta/0024_snapshot.json +5553 -0
- package/dist/gateway/src/db/migrations/meta/0025_snapshot.json +5622 -0
- package/dist/gateway/src/db/migrations/meta/_journal.json +14 -0
- package/dist/gateway/src/db/migrations/meta/migration-checksums.json +3 -1
- package/dist/gateway/src/db/repositories/copilot-machine-root-repository.d.ts +26 -0
- package/dist/gateway/src/db/repositories/copilot-machine-root-repository.js +41 -0
- package/dist/gateway/src/db/repositories/copilot-machine-root-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/copilot-tool-artifact-repository.js +11 -6
- package/dist/gateway/src/db/repositories/copilot-tool-artifact-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/session-repository.d.ts +3 -0
- package/dist/gateway/src/db/repositories/session-repository.js +3 -0
- package/dist/gateway/src/db/repositories/session-repository.js.map +1 -1
- package/dist/gateway/src/db/schema.d.ts +17 -0
- package/dist/gateway/src/db/schema.js +2 -0
- package/dist/gateway/src/db/schema.js.map +1 -1
- package/dist/gateway/src/mvp0/api.js +1 -0
- package/dist/gateway/src/mvp0/api.js.map +1 -1
- package/dist/gateway/src/routes/adapters.js +22 -23
- package/dist/gateway/src/routes/adapters.js.map +1 -1
- package/dist/gateway/src/routes/copilot-machine-roots.d.ts +10 -0
- package/dist/gateway/src/routes/copilot-machine-roots.js +53 -0
- package/dist/gateway/src/routes/copilot-machine-roots.js.map +1 -0
- package/dist/gateway/src/routes/copilot.js +2 -0
- package/dist/gateway/src/routes/copilot.js.map +1 -1
- package/dist/gateway/src/routes/session-hooks.js +7 -0
- package/dist/gateway/src/routes/session-hooks.js.map +1 -1
- package/dist/gateway/src/routes/sessions.js +6 -1
- package/dist/gateway/src/routes/sessions.js.map +1 -1
- package/dist/gateway/src/server.js +6 -0
- package/dist/gateway/src/server.js.map +1 -1
- package/dist/gateway/src/services/adapter-operations.d.ts +26 -0
- package/dist/gateway/src/services/adapter-operations.js +69 -0
- package/dist/gateway/src/services/adapter-operations.js.map +1 -0
- package/dist/gateway/src/services/adapter-updates.js +39 -19
- package/dist/gateway/src/services/adapter-updates.js.map +1 -1
- package/dist/gateway/src/services/agent/catalog-search.js +7 -3
- package/dist/gateway/src/services/agent/catalog-search.js.map +1 -1
- package/dist/gateway/src/services/agent/llm-client.js +1 -0
- package/dist/gateway/src/services/agent/llm-client.js.map +1 -1
- package/dist/gateway/src/services/agent/orchestrator.js +29 -3
- package/dist/gateway/src/services/agent/orchestrator.js.map +1 -1
- package/dist/gateway/src/services/agent/read-batch.js +1 -1
- package/dist/gateway/src/services/agent/read-batch.js.map +1 -1
- package/dist/gateway/src/services/agent/repeat-tool-guard.d.ts +59 -0
- package/dist/gateway/src/services/agent/repeat-tool-guard.js +104 -0
- package/dist/gateway/src/services/agent/repeat-tool-guard.js.map +1 -0
- package/dist/gateway/src/services/agent/retrieval-grounding.d.ts +35 -0
- package/dist/gateway/src/services/agent/retrieval-grounding.js +45 -0
- package/dist/gateway/src/services/agent/retrieval-grounding.js.map +1 -0
- package/dist/gateway/src/services/agent/retrieval-routing.d.ts +19 -0
- package/dist/gateway/src/services/agent/retrieval-routing.js +32 -0
- package/dist/gateway/src/services/agent/retrieval-routing.js.map +1 -0
- package/dist/gateway/src/services/agent/run-ending.d.ts +19 -0
- package/dist/gateway/src/services/agent/run-ending.js +40 -0
- package/dist/gateway/src/services/agent/run-ending.js.map +1 -0
- package/dist/gateway/src/services/agent/run-trace.js +3 -0
- package/dist/gateway/src/services/agent/run-trace.js.map +1 -1
- package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.js +4 -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 +18 -0
- package/dist/gateway/src/services/agent/skills/copilot-skills.js.map +1 -1
- package/dist/gateway/src/services/agent/tool-artifact-policy.js +2 -2
- package/dist/gateway/src/services/agent/tool-artifact-policy.js.map +1 -1
- package/dist/gateway/src/services/agent/tool-surface.d.ts +16 -6
- package/dist/gateway/src/services/agent/tool-surface.js +23 -8
- package/dist/gateway/src/services/agent/tool-surface.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/deep-research.d.ts +2 -0
- package/dist/gateway/src/services/agent/tools/deep-research.js +58 -0
- package/dist/gateway/src/services/agent/tools/deep-research.js.map +1 -0
- package/dist/gateway/src/services/agent/tools/index.js +7 -0
- package/dist/gateway/src/services/agent/tools/index.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/machine-roots.d.ts +13 -0
- package/dist/gateway/src/services/agent/tools/machine-roots.js +63 -0
- package/dist/gateway/src/services/agent/tools/machine-roots.js.map +1 -0
- package/dist/gateway/src/services/agent/tools/machine-search-matcher.d.ts +24 -0
- package/dist/gateway/src/services/agent/tools/machine-search-matcher.js +98 -0
- package/dist/gateway/src/services/agent/tools/machine-search-matcher.js.map +1 -0
- package/dist/gateway/src/services/agent/tools/machine-search.d.ts +9 -0
- package/dist/gateway/src/services/agent/tools/machine-search.js +157 -0
- package/dist/gateway/src/services/agent/tools/machine-search.js.map +1 -0
- package/dist/gateway/src/services/agent/tools/platform-management.js +3 -1
- package/dist/gateway/src/services/agent/tools/platform-management.js.map +1 -1
- package/dist/gateway/src/services/channels/channel-run-scope.js +13 -4
- package/dist/gateway/src/services/channels/channel-run-scope.js.map +1 -1
- package/dist/gateway/src/services/cli-notification-settings.js +20 -7
- package/dist/gateway/src/services/cli-notification-settings.js.map +1 -1
- package/dist/gateway/src/services/mcp/project-workflow.d.ts +1 -1
- package/dist/gateway/src/services/platform-commands/agent-scope.js +26 -1
- package/dist/gateway/src/services/platform-commands/agent-scope.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/catalog.d.ts +17 -0
- package/dist/gateway/src/services/platform-commands/catalog.js +36 -0
- package/dist/gateway/src/services/platform-commands/catalog.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/session-commands.d.ts +1 -0
- package/dist/gateway/src/services/platform-commands/session-commands.js +56 -15
- package/dist/gateway/src/services/platform-commands/session-commands.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/tool-commands.js +1 -1
- package/dist/gateway/src/services/platform-commands/tool-commands.js.map +1 -1
- package/dist/gateway/src/services/session-launch-plan.d.ts +2 -0
- package/dist/gateway/src/services/session-launch-plan.js +2 -1
- package/dist/gateway/src/services/session-launch-plan.js.map +1 -1
- package/dist/gateway/src/services/session-native-id.d.ts +17 -0
- package/dist/gateway/src/services/session-native-id.js +245 -0
- package/dist/gateway/src/services/session-native-id.js.map +1 -0
- package/dist/web/standalone/node_modules/.pnpm/node_modules/react/package.json +3 -3
- package/dist/web/standalone/node_modules/.pnpm/react@19.3.1/node_modules/react/package.json +51 -0
- 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/prerender-manifest.json +3 -3
- package/dist/web/standalone/packages/web/.next/required-server-files.json +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page/react-loadable-manifest.json +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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/goals/[id]/page/react-loadable-manifest.json +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/goals/[id]/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/goals/[id]/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/goals/page/react-loadable-manifest.json +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/goals/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/goals/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page/react-loadable-manifest.json +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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/page.js.nft.json +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 +15 -14
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +15 -14
- 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 +27 -26
- 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 +27 -26
- 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 +27 -26
- 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 +27 -26
- 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 +27 -26
- 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 +27 -26
- 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 +27 -26
- 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 +27 -26
- 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/goals.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot/goals.rsc +27 -26
- package/dist/web/standalone/packages/web/.next/server/app/copilot/goals.segments/!KGRhc2hib2FyZCk/copilot/goals/__PAGE__.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/goals.segments/!KGRhc2hib2FyZCk/copilot/goals.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/goals.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/goals.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/goals.segments/_full.segment.rsc +27 -26
- package/dist/web/standalone/packages/web/.next/server/app/copilot/goals.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot/goals.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot/goals.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 +27 -26
- 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 +27 -26
- 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 +30 -29
- 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 +30 -29
- 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 +17 -16
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_full.segment.rsc +17 -16
- 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 +30 -29
- 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 +30 -29
- 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 +17 -16
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/_full.segment.rsc +17 -16
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +17 -16
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/_full.segment.rsc +17 -16
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +27 -26
- 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 +27 -26
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +30 -29
- 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 +27 -26
- 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 +27 -26
- 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]__046101y._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__056uejg._.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]__0i66h5c._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__13m6tkr._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_00etwal._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09j0_0n._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/{_0v6nk4o._.js → _0_.c62~._.js} +2 -2
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0bdcc_8._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0espgv7._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0ge8gs.._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0h0k4j8._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0jpdxve._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/{_02fwc~2._.js → _0mx_s-8._.js} +2 -2
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0nikb1g._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0nop9ss._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0o8v7lt._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0q78tdj._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0qzjbgt._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0rxkq.x._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0t69a7l._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0ta1o79._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0wldtd9._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~nuqc8._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/{_0riiz2c._.js → _13k5h6x._.js} +2 -2
- 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_app_(dashboard)_page_tsx_04lc303._.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)_sessions_page_tsx_0phmhty._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_settings_page_tsx_05ku4-o._.js +2 -2
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_usage_page_tsx_018s0ua._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_copilot_CopilotExtensionsPage_tsx_0jl0nnn._.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/server/server-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/{0qtrolc551byl.js → 0.0fkprcall4t.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/01918nt5pq5k~.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/03j0z0av.n4h3.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/03om-_qq2eblm.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/03y2kqvzi4mv1.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{0pity85rfpx.w.js → 08j8-g2-fgwo9.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0968l5kesw2tr.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/096kq4-e.a8f_.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{089hp3zb_oiwp.js → 0ap2-r_pv6ko9.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/{05xzyo2pv16xp.js → 0i-fd9c0bd0vm.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/{0wpamrmc9wxo2.js → 0k8d9qhwjaqf3.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0kt59m4o~sunn.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0o733jzs0se9q.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{17fhead1.ufvh.js → 0qtjfh0golqy..js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/{0s9641tg~87n4.js → 0r933eug2f_zk.js} +2 -2
- package/dist/web/standalone/packages/web/.next/static/chunks/0rff3.owyv10z.css +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0tdzn7mwt0zhw.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0w.s0_aholi3p.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0wxna1.v9o2gz.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0y34f_v3w4ph8.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0yk0vnm0i9zyg.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0z_col8c1al~y.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{009hjlrrz8y_s.js → 0z~_1h84a_-h_.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/12j_mnod591tf.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/16ua86d7gax96.js +2 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{0s1a87y_ytadl.js → 16zq0~qxvc10a.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/{0l.hl-2q3c36t.js → 17xfygfyipt-d.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/1840mk~ei~7n2.js +3 -0
- package/dist/web/standalone/packages/web/server.js +1 -1
- package/package.json +1 -1
- package/dist/web/standalone/node_modules/.pnpm/node_modules/react/cjs/react-compiler-runtime.production.js +0 -16
- package/dist/web/standalone/node_modules/.pnpm/node_modules/react/cjs/react-jsx-dev-runtime.production.js +0 -14
- package/dist/web/standalone/node_modules/.pnpm/node_modules/react/cjs/react-jsx-runtime.production.js +0 -34
- package/dist/web/standalone/node_modules/.pnpm/node_modules/react/cjs/react.development.js +0 -1284
- package/dist/web/standalone/node_modules/.pnpm/node_modules/react/cjs/react.production.js +0 -542
- package/dist/web/standalone/node_modules/.pnpm/node_modules/react/compiler-runtime.js +0 -14
- package/dist/web/standalone/node_modules/.pnpm/node_modules/react/index.js +0 -7
- package/dist/web/standalone/node_modules/.pnpm/node_modules/react/jsx-dev-runtime.js +0 -7
- package/dist/web/standalone/node_modules/.pnpm/node_modules/react/jsx-runtime.js +0 -7
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__02vzycq._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0hmsfzb._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0wpzuv_._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0.1cpr7._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0.i9u7y._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_01.uuv2._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0133d.w._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_02uuug0._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_j1kim._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0afxav3._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0gn-6wj._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0oi7719._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0ufpzfz._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0w1zsye._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_10nhet1._.js +0 -3
- package/dist/web/standalone/packages/web/.next/static/chunks/08g33a-bwubre.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0a8o3a.r~xn3a.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0bx8oll7.gyme.js +0 -3
- package/dist/web/standalone/packages/web/.next/static/chunks/0f1owcwamnmh~.css +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0m590.6q8xb6d.js +0 -2
- package/dist/web/standalone/packages/web/.next/static/chunks/0qtn6_74yc1a..js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0rdbedtpe-jl-.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0z65g~_mtc0up.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/10amnubm.fvva.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/126scff7vn.qg.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/12mqdsfzq-jvf.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/13ff-gcr1lkiz.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/13s1tj4zo-7gs.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/14quwp8g-m8-f.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/179-guin0~w1y.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/179f7kc5-~cu2.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/17mvm07ilpk0w.js +0 -1
- /package/dist/web/standalone/packages/web/.next/static/{9mWbLyAJi5Ncz-1bt3kiq → Fzx0KWlOUQOGHSSyhkhSo}/_buildManifest.js +0 -0
- /package/dist/web/standalone/packages/web/.next/static/{9mWbLyAJi5Ncz-1bt3kiq → Fzx0KWlOUQOGHSSyhkhSo}/_clientMiddlewareManifest.js +0 -0
- /package/dist/web/standalone/packages/web/.next/static/{9mWbLyAJi5Ncz-1bt3kiq → Fzx0KWlOUQOGHSSyhkhSo}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[45132,a=>{"use strict";var b=a.i(18394),c=a.i(38369),d=a.i(20080),e=a.i(15720),f=a.i(4837),g=a.i(39747),h=a.i(26248),i=a.i(44935),j=a.i(60420),k=a.i(90259),l=a.i(94327),m=a.i(37134),n=a.i(97494),o=a.i(62384),p=a.i(6023),q=a.i(70458),r=a.i(78725);a.i(65355);var s=a.i(39910),t=a.i(76260),u=a.i(56390),v=a.i(39465),w=a.i(82977),x=a.i(80395),y=a.i(60870),z=a.i(4730),A=a.i(94851),B=a.i(35133),C=a.i(79914),D=a.i(89738),E=a.i(13662);function F({status:a}){let c=(0,D.normalizeSessionStatus)(a);return(0,b.jsx)("span",{"aria-hidden":!0,className:(0,v.cn)("size-2 shrink-0 rounded-full","running"===c?"motion-safe:animate-pulse bg-success":"error"===c?"bg-destructive":"lost"===c?"bg-warning":"bg-muted-foreground/40")})}function G({status:a}){let{t:c}=(0,C.useLanguage)(),d=(0,D.normalizeSessionStatus)(a);return(0,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:c("running"===d?"sessions.running":"error"===d?"sessions.error":"lost"===d?"sessions.lost":"sessions.stopped")})}var H=a.i(80658);function I({session:a,tasks:c,lastPrompt:d,highlight:e,now:f,actionPending:g,onOpen:h,onStart:i,onStop:j,onDelete:k}){let{t:l,language:n}=(0,C.useLanguage)(),o=(0,D.normalizeSessionStatus)(a.status),p=(0,H.pickSessionTitle)(a,d),q=null===f?null:(0,H.formatSessionRelativeTime)(a,f,n),r=c.slice(0,2),s=c.length-r.length;return(0,b.jsxs)("div",{role:"link",tabIndex:0,"data-session-id":a.id,onClick:()=>h(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),h(a))},className:(0,v.cn)("group relative cursor-pointer rounded-lg border border-border bg-card p-3","transition-[border-color,box-shadow,transform] duration-200 ease-out","hover:border-border/80 hover:shadow-md motion-safe:hover:-translate-y-px","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",e&&"forgebadger-session-card-new"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(F,{status:a.status}),a.aiTool?(0,b.jsx)(B.CliBrandChip,{aiTool:a.aiTool}):null,(0,b.jsx)(G,{status:a.status}),(0,b.jsx)("div",{className:"min-w-0 flex-1"}),(0,b.jsx)("div",{className:(0,v.cn)("flex items-center transition-opacity duration-150","opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100"),onClick:a=>a.stopPropagation(),children:(0,b.jsxs)(A.DropdownMenu,{children:[(0,b.jsx)(A.DropdownMenuTrigger,{"aria-label":`${l("common.actions")} \xb7 ${p.title}`,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:(0,b.jsx)(w.MoreHorizontal,{className:"size-4"})}),(0,b.jsxs)(A.DropdownMenuContent,{align:"end",children:["running"===o?(0,b.jsxs)(A.DropdownMenuItem,{disabled:g,onSelect:()=>j(a),children:[(0,b.jsx)(y.Square,{className:"size-3.5"}),l("common.stop")]}):(0,b.jsxs)(A.DropdownMenuItem,{disabled:g,onSelect:()=>i(a),children:[(0,b.jsx)(x.RotateCcw,{className:"size-3.5"}),l("common.start")]}),(0,b.jsxs)(A.DropdownMenuItem,{disabled:g,className:"text-destructive focus:text-destructive",onSelect:()=>k(a),children:[(0,b.jsx)(m.Trash2,{className:"size-3.5"}),l("common.delete")]})]})]})})]}),(0,b.jsx)("div",{className:(0,v.cn)("mt-2 text-sm font-medium leading-snug tracking-tight",p.fromPrompt?"line-clamp-2 break-words":"truncate"),title:p.title,children:p.title}),p.showNoInputHint?(0,b.jsx)("p",{className:"mt-0.5 text-xs italic text-muted-foreground",children:l("sessions.noInputRecord")}):null,c.length>0?(0,b.jsxs)("div",{className:"mt-2 space-y-1 border-t border-border/70 pt-2",children:[r.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md px-1 py-0.5",children:[(0,b.jsx)(z.Badge,{variant:(0,E.statusBadgeVariant)(a.status),className:(0,v.cn)("shrink-0 px-1.5 text-[10px]",(0,E.statusBadgeClassName)(a.status)),children:(0,E.statusLabel)(a.status,l)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",title:a.title,children:a.title})]},a.id)),s>0?(0,b.jsx)("p",{className:"px-1 text-xs text-muted-foreground",children:l("sessions.moreTasks").replace("{count}",String(s))}):null]}):null,(0,b.jsx)("div",{className:"mt-2 flex items-center justify-between gap-2",children:(0,b.jsx)("span",{className:"truncate text-xs tabular-nums text-muted-foreground",children:null===f?"":q??l("sessions.noActivity")})})]})}var J=a.i(6145),K=a.i(45783);function L({column:a,color:c,width:d,onNewSessionFor:e,onOpenProject:f,onResizeStart:g,children:h}){let{t:i}=(0,C.useLanguage)(),j=!a.unlinked,{attributes:l,listeners:m,setNodeRef:o,transform:p,isDragging:q}=(0,r.useDraggable)({id:a.key,disabled:!j}),{setNodeRef:s}=(0,r.useDroppable)({id:a.key,disabled:!j});return(0,b.jsxs)("section",{ref:a=>{o(a),s(a)},"aria-label":a.projectName,className:(0,v.cn)("forgebadger-board-column relative flex shrink-0 flex-col self-start",q?"z-20 opacity-80":""),style:{width:d,transform:p?`translate3d(${p.x}px, ${p.y}px, 0)`:void 0},children:[(0,b.jsxs)("div",{"data-board-entrance":!0,className:"flex flex-col gap-2",children:[(0,b.jsxs)("header",{className:"sticky top-0 z-10 flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2.5 shadow-xs",children:[j?(0,b.jsx)("button",{type:"button",...l,...m,"aria-label":`${i("sessions.dragColumn")} \xb7 ${a.projectName}`,className:"flex size-6 shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground/60 transition-colors hover:bg-muted hover:text-foreground active:cursor-grabbing",children:(0,b.jsx)(K.GripVertical,{className:"size-4"})}):null,(0,b.jsx)("span",{"aria-hidden":!0,className:(0,v.cn)("size-2 shrink-0 rounded-full",c?"":"bg-muted-foreground/40"),style:c?{backgroundColor:c}:void 0}),(0,b.jsx)("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:(0,H.formatColumnStats)(i("sessions.columnStats"),a.runningCount,a.totalCount)}),j&&a.projectId?(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",className:"size-7","aria-label":`${i("projects.newSession")} \xb7 ${a.projectName}`,onClick:()=>e(a.projectId??""),children:(0,b.jsx)(k.Plus,{className:"size-4"})}),(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",className:"size-7","aria-label":`${i("sessions.openProject")} \xb7 ${a.projectName}`,onClick:()=>f(a.projectId??""),children:(0,b.jsx)(J.ArrowUpRight,{className:"size-4"})})]}):null]}),(0,b.jsx)("div",{className:"flex flex-col gap-2 rounded-xl bg-muted/20 p-2",children:0===a.sessions.length?(0,b.jsx)("div",{className:(0,v.cn)("rounded-lg border border-dashed border-border/60 py-8 text-center","text-xs text-muted-foreground"),children:i("sessions.columnEmpty")}):h})]}),(0,b.jsx)("div",{role:"separator","aria-label":i("sessions.resizeColumn"),"aria-orientation":"vertical",onPointerDown:g,className:"absolute inset-y-3 right-[-5px] z-10 w-2 cursor-col-resize touch-none rounded-full transition-colors hover:bg-brand/30"})]})}let M="forgebadger.sessionBoard.width.v1",N="forgebadger.sessionBoard.columnOrder.v1",O="forgebadger.sessionBoard.view.v1";function P(a){return Number.isFinite(a)?Math.min(420,Math.max(260,Math.round(a))):300}function Q(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a)"string"!=typeof d||0===d.length||b.has(d)||(b.add(d),c.push(d));return c}function R({columns:a,sessionTasks:d,prompts:f,now:g,actionPending:h,columnWidth:i,onColumnWidthChange:j,onColumnOrderChange:k,onOpenSession:l,onStartSession:m,onStopSession:n,onDeleteSession:o}){let p=(0,e.useRouter)(),[q,v]=(0,c.useState)(null),w=(0,c.useRef)(null),[x,y]=(0,c.useState)({left:!1,right:!1}),z=(0,r.useSensors)((0,r.useSensor)(r.PointerSensor,{activationConstraint:{distance:8}}),(0,r.useSensor)(r.KeyboardSensor)),A=q??i;(0,t.useGSAP)(()=>{let a=w.current;if(!a||window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches)return;let b=Array.from(a.querySelectorAll(".forgebadger-board-column"));if(0===b.length)return;let c=s.gsap.timeline({defaults:{ease:"power2.out"}});b.forEach((a,b)=>{let d=a.querySelector("[data-board-entrance]");if(!d)return;let e=.07*b;c.fromTo(d,{autoAlpha:0,y:10},{autoAlpha:1,y:0,duration:.3,clearProps:"transform,opacity,visibility"},e);let f=Array.from(d.querySelectorAll("[data-session-id]")).slice(0,4);f.length>0&&c.fromTo(f,{autoAlpha:0,y:6},{autoAlpha:1,y:0,duration:.22,stagger:.03,clearProps:"transform,opacity,visibility"},e+.06)})},{scope:w}),(0,c.useEffect)(()=>{let a=w.current;if(!a)return;let b=()=>{let b=a.scrollWidth-a.clientWidth;y({left:a.scrollLeft>1,right:a.scrollLeft<b-1})};b(),a.addEventListener("scroll",b,{passive:!0});let c=new ResizeObserver(b);for(let b of(c.observe(a),Array.from(a.children)))c.observe(b);return()=>{a.removeEventListener("scroll",b),c.disconnect()}},[a.length,A]);let B=function(a,b){if(a||b)return`linear-gradient(to right, ${a?"transparent, black 32px":"black"}, ${b?"black calc(100% - 32px), transparent":"black"})`}(x.left,x.right),C=a=>{if(0!==a.button)return;a.preventDefault(),a.stopPropagation();let b=a.clientX,c=a=>{v(P(A+a.clientX-b))};window.addEventListener("pointermove",c),window.addEventListener("pointerup",a=>{window.removeEventListener("pointermove",c);let d=P(A+a.clientX-b);v(null),j(d)},{once:!0})};return(0,b.jsx)(r.DndContext,{sensors:z,onDragEnd:b=>{let{active:c,over:d}=b;if(!d||c.id===d.id)return;let e=a.filter(a=>!a.unlinked).map(a=>a.key),f=function(a,b,c){let d=a.indexOf(b),e=a.indexOf(c);if(d<0||e<0||d===e)return[...a];let f=[...a];return f.splice(e,0,...f.splice(d,1)),f}(e,String(c.id),String(d.id));f.join("\n")!==e.join("\n")&&k(f)},children:(0,b.jsx)("div",{ref:w,className:"overflow-x-auto pb-2",style:B?{maskImage:B,WebkitMaskImage:B}:void 0,children:(0,b.jsx)("div",{className:"flex items-start gap-4",children:a.map((a,c)=>(0,b.jsx)(L,{column:a,index:c,color:a.unlinked?null:(0,u.sessionTabGroupColor)(a.projectName),width:A,onNewSessionFor:a=>p.push(`/projects/${a}?tab=sessions`),onOpenProject:a=>p.push(`/projects/${a}`),onResizeStart:C,children:a.sessions.map(a=>(0,b.jsx)(I,{session:a,tasks:d[a.id]??[],lastPrompt:f[a.id],highlight:null!==g&&(0,H.isRecentlyCreated)(a,g,12e4),now:g,actionPending:h,onOpen:l,onStart:m,onStop:n,onDelete:o},a.id))},a.key))})})})}function S(){return(0,b.jsx)("div",{className:"flex items-start gap-4 overflow-x-auto pb-2",children:[0,1,2].map(a=>(0,b.jsxs)("div",{className:"flex w-[300px] shrink-0 flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2.5 shadow-xs",children:[(0,b.jsx)("div",{className:"size-2 rounded-full bg-muted-foreground/30"}),(0,b.jsx)("div",{className:"h-4 w-24 animate-pulse rounded bg-muted"}),(0,b.jsx)("div",{className:"ml-auto h-3 w-16 animate-pulse rounded bg-muted"})]}),(0,b.jsx)("div",{className:"flex flex-col gap-2 rounded-xl bg-muted/20 p-2",children:[0,1,2].map(a=>(0,b.jsxs)("div",{className:(0,v.cn)("animate-pulse rounded-lg border border-border bg-card p-3"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"size-2 rounded-full bg-muted"}),(0,b.jsx)("div",{className:"h-4 w-16 rounded bg-muted"})]}),(0,b.jsx)("div",{className:"mt-2 h-4 w-4/5 rounded bg-muted"}),(0,b.jsx)("div",{className:"mt-1.5 h-3 w-2/5 rounded bg-muted"})]},a))})]},a))})}var T=a.i(2355);function U({columns:a,prompts:c,now:d,actionPending:e,onOpenSession:f,onStartSession:g,onStopSession:h,onDeleteSession:i}){let{t:j,language:k}=(0,C.useLanguage)();return(0,b.jsx)("div",{className:"space-y-4",children:a.map((a,l)=>{let m=a.unlinked?null:(0,u.sessionTabGroupColor)(a.projectName);return(0,b.jsxs)("section",{"aria-label":a.projectName,className:"forgebadger-animate-in overflow-hidden rounded-lg border border-border bg-card",style:{animationDelay:`${40*l}ms`},children:[(0,b.jsxs)("header",{className:"flex items-center gap-2 border-b border-border/70 bg-muted/30 px-3 py-2",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:(0,v.cn)("size-2 shrink-0 rounded-full",m?"":"bg-muted-foreground/40"),style:m?{backgroundColor:m}:void 0}),(0,b.jsx)("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:(0,H.formatColumnStats)(j("sessions.columnStats"),a.runningCount,a.totalCount)})]}),0===a.sessions.length?(0,b.jsx)("div",{className:"py-6 text-center text-xs text-muted-foreground",children:j("sessions.columnEmpty")}):(0,b.jsx)("div",{className:"divide-y divide-border/70",children:a.sessions.map(a=>(0,b.jsx)(V,{session:a,lastPrompt:c[a.id],now:d,actionPending:e,onOpen:f,onStart:g,onStop:h,onDelete:i,language:k},a.id))})]},a.key)})})}function V({session:a,lastPrompt:c,now:d,actionPending:e,language:f,onOpen:g,onStart:h,onStop:i,onDelete:j}){let{t:k}=(0,C.useLanguage)(),l="running"===(0,D.normalizeSessionStatus)(a.status),o=(0,H.pickSessionTitle)(a,c),p=null===d?null:(0,H.formatSessionRelativeTime)(a,d,f);return(0,b.jsxs)("div",{role:"link",tabIndex:0,"data-session-id":a.id,onClick:()=>g(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),g(a))},className:(0,v.cn)("flex cursor-pointer items-center gap-3 px-3 py-2 transition-colors","hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-inset"),children:[(0,b.jsx)(F,{status:a.status}),a.aiTool?(0,b.jsx)(B.CliBrandChip,{aiTool:a.aiTool}):null,(0,b.jsx)("span",{className:"hidden w-28 shrink-0 truncate text-xs text-muted-foreground md:block",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm font-medium",title:o.title,children:o.title}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:null===d?"":p??k("sessions.noActivity")}),l?(0,b.jsxs)(n.Button,{variant:"ghost",size:"sm",className:"hidden h-7 shrink-0 px-2 text-xs md:inline-flex",onClick:b=>{b.stopPropagation(),g(a)},children:[(0,b.jsx)(T.Play,{className:"size-3.5"}),k("common.connect")]}):null,(0,b.jsx)("div",{className:"shrink-0",onClick:a=>a.stopPropagation(),children:(0,b.jsxs)(A.DropdownMenu,{children:[(0,b.jsx)(A.DropdownMenuTrigger,{"aria-label":`${k("common.actions")} \xb7 ${o.title}`,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:(0,b.jsx)(w.MoreHorizontal,{className:"size-4"})}),(0,b.jsxs)(A.DropdownMenuContent,{align:"end",children:[l?(0,b.jsxs)(A.DropdownMenuItem,{disabled:e,onSelect:()=>i(a),children:[(0,b.jsx)(y.Square,{className:"size-3.5"}),k("common.stop")]}):(0,b.jsxs)(A.DropdownMenuItem,{disabled:e,onSelect:()=>h(a),children:[(0,b.jsx)(x.RotateCcw,{className:"size-3.5"}),k("common.start")]}),(0,b.jsxs)(A.DropdownMenuItem,{disabled:e,className:"text-destructive focus:text-destructive",onSelect:()=>j(a),children:[(0,b.jsx)(m.Trash2,{className:"size-3.5"}),k("common.delete")]})]})]})})]})}var W=a.i(35485);let X=(0,W.default)("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),Y=(0,W.default)("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);var Z=a.i(48459),$=a.i(55068),_=a.i(3030),aa=a.i(75196),ab=a.i(10917),ac=a.i(27291);function ad({query:a,onQueryChange:c,statusFilter:d,onStatusFilterChange:e,cliTools:f,selectedCliTools:g,onToggleCliTool:h,showEmptyProjects:i,onShowEmptyProjectsChange:j,hasCustomColumnOrder:k,onResetColumnOrder:l,view:m,onViewChange:o}){let{t:p}=(0,C.useLanguage)();return(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"flex flex-wrap items-center gap-3 p-3",children:[(0,b.jsxs)("div",{className:"relative min-w-[200px] flex-1",children:[(0,b.jsx)(Z.Search,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)($.Input,{value:a,onChange:a=>c(a.target.value),placeholder:p("sessions.searchPlaceholder"),"aria-label":p("sessions.searchPlaceholder"),className:"pl-9"})]}),(0,b.jsxs)(aa.Select,{value:d,onValueChange:e,children:[(0,b.jsx)(aa.SelectTrigger,{"aria-label":p("sessions.statusFilter"),children:(0,b.jsx)(aa.SelectValue,{})}),(0,b.jsxs)(aa.SelectContent,{children:[(0,b.jsx)(aa.SelectItem,{value:"all",children:p("sessions.statusAll")}),(0,b.jsx)(aa.SelectItem,{value:"running",children:p("sessions.running")}),(0,b.jsx)(aa.SelectItem,{value:"stopped",children:p("sessions.stopped")}),(0,b.jsx)(aa.SelectItem,{value:"error",children:p("sessions.error")}),(0,b.jsx)(aa.SelectItem,{value:"lost",children:p("sessions.lost")})]})]}),f.length>0?(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5","aria-label":p("sessions.cliFilter"),children:f.map(a=>{let c=g.has(a);return(0,b.jsx)("button",{type:"button","aria-pressed":c,onClick:()=>h(a),className:(0,v.cn)("rounded-full border px-2.5 py-1 text-xs font-medium transition-colors",c?"border-brand/40 bg-brand/10 text-brand":"border-border/70 text-muted-foreground hover:border-border hover:text-foreground"),children:(0,ac.getCliBrand)(a).label},a)})}):null,(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[k?(0,b.jsxs)(n.Button,{variant:"ghost",size:"sm",onClick:l,children:[(0,b.jsx)(x.RotateCcw,{className:"size-3.5"}),p("sessions.resetColumnOrder")]}):null,(0,b.jsxs)("div",{className:"hidden items-center gap-0.5 rounded-md border border-border p-0.5 md:flex",role:"group","aria-label":p("sessions.viewToggle"),children:[(0,b.jsx)("button",{type:"button","aria-pressed":"board"===m,"aria-label":p("sessions.viewBoard"),onClick:()=>o("board"),className:(0,v.cn)("flex size-7 items-center justify-center rounded transition-colors","board"===m?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(X,{className:"size-4"})}),(0,b.jsx)("button",{type:"button","aria-pressed":"list"===m,"aria-label":p("sessions.viewList"),onClick:()=>o("list"),className:(0,v.cn)("flex size-7 items-center justify-center rounded transition-colors","list"===m?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(Y,{className:"size-4"})})]}),(0,b.jsx)(_.Label,{htmlFor:"session-board-show-empty",className:"text-xs text-muted-foreground",children:p("sessions.showEmptyProjects")}),(0,b.jsx)(ab.Switch,{id:"session-board-show-empty",size:"sm",checked:i,onCheckedChange:j,"aria-label":p("sessions.showEmptyProjects")})]})]})})}function ae(a){try{return window.localStorage.getItem(a)}catch{return null}}var af=a.i(39042);a.i(13375);var ag=a.i(90409),ah=a.i(85564);a.s(["default",0,function(){let{t:a}=(0,C.useLanguage)(),r=(0,e.useRouter)(),s=(0,h.useQueryClient)(),[t,w]=(0,c.useState)(""),[x,y]=(0,c.useState)("all"),[z,A]=(0,c.useState)(new Set),[B,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(!1),[G,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)(null),{data:L,isLoading:T,isFetching:V,isError:W}=(0,g.useQuery)({queryKey:["sessions-board"],queryFn:af.getSessionBoard}),{data:X,isLoading:Y}=(0,g.useQuery)({queryKey:["dependencies"],queryFn:af.getDependencies}),Z=function(){let[a,b]=(0,c.useState)(300),[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)("board");(0,c.useEffect)(()=>{b(function(a){if("string"!=typeof a)return 300;let b=Number.parseInt(a,10);return P(Number.isNaN(b)?300:b)}(ae(M)));try{e(Q(JSON.parse(ae(N)??"[]")))}catch{e([])}g("list"===ae(O)?"list":"board")},[]);let h=(0,c.useCallback)(a=>{let c=P(a);b(c);try{window.localStorage.setItem(M,String(c))}catch{}},[]),i=(0,c.useCallback)(a=>{let b=Q(a);e(b);try{window.localStorage.setItem(N,JSON.stringify(b))}catch{}},[]);return{columnWidth:a,setColumnWidth:h,columnOrder:d,setColumnOrder:i,resetColumnOrder:(0,c.useCallback)(()=>{e([]);try{window.localStorage.removeItem(N)}catch{}},[]),view:f,setView:(0,c.useCallback)(a=>{g(a);try{window.localStorage.setItem(O,a)}catch{}},[])}}(),[$,_]=(0,c.useState)(!1);(0,c.useEffect)(()=>{if("function"!=typeof window.matchMedia)return;let a=window.matchMedia("(min-width: 768px)"),b=()=>_(a.matches);return b(),a.addEventListener("change",b),()=>a.removeEventListener("change",b)},[]);let aa=$?Z.view:"list",ab=()=>{s.invalidateQueries({queryKey:["sessions-board"]}),s.invalidateQueries({queryKey:["sessions"]})},ac=(0,f.useMutation)({mutationFn:a=>(0,af.startSession)(a),onSuccess:ab,onError:b=>{ah.toast.error(b instanceof Error&&b.message?`${a("sessions.startFailed")}: ${b.message}`:a("sessions.startFailed"))}}),ai=(0,f.useMutation)({mutationFn:a=>(0,af.stopSession)(a),onSuccess:b=>{b?.session?.warning&&ah.toast.warning(a("copilot.stopExternalWarning")),ab()},onError:b=>{ah.toast.error(b instanceof Error&&b.message?`${a("sessions.stopFailed")}: ${b.message}`:a("sessions.stopFailed"))}}),aj=(0,f.useMutation)({mutationFn:a=>(0,af.deleteSession)(a.id,{force:a.force}),onSuccess:()=>{K(null),ab()},onError:(b,c)=>{!c.force&&b instanceof af.GatewayApiError&&b.details?.code==="SESSION_RUNTIME_STOP_UNCONFIRMED"?K(c.id):ah.toast.error(b instanceof Error&&b.message?`${a("sessions.deleteFailed")}: ${b.message}`:a("sessions.deleteFailed"))}}),ak=(0,f.useMutation)({mutationFn:async a=>{let b=[];for(let c=0;c<a.length;c+=5)b.push(...await Promise.allSettled(a.slice(c,c+5).map(a=>(0,af.deleteSession)(a,{onlyStopped:!0,force:!0}))));return b},onSuccess:(b,c)=>{let d=b.filter(a=>"fulfilled"===a.status).length;b.forEach((a,b)=>{let d=c[b];"fulfilled"===a.status&&d&&(0,u.removeSessionTab)(d)}),d&&(0,u.notifySessionTabsChanged)();let e=b.length-d,f=a(e?"sessions.clearStoppedPartial":"sessions.clearStoppedSuccess").replace("{count}",String(d)).replace("{failed}",String(e));e?ah.toast.warning(f):ah.toast.success(f),I(!1),ab()}}),al=L?.board,am=al?.sessions??[],an=am.filter(a=>["idle","stopped","exited","completed","lost"].includes(a.status)),ao=al?.projects??[],ap=al?.sessionTasks??{},aq=!T&&ao.length>0,ar=X?.terminalRuntime,as=(0,ag.getTerminalRuntimeSetupGuidance)(ar?.mode,ar?.supported),at=!Y&&as.blocked;(0,c.useEffect)(()=>{if(!al||V||W)return;let a=Date.now(),b=(0,u.readSessionTabs)().filter(b=>"running"===b.status||a-b.updatedAt<3e4).map(a=>a.id);(0,u.pruneSessionTabs)(new Set([...am.map(a=>a.id),...b])),(0,u.notifySessionTabsChanged)()},[al,am,V,W]);let au=(0,c.useMemo)(()=>(0,H.collectSessionCliTools)(am),[am]),av=(0,c.useMemo)(()=>(0,H.filterBoardSessions)(am,{query:t,statusFilter:x,cliTools:z}),[am,t,x,z]),aw=t.trim().length>0,ax=(0,c.useMemo)(()=>(0,H.groupSessionsIntoColumns)(av,ao,{showEmptyProjects:B||aw}),[av,ao,B,aw]),ay=(0,c.useMemo)(()=>(function(a,b){if(0===b.length)return a;let c=new Map(a.map(a=>[a.key,a])),d=new Set,e=[];for(let a of b){let b=c.get(a);b&&!d.has(a)&&(d.add(a),e.push(b))}return[...e,...a.filter(a=>!a.unlinked&&!d.has(a.key)),...a.filter(a=>a.unlinked)]})(ax,Z.columnOrder),[ax,Z.columnOrder]),az=function(){let[a,b]=(0,c.useState)({});return(0,c.useEffect)(()=>{let a=()=>{b(function(){let a={};for(let b of(0,u.readSessionTabs)())b.lastPrompt&&(a[b.id]=b.lastPrompt);return a}())};return a(),window.addEventListener("forgebadger-session-tabs-changed",a),()=>{window.removeEventListener("forgebadger-session-tabs-changed",a)}},[]),a}(),aA=(0,c.useMemo)(()=>{let a={};for(let b of am){let c=(0,H.resolveSessionPrompt)(b,az);c&&(a[b.id]=c)}return a},[am,az]),[aB,aC]=(0,c.useState)(null);(0,c.useEffect)(()=>{aC(Date.now());let a=window.setInterval(()=>aC(Date.now()),6e4);return()=>window.clearInterval(a)},[]);let aD=ac.isPending||ai.isPending||aj.isPending||ak.isPending,aE={onOpenSession:a=>{(0,u.upsertSessionTab)((0,u.sessionToTab)(a)),(0,u.notifySessionTabsChanged)(),r.push(`/sessions/${a.id}`)},onStartSession:a=>ac.mutate(a.id),onStopSession:a=>ai.mutate(a.id),onDeleteSession:a=>aj.mutate({id:a.id})},aF=(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"flex flex-col items-center justify-center gap-3 py-10 text-center",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(l.TerminalSquare,{className:"size-5"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("sessions.noMatchesTitle")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("sessions.noMatchesDescription")})]})]})});return(0,b.jsxs)("div",{className:"mx-auto max-w-[1440px] space-y-4 p-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:a("sessions.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a("sessions.subtitle")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[am.length>0&&(0,b.jsxs)(n.Button,{size:"sm",variant:"outline",disabled:aD||V||W||0===an.length,onClick:()=>I(!0),children:[(0,b.jsx)(m.Trash2,{className:"size-4"}),a("sessions.clearStopped")]}),aq?(0,b.jsxs)(n.Button,{size:"sm",variant:"brand",onClick:()=>F(!0),children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("projects.newSession")]}):(0,b.jsx)(n.Button,{asChild:!0,size:"sm",variant:"brand",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]})]}),T?(0,b.jsx)(S,{}):0===am.length?(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"flex min-h-[50vh] flex-col items-center justify-center gap-4 py-12 text-center",children:[(0,b.jsx)("div",{className:(0,v.cn)("flex size-10 items-center justify-center rounded-md",at?"bg-destructive/10 text-destructive":"bg-brand/10 text-brand"),children:at?(0,b.jsx)(i.AlertTriangle,{className:"size-5"}):(0,b.jsx)(l.TerminalSquare,{className:"size-5"})}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:at?a(as.titleKey):a("sessions.emptyTitle")}),(0,b.jsx)("p",{className:"mx-auto max-w-2xl text-xs text-muted-foreground",children:at?a("sessions.runtimeBlockedDescription"):a("sessions.emptyReadyDescription")}),at&&(0,b.jsx)("p",{className:"mx-auto max-w-2xl text-xs text-muted-foreground",children:a(as.descriptionKey)})]}),at&&(0,b.jsx)("div",{className:"w-full max-w-3xl text-left",children:(0,b.jsx)(p.RuntimeSetupCommands,{guidance:as})}),(0,b.jsxs)("div",{className:"flex flex-wrap justify-center gap-2",children:[at&&(0,b.jsx)(n.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsxs)(d.default,{href:"/settings",children:[(0,b.jsx)(i.AlertTriangle,{className:"size-4"}),a("sessions.openSettings")]})}),aq?(0,b.jsxs)(n.Button,{size:"sm",variant:"brand",onClick:()=>F(!0),children:[(0,b.jsx)(j.FolderOpen,{className:"size-4"}),a("sessions.createFromProject")]}):(0,b.jsx)(n.Button,{asChild:!0,size:"sm",variant:"brand",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]})]})}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(ad,{query:t,onQueryChange:w,statusFilter:x,onStatusFilterChange:y,cliTools:au,selectedCliTools:z,onToggleCliTool:a=>{A(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},showEmptyProjects:B,onShowEmptyProjectsChange:D,hasCustomColumnOrder:Z.columnOrder.length>0,onResetColumnOrder:Z.resetColumnOrder,view:aa,onViewChange:Z.setView}),"list"===aa?0===av.length?aF:(0,b.jsx)(U,{columns:ay,prompts:aA,now:aB,actionPending:aD,...aE}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:(0,v.cn)(0===av.length&&"hidden"),children:(0,b.jsx)(R,{columns:ay,sessionTasks:ap,prompts:aA,now:aB,actionPending:aD,columnWidth:Z.columnWidth,onColumnWidthChange:Z.setColumnWidth,onColumnOrderChange:Z.setColumnOrder,...aE})}),0===av.length?aF:null]})]}),(0,b.jsx)(o.Dialog,{open:E,onOpenChange:F,children:(0,b.jsxs)(o.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(o.DialogHeader,{children:[(0,b.jsx)(o.DialogTitle,{children:a("sessions.chooseProjectTitle")}),(0,b.jsx)(o.DialogDescription,{children:a("sessions.chooseProjectDescription")})]}),(0,b.jsxs)("div",{className:"grid gap-2",children:[ao.map(a=>(0,b.jsxs)(n.Button,{variant:"outline",className:"h-auto w-full min-w-0 justify-start gap-3 px-3 py-2.5",onClick:()=>{F(!1),r.push(`/projects/${a.id}?tab=sessions`)},children:[(0,b.jsx)(j.FolderOpen,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col items-start gap-0.5",children:[(0,b.jsx)("span",{className:"max-w-full truncate text-sm font-medium",children:a.name}),a.path&&(0,b.jsx)("span",{className:"max-w-full truncate font-mono text-xs text-muted-foreground",children:a.path})]})]},a.id)),T?(0,b.jsx)("p",{className:"py-6 text-center text-sm text-muted-foreground",children:a("sessions.loading")}):0===ao.length?(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4 py-6 text-center",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a("sessions.chooseProjectEmpty")}),(0,b.jsx)(n.Button,{asChild:!0,size:"sm",variant:"brand",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]}):null]})]})}),(0,b.jsx)(o.Dialog,{open:G,onOpenChange:a=>{ak.isPending||I(a)},children:(0,b.jsxs)(o.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(o.DialogHeader,{children:[(0,b.jsx)(o.DialogTitle,{children:a("sessions.clearStoppedTitle")}),(0,b.jsx)(o.DialogDescription,{children:a("sessions.clearStoppedDescription").replace("{count}",String(an.length))})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(n.Button,{variant:"outline",size:"sm",disabled:ak.isPending,onClick:()=>I(!1),children:a("sessions.forceDeleteCancel")}),(0,b.jsx)(n.Button,{variant:"destructive",size:"sm",disabled:ak.isPending||0===an.length,onClick:()=>ak.mutate(an.map(a=>a.id)),children:ak.isPending?a("sessions.clearingStopped"):a("sessions.clearStopped")})]})]})}),(0,b.jsx)(o.Dialog,{open:null!==J,onOpenChange:a=>{a||K(null)},children:(0,b.jsxs)(o.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(o.DialogHeader,{children:[(0,b.jsx)(o.DialogTitle,{children:a("sessions.forceDeleteTitle")}),(0,b.jsx)(o.DialogDescription,{children:a("sessions.forceDeleteDescription")})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(n.Button,{variant:"outline",size:"sm",onClick:()=>K(null),children:a("sessions.forceDeleteCancel")}),(0,b.jsx)(n.Button,{variant:"destructive",size:"sm",disabled:aj.isPending,onClick:()=>{J&&aj.mutate({id:J,force:!0})},children:a("sessions.forceDeleteConfirm")})]})]})})]})}],45132)}];
|
|
1
|
+
module.exports=[45132,a=>{"use strict";var b=a.i(18394),c=a.i(38369),d=a.i(20080),e=a.i(15720),f=a.i(4837),g=a.i(39747),h=a.i(26248),i=a.i(44935),j=a.i(60420),k=a.i(90259),l=a.i(94327),m=a.i(37134),n=a.i(97494),o=a.i(62384),p=a.i(6023),q=a.i(70458),r=a.i(78725);a.i(65355);var s=a.i(39910),t=a.i(76260),u=a.i(56390),v=a.i(39465),w=a.i(82977),x=a.i(80395),y=a.i(60870),z=a.i(4730),A=a.i(94851),B=a.i(35133),C=a.i(79914),D=a.i(89738),E=a.i(13662);function F({status:a}){let c=(0,D.normalizeSessionStatus)(a);return(0,b.jsx)("span",{"aria-hidden":!0,className:(0,v.cn)("size-2 shrink-0 rounded-full","running"===c?"motion-safe:animate-pulse bg-success":"error"===c?"bg-destructive":"lost"===c?"bg-warning":"bg-muted-foreground/40")})}function G({status:a}){let{t:c}=(0,C.useLanguage)(),d=(0,D.normalizeSessionStatus)(a);return(0,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:c("running"===d?"sessions.running":"error"===d?"sessions.error":"lost"===d?"sessions.lost":"sessions.stopped")})}var H=a.i(80658);function I({session:a,tasks:c,lastPrompt:d,highlight:e,now:f,actionPending:g,onOpen:h,onStart:i,onStop:j,onDelete:k}){let{t:l,language:n}=(0,C.useLanguage)(),o="running"===(0,D.normalizeSessionStatus)(a.status),p=(0,H.pickSessionTitle)(a,d),q=null===f?null:(0,H.formatSessionRelativeTime)(a,f,n),r=c.slice(0,2),s=c.length-r.length;return(0,b.jsxs)("div",{role:"link",tabIndex:0,"data-session-id":a.id,onClick:()=>h(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),h(a))},className:(0,v.cn)("group relative cursor-pointer rounded-lg border border-border bg-card p-3","transition-[border-color,box-shadow,transform] duration-200 ease-out","hover:border-border/80 hover:shadow-md motion-safe:hover:-translate-y-px","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",e&&"forgebadger-session-card-new"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(F,{status:a.status}),a.aiTool?(0,b.jsx)(B.CliBrandChip,{aiTool:a.aiTool}):null,(0,b.jsx)(G,{status:a.status}),!o&&a.nativeSessionId?(0,b.jsx)("span",{className:"shrink-0 rounded-full border border-border/70 px-1.5 py-0.5 text-[10px] text-muted-foreground",title:`${l("sessions.nativeSessionBadge")}: ${a.nativeSessionId}`,children:(0,H.shortNativeSessionId)(a.nativeSessionId)}):null,(0,b.jsx)("div",{className:"min-w-0 flex-1"}),(0,b.jsx)("div",{className:(0,v.cn)("flex items-center transition-opacity duration-150","opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100"),onClick:a=>a.stopPropagation(),children:(0,b.jsxs)(A.DropdownMenu,{children:[(0,b.jsx)(A.DropdownMenuTrigger,{"aria-label":`${l("common.actions")} \xb7 ${p.title}`,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:(0,b.jsx)(w.MoreHorizontal,{className:"size-4"})}),(0,b.jsxs)(A.DropdownMenuContent,{align:"end",children:[o?(0,b.jsxs)(A.DropdownMenuItem,{disabled:g,onSelect:()=>j(a),children:[(0,b.jsx)(y.Square,{className:"size-3.5"}),l("common.stop")]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(A.DropdownMenuItem,{disabled:g,onSelect:()=>i(a),children:[(0,b.jsx)(x.RotateCcw,{className:"size-3.5"}),l("common.start")]}),a.nativeSessionId?(0,b.jsxs)(A.DropdownMenuItem,{disabled:g,onSelect:()=>i(a,{fresh:!0}),children:[(0,b.jsx)(x.RotateCcw,{className:"size-3.5"}),l("sessions.startFresh")]}):null]}),(0,b.jsxs)(A.DropdownMenuItem,{disabled:g,className:"text-destructive focus:text-destructive",onSelect:()=>k(a),children:[(0,b.jsx)(m.Trash2,{className:"size-3.5"}),l("common.delete")]})]})]})})]}),(0,b.jsx)("div",{className:(0,v.cn)("mt-2 text-sm font-medium leading-snug tracking-tight",p.fromPrompt?"line-clamp-2 break-words":"truncate"),title:p.title,children:p.title}),p.showNoInputHint?(0,b.jsx)("p",{className:"mt-0.5 text-xs italic text-muted-foreground",children:l("sessions.noInputRecord")}):null,c.length>0?(0,b.jsxs)("div",{className:"mt-2 space-y-1 border-t border-border/70 pt-2",children:[r.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md px-1 py-0.5",children:[(0,b.jsx)(z.Badge,{variant:(0,E.statusBadgeVariant)(a.status),className:(0,v.cn)("shrink-0 px-1.5 text-[10px]",(0,E.statusBadgeClassName)(a.status)),children:(0,E.statusLabel)(a.status,l)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",title:a.title,children:a.title})]},a.id)),s>0?(0,b.jsx)("p",{className:"px-1 text-xs text-muted-foreground",children:l("sessions.moreTasks").replace("{count}",String(s))}):null]}):null,(0,b.jsx)("div",{className:"mt-2 flex items-center justify-between gap-2",children:(0,b.jsx)("span",{className:"truncate text-xs tabular-nums text-muted-foreground",children:null===f?"":q??l("sessions.noActivity")})})]})}var J=a.i(6145),K=a.i(45783);function L({column:a,color:c,width:d,onNewSessionFor:e,onOpenProject:f,onResizeStart:g,children:h}){let{t:i}=(0,C.useLanguage)(),j=!a.unlinked,{attributes:l,listeners:m,setNodeRef:o,transform:p,isDragging:q}=(0,r.useDraggable)({id:a.key,disabled:!j}),{setNodeRef:s}=(0,r.useDroppable)({id:a.key,disabled:!j});return(0,b.jsxs)("section",{ref:a=>{o(a),s(a)},"aria-label":a.projectName,className:(0,v.cn)("forgebadger-board-column relative flex shrink-0 flex-col self-start",q?"z-20 opacity-80":""),style:{width:d,transform:p?`translate3d(${p.x}px, ${p.y}px, 0)`:void 0},children:[(0,b.jsxs)("div",{"data-board-entrance":!0,className:"flex flex-col gap-2",children:[(0,b.jsxs)("header",{className:"sticky top-0 z-10 flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2.5 shadow-xs",children:[j?(0,b.jsx)("button",{type:"button",...l,...m,"aria-label":`${i("sessions.dragColumn")} \xb7 ${a.projectName}`,className:"flex size-6 shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground/60 transition-colors hover:bg-muted hover:text-foreground active:cursor-grabbing",children:(0,b.jsx)(K.GripVertical,{className:"size-4"})}):null,(0,b.jsx)("span",{"aria-hidden":!0,className:(0,v.cn)("size-2 shrink-0 rounded-full",c?"":"bg-muted-foreground/40"),style:c?{backgroundColor:c}:void 0}),(0,b.jsx)("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:(0,H.formatColumnStats)(i("sessions.columnStats"),a.runningCount,a.totalCount)}),j&&a.projectId?(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",className:"size-7","aria-label":`${i("projects.newSession")} \xb7 ${a.projectName}`,onClick:()=>e(a.projectId??""),children:(0,b.jsx)(k.Plus,{className:"size-4"})}),(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",className:"size-7","aria-label":`${i("sessions.openProject")} \xb7 ${a.projectName}`,onClick:()=>f(a.projectId??""),children:(0,b.jsx)(J.ArrowUpRight,{className:"size-4"})})]}):null]}),(0,b.jsx)("div",{className:"flex flex-col gap-2 rounded-xl bg-muted/20 p-2",children:0===a.sessions.length?(0,b.jsx)("div",{className:(0,v.cn)("rounded-lg border border-dashed border-border/60 py-8 text-center","text-xs text-muted-foreground"),children:i("sessions.columnEmpty")}):h})]}),(0,b.jsx)("div",{role:"separator","aria-label":i("sessions.resizeColumn"),"aria-orientation":"vertical",onPointerDown:g,className:"absolute inset-y-3 right-[-5px] z-10 w-2 cursor-col-resize touch-none rounded-full transition-colors hover:bg-brand/30"})]})}let M="forgebadger.sessionBoard.width.v1",N="forgebadger.sessionBoard.columnOrder.v1",O="forgebadger.sessionBoard.view.v1";function P(a){return Number.isFinite(a)?Math.min(420,Math.max(260,Math.round(a))):300}function Q(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a)"string"!=typeof d||0===d.length||b.has(d)||(b.add(d),c.push(d));return c}function R({columns:a,sessionTasks:d,prompts:f,now:g,actionPending:h,columnWidth:i,onColumnWidthChange:j,onColumnOrderChange:k,onOpenSession:l,onStartSession:m,onStopSession:n,onDeleteSession:o}){let p=(0,e.useRouter)(),[q,v]=(0,c.useState)(null),w=(0,c.useRef)(null),[x,y]=(0,c.useState)({left:!1,right:!1}),z=(0,r.useSensors)((0,r.useSensor)(r.PointerSensor,{activationConstraint:{distance:8}}),(0,r.useSensor)(r.KeyboardSensor)),A=q??i;(0,t.useGSAP)(()=>{let a=w.current;if(!a||window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches)return;let b=Array.from(a.querySelectorAll(".forgebadger-board-column"));if(0===b.length)return;let c=s.gsap.timeline({defaults:{ease:"power2.out"}});b.forEach((a,b)=>{let d=a.querySelector("[data-board-entrance]");if(!d)return;let e=.07*b;c.fromTo(d,{autoAlpha:0,y:10},{autoAlpha:1,y:0,duration:.3,clearProps:"transform,opacity,visibility"},e);let f=Array.from(d.querySelectorAll("[data-session-id]")).slice(0,4);f.length>0&&c.fromTo(f,{autoAlpha:0,y:6},{autoAlpha:1,y:0,duration:.22,stagger:.03,clearProps:"transform,opacity,visibility"},e+.06)})},{scope:w}),(0,c.useEffect)(()=>{let a=w.current;if(!a)return;let b=()=>{let b=a.scrollWidth-a.clientWidth;y({left:a.scrollLeft>1,right:a.scrollLeft<b-1})};b(),a.addEventListener("scroll",b,{passive:!0});let c=new ResizeObserver(b);for(let b of(c.observe(a),Array.from(a.children)))c.observe(b);return()=>{a.removeEventListener("scroll",b),c.disconnect()}},[a.length,A]);let B=function(a,b){if(a||b)return`linear-gradient(to right, ${a?"transparent, black 32px":"black"}, ${b?"black calc(100% - 32px), transparent":"black"})`}(x.left,x.right),C=a=>{if(0!==a.button)return;a.preventDefault(),a.stopPropagation();let b=a.clientX,c=a=>{v(P(A+a.clientX-b))};window.addEventListener("pointermove",c),window.addEventListener("pointerup",a=>{window.removeEventListener("pointermove",c);let d=P(A+a.clientX-b);v(null),j(d)},{once:!0})};return(0,b.jsx)(r.DndContext,{sensors:z,onDragEnd:b=>{let{active:c,over:d}=b;if(!d||c.id===d.id)return;let e=a.filter(a=>!a.unlinked).map(a=>a.key),f=function(a,b,c){let d=a.indexOf(b),e=a.indexOf(c);if(d<0||e<0||d===e)return[...a];let f=[...a];return f.splice(e,0,...f.splice(d,1)),f}(e,String(c.id),String(d.id));f.join("\n")!==e.join("\n")&&k(f)},children:(0,b.jsx)("div",{ref:w,className:"overflow-x-auto pb-2",style:B?{maskImage:B,WebkitMaskImage:B}:void 0,children:(0,b.jsx)("div",{className:"flex items-start gap-4",children:a.map((a,c)=>(0,b.jsx)(L,{column:a,index:c,color:a.unlinked?null:(0,u.sessionTabGroupColor)(a.projectName),width:A,onNewSessionFor:a=>p.push(`/projects/${a}?tab=sessions`),onOpenProject:a=>p.push(`/projects/${a}`),onResizeStart:C,children:a.sessions.map(a=>(0,b.jsx)(I,{session:a,tasks:d[a.id]??[],lastPrompt:f[a.id],highlight:null!==g&&(0,H.isRecentlyCreated)(a,g,12e4),now:g,actionPending:h,onOpen:l,onStart:m,onStop:n,onDelete:o},a.id))},a.key))})})})}function S(){return(0,b.jsx)("div",{className:"flex items-start gap-4 overflow-x-auto pb-2",children:[0,1,2].map(a=>(0,b.jsxs)("div",{className:"flex w-[300px] shrink-0 flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2.5 shadow-xs",children:[(0,b.jsx)("div",{className:"size-2 rounded-full bg-muted-foreground/30"}),(0,b.jsx)("div",{className:"h-4 w-24 animate-pulse rounded bg-muted"}),(0,b.jsx)("div",{className:"ml-auto h-3 w-16 animate-pulse rounded bg-muted"})]}),(0,b.jsx)("div",{className:"flex flex-col gap-2 rounded-xl bg-muted/20 p-2",children:[0,1,2].map(a=>(0,b.jsxs)("div",{className:(0,v.cn)("animate-pulse rounded-lg border border-border bg-card p-3"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"size-2 rounded-full bg-muted"}),(0,b.jsx)("div",{className:"h-4 w-16 rounded bg-muted"})]}),(0,b.jsx)("div",{className:"mt-2 h-4 w-4/5 rounded bg-muted"}),(0,b.jsx)("div",{className:"mt-1.5 h-3 w-2/5 rounded bg-muted"})]},a))})]},a))})}var T=a.i(2355);function U({columns:a,prompts:c,now:d,actionPending:e,onOpenSession:f,onStartSession:g,onStopSession:h,onDeleteSession:i}){let{t:j,language:k}=(0,C.useLanguage)();return(0,b.jsx)("div",{className:"space-y-4",children:a.map((a,l)=>{let m=a.unlinked?null:(0,u.sessionTabGroupColor)(a.projectName);return(0,b.jsxs)("section",{"aria-label":a.projectName,className:"forgebadger-animate-in overflow-hidden rounded-lg border border-border bg-card",style:{animationDelay:`${40*l}ms`},children:[(0,b.jsxs)("header",{className:"flex items-center gap-2 border-b border-border/70 bg-muted/30 px-3 py-2",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:(0,v.cn)("size-2 shrink-0 rounded-full",m?"":"bg-muted-foreground/40"),style:m?{backgroundColor:m}:void 0}),(0,b.jsx)("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:(0,H.formatColumnStats)(j("sessions.columnStats"),a.runningCount,a.totalCount)})]}),0===a.sessions.length?(0,b.jsx)("div",{className:"py-6 text-center text-xs text-muted-foreground",children:j("sessions.columnEmpty")}):(0,b.jsx)("div",{className:"divide-y divide-border/70",children:a.sessions.map(a=>(0,b.jsx)(V,{session:a,lastPrompt:c[a.id],now:d,actionPending:e,onOpen:f,onStart:g,onStop:h,onDelete:i,language:k},a.id))})]},a.key)})})}function V({session:a,lastPrompt:c,now:d,actionPending:e,language:f,onOpen:g,onStart:h,onStop:i,onDelete:j}){let{t:k}=(0,C.useLanguage)(),l="running"===(0,D.normalizeSessionStatus)(a.status),o=(0,H.pickSessionTitle)(a,c),p=null===d?null:(0,H.formatSessionRelativeTime)(a,d,f);return(0,b.jsxs)("div",{role:"link",tabIndex:0,"data-session-id":a.id,onClick:()=>g(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),g(a))},className:(0,v.cn)("flex cursor-pointer items-center gap-3 px-3 py-2 transition-colors","hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-inset"),children:[(0,b.jsx)(F,{status:a.status}),a.aiTool?(0,b.jsx)(B.CliBrandChip,{aiTool:a.aiTool}):null,!l&&a.nativeSessionId?(0,b.jsx)("span",{className:"shrink-0 rounded-full border border-border/70 px-1.5 py-0.5 text-[10px] text-muted-foreground",title:`${k("sessions.nativeSessionBadge")}: ${a.nativeSessionId}`,children:(0,H.shortNativeSessionId)(a.nativeSessionId)}):null,(0,b.jsx)("span",{className:"hidden w-28 shrink-0 truncate text-xs text-muted-foreground md:block",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm font-medium",title:o.title,children:o.title}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:null===d?"":p??k("sessions.noActivity")}),l?(0,b.jsxs)(n.Button,{variant:"ghost",size:"sm",className:"hidden h-7 shrink-0 px-2 text-xs md:inline-flex",onClick:b=>{b.stopPropagation(),g(a)},children:[(0,b.jsx)(T.Play,{className:"size-3.5"}),k("common.connect")]}):null,(0,b.jsx)("div",{className:"shrink-0",onClick:a=>a.stopPropagation(),children:(0,b.jsxs)(A.DropdownMenu,{children:[(0,b.jsx)(A.DropdownMenuTrigger,{"aria-label":`${k("common.actions")} \xb7 ${o.title}`,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:(0,b.jsx)(w.MoreHorizontal,{className:"size-4"})}),(0,b.jsxs)(A.DropdownMenuContent,{align:"end",children:[l?(0,b.jsxs)(A.DropdownMenuItem,{disabled:e,onSelect:()=>i(a),children:[(0,b.jsx)(y.Square,{className:"size-3.5"}),k("common.stop")]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(A.DropdownMenuItem,{disabled:e,onSelect:()=>h(a),children:[(0,b.jsx)(x.RotateCcw,{className:"size-3.5"}),k("common.start")]}),a.nativeSessionId?(0,b.jsxs)(A.DropdownMenuItem,{disabled:e,onSelect:()=>h(a,{fresh:!0}),children:[(0,b.jsx)(x.RotateCcw,{className:"size-3.5"}),k("sessions.startFresh")]}):null]}),(0,b.jsxs)(A.DropdownMenuItem,{disabled:e,className:"text-destructive focus:text-destructive",onSelect:()=>j(a),children:[(0,b.jsx)(m.Trash2,{className:"size-3.5"}),k("common.delete")]})]})]})})]})}var W=a.i(35485);let X=(0,W.default)("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),Y=(0,W.default)("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);var Z=a.i(48459),$=a.i(55068),_=a.i(3030),aa=a.i(75196),ab=a.i(10917),ac=a.i(27291);function ad({query:a,onQueryChange:c,statusFilter:d,onStatusFilterChange:e,cliTools:f,selectedCliTools:g,onToggleCliTool:h,showEmptyProjects:i,onShowEmptyProjectsChange:j,hasCustomColumnOrder:k,onResetColumnOrder:l,view:m,onViewChange:o}){let{t:p}=(0,C.useLanguage)();return(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"flex flex-wrap items-center gap-3 p-3",children:[(0,b.jsxs)("div",{className:"relative min-w-[200px] flex-1",children:[(0,b.jsx)(Z.Search,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)($.Input,{value:a,onChange:a=>c(a.target.value),placeholder:p("sessions.searchPlaceholder"),"aria-label":p("sessions.searchPlaceholder"),className:"pl-9"})]}),(0,b.jsxs)(aa.Select,{value:d,onValueChange:e,children:[(0,b.jsx)(aa.SelectTrigger,{"aria-label":p("sessions.statusFilter"),children:(0,b.jsx)(aa.SelectValue,{})}),(0,b.jsxs)(aa.SelectContent,{children:[(0,b.jsx)(aa.SelectItem,{value:"all",children:p("sessions.statusAll")}),(0,b.jsx)(aa.SelectItem,{value:"running",children:p("sessions.running")}),(0,b.jsx)(aa.SelectItem,{value:"stopped",children:p("sessions.stopped")}),(0,b.jsx)(aa.SelectItem,{value:"error",children:p("sessions.error")}),(0,b.jsx)(aa.SelectItem,{value:"lost",children:p("sessions.lost")})]})]}),f.length>0?(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5","aria-label":p("sessions.cliFilter"),children:f.map(a=>{let c=g.has(a);return(0,b.jsx)("button",{type:"button","aria-pressed":c,onClick:()=>h(a),className:(0,v.cn)("rounded-full border px-2.5 py-1 text-xs font-medium transition-colors",c?"border-brand/40 bg-brand/10 text-brand":"border-border/70 text-muted-foreground hover:border-border hover:text-foreground"),children:(0,ac.getCliBrand)(a).label},a)})}):null,(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[k?(0,b.jsxs)(n.Button,{variant:"ghost",size:"sm",onClick:l,children:[(0,b.jsx)(x.RotateCcw,{className:"size-3.5"}),p("sessions.resetColumnOrder")]}):null,(0,b.jsxs)("div",{className:"hidden items-center gap-0.5 rounded-md border border-border p-0.5 md:flex",role:"group","aria-label":p("sessions.viewToggle"),children:[(0,b.jsx)("button",{type:"button","aria-pressed":"board"===m,"aria-label":p("sessions.viewBoard"),onClick:()=>o("board"),className:(0,v.cn)("flex size-7 items-center justify-center rounded transition-colors","board"===m?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(X,{className:"size-4"})}),(0,b.jsx)("button",{type:"button","aria-pressed":"list"===m,"aria-label":p("sessions.viewList"),onClick:()=>o("list"),className:(0,v.cn)("flex size-7 items-center justify-center rounded transition-colors","list"===m?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(Y,{className:"size-4"})})]}),(0,b.jsx)(_.Label,{htmlFor:"session-board-show-empty",className:"text-xs text-muted-foreground",children:p("sessions.showEmptyProjects")}),(0,b.jsx)(ab.Switch,{id:"session-board-show-empty",size:"sm",checked:i,onCheckedChange:j,"aria-label":p("sessions.showEmptyProjects")})]})]})})}function ae(a){try{return window.localStorage.getItem(a)}catch{return null}}var af=a.i(39042);a.i(13375);var ag=a.i(90409),ah=a.i(85564);a.s(["default",0,function(){let{t:a}=(0,C.useLanguage)(),r=(0,e.useRouter)(),s=(0,h.useQueryClient)(),[t,w]=(0,c.useState)(""),[x,y]=(0,c.useState)("all"),[z,A]=(0,c.useState)(new Set),[B,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(!1),[G,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)(null),{data:L,isLoading:T,isFetching:V,isError:W}=(0,g.useQuery)({queryKey:["sessions-board"],queryFn:af.getSessionBoard}),{data:X,isLoading:Y}=(0,g.useQuery)({queryKey:["dependencies"],queryFn:af.getDependencies}),Z=function(){let[a,b]=(0,c.useState)(300),[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)("board");(0,c.useEffect)(()=>{b(function(a){if("string"!=typeof a)return 300;let b=Number.parseInt(a,10);return P(Number.isNaN(b)?300:b)}(ae(M)));try{e(Q(JSON.parse(ae(N)??"[]")))}catch{e([])}g("list"===ae(O)?"list":"board")},[]);let h=(0,c.useCallback)(a=>{let c=P(a);b(c);try{window.localStorage.setItem(M,String(c))}catch{}},[]),i=(0,c.useCallback)(a=>{let b=Q(a);e(b);try{window.localStorage.setItem(N,JSON.stringify(b))}catch{}},[]);return{columnWidth:a,setColumnWidth:h,columnOrder:d,setColumnOrder:i,resetColumnOrder:(0,c.useCallback)(()=>{e([]);try{window.localStorage.removeItem(N)}catch{}},[]),view:f,setView:(0,c.useCallback)(a=>{g(a);try{window.localStorage.setItem(O,a)}catch{}},[])}}(),[$,_]=(0,c.useState)(!1);(0,c.useEffect)(()=>{if("function"!=typeof window.matchMedia)return;let a=window.matchMedia("(min-width: 768px)"),b=()=>_(a.matches);return b(),a.addEventListener("change",b),()=>a.removeEventListener("change",b)},[]);let aa=$?Z.view:"list",ab=()=>{s.invalidateQueries({queryKey:["sessions-board"]}),s.invalidateQueries({queryKey:["sessions"]})},ac=(0,f.useMutation)({mutationFn:a=>(0,af.startSession)(a.id,{resume:!a.fresh}),onSuccess:ab,onError:b=>{ah.toast.error(b instanceof Error&&b.message?`${a("sessions.startFailed")}: ${b.message}`:a("sessions.startFailed"))}}),ai=(0,f.useMutation)({mutationFn:a=>(0,af.stopSession)(a),onSuccess:b=>{b?.session?.warning&&ah.toast.warning(a("copilot.stopExternalWarning")),ab()},onError:b=>{ah.toast.error(b instanceof Error&&b.message?`${a("sessions.stopFailed")}: ${b.message}`:a("sessions.stopFailed"))}}),aj=(0,f.useMutation)({mutationFn:a=>(0,af.deleteSession)(a.id,{force:a.force}),onSuccess:()=>{K(null),ab()},onError:(b,c)=>{!c.force&&b instanceof af.GatewayApiError&&b.details?.code==="SESSION_RUNTIME_STOP_UNCONFIRMED"?K(c.id):ah.toast.error(b instanceof Error&&b.message?`${a("sessions.deleteFailed")}: ${b.message}`:a("sessions.deleteFailed"))}}),ak=(0,f.useMutation)({mutationFn:async a=>{let b=[];for(let c=0;c<a.length;c+=5)b.push(...await Promise.allSettled(a.slice(c,c+5).map(a=>(0,af.deleteSession)(a,{onlyStopped:!0,force:!0}))));return b},onSuccess:(b,c)=>{let d=b.filter(a=>"fulfilled"===a.status).length;b.forEach((a,b)=>{let d=c[b];"fulfilled"===a.status&&d&&(0,u.removeSessionTab)(d)}),d&&(0,u.notifySessionTabsChanged)();let e=b.length-d,f=a(e?"sessions.clearStoppedPartial":"sessions.clearStoppedSuccess").replace("{count}",String(d)).replace("{failed}",String(e));e?ah.toast.warning(f):ah.toast.success(f),I(!1),ab()}}),al=L?.board,am=al?.sessions??[],an=am.filter(a=>["idle","stopped","exited","completed","lost"].includes(a.status)),ao=al?.projects??[],ap=al?.sessionTasks??{},aq=!T&&ao.length>0,ar=X?.terminalRuntime,as=(0,ag.getTerminalRuntimeSetupGuidance)(ar?.mode,ar?.supported),at=!Y&&as.blocked;(0,c.useEffect)(()=>{if(!al||V||W)return;let a=Date.now(),b=(0,u.readSessionTabs)().filter(b=>"running"===b.status||a-b.updatedAt<3e4).map(a=>a.id);(0,u.pruneSessionTabs)(new Set([...am.map(a=>a.id),...b])),(0,u.notifySessionTabsChanged)()},[al,am,V,W]);let au=(0,c.useMemo)(()=>(0,H.collectSessionCliTools)(am),[am]),av=(0,c.useMemo)(()=>(0,H.filterBoardSessions)(am,{query:t,statusFilter:x,cliTools:z}),[am,t,x,z]),aw=t.trim().length>0,ax=(0,c.useMemo)(()=>(0,H.groupSessionsIntoColumns)(av,ao,{showEmptyProjects:B||aw}),[av,ao,B,aw]),ay=(0,c.useMemo)(()=>(function(a,b){if(0===b.length)return a;let c=new Map(a.map(a=>[a.key,a])),d=new Set,e=[];for(let a of b){let b=c.get(a);b&&!d.has(a)&&(d.add(a),e.push(b))}return[...e,...a.filter(a=>!a.unlinked&&!d.has(a.key)),...a.filter(a=>a.unlinked)]})(ax,Z.columnOrder),[ax,Z.columnOrder]),az=function(){let[a,b]=(0,c.useState)({});return(0,c.useEffect)(()=>{let a=()=>{b(function(){let a={};for(let b of(0,u.readSessionTabs)())b.lastPrompt&&(a[b.id]=b.lastPrompt);return a}())};return a(),window.addEventListener("forgebadger-session-tabs-changed",a),()=>{window.removeEventListener("forgebadger-session-tabs-changed",a)}},[]),a}(),aA=(0,c.useMemo)(()=>{let a={};for(let b of am){let c=(0,H.resolveSessionPrompt)(b,az);c&&(a[b.id]=c)}return a},[am,az]),[aB,aC]=(0,c.useState)(null);(0,c.useEffect)(()=>{aC(Date.now());let a=window.setInterval(()=>aC(Date.now()),6e4);return()=>window.clearInterval(a)},[]);let aD=ac.isPending||ai.isPending||aj.isPending||ak.isPending,aE={onOpenSession:a=>{(0,u.upsertSessionTab)((0,u.sessionToTab)(a)),(0,u.notifySessionTabsChanged)(),r.push(`/sessions/${a.id}`)},onStartSession:(a,b)=>ac.mutate({id:a.id,fresh:b?.fresh}),onStopSession:a=>ai.mutate(a.id),onDeleteSession:a=>aj.mutate({id:a.id})},aF=(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"flex flex-col items-center justify-center gap-3 py-10 text-center",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(l.TerminalSquare,{className:"size-5"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("sessions.noMatchesTitle")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("sessions.noMatchesDescription")})]})]})});return(0,b.jsxs)("div",{className:"mx-auto max-w-[1440px] space-y-4 p-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:a("sessions.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a("sessions.subtitle")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[am.length>0&&(0,b.jsxs)(n.Button,{size:"sm",variant:"outline",disabled:aD||V||W||0===an.length,onClick:()=>I(!0),children:[(0,b.jsx)(m.Trash2,{className:"size-4"}),a("sessions.clearStopped")]}),aq?(0,b.jsxs)(n.Button,{size:"sm",variant:"brand",onClick:()=>F(!0),children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("projects.newSession")]}):(0,b.jsx)(n.Button,{asChild:!0,size:"sm",variant:"brand",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]})]}),T?(0,b.jsx)(S,{}):0===am.length?(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"flex min-h-[50vh] flex-col items-center justify-center gap-4 py-12 text-center",children:[(0,b.jsx)("div",{className:(0,v.cn)("flex size-10 items-center justify-center rounded-md",at?"bg-destructive/10 text-destructive":"bg-brand/10 text-brand"),children:at?(0,b.jsx)(i.AlertTriangle,{className:"size-5"}):(0,b.jsx)(l.TerminalSquare,{className:"size-5"})}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:at?a(as.titleKey):a("sessions.emptyTitle")}),(0,b.jsx)("p",{className:"mx-auto max-w-2xl text-xs text-muted-foreground",children:at?a("sessions.runtimeBlockedDescription"):a("sessions.emptyReadyDescription")}),at&&(0,b.jsx)("p",{className:"mx-auto max-w-2xl text-xs text-muted-foreground",children:a(as.descriptionKey)})]}),at&&(0,b.jsx)("div",{className:"w-full max-w-3xl text-left",children:(0,b.jsx)(p.RuntimeSetupCommands,{guidance:as})}),(0,b.jsxs)("div",{className:"flex flex-wrap justify-center gap-2",children:[at&&(0,b.jsx)(n.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsxs)(d.default,{href:"/settings",children:[(0,b.jsx)(i.AlertTriangle,{className:"size-4"}),a("sessions.openSettings")]})}),aq?(0,b.jsxs)(n.Button,{size:"sm",variant:"brand",onClick:()=>F(!0),children:[(0,b.jsx)(j.FolderOpen,{className:"size-4"}),a("sessions.createFromProject")]}):(0,b.jsx)(n.Button,{asChild:!0,size:"sm",variant:"brand",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]})]})}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(ad,{query:t,onQueryChange:w,statusFilter:x,onStatusFilterChange:y,cliTools:au,selectedCliTools:z,onToggleCliTool:a=>{A(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},showEmptyProjects:B,onShowEmptyProjectsChange:D,hasCustomColumnOrder:Z.columnOrder.length>0,onResetColumnOrder:Z.resetColumnOrder,view:aa,onViewChange:Z.setView}),"list"===aa?0===av.length?aF:(0,b.jsx)(U,{columns:ay,prompts:aA,now:aB,actionPending:aD,...aE}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:(0,v.cn)(0===av.length&&"hidden"),children:(0,b.jsx)(R,{columns:ay,sessionTasks:ap,prompts:aA,now:aB,actionPending:aD,columnWidth:Z.columnWidth,onColumnWidthChange:Z.setColumnWidth,onColumnOrderChange:Z.setColumnOrder,...aE})}),0===av.length?aF:null]})]}),(0,b.jsx)(o.Dialog,{open:E,onOpenChange:F,children:(0,b.jsxs)(o.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(o.DialogHeader,{children:[(0,b.jsx)(o.DialogTitle,{children:a("sessions.chooseProjectTitle")}),(0,b.jsx)(o.DialogDescription,{children:a("sessions.chooseProjectDescription")})]}),(0,b.jsxs)("div",{className:"grid gap-2",children:[ao.map(a=>(0,b.jsxs)(n.Button,{variant:"outline",className:"h-auto w-full min-w-0 justify-start gap-3 px-3 py-2.5",onClick:()=>{F(!1),r.push(`/projects/${a.id}?tab=sessions`)},children:[(0,b.jsx)(j.FolderOpen,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col items-start gap-0.5",children:[(0,b.jsx)("span",{className:"max-w-full truncate text-sm font-medium",children:a.name}),a.path&&(0,b.jsx)("span",{className:"max-w-full truncate font-mono text-xs text-muted-foreground",children:a.path})]})]},a.id)),T?(0,b.jsx)("p",{className:"py-6 text-center text-sm text-muted-foreground",children:a("sessions.loading")}):0===ao.length?(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4 py-6 text-center",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a("sessions.chooseProjectEmpty")}),(0,b.jsx)(n.Button,{asChild:!0,size:"sm",variant:"brand",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]}):null]})]})}),(0,b.jsx)(o.Dialog,{open:G,onOpenChange:a=>{ak.isPending||I(a)},children:(0,b.jsxs)(o.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(o.DialogHeader,{children:[(0,b.jsx)(o.DialogTitle,{children:a("sessions.clearStoppedTitle")}),(0,b.jsx)(o.DialogDescription,{children:a("sessions.clearStoppedDescription").replace("{count}",String(an.length))})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(n.Button,{variant:"outline",size:"sm",disabled:ak.isPending,onClick:()=>I(!1),children:a("sessions.forceDeleteCancel")}),(0,b.jsx)(n.Button,{variant:"destructive",size:"sm",disabled:ak.isPending||0===an.length,onClick:()=>ak.mutate(an.map(a=>a.id)),children:ak.isPending?a("sessions.clearingStopped"):a("sessions.clearStopped")})]})]})}),(0,b.jsx)(o.Dialog,{open:null!==J,onOpenChange:a=>{a||K(null)},children:(0,b.jsxs)(o.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(o.DialogHeader,{children:[(0,b.jsx)(o.DialogTitle,{children:a("sessions.forceDeleteTitle")}),(0,b.jsx)(o.DialogDescription,{children:a("sessions.forceDeleteDescription")})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(n.Button,{variant:"outline",size:"sm",onClick:()=>K(null),children:a("sessions.forceDeleteCancel")}),(0,b.jsx)(n.Button,{variant:"destructive",size:"sm",disabled:aj.isPending,onClick:()=>{J&&aj.mutate({id:J,force:!0})},children:a("sessions.forceDeleteConfirm")})]})]})})]})}],45132)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_web_src_app_%28dashboard%29_sessions_page_tsx_0phmhty._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[68236,a=>{"use strict";var b=a.i(18394),c=a.i(38369),d=a.i(20080),e=a.i(15720),f=a.i(14365),g=a.i(45164),h=a.i(60584),i=a.i(35485);let j=(0,i.default)("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]),k=(0,i.default)("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);var l=a.i(10567),m=a.i(36262);let n=(0,i.default)("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var o=a.i(2337);let p=(0,i.default)("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),q=(0,i.default)("MonitorSmartphone",[["path",{d:"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8",key:"10dyio"}],["path",{d:"M10 19v-3.96 3.15",key:"1irgej"}],["path",{d:"M7 19h5",key:"qswx4l"}],["rect",{width:"6",height:"10",x:"16",y:"12",rx:"2",key:"1egngj"}]]),r=(0,i.default)("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]);var s=a.i(4837),t=a.i(39747),u=a.i(26248),v=a.i(83124),w=a.i(26643),x=a.i(4730),y=a.i(97494),z=a.i(90991),A=a.i(55068),B=a.i(3030),C=a.i(70458),D=a.i(79914),E=a.i(10392),F=a.i(78281),G=a.i(29649),H=a.i(39042);let I={currentPassword:"",newPassword:"",confirmPassword:""};function J(){let{t:a}=(0,D.useLanguage)(),d=(0,E.useAdminCopy)(),e=(0,u.useQueryClient)(),[f,g]=(0,c.useState)(I),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(!1),{data:p,isLoading:r,isError:x}=(0,t.useQuery)({queryKey:["auth-sessions"],queryFn:H.listAuthSessions}),J=(0,s.useMutation)({mutationFn:()=>(0,H.changePassword)(f.currentPassword,f.newPassword),onSuccess:()=>{g(I),i(!1),k(null),m(a("settings.account.passwordChanged")),(0,G.logout)(),setTimeout(()=>{window.location.href="/login"},1200)},onError:b=>{k(b.message||a("settings.account.passwordChangeFailed"))}}),L=(0,s.useMutation)({mutationFn:a=>(0,H.revokeAuthSession)(a),onSuccess:()=>{e.invalidateQueries({queryKey:["auth-sessions"]})}}),M=(0,s.useMutation)({mutationFn:H.revokeOtherAuthSessions,onSuccess:()=>{e.invalidateQueries({queryKey:["auth-sessions"]})}}),N=p?.sessions??[],O=(0,c.useMemo)(()=>N.filter(a=>!a.current).length,[N]);return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(v.KeyRound,{className:"size-4"}),title:a("settings.account.title"),description:a("settings.account.description")}),(0,b.jsxs)(C.CardContent,{className:"space-y-6",children:[l&&(0,b.jsx)("p",{className:"rounded-md border border-emerald-400/40 bg-emerald-400/10 px-3 py-2 text-xs text-emerald-400",children:l}),h?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(B.Label,{htmlFor:"current-password",className:"text-xs font-medium",children:a("settings.account.currentPassword")}),(0,b.jsx)(A.Input,{id:"current-password",type:"password",autoComplete:"current-password",value:f.currentPassword,onChange:a=>g(b=>({...b,currentPassword:a.target.value}))})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(B.Label,{htmlFor:"new-password",className:"text-xs font-medium",children:a("settings.account.newPassword")}),(0,b.jsx)(A.Input,{id:"new-password",type:"password",autoComplete:"new-password",value:f.newPassword,onChange:a=>g(b=>({...b,newPassword:a.target.value}))})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(B.Label,{htmlFor:"confirm-password",className:"text-xs font-medium",children:a("settings.account.confirmPassword")}),(0,b.jsx)(A.Input,{id:"confirm-password",type:"password",autoComplete:"new-password",value:f.confirmPassword,onChange:a=>g(b=>({...b,confirmPassword:a.target.value}))})]})]}),j&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:j}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.account.passwordHint")}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"sm",disabled:J.isPending,onClick:function(){g(I),k(null),m(null),i(!1)},children:a("common.cancel")}),(0,b.jsx)(y.Button,{type:"button",size:"sm",variant:"brand",disabled:J.isPending||!f.currentPassword||!f.newPassword||!f.confirmPassword,onClick:function(){(k(null),m(null),f.newPassword.length<8)?k(a("settings.account.passwordTooShort")):f.newPassword!==f.confirmPassword?k(a("settings.account.passwordMismatch")):J.mutate()},children:J.isPending?a("settings.account.passwordChanging"):a("settings.account.passwordSubmit")})]})]})]}):(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("settings.account.passwordSubmit")}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:a("settings.account.passwordHint")})]}),(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>i(!0),children:a("settings.account.passwordSubmit")})]}),(0,b.jsxs)("div",{className:"space-y-3 border-t border-border/70 pt-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(q,{className:"size-4 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("settings.account.devicesTitle")}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:a("settings.account.devicesDescription")})]})]}),O>0&&(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",disabled:M.isPending,onClick:()=>o(!0),children:[(0,b.jsx)(w.LogOut,{className:"size-3.5"}),M.isPending?a("settings.account.revoking"):a("settings.account.revokeOthers")]})]}),r?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.account.devicesLoading")}):x?(0,b.jsx)("p",{className:"text-xs text-destructive",children:a("settings.account.devicesLoadFailed")}):0===N.length?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.account.devicesEmpty")}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:N.map(a=>(0,b.jsx)(K,{session:a,revoking:L.isPending,onRevoke:()=>L.mutate(a.id)},a.id))})]})]}),(0,b.jsx)(z.ConfirmDialog,{open:n,destructive:!0,pending:M.isPending,title:d.revokeOthersConfirmTitle,description:d.revokeOthersConfirmDescription,onOpenChange:o,onConfirm:()=>{o(!1),M.mutate()}})]})}function K({session:a,revoking:c,onRevoke:d}){let{t:e}=(0,D.useLanguage)(),f=(0,D.useUiLocale)(),g=(0,E.useAdminCopy)();return(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 px-3 py-2.5 transition-colors hover:bg-muted/40",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:function(a){if(!a)return"";let b=/Edg\//.test(a)?"Edge":/Chrome\//.test(a)?"Chrome":/Safari\//.test(a)?"Safari":/Firefox\//.test(a)?"Firefox":"";return[/Windows/.test(a)?"Windows":/Mac OS X/.test(a)?"macOS":/Linux/.test(a)?"Linux":/Android/.test(a)?"Android":/iPhone|iPad/.test(a)?"iOS":"",b].filter(Boolean).join(" · ")}(a.userAgent)||e("settings.account.unknownDevice")}),a.current&&(0,b.jsx)(x.Badge,{children:e("settings.account.currentDevice")})]}),(0,b.jsxs)("div",{className:"mt-0.5 text-xs font-medium text-foreground/80",children:[e("settings.account.lastActive"),":"," ",function(a,b){let c=Date.parse(a);if(Number.isNaN(c))return new Date(a).toLocaleString(b);let d=Math.round((c-Date.now())/1e3),e=Math.abs(d),f=new Intl.RelativeTimeFormat(b,{numeric:"auto"});return e<60?f.format(d,"second"):e<3600?f.format(Math.round(d/60),"minute"):e<86400?f.format(Math.round(d/3600),"hour"):f.format(Math.round(d/86400),"day")}(a.lastSeenAt,f)]}),(0,b.jsxs)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:[e("settings.account.signedInAt"),":"," ",new Date(a.createdAt).toLocaleString(f)," · ",g.deviceIdPrefix," ",a.id.slice(0,8)]})]}),!a.current&&(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",disabled:c,onClick:d,children:e(c?"settings.account.revoking":"settings.account.revoke")})]})}var L=a.i(78725),M=a.i(68557),N=a.i(44935),O=a.i(76897),P=a.i(45783),Q=a.i(14060),R=a.i(23834),S=a.i(35133),T=a.i(6023),U=a.i(61875),V=a.i(90409),W=a.i(39465);function X(){let{t:a}=(0,D.useLanguage)(),d=(0,u.useQueryClient)(),[e,f]=(0,c.useState)({}),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)({}),[n,o]=(0,c.useState)({}),[p,q]=(0,c.useState)(!1),{data:r,isLoading:v,isFetching:w,isError:z,refetch:A}=(0,t.useQuery)({queryKey:R.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:H.discoverAdapters}),{data:B,isFetching:E,isError:G,refetch:I}=(0,t.useQuery)({queryKey:["adapter-updates"],queryFn:()=>(0,H.checkAdapterUpdates)(),staleTime:3e5}),{data:J,isLoading:K,isFetching:O,isError:P,refetch:S}=(0,t.useQuery)({queryKey:["dependencies"],queryFn:H.getDependencies}),X=(0,U.useOrderedAdapters)(r?.adapters??[]),Z=(0,L.useSensors)((0,L.useSensor)(L.PointerSensor,{activationConstraint:{distance:6}}),(0,L.useSensor)(L.KeyboardSensor,{coordinateGetter:M.sortableKeyboardCoordinates})),$=(0,s.useMutation)({mutationFn:a=>(0,H.putAdapterOrder)(a),onMutate:async a=>{await d.cancelQueries({queryKey:U.ADAPTER_ORDER_QUERY_KEY});let b=d.getQueryData(U.ADAPTER_ORDER_QUERY_KEY);return d.setQueryData(U.ADAPTER_ORDER_QUERY_KEY,{order:a}),q(!1),{previous:b}},onError:(a,b,c)=>{d.setQueryData(U.ADAPTER_ORDER_QUERY_KEY,c?.previous??{order:[]}),q(!0)},onSettled:()=>d.invalidateQueries({queryKey:U.ADAPTER_ORDER_QUERY_KEY})});async function _(){i(!0),k(!1);try{let a=(await Promise.allSettled([S(),A(),(0,H.checkAdapterUpdates)(!0)]))[2];"fulfilled"===a.status?d.setQueryData(["adapter-updates"],a.value):k(!0),await d.invalidateQueries({queryKey:["dashboard-summary"]})}finally{i(!1)}}async function aa(a){if(!e[a]){f(b=>({...b,[a]:"update"})),m(b=>({...b,[a]:void 0}));try{let b=await (0,H.updateAdapter)(a);m(c=>({...c,[a]:b.versionStillBehind?"behind":"done"})),await Promise.allSettled([A(),S(),I()])}catch{m(b=>({...b,[a]:"failed"}))}finally{f(b=>({...b,[a]:void 0}))}}}async function ab(a){if(!e[a]){f(b=>({...b,[a]:"install"})),o(b=>({...b,[a]:void 0}));try{let b=await (0,H.installAdapter)(a);o(c=>({...c,[a]:b.commandAvailable?"done":"not_detected"})),await Promise.allSettled([A(),S(),I()])}catch{o(b=>({...b,[a]:"failed"}))}finally{f(b=>({...b,[a]:void 0}))}}}let ac=J?.terminalRuntime,ad=(0,V.getTerminalRuntimeSetupGuidance)(ac?.mode,ac?.supported),ae=ac?.persistence,af=J?.dependencies.find(a=>a.name===ae),ag=af?.version??af?.error??ac?.message,ah=w||O||E||h;return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(g.Cpu,{className:"size-4"}),title:a("settings.adapters"),description:a("settings.adaptersDescription"),action:(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void _(),disabled:ah,children:[(0,b.jsx)(Q.RefreshCw,{className:(0,W.cn)("size-3.5",ah&&"animate-spin")}),a(ah?"settings.discoveryRefreshing":"settings.discoveryRefresh")]})}),(0,b.jsxs)(C.CardContent,{className:"space-y-3",children:[K?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.dependenciesLoading")}):P?(0,b.jsx)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-3",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(N.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-destructive",children:a("settings.dependenciesLoadFailed")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.discoveryLoadFailedDescription")})]})]})}):(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:(0,W.cn)("size-1.5 shrink-0 rounded-full",ad.blocked?"bg-red-400":"bg-emerald-400")}),(0,b.jsx)("span",{className:"text-sm font-medium",children:a("settings.terminalRuntimeReadiness")})]}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a(ad.descriptionKey)}),ag&&(0,b.jsx)("p",{className:"mt-2 break-all font-mono text-xs text-muted-foreground",children:ag})]}),(0,b.jsx)(x.Badge,{variant:ad.blocked?"destructive":"secondary",children:a(ad.blocked?"settings.launchBlocked":"settings.launchReady")})]}),ad.blocked&&(0,b.jsx)("div",{className:"mt-3",children:(0,b.jsx)(T.RuntimeSetupCommands,{guidance:ad})})]}),v?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.discoveryLoading")}):z?(0,b.jsxs)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-3",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(N.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-destructive",children:a("settings.discoveryLoadFailed")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.discoveryLoadFailedDescription")})]})]}),(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",className:"mt-3",onClick:()=>void A(),children:[(0,b.jsx)(Q.RefreshCw,{className:"size-3.5"}),a("settings.discoveryRetry")]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.adapterReadinessNotice")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.adapterOrderHint")}),p&&(0,b.jsx)("p",{role:"status",className:"text-xs text-destructive",children:a("settings.adapterOrderSaveFailed")}),(0,b.jsx)(L.DndContext,{sensors:Z,collisionDetection:L.closestCenter,onDragEnd:function(a){let{active:b,over:c}=a;if(!c||b.id===c.id)return;let d=X.map(a=>a.id),e=d.indexOf(b.id),f=d.indexOf(c.id);e<0||f<0||$.mutate((0,M.arrayMove)(d,e,f))},children:(0,b.jsx)(M.SortableContext,{items:X.map(a=>a.id),strategy:M.verticalListSortingStrategy,children:(0,b.jsx)("div",{className:"space-y-2",children:X.map(a=>(0,b.jsx)(Y,{adapter:a,update:j?void 0:B?.updates.find(b=>b.id===a.id),canUpdate:B?.canUpdate??!1,canInstall:B?.canInstall??!1,checkingUpdate:!B&&E||h,updateCheckFailed:G||j,updating:"update"===e[a.id],installing:"install"===e[a.id],operationBlocked:!!e[a.id],feedback:l[a.id],installFeedback:n[a.id],onUpdate:()=>void aa(a.id),onInstall:()=>void ab(a.id)},a.id))})})})]})]})]})}function Y(a){let{t:c}=(0,D.useLanguage)(),{attributes:d,listeners:e,setNodeRef:f,transform:g,transition:h,isDragging:i}=(0,M.useSortable)({id:a.adapter.id});return(0,b.jsxs)("div",{ref:f,style:{transform:g?`translate3d(${g.x}px, ${g.y}px, 0)`:void 0,transition:h??void 0},className:(0,W.cn)("flex items-start gap-1",i&&"relative z-10 opacity-80"),children:[(0,b.jsx)("button",{type:"button","aria-label":c("settings.adapterOrderDragHandle"),className:"mt-3 shrink-0 cursor-grab touch-none rounded p-0.5 text-muted-foreground hover:text-foreground active:cursor-grabbing",...d,...e,children:(0,b.jsx)(P.GripVertical,{className:"size-4"})}),(0,b.jsx)("div",{className:"min-w-0 flex-1",children:(0,b.jsx)(Z,{...a})})]})}function Z({adapter:a,update:c,canUpdate:d,canInstall:e,checkingUpdate:f,updateCheckFailed:g,updating:h,installing:i,operationBlocked:j,feedback:k,installFeedback:l,onUpdate:m,onInstall:n}){let{t:o}=(0,D.useLanguage)();return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 p-3 transition-colors hover:bg-muted/40",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[(0,b.jsx)("span",{className:(0,W.cn)("size-1.5 shrink-0 rounded-full",a.available?"bg-emerald-400":"bg-red-400")}),(0,b.jsx)(S.CliBrandChip,{aiTool:a.id}),(0,b.jsxs)("span",{className:"truncate font-mono text-xs text-muted-foreground",children:[a.command," --version"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,b.jsx)(x.Badge,{variant:a.available?"secondary":"outline",children:o(a.available?"settings.available":"settings.missing")}),(0,b.jsx)(x.Badge,{variant:"supported"===a.supportLevel?"secondary":"outline",children:o("supported"===a.supportLevel?"settings.supported":"settings.prototype")}),a.launchEnabled?(0,b.jsx)(x.Badge,{children:o("settings.launchEnabled")}):(0,b.jsx)(x.Badge,{variant:"outline",children:o("settings.launchDisabled")})]})]}),(0,b.jsx)("div",{className:"mt-2 text-xs text-muted-foreground",children:a.version??a.error??a.configDir}),a.available&&(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-xs",children:[c?.state==="update_available"?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"text-amber-500",children:[o("homebrew"===c.latestSource?"settings.adapterUpdateAvailableHomebrew":"settings.adapterUpdateAvailable"),": ",c.latestVersion]}),d?(0,b.jsxs)(y.Button,{type:"button",size:"sm",variant:"outline",disabled:j||f,onClick:m,children:[h?(0,b.jsx)(Q.RefreshCw,{className:"size-3.5 animate-spin"}):(0,b.jsx)(O.Download,{className:"size-3.5"}),o(h?"settings.adapterUpdating":"settings.adapterUpdateNow")]}):(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterUpdateAdminOnly")}),(0,b.jsx)("span",{className:"font-mono text-muted-foreground",children:c.command})]}):c?.state==="up_to_date"?(0,b.jsxs)("span",{className:"text-muted-foreground",children:[o("homebrew"===c.latestSource?"settings.adapterUpToDateHomebrew":"settings.adapterUpToDate"),": ",c.installedVersion]}):c?.state==="check_failed"||g?(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterUpdateCheckFailed")}):f?(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterUpdateChecking")}):null,k&&(0,b.jsx)("span",{role:"status",className:"failed"===k?"text-destructive":"text-muted-foreground",children:o("done"===k?"settings.adapterUpdateDone":"behind"===k?"settings.adapterUpdateBehind":"settings.adapterUpdateFailed")})]}),"missing"===a.status&&c?.state==="missing"&&(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-xs",children:[(0,b.jsx)("span",{className:"font-mono text-muted-foreground",children:c.installCommand}),e?(0,b.jsxs)(y.Button,{type:"button",size:"sm",variant:"outline",disabled:j||f||!!c.installRequiresNode||"done"===l,onClick:n,children:[i?(0,b.jsx)(Q.RefreshCw,{className:"size-3.5 animate-spin"}):(0,b.jsx)(O.Download,{className:"size-3.5"}),o(i?"settings.adapterInstalling":"settings.adapterInstallNow")]}):(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterInstallAdminOnly")}),c.installRequiresNode&&(0,b.jsxs)("span",{className:"text-amber-500",children:[o("settings.adapterInstallRequiresNode")," ",c.installRequiresNode,"+"]})]}),l&&(0,b.jsx)("p",{role:"status",className:(0,W.cn)("mt-2 text-xs","failed"===l?"text-destructive":"text-muted-foreground"),children:o("done"===l?"settings.adapterInstallDone":"not_detected"===l?"settings.adapterInstallNotDetected":"settings.adapterInstallFailed")}),a.runtimeModes.length>0&&(0,b.jsx)("div",{className:"mt-1.5 font-mono text-xs text-muted-foreground",children:a.runtimeModes.join(" / ")})]})}var $=a.i(31692);let _=(0,i.default)("ScrollText",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);function aa(){let{t:a}=(0,D.useLanguage)(),c=(0,D.useUiLocale)(),e=(0,E.useAdminCopy)(),{data:f,isLoading:g}=(0,t.useQuery)({queryKey:["audit-logs","settings"],queryFn:()=>(0,H.listAuditLogs)({limit:8})});return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"80ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(_,{className:"size-4"}),title:a("settings.auditHistory"),description:a("settings.auditDescription"),action:(0,b.jsx)(y.Button,{asChild:!0,size:"sm",variant:"ghost",className:"text-muted-foreground",children:(0,b.jsxs)(d.default,{href:"/history",children:[e.auditViewAll,(0,b.jsx)($.ArrowRight,{className:"size-3.5"})]})})}),(0,b.jsx)(C.CardContent,{children:g?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.auditLoading")}):(f?.auditLogs.length??0)===0?(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2.5 py-6 text-center",children:[(0,b.jsx)("div",{className:"flex size-9 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(_,{className:"size-4"})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.auditEmpty")})]}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:f?.auditLogs.map(a=>(0,b.jsxs)("div",{className:"px-3 py-2.5 transition-colors hover:bg-muted/40",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:(0,E.auditActionLabel)(e,a.action)}),(0,b.jsx)(x.Badge,{variant:"outline",children:a.resourceType})]}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:new Date(a.createdAt).toLocaleString(c)})]},a.id))})})]})}var ab=a.i(21592);let ac=(0,i.default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var ad=a.i(90259);let ae=(0,i.default)("Route",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]);var af=a.i(37134),ag=a.i(85564),ah=a.i(10917);function ai(){let{t:a}=(0,D.useLanguage)(),d=(0,u.useQueryClient)(),{data:e,isLoading:f,isError:g}=(0,t.useQuery)({queryKey:["claude-route"],queryFn:H.getClaudeRoute,retry:!1}),{data:h}=(0,t.useQuery)({queryKey:["model-providers"],queryFn:H.listModelProviders,retry:!1}),[i,j]=(0,c.useState)(""),k=a=>{d.setQueryData(["claude-route"],a)},l=(0,s.useMutation)({mutationFn:a=>(0,H.setClaudeRoute)(a),onSuccess:k,onError:b=>{ag.toast.error(b instanceof Error?b.message:a("settings.claudeRouteUpdateFailed"))}}),m=e?.assignments??[],n=(0,s.useMutation)({mutationFn:a=>(0,H.setClaudeRouteAssignments)(a),onSuccess:k,onError:b=>{ag.toast.error(b instanceof Error?b.message:a("settings.claudeRouteFailoverUpdateFailed"))}}),o=()=>m.map(a=>({providerProfileId:a.providerProfileId})),p=(a,b)=>{let c=a+b;if(c<0||c>=m.length)return;let d=o(),[e]=d.splice(a,1);d.splice(c,0,e),n.mutate(d)},q=(0,c.useMemo)(()=>{let a=new Set(m.map(a=>a.providerProfileId));return(h?.providers??[]).filter(b=>"active"===b.status&&b.supportedAdapters.includes("claude")&&!a.has(b.id))},[h?.providers,m]),r=e?.enabled===!0,v=n.isPending;return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(ae,{className:"size-4"}),title:a("settings.claudeRoute"),description:a("settings.claudeRouteDescription"),action:(0,b.jsx)(ah.Switch,{checked:r,disabled:f||g||l.isPending,onCheckedChange:a=>l.mutate(a),"aria-label":a("settings.claudeRoute")})}),(0,b.jsx)(C.CardContent,{className:"space-y-3",children:g?(0,b.jsx)("p",{className:"text-xs text-destructive",children:a("settings.claudeRouteLoadFailed")}):e?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(x.Badge,{variant:r?"secondary":"outline",children:r?a("settings.claudeRouteStateEnabled"):a("settings.claudeRouteStateDisabled")}),(0,b.jsx)("span",{className:"break-all font-mono text-xs text-muted-foreground",children:e.gatewayUrl})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("div",{className:"text-xs font-medium",children:a("settings.claudeRouteFailover")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.claudeRouteFailoverDescription")}),0===m.length?(0,b.jsx)("p",{className:"rounded-md border border-dashed px-2 py-2 text-xs text-muted-foreground",children:a("settings.claudeRouteFailoverEmpty")}):(0,b.jsx)("div",{className:"space-y-1",children:m.map((c,d)=>(0,b.jsxs)("div",{className:"flex items-center gap-1.5 rounded-md border px-2 py-1.5",children:[(0,b.jsx)("span",{className:"w-4 text-center font-mono text-xs text-muted-foreground",children:c.position}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-1.5",children:[(0,b.jsx)("span",{className:"truncate text-xs font-medium",children:c.providerName??c.providerProfileId}),0===d&&(0,b.jsx)(x.Badge,{variant:"secondary",className:"px-1 py-0 text-[10px]",children:a("settings.claudeRouteFailoverPrimary")}),null!==c.providerStatus&&"active"!==c.providerStatus&&(0,b.jsx)(x.Badge,{variant:"outline",className:"px-1 py-0 text-[10px]",children:a("settings.claudeRouteFailoverInactive")}),(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:a("settings.claudeRouteFailoverModelsCount").replace("{count}",String(c.modelIds.length))})]}),(0,b.jsx)(y.Button,{variant:"ghost",size:"icon",className:"size-6",disabled:0===d||v,onClick:()=>p(d,-1),"aria-label":a("settings.claudeRouteFailoverUp"),children:(0,b.jsx)(ac,{className:"size-3"})}),(0,b.jsx)(y.Button,{variant:"ghost",size:"icon",className:"size-6",disabled:d===m.length-1||v,onClick:()=>p(d,1),"aria-label":a("settings.claudeRouteFailoverDown"),children:(0,b.jsx)(ab.ArrowDown,{className:"size-3"})}),(0,b.jsx)(y.Button,{variant:"ghost",size:"icon",className:"size-6",disabled:m.length<=1||v,onClick:()=>{!(m.length<=1)&&n.mutate(m.filter((a,b)=>b!==d).map(a=>({providerProfileId:a.providerProfileId})))},"aria-label":a("settings.claudeRouteFailoverRemove"),children:(0,b.jsx)(af.Trash2,{className:"size-3"})})]},c.providerProfileId))}),q.length>0&&(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)("select",{value:i,onChange:a=>j(a.target.value),className:"h-7 flex-1 rounded-md border bg-background px-2 text-xs text-foreground outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-label":a("settings.claudeRouteFailoverAdd"),children:[(0,b.jsx)("option",{value:"",children:a("settings.claudeRouteFailoverAdd")}),q.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,b.jsx)(y.Button,{variant:"outline",size:"sm",className:"h-7",disabled:!i||v,onClick:()=>{i&&(n.mutate([...o(),{providerProfileId:i}]),j(""))},"aria-label":a("settings.claudeRouteFailoverAdd"),children:(0,b.jsx)(ad.Plus,{className:"size-3"})})]})]}),r&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.claudeRouteGatewayDown")})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("common.loading")})})]})}function aj(){let{t:a}=(0,D.useLanguage)(),[d,e]=(0,c.useState)("idle");async function f(){e("exporting");try{var a;let b,c,d,f,{report:g}=await (0,H.exportDiagnostics)();b=(a=g).generatedAt.replace(/[:.]/g,"-"),c=new Blob([`${JSON.stringify(a,null,2)}
|
|
2
|
-
`],{type:"application/json"}),d=URL.createObjectURL(c),(f=document.createElement("a")).href=d,f.download=`forgebadger-diagnostics-${b}.json`,f.click(),URL.revokeObjectURL(d),e("success")}catch{e("error")}}return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(O.Download,{className:"size-4"}),title:a("settings.diagnostics"),description:a("settings.diagnosticsDescription")}),(0,b.jsxs)(C.CardContent,{className:"space-y-3",children:[(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",onClick:f,disabled:"exporting"===d,children:[(0,b.jsx)(O.Download,{className:"size-4"}),a("exporting"===d?"settings.diagnosticsExporting":"settings.diagnosticsExport")]}),(0,b.jsx)("p",{className:(0,W.cn)("text-xs","success"===d?"text-emerald-400":"error"===d?"text-destructive":"text-muted-foreground"),children:a("success"===d?"settings.diagnosticsExported":"error"===d?"settings.diagnosticsExportFailed":"settings.diagnosticsNotice")})]})]})}var ak=a.i(91284),al=a.i(14027),am=a.i(38094),an=a.i(16569),ao=a.i(62384),ap=a.i(10339);function aq(){let{t:a}=(0,D.useLanguage)(),{user:d}=(0,ap.useAuth)(),e=(0,u.useQueryClient)(),[f,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(["read"]),[j,k]=(0,c.useState)([]),[m,n]=(0,c.useState)(null),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(null),[v,w]=(0,c.useState)(null),[A,B]=(0,c.useState)(!1),E=(0,t.useQuery)({queryKey:H.mcpStatusKey,queryFn:H.getMcpStatus,retry:!1}),G=E.data?.enabled===!0,I=(0,t.useQuery)({queryKey:["projects"],queryFn:H.listProjects,enabled:G}),J=(0,t.useQuery)({queryKey:ak.runtimeSettingsQueryKey,queryFn:H.getRuntimeSettings,retry:!1,enabled:d?.role==="admin"}),K=d?.role==="admin"&&J.data?(0,H.runtimeSettingsValue)(J.data,"mcp_enabled"):void 0,L=(0,s.useMutation)({mutationFn:a=>(0,H.updateRuntimeSettings)({mcp_enabled:a}),onSuccess:(b,c)=>{e.invalidateQueries({queryKey:ak.runtimeSettingsQueryKey}),e.invalidateQueries({queryKey:H.mcpStatusKey}),ag.toast.success(c?a("settings.restartRequired"):a("settings.mcpDisablePendingRestart"))},onError:()=>ag.toast.error(a("settings.instanceSaveError"))}),M=(0,t.useQuery)({queryKey:H.mcpTokensKey,queryFn:H.listMcpTokens,retry:!1,enabled:G,refetchInterval:3e4}),N=(0,s.useMutation)({mutationFn:H.createMcpToken,onSuccess:a=>{e.invalidateQueries({queryKey:H.mcpTokensKey}),p(a.plaintext),g(""),k([])},onError:b=>ag.toast.error(b instanceof H.GatewayApiError?b.message:a("settings.mcpCreateFailed"))}),O=(0,s.useMutation)({mutationFn:H.revokeMcpToken,onSuccess:()=>{e.invalidateQueries({queryKey:H.mcpTokensKey}),r(null)},onError:()=>ag.toast.error(a("settings.mcpRevokeFailed"))}),P=E.data?.endpoint??"",Q=void 0!==K&&!J.data?.readonly;async function R(b){if("u">typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(b),ag.toast.success(a("settings.mcpCopied"))}catch{ag.toast.error(a("settings.mcpCopyFailed"))}}return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(l.Plug,{className:"size-4"}),title:a("settings.mcp"),description:a("settings.mcpDescription"),action:(0,b.jsxs)(b.Fragment,{children:[E.data&&(0,b.jsx)(x.Badge,{variant:G?"secondary":"outline",children:G?a("settings.mcpStateEnabled"):a("settings.mcpStateDisabled")}),Q&&(0,b.jsx)(ah.Switch,{checked:K,onCheckedChange:function(a){a?B(!0):L.mutate(!1)},disabled:L.isPending,"aria-label":a("settings.mcpToggle")})]})}),(0,b.jsx)(C.CardContent,{className:"space-y-3",children:E.isError?(0,b.jsx)("p",{className:"text-xs text-destructive",children:a("settings.mcpLoadFailed")}):E.isLoading?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("common.loading")}):(0,b.jsxs)(b.Fragment,{children:[G?(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a("settings.mcpEndpoint")}),(0,b.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-xs",children:P}),(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6 shrink-0","aria-label":a("settings.mcpEndpoint"),onClick:()=>void R(P),children:(0,b.jsx)(al.Copy,{className:"size-3.5"})})]}):(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[a("settings.mcpDisabledHint"),void 0===K&&(0,b.jsx)("span",{className:"mt-1 block font-mono",children:"FORGEBADGER_MCP_ENABLED=true"})]}),G&&(0,b.jsx)(ar,{endpoint:P,scopes:h,onToggleScope:function(a){let b=h.includes(a);if(!b||1!==h.length)if("cli_dispatch"!==a&&"lifecycle"!==a||b)if("operate"===a&&b){let a=h.filter(a=>"operate"!==a&&"cli_dispatch"!==a&&"lifecycle"!==a);i(a.length>0?a:["read"])}else i(b?h.filter(b=>b!==a):[...h,a]);else i([...new Set([...h,"operate",a])])},onCreate:function(a){a.preventDefault(),!f.trim()||0===h.length||0===j.length||I.isError||I.isLoading||(null===m||Number.isInteger(m)&&!(m<1)&&!(m>87600))&&N.mutate({name:f.trim(),scopes:h,projectIds:j,expiresInHours:m})},creating:N.isPending,name:f,onNameChange:g,projectIds:j,onProjectIdsChange:k,projects:I.data?.projects??[],projectsLoading:I.isLoading,projectsError:I.isError,onAllScopes:()=>i(["read","operate","cli_dispatch","lifecycle"]),expiresInHours:m,onExpiresInHoursChange:n,tokens:M.data?.tokens??void 0,loading:M.isLoading,error:M.isError,onRevoke:r,onEdit:a=>{w(a),I.refetch()}})]})}),(0,b.jsx)(ax,{endpoint:P,plaintext:o,onClose:()=>p(null),onCopy:R}),v&&(0,b.jsx)(at,{token:v,projects:I.data?.projects??[],loading:I.isLoading||I.isFetching,error:I.isError,onClose:()=>w(null)},v.id),(0,b.jsx)(z.ConfirmDialog,{open:A,pending:L.isPending,title:a("settings.mcpEnableConfirmTitle"),description:a("settings.mcpEnableConfirmDescription"),confirmLabel:a("settings.mcpToggle"),onOpenChange:B,onConfirm:()=>{B(!1),L.mutate(!0)}}),(0,b.jsx)(ao.Dialog,{open:null!==q,onOpenChange:a=>!a&&r(null),children:(0,b.jsxs)(ao.DialogContent,{children:[(0,b.jsxs)(ao.DialogHeader,{children:[(0,b.jsx)(ao.DialogTitle,{children:a("settings.mcpRevokeConfirm")}),(0,b.jsx)(ao.DialogDescription,{children:q?.name})]}),(0,b.jsxs)(ao.DialogFooter,{children:[(0,b.jsx)(y.Button,{variant:"outline",onClick:()=>r(null),children:a("settings.mcpClose")}),(0,b.jsx)(y.Button,{variant:"destructive",disabled:O.isPending,onClick:()=>q&&O.mutate(q.id),children:a("settings.mcpRevoke")})]})]})})]})}function ar({endpoint:a,scopes:c,onToggleScope:d,onCreate:e,creating:f,name:g,onNameChange:h,projectIds:i,onProjectIdsChange:j,projects:k,projectsLoading:l,projectsError:m,onAllScopes:n,expiresInHours:o,onExpiresInHoursChange:p,tokens:q,loading:r,error:s,onRevoke:t,onEdit:u}){let v=(0,D.useUiLocale)(),{t:w}=(0,D.useLanguage)(),z=null!==o&&(!Number.isInteger(o)||o<1||o>87600),C=[];g.trim()||C.push(w("settings.mcpFormMissingName")),0===i.length&&C.push(w("settings.mcpFormMissingProjects")),l&&C.push(w("common.loading")),m&&C.push(w("settings.mcpFormProjectsUnavailable")),z&&C.push(w("settings.mcpFormInvalidExpiry"));let E=C.join("、");return(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("form",{onSubmit:e,className:"space-y-2.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsx)(B.Label,{className:"text-xs",htmlFor:"mcp-token-name",children:w("settings.mcpName")}),(0,b.jsx)(A.Input,{id:"mcp-token-name",value:g,onChange:a=>h(a.target.value),maxLength:64,className:"h-8 text-xs"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 pb-1.5",children:[(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(an.Checkbox,{checked:c.includes("read"),onCheckedChange:()=>d("read"),"aria-label":w("settings.mcpScopeRead")}),w("settings.mcpScopeRead")]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(an.Checkbox,{checked:c.includes("operate"),onCheckedChange:()=>d("operate"),"aria-label":w("settings.mcpScopeOperate")}),w("settings.mcpScopeOperate")]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(an.Checkbox,{checked:c.includes("cli_dispatch"),onCheckedChange:()=>d("cli_dispatch"),"aria-label":w("settings.mcpScopeCliDispatch")}),w("settings.mcpScopeCliDispatch")]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(an.Checkbox,{checked:c.includes("lifecycle"),onCheckedChange:()=>d("lifecycle"),"aria-label":w("settings.mcpScopeLifecycle")}),w("settings.mcpScopeLifecycle")]}),(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",className:"h-8",onClick:n,children:w("settings.mcpAllPermissions")}),(0,b.jsx)(y.Button,{type:"submit",size:"sm",className:"h-8",disabled:f||C.length>0,title:C.length>0?w("settings.mcpFormCannotCreate").replace("{reasons}",E):void 0,children:f?w("common.loading"):w("settings.mcpCreate")})]})]}),C.length>0?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:w("settings.mcpFormCannotCreate").replace("{reasons}",E)}):null,(0,b.jsx)(as,{projects:k,loading:l,error:m,selected:i,onChange:j}),(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(B.Label,{className:"text-xs",htmlFor:"mcp-lifetime",children:w("settings.mcpLifetime")}),(0,b.jsxs)("select",{id:"mcp-lifetime",className:"h-8 rounded-md border border-input bg-background px-2 text-xs",value:null===o?"permanent":"limited",onChange:a=>p("permanent"===a.target.value?null:24),children:[(0,b.jsx)("option",{value:"permanent",children:w("settings.mcpPermanent")}),(0,b.jsx)("option",{value:"limited",children:w("settings.mcpLimited")})]})]}),null!==o&&(0,b.jsxs)("div",{className:"w-32 space-y-1",children:[(0,b.jsx)(B.Label,{className:"text-xs",htmlFor:"mcp-expiry-hours",children:w("settings.mcpExpiresHours")}),(0,b.jsx)(A.Input,{id:"mcp-expiry-hours",type:"number",min:1,max:87600,value:o,onChange:a=>p(Number(a.target.value)),className:"h-8 text-xs"})]}),(0,b.jsx)("p",{className:"pb-1 text-xs text-muted-foreground",children:w("settings.mcpLifetimeHelp")})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:w("settings.mcpScopeOperateHelp")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:w("settings.mcpLifecycleHelp")})]}),(0,b.jsx)("div",{className:"rounded-md border border-border/70",children:s?(0,b.jsx)("p",{className:"p-3 text-xs text-destructive",children:w("settings.mcpLoadFailed")}):r?(0,b.jsx)("p",{className:"p-3 text-xs text-muted-foreground",children:w("common.loading")}):q&&q.length>0?(0,b.jsx)("div",{className:"divide-y divide-border/70",children:q.map(a=>(0,b.jsxs)("div",{className:(0,W.cn)("flex flex-wrap items-center gap-x-3 gap-y-1 px-3 py-2.5",a.revoked&&"opacity-60"),children:[(0,b.jsx)("span",{className:"min-w-0 truncate text-sm font-medium",children:a.name}),a.scopes.map(a=>(0,b.jsx)(x.Badge,{variant:"operate"===a?"secondary":"outline",children:"lifecycle"===a?w("settings.mcpScopeLifecycle"):"operate"===a?w("settings.mcpScopeOperate"):"cli_dispatch"===a?w("settings.mcpScopeCliDispatch"):w("settings.mcpScopeRead")},a)),a.projectIds&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.projectIds.map(a=>k.find(b=>b.id===a)?.name??w("settings.mcpUnavailableProject")).join("、")}),!a.projectIds&&!a.allowedRoot&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:w("settings.mcpLegacyAccess")}),a.allowedRoot&&(0,b.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:a.allowedRoot}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.expiresAt?`${w("settings.mcpExpiresAt")}: ${new Date(a.expiresAt).toLocaleString(v)}`:w("settings.mcpPermanent")}),a.revoked&&(0,b.jsx)(x.Badge,{variant:"destructive",children:w("settings.mcpRevoked")}),(0,b.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:a.lastUsedAt?`${w("settings.mcpLastUsed")}: ${new Date(a.lastUsedAt).toLocaleString(v)}`:w("settings.mcpNeverUsed")}),!a.revoked&&(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"icon",className:"size-7 shrink-0","aria-label":`${w("settings.mcpEditProjects")} ${a.name}`,onClick:()=>u(a),disabled:!!a.expiresAt&&Date.parse(a.expiresAt)<=Date.now(),children:(0,b.jsx)(am.Pencil,{className:"size-3.5"})}),!a.revoked&&(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"icon",className:"size-7 shrink-0 text-destructive hover:text-destructive","aria-label":`${w("settings.mcpRevoke")} ${a.name}`,onClick:()=>t(a),children:(0,b.jsx)(af.Trash2,{className:"size-3.5"})})]},a.id))}):(0,b.jsx)("p",{className:"p-3 text-xs text-muted-foreground",children:w("settings.mcpEmpty")})}),(0,b.jsx)(av,{endpoint:a})]})}function as({projects:a,loading:d,error:e,selected:f,onChange:g}){let{t:h}=(0,D.useLanguage)(),[i,j]=(0,c.useState)(""),k=a.filter(a=>`${a.name} ${a.path}`.toLowerCase().includes(i.trim().toLowerCase())),l=d||e?[]:f.filter(b=>!a.some(a=>a.id===b));return(0,b.jsxs)("fieldset",{className:"min-w-0 space-y-2 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("legend",{className:"px-1 text-xs font-medium",children:[h("settings.mcpProjects")," · ",f.length]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(A.Input,{"aria-label":h("settings.mcpSearchProjects"),placeholder:h("settings.mcpSearchProjects"),value:i,onChange:a=>j(a.target.value),className:"h-8 min-w-0 text-xs"}),(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",disabled:d||e||0===a.length||a.length>200,onClick:()=>g(a.map(a=>a.id)),children:h("settings.mcpSelectAll")}),(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"sm",disabled:0===f.length,onClick:()=>g([]),children:h("settings.mcpClear")})]}),d?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("common.loading")}):e?(0,b.jsx)("p",{className:"text-xs text-destructive",children:h("settings.mcpProjectsFailed")}):0===k.length?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h(0===a.length?"settings.mcpNoProjects":"settings.mcpNoMatches")}):(0,b.jsx)("div",{className:"max-h-48 space-y-1 overflow-y-auto",children:k.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 hover:bg-muted/40",children:[(0,b.jsx)(an.Checkbox,{"aria-label":a.name,checked:f.includes(a.id),disabled:!f.includes(a.id)&&f.length>=200,onCheckedChange:b=>g(!0===b?[...f,a.id]:f.filter(b=>b!==a.id))}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"block truncate text-xs font-medium",children:a.name}),(0,b.jsx)("span",{className:"block truncate font-mono text-xs text-muted-foreground",children:a.path})]})]},a.id))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("settings.mcpProjectsHelp")}),l.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)(an.Checkbox,{checked:!0,"aria-label":`${h("settings.mcpUnavailableProject")} ${a}`,onCheckedChange:()=>g(f.filter(b=>b!==a))}),h("settings.mcpUnavailableProject")," · ",a]},a))]})}function at({token:a,projects:d,loading:e,error:f,onClose:g}){let{t:h}=(0,D.useLanguage)(),i=(0,u.useQueryClient)(),[j,k]=(0,c.useState)(a.projectIds??[]),l=(0,s.useMutation)({mutationFn:H.updateMcpTokenProjects,onError:()=>{i.invalidateQueries({queryKey:H.mcpTokensKey})},onSuccess:()=>{i.invalidateQueries({queryKey:H.mcpTokensKey}),g()}}),m=j.some(a=>!d.some(b=>b.id===a));return(0,b.jsx)(ao.Dialog,{open:!0,onOpenChange:a=>{a||l.isPending||g()},children:(0,b.jsxs)(ao.DialogContent,{className:"max-h-[calc(100dvh-2rem)] grid-cols-[minmax(0,1fr)] overflow-y-auto",children:[(0,b.jsxs)(ao.DialogHeader,{children:[(0,b.jsxs)(ao.DialogTitle,{children:[h("settings.mcpEditProjects")," · ",a.name]}),(0,b.jsx)(ao.DialogDescription,{children:h("settings.mcpEditProjectsHelp")})]}),(0,b.jsx)(as,{projects:d,loading:e,error:f,selected:j,onChange:k}),l.isError&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-destructive",children:l.error instanceof H.GatewayApiError?l.error.message:h("settings.mcpProjectsSaveFailed")}),(0,b.jsxs)(ao.DialogFooter,{children:[(0,b.jsx)(y.Button,{variant:"outline",disabled:l.isPending,onClick:g,children:h("common.cancel")}),(0,b.jsx)(y.Button,{disabled:l.isPending||e||f||m||0===j.length||j.length>200,onClick:()=>l.mutate({id:a.id,projectIds:j,expectedProjectIds:a.projectIds??null}),children:h(l.isPending?"common.loading":"common.save")})]})]})})}function au(a,b){return JSON.stringify({mcpServers:{forgebadger:{type:"http",url:a,headers:{Authorization:`Bearer ${b}`}}}},null,2)}function av({endpoint:a}){let{t:c}=(0,D.useLanguage)();return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("settings.mcpConnectHelp")}),(0,b.jsx)(aw,{label:c("settings.mcpConnectJson"),content:au(a,c("settings.mcpTokenPlaceholder"))})]})}function aw({label:a,content:c}){let{t:d}=(0,D.useLanguage)();async function e(){if("u">typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(c),ag.toast.success(d("settings.mcpCopied"))}catch{ag.toast.error(d("settings.mcpCopyFailed"))}}return(0,b.jsxs)("div",{className:"min-w-0 max-w-full overflow-hidden rounded-md border border-border/70 bg-muted/20",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border/70 px-3 py-1.5",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":a,onClick:()=>void e(),children:(0,b.jsx)(al.Copy,{className:"size-3.5"})})]}),(0,b.jsx)("pre",{className:"min-w-0 max-w-full overflow-x-auto p-3 font-mono text-xs leading-relaxed",children:c})]})}function ax({endpoint:a,plaintext:c,onClose:d,onCopy:e}){let{t:f}=(0,D.useLanguage)();return(0,b.jsx)(ao.Dialog,{open:null!==c,onOpenChange:a=>!a&&d(),children:(0,b.jsxs)(ao.DialogContent,{className:"max-h-[calc(100dvh-2rem)] grid-cols-[minmax(0,1fr)] overflow-y-auto",children:[(0,b.jsxs)(ao.DialogHeader,{children:[(0,b.jsx)(ao.DialogTitle,{children:f("settings.mcpPlaintextTitle")}),(0,b.jsx)(ao.DialogDescription,{children:f("settings.mcpPlaintextWarning")})]}),(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-xs",children:c}),(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",className:"shrink-0",onClick:()=>c&&e(c),children:[(0,b.jsx)(al.Copy,{className:"size-3.5"}),f("settings.mcpCopy")]})]}),c&&(0,b.jsx)(aw,{label:f("settings.mcpConnectJson"),content:au(a,c)}),(0,b.jsx)(ao.DialogFooter,{children:(0,b.jsx)(y.Button,{onClick:d,children:f("settings.mcpClose")})})]})})}var ay=a.i(60427),az=a.i(22510),aA=a.i(53302),aB=a.i(68442),aC=a.i(49613);function aD(){let{t:a}=(0,D.useLanguage)(),d=(0,aB.usePetPreference)(),e=(0,c.useId)(),[f,g]=(0,c.useState)("idle");return(0,b.jsxs)(C.Card,{children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(ay.Bot,{className:"size-4","aria-hidden":"true"}),title:a("settings.pet"),description:a("settings.petDescription"),titleId:e}),(0,b.jsxs)(C.CardContent,{className:"space-y-3",children:[(0,b.jsx)("div",{role:"radiogroup","aria-labelledby":e,className:"grid gap-3 sm:grid-cols-2",children:aC.PET_OPTIONS.map(c=>{let f=d===c.id,h=`${e}-${c.id}-name`,i=`${e}-${c.id}-description`;return(0,b.jsxs)("button",{type:"button",role:"radio","aria-checked":f,"aria-labelledby":h,"aria-describedby":i,onClick:()=>{var a;return a=c.id,void g((0,aC.writePetPreference)(a)?"saved":"error")},className:(0,W.cn)("flex items-center gap-3 rounded-md border p-3 text-left outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring",f?"border-brand/60 bg-brand/10":"border-border hover:bg-muted/40"),children:[(0,b.jsx)("span",{className:"shrink-0 rounded-md bg-muted/40 p-1","aria-hidden":"true",children:(0,b.jsx)(aA.RobotSprite,{petId:c.id,frame:"stand",size:80})}),(0,b.jsxs)("span",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsx)("span",{id:h,className:"block text-sm font-medium",children:a(c.nameKey)}),(0,b.jsx)("span",{id:i,className:"block text-xs leading-relaxed text-muted-foreground",children:a(c.descriptionKey)}),f&&(0,b.jsxs)("span",{className:"flex items-center gap-1 text-xs text-brand","aria-hidden":"true",children:[(0,b.jsx)(az.Check,{className:"size-3"}),a("settings.petSelected")]})]})]},c.id)})}),"saved"===f&&(0,b.jsx)("p",{role:"status",className:"text-xs text-muted-foreground",children:a("settings.petSaved")}),"error"===f&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-destructive",children:a("settings.petSaveFailed")})]})]})}function aE(){let{t:a}=(0,D.useLanguage)(),c=(0,E.useAdminCopy)(),{data:d}=(0,t.useQuery)({queryKey:["dependencies"],queryFn:H.getDependencies}),e=d?.terminalRuntime?.persistence??a("settings.notDetected");return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(o.ShieldCheck,{className:"size-4"}),title:a("settings.securityBaseline"),description:a("settings.securityDescription")}),(0,b.jsxs)(C.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:[(0,b.jsx)(aF,{label:a("settings.jwtAuth"),value:c.securityBaselineGuaranteed}),(0,b.jsx)(aF,{label:a("settings.tenantIsolation"),value:c.securityBaselineGuaranteed}),(0,b.jsx)(aF,{label:a("settings.apiKeyEncryption"),value:"AES-256-GCM"}),(0,b.jsx)(aF,{label:a("settings.terminalPersistence"),value:e})]}),(0,b.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[(0,b.jsx)(v.KeyRound,{className:"mt-0.5 size-3.5 shrink-0"}),(0,b.jsx)("span",{children:c.securityBaselineGuaranteedHint})]}),(0,b.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[(0,b.jsx)(v.KeyRound,{className:"mt-0.5 size-3.5 shrink-0"}),(0,b.jsx)("span",{children:a("settings.secretsNotice")})]})]})]})}function aF({label:a,value:c}){return(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 py-2.5 text-sm",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:a}),(0,b.jsx)(x.Badge,{variant:"secondary",children:c})]})}var aG=a.i(23579);let aH="cyan",aI=[{id:"cyan",nameKey:"settings.themeCyan",brand:"187 86% 53%",brandForeground:"220 30% 6%",swatch:"#22d3ee"},{id:"orange",nameKey:"settings.themeOrange",brand:"24 100% 50%",brandForeground:"0 0% 100%",swatch:"#ff8000"},{id:"violet",nameKey:"settings.themeViolet",brand:"258 90% 66%",brandForeground:"0 0% 100%",swatch:"#8b5cf6"},{id:"emerald",nameKey:"settings.themeEmerald",brand:"160 84% 39%",brandForeground:"160 60% 6%",swatch:"#10b981"},{id:"blue",nameKey:"settings.themeBlue",brand:"217 91% 60%",brandForeground:"0 0% 100%",swatch:"#3b82f6"},{id:"rose",nameKey:"settings.themeRose",brand:"350 89% 60%",brandForeground:"0 0% 100%",swatch:"#f43f5e"},{id:"amber",nameKey:"settings.themeAmber",brand:"38 92% 55%",brandForeground:"38 60% 8%",swatch:"#f59e0b"}],aJ="forgebadger.accent";function aK(a){return aI.some(b=>b.id===a)}var aL=a.i(20409),aM=a.i(42167),aN=a.i(61047);let aO=[{code:"zh-CN",label:"简体中文"},{code:"zh-TW",label:"繁體中文"},{code:"en",label:"English"}],aP=[{id:"appearance",icon:k,labelKey:"settings.section.appearance",descriptionKey:"settings.section.appearanceDescription"},{id:"account",icon:o.ShieldCheck,labelKey:"settings.section.account",descriptionKey:"settings.section.accountDescription"},{id:"adapters",icon:g.Cpu,labelKey:"settings.section.adapters",descriptionKey:"settings.section.adaptersDescription"},{id:"integrations",icon:l.Plug,labelKey:"settings.section.integrations",descriptionKey:"settings.section.integrationsDescription"},{id:"instance",icon:m.Server,labelKey:"settings.section.instance",descriptionKey:"settings.section.instanceDescription"}];a.s(["default",0,function(){let{language:a,setLanguage:g,t:i}=(0,D.useLanguage)(),{user:l}=(0,ap.useAuth)(),m=(0,e.useSearchParams)(),[o,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)("unsupported"),[v,w]=(0,c.useState)(aH),{mode:x}=(0,aG.useColorMode)(),[z,E]=(0,c.useState)(aM.DEFAULT_TERMINAL_FONT.fontFamily),[G,H]=(0,c.useState)(String(aM.DEFAULT_TERMINAL_FONT.fontSize));function I(){let a=Number(G);(0,aM.setTerminalFont)({fontFamily:z,fontSize:Number.isFinite(a)&&""!==G?a:aM.DEFAULT_TERMINAL_FONT.fontSize})}(0,c.useEffect)(()=>{w(function(a=window.localStorage){let b=a.getItem(aJ);return aK(b)?b:aH}());let a=(0,aM.readStoredTerminalFont)();E(a.fontFamily),H(String(a.fontSize)),s((0,aN.getBrowserNotificationPreference)()),u((0,aN.getBrowserNotificationPermission)())},[]);let K=l?.role==="admin",L=K?aP:aP.filter(a=>"instance"!==a.id),M=m.get("section"),N=L.find(a=>a.id===M)??aP[0];async function O(a){if(!a){(0,aN.setBrowserNotificationPreference)(!1),s(!1),u((0,aN.getBrowserNotificationPermission)());return}let b="default"===(0,aN.getBrowserNotificationPermission)()?await (0,aN.requestBrowserNotificationPermission)():(0,aN.getBrowserNotificationPermission)();u(b);let c="granted"===b;(0,aN.setBrowserNotificationPreference)(c),s(c)}return(0,b.jsxs)("div",{className:"mx-auto max-w-6xl space-y-6 p-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:i("settings.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:i("settings.subtitle")})]}),(0,b.jsxs)("div",{className:"lg:grid lg:grid-cols-[200px_minmax(0,1fr)] lg:gap-8",children:[(0,b.jsx)("nav",{"aria-label":i("settings.title"),className:"mb-4 flex gap-1 overflow-x-auto lg:sticky lg:top-6 lg:mb-0 lg:flex-col lg:self-start",children:L.map(a=>(0,b.jsxs)(d.default,{href:`/settings?section=${a.id}`,"aria-current":N.id===a.id?"page":void 0,className:(0,W.cn)("flex h-8 shrink-0 items-center gap-2.5 rounded-md px-2.5 text-[13px] font-medium transition-colors duration-150",N.id===a.id?"bg-brand/10 text-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[(0,b.jsx)(a.icon,{className:(0,W.cn)("size-4 shrink-0",N.id===a.id?"text-brand":"text-muted-foreground/70")}),i(a.labelKey)]},a.id))}),(0,b.jsxs)("div",{className:"min-w-0",children:["appearance"===N.id&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(k,{className:"size-4"}),title:i("settings.colorMode"),description:i("settings.colorModeDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:[{id:"light",labelKey:"settings.colorModeLight",icon:p},{id:"dark",labelKey:"settings.colorModeDark",icon:j},{id:"system",labelKey:"settings.colorModeSystem",icon:q}].map(a=>{let c=x===a.id;return(0,b.jsxs)(y.Button,{type:"button","aria-pressed":c,variant:c?"brand":"outline",size:"sm",onClick:()=>(0,aL.setColorMode)(a.id),children:[(0,b.jsx)(a.icon,{className:"size-4"}),i(a.labelKey)]},a.id)})})})]}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(h.Globe2,{className:"size-4"}),title:i("settings.language"),description:i("settings.languageDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:aO.map(c=>(0,b.jsx)(y.Button,{type:"button",variant:a===c.code?"brand":"outline",size:"sm",onClick:()=>g(c.code),children:c.label},c.code))})})]}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"80ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(k,{className:"size-4"}),title:i("settings.theme"),description:i("settings.themeDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:aI.map(a=>{let c=v===a.id;return(0,b.jsxs)("button",{type:"button","aria-pressed":c,onClick:()=>w(function(a,b=window.localStorage){let c=aK(a)?a:aH;return document.documentElement.dataset.accent=c,b.setItem(aJ,c),c}(a.id)),className:c?"flex items-center gap-2 rounded-md border border-brand/60 bg-brand/10 px-3 py-2 text-sm text-foreground transition-colors duration-150":"flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm text-muted-foreground transition-colors duration-150 hover:border-brand/40 hover:bg-muted/40 hover:text-foreground",children:[(0,b.jsx)("span",{className:"size-3.5 rounded-full ring-1 ring-border",style:{backgroundColor:a.swatch},"aria-hidden":"true"}),i(a.nameKey)]},a.id)})})})]}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"120ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(r,{className:"size-4"}),title:i("settings.terminalFont"),description:i("settings.terminalFontDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,b.jsxs)("div",{className:"grid min-w-52 flex-1 gap-2",children:[(0,b.jsx)(B.Label,{htmlFor:"terminal-font-family",className:"text-xs text-muted-foreground",children:i("settings.terminalFontFamily")}),(0,b.jsx)(A.Input,{id:"terminal-font-family",value:z,onChange:a=>E(a.target.value),onBlur:I,onKeyDown:a=>{"Enter"===a.key&&I()},spellCheck:!1,className:"font-mono text-xs"})]}),(0,b.jsxs)("div",{className:"grid w-24 gap-2",children:[(0,b.jsx)(B.Label,{htmlFor:"terminal-font-size",className:"text-xs text-muted-foreground",children:i("settings.terminalFontSize")}),(0,b.jsx)(A.Input,{id:"terminal-font-size",type:"number",min:aM.MIN_TERMINAL_FONT_SIZE,max:aM.MAX_TERMINAL_FONT_SIZE,value:G,onChange:a=>H(a.target.value),onBlur:I,onKeyDown:a=>{"Enter"===a.key&&I()}})]}),(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",onClick:function(){E(aM.DEFAULT_TERMINAL_FONT.fontFamily),H(String(aM.DEFAULT_TERMINAL_FONT.fontSize)),(0,aM.setTerminalFont)(aM.DEFAULT_TERMINAL_FONT)},children:i("settings.terminalFontReset")})]})})]}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"160ms"},children:(0,b.jsx)(aD,{})}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"200ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(n,{className:"size-4"}),title:i("settings.console"),description:i("settings.consoleDescription")}),(0,b.jsx)(C.CardContent,{className:"space-y-2",children:(0,b.jsx)(F.SettingRow,{title:i("settings.browserNotifications"),description:"denied"===t?i("settings.browserNotificationsDenied"):i("settings.browserNotificationsDescription"),checked:o&&"granted"===t,disabled:"unsupported"===t,onCheckedChange:O,icon:(0,b.jsx)(f.Bell,{className:"size-4 text-muted-foreground"})})})]})]}),"account"===N.id&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(J,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(aE,{})})]}),"adapters"===N.id&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(X,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(ai,{})})]}),"integrations"===N.id&&(0,b.jsx)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(aq,{})})}),"instance"===N.id&&K&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(ak.InstanceRuntimeSettings,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(aj,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"80ms"},children:(0,b.jsx)(aa,{})})]})]},N.id)]})]})}],68236)}];
|
|
1
|
+
module.exports=[68236,a=>{"use strict";var b=a.i(18394),c=a.i(38369),d=a.i(20080),e=a.i(15720),f=a.i(14365),g=a.i(45164),h=a.i(60584),i=a.i(35485);let j=(0,i.default)("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);var k=a.i(10567),l=a.i(36262);let m=(0,i.default)("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var n=a.i(2337);let o=(0,i.default)("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]);var p=a.i(4837),q=a.i(39747),r=a.i(26248),s=a.i(83124),t=a.i(26643);let u=(0,i.default)("MonitorSmartphone",[["path",{d:"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8",key:"10dyio"}],["path",{d:"M10 19v-3.96 3.15",key:"1irgej"}],["path",{d:"M7 19h5",key:"qswx4l"}],["rect",{width:"6",height:"10",x:"16",y:"12",rx:"2",key:"1egngj"}]]);var v=a.i(4730),w=a.i(97494),x=a.i(90991),y=a.i(55068),z=a.i(3030),A=a.i(70458),B=a.i(79914),C=a.i(10392),D=a.i(78281),E=a.i(29649),F=a.i(39042);let G={currentPassword:"",newPassword:"",confirmPassword:""};function H(){let{t:a}=(0,B.useLanguage)(),d=(0,C.useAdminCopy)(),e=(0,r.useQueryClient)(),[f,g]=(0,c.useState)(G),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(!1),{data:v,isLoading:H,isError:J}=(0,q.useQuery)({queryKey:["auth-sessions"],queryFn:F.listAuthSessions}),K=(0,p.useMutation)({mutationFn:()=>(0,F.changePassword)(f.currentPassword,f.newPassword),onSuccess:()=>{g(G),i(!1),k(null),m(a("settings.account.passwordChanged")),(0,E.logout)(),setTimeout(()=>{window.location.href="/login"},1200)},onError:b=>{k(b.message||a("settings.account.passwordChangeFailed"))}}),L=(0,p.useMutation)({mutationFn:a=>(0,F.revokeAuthSession)(a),onSuccess:()=>{e.invalidateQueries({queryKey:["auth-sessions"]})}}),M=(0,p.useMutation)({mutationFn:F.revokeOtherAuthSessions,onSuccess:()=>{e.invalidateQueries({queryKey:["auth-sessions"]})}}),N=v?.sessions??[],O=(0,c.useMemo)(()=>N.filter(a=>!a.current).length,[N]);return(0,b.jsxs)(A.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)(s.KeyRound,{className:"size-4"}),title:a("settings.account.title"),description:a("settings.account.description")}),(0,b.jsxs)(A.CardContent,{className:"space-y-6",children:[l&&(0,b.jsx)("p",{className:"rounded-md border border-emerald-400/40 bg-emerald-400/10 px-3 py-2 text-xs text-emerald-400",children:l}),h?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(z.Label,{htmlFor:"current-password",className:"text-xs font-medium",children:a("settings.account.currentPassword")}),(0,b.jsx)(y.Input,{id:"current-password",type:"password",autoComplete:"current-password",value:f.currentPassword,onChange:a=>g(b=>({...b,currentPassword:a.target.value}))})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(z.Label,{htmlFor:"new-password",className:"text-xs font-medium",children:a("settings.account.newPassword")}),(0,b.jsx)(y.Input,{id:"new-password",type:"password",autoComplete:"new-password",value:f.newPassword,onChange:a=>g(b=>({...b,newPassword:a.target.value}))})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(z.Label,{htmlFor:"confirm-password",className:"text-xs font-medium",children:a("settings.account.confirmPassword")}),(0,b.jsx)(y.Input,{id:"confirm-password",type:"password",autoComplete:"new-password",value:f.confirmPassword,onChange:a=>g(b=>({...b,confirmPassword:a.target.value}))})]})]}),j&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:j}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.account.passwordHint")}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(w.Button,{type:"button",variant:"ghost",size:"sm",disabled:K.isPending,onClick:function(){g(G),k(null),m(null),i(!1)},children:a("common.cancel")}),(0,b.jsx)(w.Button,{type:"button",size:"sm",variant:"brand",disabled:K.isPending||!f.currentPassword||!f.newPassword||!f.confirmPassword,onClick:function(){(k(null),m(null),f.newPassword.length<8)?k(a("settings.account.passwordTooShort")):f.newPassword!==f.confirmPassword?k(a("settings.account.passwordMismatch")):K.mutate()},children:K.isPending?a("settings.account.passwordChanging"):a("settings.account.passwordSubmit")})]})]})]}):(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("settings.account.passwordSubmit")}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:a("settings.account.passwordHint")})]}),(0,b.jsx)(w.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>i(!0),children:a("settings.account.passwordSubmit")})]}),(0,b.jsxs)("div",{className:"space-y-3 border-t border-border/70 pt-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(u,{className:"size-4 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("settings.account.devicesTitle")}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:a("settings.account.devicesDescription")})]})]}),O>0&&(0,b.jsxs)(w.Button,{type:"button",variant:"outline",size:"sm",disabled:M.isPending,onClick:()=>o(!0),children:[(0,b.jsx)(t.LogOut,{className:"size-3.5"}),M.isPending?a("settings.account.revoking"):a("settings.account.revokeOthers")]})]}),H?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.account.devicesLoading")}):J?(0,b.jsx)("p",{className:"text-xs text-destructive",children:a("settings.account.devicesLoadFailed")}):0===N.length?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.account.devicesEmpty")}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:N.map(a=>(0,b.jsx)(I,{session:a,revoking:L.isPending,onRevoke:()=>L.mutate(a.id)},a.id))})]})]}),(0,b.jsx)(x.ConfirmDialog,{open:n,destructive:!0,pending:M.isPending,title:d.revokeOthersConfirmTitle,description:d.revokeOthersConfirmDescription,onOpenChange:o,onConfirm:()=>{o(!1),M.mutate()}})]})}function I({session:a,revoking:c,onRevoke:d}){let{t:e}=(0,B.useLanguage)(),f=(0,B.useUiLocale)(),g=(0,C.useAdminCopy)();return(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 px-3 py-2.5 transition-colors hover:bg-muted/40",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:function(a){if(!a)return"";let b=/Edg\//.test(a)?"Edge":/Chrome\//.test(a)?"Chrome":/Safari\//.test(a)?"Safari":/Firefox\//.test(a)?"Firefox":"";return[/Windows/.test(a)?"Windows":/Mac OS X/.test(a)?"macOS":/Linux/.test(a)?"Linux":/Android/.test(a)?"Android":/iPhone|iPad/.test(a)?"iOS":"",b].filter(Boolean).join(" · ")}(a.userAgent)||e("settings.account.unknownDevice")}),a.current&&(0,b.jsx)(v.Badge,{children:e("settings.account.currentDevice")})]}),(0,b.jsxs)("div",{className:"mt-0.5 text-xs font-medium text-foreground/80",children:[e("settings.account.lastActive"),":"," ",function(a,b){let c=Date.parse(a);if(Number.isNaN(c))return new Date(a).toLocaleString(b);let d=Math.round((c-Date.now())/1e3),e=Math.abs(d),f=new Intl.RelativeTimeFormat(b,{numeric:"auto"});return e<60?f.format(d,"second"):e<3600?f.format(Math.round(d/60),"minute"):e<86400?f.format(Math.round(d/3600),"hour"):f.format(Math.round(d/86400),"day")}(a.lastSeenAt,f)]}),(0,b.jsxs)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:[e("settings.account.signedInAt"),":"," ",new Date(a.createdAt).toLocaleString(f)," · ",g.deviceIdPrefix," ",a.id.slice(0,8)]})]}),!a.current&&(0,b.jsx)(w.Button,{type:"button",variant:"outline",size:"sm",disabled:c,onClick:d,children:e(c?"settings.account.revoking":"settings.account.revoke")})]})}var J=a.i(78725),K=a.i(68557),L=a.i(44935),M=a.i(76897),N=a.i(45783),O=a.i(14060),P=a.i(23834),Q=a.i(35133),R=a.i(6023),S=a.i(61875),T=a.i(90409),U=a.i(39465);function V(){let{t:a}=(0,B.useLanguage)(),d=(0,r.useQueryClient)(),[e,f]=(0,c.useState)(!1),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)({}),[l,m]=(0,c.useState)(!1),n=(0,c.useRef)(new Set),{data:o,isLoading:s,isFetching:t,isError:u,refetch:x}=(0,q.useQuery)({queryKey:P.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:F.discoverAdapters}),{data:y,isFetching:z,isError:C,refetch:E}=(0,q.useQuery)({queryKey:["adapter-updates"],queryFn:()=>(0,F.checkAdapterUpdates)(),staleTime:3e5}),{data:G}=(0,q.useQuery)({queryKey:["adapter-operations"],queryFn:F.listAdapterOperations,refetchInterval:a=>!!a.state.data?.operations.some(a=>"running"===a.state)&&1e3}),{data:H,isLoading:I,isFetching:M,isError:N,refetch:Q}=(0,q.useQuery)({queryKey:["dependencies"],queryFn:F.getDependencies}),V=(0,S.useOrderedAdapters)(o?.adapters??[]),Y=(0,J.useSensors)((0,J.useSensor)(J.PointerSensor,{activationConstraint:{distance:6}}),(0,J.useSensor)(J.KeyboardSensor,{coordinateGetter:K.sortableKeyboardCoordinates})),Z=(0,p.useMutation)({mutationFn:a=>(0,F.putAdapterOrder)(a),onMutate:async a=>{await d.cancelQueries({queryKey:S.ADAPTER_ORDER_QUERY_KEY});let b=d.getQueryData(S.ADAPTER_ORDER_QUERY_KEY);return d.setQueryData(S.ADAPTER_ORDER_QUERY_KEY,{order:a}),m(!1),{previous:b}},onError:(a,b,c)=>{d.setQueryData(S.ADAPTER_ORDER_QUERY_KEY,c?.previous??{order:[]}),m(!0)},onSettled:()=>d.invalidateQueries({queryKey:S.ADAPTER_ORDER_QUERY_KEY})});async function $(){f(!0),i(!1);try{let a=(await Promise.allSettled([Q(),x(),(0,F.checkAdapterUpdates)(!0)]))[2];"fulfilled"===a.status?d.setQueryData(["adapter-updates"],a.value):i(!0),await d.invalidateQueries({queryKey:["dashboard-summary"]})}finally{f(!1)}}let _=G?.operations??[];async function aa(a,b){if(!_.some(b=>b.adapterId===a&&"running"===b.state)){k(b=>({...b,[a]:!1}));try{let c="update"===b?await (0,F.updateAdapter)(a):await (0,F.installAdapter)(a);d.setQueryData(["adapter-operations"],a=>({operations:[c,...a?.operations.filter(a=>a.id!==c.id)??[]]}))}catch{k(b=>({...b,[a]:!0}))}}}async function ab(a){await aa(a,"update")}async function ac(a){await aa(a,"install")}(0,c.useEffect)(()=>{let a=_.filter(a=>"running"!==a.state&&!n.current.has(a.id));if(0!==a.length){for(let b of a)n.current.add(b.id);Promise.allSettled([x(),Q(),E()])}},[_,x,Q,E]);let ad=H?.terminalRuntime,ae=(0,T.getTerminalRuntimeSetupGuidance)(ad?.mode,ad?.supported),af=ad?.persistence,ag=H?.dependencies.find(a=>a.name===af),ah=ag?.version??ag?.error??ad?.message,ai=t||M||z||e;return(0,b.jsxs)(A.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)(g.Cpu,{className:"size-4"}),title:a("settings.adapters"),description:a("settings.adaptersDescription"),action:(0,b.jsxs)(w.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void $(),disabled:ai,children:[(0,b.jsx)(O.RefreshCw,{className:(0,U.cn)("size-3.5",ai&&"animate-spin")}),a(ai?"settings.discoveryRefreshing":"settings.discoveryRefresh")]})}),(0,b.jsxs)(A.CardContent,{className:"space-y-3",children:[I?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.dependenciesLoading")}):N?(0,b.jsx)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-3",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(L.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-destructive",children:a("settings.dependenciesLoadFailed")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.discoveryLoadFailedDescription")})]})]})}):(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:(0,U.cn)("size-1.5 shrink-0 rounded-full",ae.blocked?"bg-red-400":"bg-emerald-400")}),(0,b.jsx)("span",{className:"text-sm font-medium",children:a("settings.terminalRuntimeReadiness")})]}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a(ae.descriptionKey)}),ah&&(0,b.jsx)("p",{className:"mt-2 break-all font-mono text-xs text-muted-foreground",children:ah})]}),(0,b.jsx)(v.Badge,{variant:ae.blocked?"destructive":"secondary",children:a(ae.blocked?"settings.launchBlocked":"settings.launchReady")})]}),ae.blocked&&(0,b.jsx)("div",{className:"mt-3",children:(0,b.jsx)(R.RuntimeSetupCommands,{guidance:ae})})]}),s?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.discoveryLoading")}):u?(0,b.jsxs)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-3",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(L.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-destructive",children:a("settings.discoveryLoadFailed")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.discoveryLoadFailedDescription")})]})]}),(0,b.jsxs)(w.Button,{type:"button",variant:"outline",size:"sm",className:"mt-3",onClick:()=>void x(),children:[(0,b.jsx)(O.RefreshCw,{className:"size-3.5"}),a("settings.discoveryRetry")]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.adapterReadinessNotice")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.adapterOrderHint")}),l&&(0,b.jsx)("p",{role:"status",className:"text-xs text-destructive",children:a("settings.adapterOrderSaveFailed")}),(0,b.jsx)(J.DndContext,{sensors:Y,collisionDetection:J.closestCenter,onDragEnd:function(a){let{active:b,over:c}=a;if(!c||b.id===c.id)return;let d=V.map(a=>a.id),e=d.indexOf(b.id),f=d.indexOf(c.id);e<0||f<0||Z.mutate((0,K.arrayMove)(d,e,f))},children:(0,b.jsx)(K.SortableContext,{items:V.map(a=>a.id),strategy:K.verticalListSortingStrategy,children:(0,b.jsx)("div",{className:"space-y-2",children:V.map(a=>{var c,d,f,g;let i=_.find(b=>b.adapterId===a.id&&"running"===b.state),k=W(_,a.id,"update"),l=W(_,a.id,"install");return(0,b.jsx)(X,{adapter:a,update:h?void 0:y?.updates.find(b=>b.id===a.id),canUpdate:y?.canUpdate??!1,canInstall:y?.canInstall??!1,checkingUpdate:!y&&z||e,updateCheckFailed:C||h,updating:i?.kind==="update",installing:i?.kind==="install",operationBlocked:!!i,feedback:(c=k,d=!0===j[a.id],c?.state==="running"?void 0:d||c?.state==="failed"?"failed":c?.state==="succeeded"&&c.result?"versionStillBehind"in c.result&&c.result.versionStillBehind?"behind":"done":void 0),installFeedback:(f=l,g=!0===j[a.id],f?.state==="running"?void 0:g||f?.state==="failed"?"failed":f?.state==="succeeded"&&f.result?"commandAvailable"in f.result&&f.result.commandAvailable?"done":"not_detected":void 0),onUpdate:()=>void ab(a.id),onInstall:()=>void ac(a.id)},a.id)})})})})]})]})]})}function W(a,b,c){return a.filter(a=>a.adapterId===b&&a.kind===c).reduce((a,b)=>!a||b.startedAt>a.startedAt?b:a,void 0)}function X(a){let{t:c}=(0,B.useLanguage)(),{attributes:d,listeners:e,setNodeRef:f,transform:g,transition:h,isDragging:i}=(0,K.useSortable)({id:a.adapter.id});return(0,b.jsxs)("div",{ref:f,style:{transform:g?`translate3d(${g.x}px, ${g.y}px, 0)`:void 0,transition:h??void 0},className:(0,U.cn)("flex items-start gap-1",i&&"relative z-10 opacity-80"),children:[(0,b.jsx)("button",{type:"button","aria-label":c("settings.adapterOrderDragHandle"),className:"mt-3 shrink-0 cursor-grab touch-none rounded p-0.5 text-muted-foreground hover:text-foreground active:cursor-grabbing",...d,...e,children:(0,b.jsx)(N.GripVertical,{className:"size-4"})}),(0,b.jsx)("div",{className:"min-w-0 flex-1",children:(0,b.jsx)(Y,{...a})})]})}function Y({adapter:a,update:c,canUpdate:d,canInstall:e,checkingUpdate:f,updateCheckFailed:g,updating:h,installing:i,operationBlocked:j,feedback:k,installFeedback:l,onUpdate:m,onInstall:n}){let{t:o}=(0,B.useLanguage)();return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 p-3 transition-colors hover:bg-muted/40",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[(0,b.jsx)("span",{className:(0,U.cn)("size-1.5 shrink-0 rounded-full",a.available?"bg-emerald-400":"bg-red-400")}),(0,b.jsx)(Q.CliBrandChip,{aiTool:a.id}),(0,b.jsxs)("span",{className:"truncate font-mono text-xs text-muted-foreground",children:[a.command," --version"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,b.jsx)(v.Badge,{variant:a.available?"secondary":"outline",children:o(a.available?"settings.available":"settings.missing")}),(0,b.jsx)(v.Badge,{variant:"supported"===a.supportLevel?"secondary":"outline",children:o("supported"===a.supportLevel?"settings.supported":"settings.prototype")}),a.launchEnabled?(0,b.jsx)(v.Badge,{children:o("settings.launchEnabled")}):(0,b.jsx)(v.Badge,{variant:"outline",children:o("settings.launchDisabled")})]})]}),(0,b.jsx)("div",{className:"mt-2 text-xs text-muted-foreground",children:a.version??a.error??a.configDir}),a.available&&(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-xs",children:[c?.state==="update_available"?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"text-amber-500",children:[o("homebrew"===c.latestSource?"settings.adapterUpdateAvailableHomebrew":"settings.adapterUpdateAvailable"),": ",c.latestVersion]}),d?(0,b.jsxs)(w.Button,{type:"button",size:"sm",variant:"outline",disabled:j||f,onClick:m,children:[h?(0,b.jsx)(O.RefreshCw,{className:"size-3.5 animate-spin"}):(0,b.jsx)(M.Download,{className:"size-3.5"}),o(h?"settings.adapterUpdating":"settings.adapterUpdateNow")]}):(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterUpdateAdminOnly")}),(0,b.jsx)("span",{className:"font-mono text-muted-foreground",children:c.command})]}):c?.state==="up_to_date"?(0,b.jsxs)("span",{className:"text-muted-foreground",children:[o("homebrew"===c.latestSource?"settings.adapterUpToDateHomebrew":"settings.adapterUpToDate"),": ",c.installedVersion]}):c?.state==="check_failed"||g?(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterUpdateCheckFailed")}):f?(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterUpdateChecking")}):null,k&&(0,b.jsx)("span",{role:"status",className:"failed"===k?"text-destructive":"text-muted-foreground",children:o("done"===k?"settings.adapterUpdateDone":"behind"===k?"settings.adapterUpdateBehind":"settings.adapterUpdateFailed")})]}),"missing"===a.status&&c?.state==="missing"&&(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-xs",children:[(0,b.jsx)("span",{className:"font-mono text-muted-foreground",children:c.installCommand}),e?(0,b.jsxs)(w.Button,{type:"button",size:"sm",variant:"outline",disabled:j||f||!!c.installRequiresNode||"done"===l,onClick:n,children:[i?(0,b.jsx)(O.RefreshCw,{className:"size-3.5 animate-spin"}):(0,b.jsx)(M.Download,{className:"size-3.5"}),o(i?"settings.adapterInstalling":"settings.adapterInstallNow")]}):(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterInstallAdminOnly")}),c.installRequiresNode&&(0,b.jsxs)("span",{className:"text-amber-500",children:[o("settings.adapterInstallRequiresNode")," ",c.installRequiresNode,"+"]})]}),l&&(0,b.jsx)("p",{role:"status",className:(0,U.cn)("mt-2 text-xs","failed"===l?"text-destructive":"text-muted-foreground"),children:o("done"===l?"settings.adapterInstallDone":"not_detected"===l?"settings.adapterInstallNotDetected":"settings.adapterInstallFailed")}),a.runtimeModes.length>0&&(0,b.jsx)("div",{className:"mt-1.5 font-mono text-xs text-muted-foreground",children:a.runtimeModes.join(" / ")})]})}var Z=a.i(31692);let $=(0,i.default)("ScrollText",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);function _(){let{t:a}=(0,B.useLanguage)(),c=(0,B.useUiLocale)(),e=(0,C.useAdminCopy)(),{data:f,isLoading:g}=(0,q.useQuery)({queryKey:["audit-logs","settings"],queryFn:()=>(0,F.listAuditLogs)({limit:8})});return(0,b.jsxs)(A.Card,{className:"forgebadger-animate-in",style:{animationDelay:"80ms"},children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)($,{className:"size-4"}),title:a("settings.auditHistory"),description:a("settings.auditDescription"),action:(0,b.jsx)(w.Button,{asChild:!0,size:"sm",variant:"ghost",className:"text-muted-foreground",children:(0,b.jsxs)(d.default,{href:"/history",children:[e.auditViewAll,(0,b.jsx)(Z.ArrowRight,{className:"size-3.5"})]})})}),(0,b.jsx)(A.CardContent,{children:g?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.auditLoading")}):(f?.auditLogs.length??0)===0?(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2.5 py-6 text-center",children:[(0,b.jsx)("div",{className:"flex size-9 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)($,{className:"size-4"})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.auditEmpty")})]}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:f?.auditLogs.map(a=>(0,b.jsxs)("div",{className:"px-3 py-2.5 transition-colors hover:bg-muted/40",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:(0,C.auditActionLabel)(e,a.action)}),(0,b.jsx)(v.Badge,{variant:"outline",children:a.resourceType})]}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:new Date(a.createdAt).toLocaleString(c)})]},a.id))})})]})}var aa=a.i(21592);let ab=(0,i.default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var ac=a.i(90259);let ad=(0,i.default)("Route",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]);var ae=a.i(37134),af=a.i(85564),ag=a.i(10917);function ah(){let{t:a}=(0,B.useLanguage)(),d=(0,r.useQueryClient)(),{data:e,isLoading:f,isError:g}=(0,q.useQuery)({queryKey:["claude-route"],queryFn:F.getClaudeRoute,retry:!1}),{data:h}=(0,q.useQuery)({queryKey:["model-providers"],queryFn:F.listModelProviders,retry:!1}),[i,j]=(0,c.useState)(""),k=a=>{d.setQueryData(["claude-route"],a)},l=(0,p.useMutation)({mutationFn:a=>(0,F.setClaudeRoute)(a),onSuccess:k,onError:b=>{af.toast.error(b instanceof Error?b.message:a("settings.claudeRouteUpdateFailed"))}}),m=e?.assignments??[],n=(0,p.useMutation)({mutationFn:a=>(0,F.setClaudeRouteAssignments)(a),onSuccess:k,onError:b=>{af.toast.error(b instanceof Error?b.message:a("settings.claudeRouteFailoverUpdateFailed"))}}),o=()=>m.map(a=>({providerProfileId:a.providerProfileId})),s=(a,b)=>{let c=a+b;if(c<0||c>=m.length)return;let d=o(),[e]=d.splice(a,1);d.splice(c,0,e),n.mutate(d)},t=(0,c.useMemo)(()=>{let a=new Set(m.map(a=>a.providerProfileId));return(h?.providers??[]).filter(b=>"active"===b.status&&b.supportedAdapters.includes("claude")&&!a.has(b.id))},[h?.providers,m]),u=e?.enabled===!0,x=n.isPending;return(0,b.jsxs)(A.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)(ad,{className:"size-4"}),title:a("settings.claudeRoute"),description:a("settings.claudeRouteDescription"),action:(0,b.jsx)(ag.Switch,{checked:u,disabled:f||g||l.isPending,onCheckedChange:a=>l.mutate(a),"aria-label":a("settings.claudeRoute")})}),(0,b.jsx)(A.CardContent,{className:"space-y-3",children:g?(0,b.jsx)("p",{className:"text-xs text-destructive",children:a("settings.claudeRouteLoadFailed")}):e?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(v.Badge,{variant:u?"secondary":"outline",children:u?a("settings.claudeRouteStateEnabled"):a("settings.claudeRouteStateDisabled")}),(0,b.jsx)("span",{className:"break-all font-mono text-xs text-muted-foreground",children:e.gatewayUrl})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("div",{className:"text-xs font-medium",children:a("settings.claudeRouteFailover")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.claudeRouteFailoverDescription")}),0===m.length?(0,b.jsx)("p",{className:"rounded-md border border-dashed px-2 py-2 text-xs text-muted-foreground",children:a("settings.claudeRouteFailoverEmpty")}):(0,b.jsx)("div",{className:"space-y-1",children:m.map((c,d)=>(0,b.jsxs)("div",{className:"flex items-center gap-1.5 rounded-md border px-2 py-1.5",children:[(0,b.jsx)("span",{className:"w-4 text-center font-mono text-xs text-muted-foreground",children:c.position}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-1.5",children:[(0,b.jsx)("span",{className:"truncate text-xs font-medium",children:c.providerName??c.providerProfileId}),0===d&&(0,b.jsx)(v.Badge,{variant:"secondary",className:"px-1 py-0 text-[10px]",children:a("settings.claudeRouteFailoverPrimary")}),null!==c.providerStatus&&"active"!==c.providerStatus&&(0,b.jsx)(v.Badge,{variant:"outline",className:"px-1 py-0 text-[10px]",children:a("settings.claudeRouteFailoverInactive")}),(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:a("settings.claudeRouteFailoverModelsCount").replace("{count}",String(c.modelIds.length))})]}),(0,b.jsx)(w.Button,{variant:"ghost",size:"icon",className:"size-6",disabled:0===d||x,onClick:()=>s(d,-1),"aria-label":a("settings.claudeRouteFailoverUp"),children:(0,b.jsx)(ab,{className:"size-3"})}),(0,b.jsx)(w.Button,{variant:"ghost",size:"icon",className:"size-6",disabled:d===m.length-1||x,onClick:()=>s(d,1),"aria-label":a("settings.claudeRouteFailoverDown"),children:(0,b.jsx)(aa.ArrowDown,{className:"size-3"})}),(0,b.jsx)(w.Button,{variant:"ghost",size:"icon",className:"size-6",disabled:m.length<=1||x,onClick:()=>{!(m.length<=1)&&n.mutate(m.filter((a,b)=>b!==d).map(a=>({providerProfileId:a.providerProfileId})))},"aria-label":a("settings.claudeRouteFailoverRemove"),children:(0,b.jsx)(ae.Trash2,{className:"size-3"})})]},c.providerProfileId))}),t.length>0&&(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)("select",{value:i,onChange:a=>j(a.target.value),className:"h-7 flex-1 rounded-md border bg-background px-2 text-xs text-foreground outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-label":a("settings.claudeRouteFailoverAdd"),children:[(0,b.jsx)("option",{value:"",children:a("settings.claudeRouteFailoverAdd")}),t.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,b.jsx)(w.Button,{variant:"outline",size:"sm",className:"h-7",disabled:!i||x,onClick:()=>{i&&(n.mutate([...o(),{providerProfileId:i}]),j(""))},"aria-label":a("settings.claudeRouteFailoverAdd"),children:(0,b.jsx)(ac.Plus,{className:"size-3"})})]})]}),u&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.claudeRouteGatewayDown")})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("common.loading")})})]})}function ai(){let{t:a}=(0,B.useLanguage)(),[d,e]=(0,c.useState)("idle");async function f(){e("exporting");try{var a;let b,c,d,f,{report:g}=await (0,F.exportDiagnostics)();b=(a=g).generatedAt.replace(/[:.]/g,"-"),c=new Blob([`${JSON.stringify(a,null,2)}
|
|
2
|
+
`],{type:"application/json"}),d=URL.createObjectURL(c),(f=document.createElement("a")).href=d,f.download=`forgebadger-diagnostics-${b}.json`,f.click(),URL.revokeObjectURL(d),e("success")}catch{e("error")}}return(0,b.jsxs)(A.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)(M.Download,{className:"size-4"}),title:a("settings.diagnostics"),description:a("settings.diagnosticsDescription")}),(0,b.jsxs)(A.CardContent,{className:"space-y-3",children:[(0,b.jsxs)(w.Button,{type:"button",variant:"outline",size:"sm",onClick:f,disabled:"exporting"===d,children:[(0,b.jsx)(M.Download,{className:"size-4"}),a("exporting"===d?"settings.diagnosticsExporting":"settings.diagnosticsExport")]}),(0,b.jsx)("p",{className:(0,U.cn)("text-xs","success"===d?"text-emerald-400":"error"===d?"text-destructive":"text-muted-foreground"),children:a("success"===d?"settings.diagnosticsExported":"error"===d?"settings.diagnosticsExportFailed":"settings.diagnosticsNotice")})]})]})}var aj=a.i(91284),ak=a.i(14027),al=a.i(38094),am=a.i(16569),an=a.i(62384),ao=a.i(10339);function ap(){let{t:a}=(0,B.useLanguage)(),{user:d}=(0,ao.useAuth)(),e=(0,r.useQueryClient)(),[f,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(["read"]),[j,l]=(0,c.useState)([]),[m,n]=(0,c.useState)(null),[o,s]=(0,c.useState)(null),[t,u]=(0,c.useState)(null),[y,z]=(0,c.useState)(null),[C,E]=(0,c.useState)(!1),G=(0,q.useQuery)({queryKey:F.mcpStatusKey,queryFn:F.getMcpStatus,retry:!1}),H=G.data?.enabled===!0,I=(0,q.useQuery)({queryKey:["projects"],queryFn:F.listProjects,enabled:H}),J=(0,q.useQuery)({queryKey:aj.runtimeSettingsQueryKey,queryFn:F.getRuntimeSettings,retry:!1,enabled:d?.role==="admin"}),K=d?.role==="admin"&&J.data?(0,F.runtimeSettingsValue)(J.data,"mcp_enabled"):void 0,L=(0,p.useMutation)({mutationFn:a=>(0,F.updateRuntimeSettings)({mcp_enabled:a}),onSuccess:(b,c)=>{e.invalidateQueries({queryKey:aj.runtimeSettingsQueryKey}),e.invalidateQueries({queryKey:F.mcpStatusKey}),af.toast.success(c?a("settings.restartRequired"):a("settings.mcpDisablePendingRestart"))},onError:()=>af.toast.error(a("settings.instanceSaveError"))}),M=(0,q.useQuery)({queryKey:F.mcpTokensKey,queryFn:F.listMcpTokens,retry:!1,enabled:H,refetchInterval:3e4}),N=(0,p.useMutation)({mutationFn:F.createMcpToken,onSuccess:a=>{e.invalidateQueries({queryKey:F.mcpTokensKey}),s(a.plaintext),g(""),l([])},onError:b=>af.toast.error(b instanceof F.GatewayApiError?b.message:a("settings.mcpCreateFailed"))}),O=(0,p.useMutation)({mutationFn:F.revokeMcpToken,onSuccess:()=>{e.invalidateQueries({queryKey:F.mcpTokensKey}),u(null)},onError:()=>af.toast.error(a("settings.mcpRevokeFailed"))}),P=G.data?.endpoint??"",Q=void 0!==K&&!J.data?.readonly;async function R(b){if("u">typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(b),af.toast.success(a("settings.mcpCopied"))}catch{af.toast.error(a("settings.mcpCopyFailed"))}}return(0,b.jsxs)(A.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)(k.Plug,{className:"size-4"}),title:a("settings.mcp"),description:a("settings.mcpDescription"),action:(0,b.jsxs)(b.Fragment,{children:[G.data&&(0,b.jsx)(v.Badge,{variant:H?"secondary":"outline",children:H?a("settings.mcpStateEnabled"):a("settings.mcpStateDisabled")}),Q&&(0,b.jsx)(ag.Switch,{checked:K,onCheckedChange:function(a){a?E(!0):L.mutate(!1)},disabled:L.isPending,"aria-label":a("settings.mcpToggle")})]})}),(0,b.jsx)(A.CardContent,{className:"space-y-3",children:G.isError?(0,b.jsx)("p",{className:"text-xs text-destructive",children:a("settings.mcpLoadFailed")}):G.isLoading?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("common.loading")}):(0,b.jsxs)(b.Fragment,{children:[H?(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a("settings.mcpEndpoint")}),(0,b.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-xs",children:P}),(0,b.jsx)(w.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6 shrink-0","aria-label":a("settings.mcpEndpoint"),onClick:()=>void R(P),children:(0,b.jsx)(ak.Copy,{className:"size-3.5"})})]}):(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[a("settings.mcpDisabledHint"),void 0===K&&(0,b.jsx)("span",{className:"mt-1 block font-mono",children:"FORGEBADGER_MCP_ENABLED=true"})]}),H&&(0,b.jsx)(aq,{endpoint:P,scopes:h,onToggleScope:function(a){let b=h.includes(a);if(!b||1!==h.length)if("cli_dispatch"!==a&&"lifecycle"!==a||b)if("operate"===a&&b){let a=h.filter(a=>"operate"!==a&&"cli_dispatch"!==a&&"lifecycle"!==a);i(a.length>0?a:["read"])}else i(b?h.filter(b=>b!==a):[...h,a]);else i([...new Set([...h,"operate",a])])},onCreate:function(a){a.preventDefault(),!f.trim()||0===h.length||0===j.length||I.isError||I.isLoading||(null===m||Number.isInteger(m)&&!(m<1)&&!(m>87600))&&N.mutate({name:f.trim(),scopes:h,projectIds:j,expiresInHours:m})},creating:N.isPending,name:f,onNameChange:g,projectIds:j,onProjectIdsChange:l,projects:I.data?.projects??[],projectsLoading:I.isLoading,projectsError:I.isError,onAllScopes:()=>i(["read","operate","cli_dispatch","lifecycle"]),expiresInHours:m,onExpiresInHoursChange:n,tokens:M.data?.tokens??void 0,loading:M.isLoading,error:M.isError,onRevoke:u,onEdit:a=>{z(a),I.refetch()}})]})}),(0,b.jsx)(aw,{endpoint:P,plaintext:o,onClose:()=>s(null),onCopy:R}),y&&(0,b.jsx)(as,{token:y,projects:I.data?.projects??[],loading:I.isLoading||I.isFetching,error:I.isError,onClose:()=>z(null)},y.id),(0,b.jsx)(x.ConfirmDialog,{open:C,pending:L.isPending,title:a("settings.mcpEnableConfirmTitle"),description:a("settings.mcpEnableConfirmDescription"),confirmLabel:a("settings.mcpToggle"),onOpenChange:E,onConfirm:()=>{E(!1),L.mutate(!0)}}),(0,b.jsx)(an.Dialog,{open:null!==t,onOpenChange:a=>!a&&u(null),children:(0,b.jsxs)(an.DialogContent,{children:[(0,b.jsxs)(an.DialogHeader,{children:[(0,b.jsx)(an.DialogTitle,{children:a("settings.mcpRevokeConfirm")}),(0,b.jsx)(an.DialogDescription,{children:t?.name})]}),(0,b.jsxs)(an.DialogFooter,{children:[(0,b.jsx)(w.Button,{variant:"outline",onClick:()=>u(null),children:a("settings.mcpClose")}),(0,b.jsx)(w.Button,{variant:"destructive",disabled:O.isPending,onClick:()=>t&&O.mutate(t.id),children:a("settings.mcpRevoke")})]})]})})]})}function aq({endpoint:a,scopes:c,onToggleScope:d,onCreate:e,creating:f,name:g,onNameChange:h,projectIds:i,onProjectIdsChange:j,projects:k,projectsLoading:l,projectsError:m,onAllScopes:n,expiresInHours:o,onExpiresInHoursChange:p,tokens:q,loading:r,error:s,onRevoke:t,onEdit:u}){let x=(0,B.useUiLocale)(),{t:A}=(0,B.useLanguage)(),C=null!==o&&(!Number.isInteger(o)||o<1||o>87600),D=[];g.trim()||D.push(A("settings.mcpFormMissingName")),0===i.length&&D.push(A("settings.mcpFormMissingProjects")),l&&D.push(A("common.loading")),m&&D.push(A("settings.mcpFormProjectsUnavailable")),C&&D.push(A("settings.mcpFormInvalidExpiry"));let E=D.join("、");return(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("form",{onSubmit:e,className:"space-y-2.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsx)(z.Label,{className:"text-xs",htmlFor:"mcp-token-name",children:A("settings.mcpName")}),(0,b.jsx)(y.Input,{id:"mcp-token-name",value:g,onChange:a=>h(a.target.value),maxLength:64,className:"h-8 text-xs"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 pb-1.5",children:[(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(am.Checkbox,{checked:c.includes("read"),onCheckedChange:()=>d("read"),"aria-label":A("settings.mcpScopeRead")}),A("settings.mcpScopeRead")]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(am.Checkbox,{checked:c.includes("operate"),onCheckedChange:()=>d("operate"),"aria-label":A("settings.mcpScopeOperate")}),A("settings.mcpScopeOperate")]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(am.Checkbox,{checked:c.includes("cli_dispatch"),onCheckedChange:()=>d("cli_dispatch"),"aria-label":A("settings.mcpScopeCliDispatch")}),A("settings.mcpScopeCliDispatch")]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(am.Checkbox,{checked:c.includes("lifecycle"),onCheckedChange:()=>d("lifecycle"),"aria-label":A("settings.mcpScopeLifecycle")}),A("settings.mcpScopeLifecycle")]}),(0,b.jsx)(w.Button,{type:"button",variant:"outline",size:"sm",className:"h-8",onClick:n,children:A("settings.mcpAllPermissions")}),(0,b.jsx)(w.Button,{type:"submit",size:"sm",className:"h-8",disabled:f||D.length>0,title:D.length>0?A("settings.mcpFormCannotCreate").replace("{reasons}",E):void 0,children:f?A("common.loading"):A("settings.mcpCreate")})]})]}),D.length>0?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:A("settings.mcpFormCannotCreate").replace("{reasons}",E)}):null,(0,b.jsx)(ar,{projects:k,loading:l,error:m,selected:i,onChange:j}),(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(z.Label,{className:"text-xs",htmlFor:"mcp-lifetime",children:A("settings.mcpLifetime")}),(0,b.jsxs)("select",{id:"mcp-lifetime",className:"h-8 rounded-md border border-input bg-background px-2 text-xs",value:null===o?"permanent":"limited",onChange:a=>p("permanent"===a.target.value?null:24),children:[(0,b.jsx)("option",{value:"permanent",children:A("settings.mcpPermanent")}),(0,b.jsx)("option",{value:"limited",children:A("settings.mcpLimited")})]})]}),null!==o&&(0,b.jsxs)("div",{className:"w-32 space-y-1",children:[(0,b.jsx)(z.Label,{className:"text-xs",htmlFor:"mcp-expiry-hours",children:A("settings.mcpExpiresHours")}),(0,b.jsx)(y.Input,{id:"mcp-expiry-hours",type:"number",min:1,max:87600,value:o,onChange:a=>p(Number(a.target.value)),className:"h-8 text-xs"})]}),(0,b.jsx)("p",{className:"pb-1 text-xs text-muted-foreground",children:A("settings.mcpLifetimeHelp")})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:A("settings.mcpScopeOperateHelp")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:A("settings.mcpLifecycleHelp")})]}),(0,b.jsx)("div",{className:"rounded-md border border-border/70",children:s?(0,b.jsx)("p",{className:"p-3 text-xs text-destructive",children:A("settings.mcpLoadFailed")}):r?(0,b.jsx)("p",{className:"p-3 text-xs text-muted-foreground",children:A("common.loading")}):q&&q.length>0?(0,b.jsx)("div",{className:"divide-y divide-border/70",children:q.map(a=>(0,b.jsxs)("div",{className:(0,U.cn)("flex flex-wrap items-center gap-x-3 gap-y-1 px-3 py-2.5",a.revoked&&"opacity-60"),children:[(0,b.jsx)("span",{className:"min-w-0 truncate text-sm font-medium",children:a.name}),a.scopes.map(a=>(0,b.jsx)(v.Badge,{variant:"operate"===a?"secondary":"outline",children:"lifecycle"===a?A("settings.mcpScopeLifecycle"):"operate"===a?A("settings.mcpScopeOperate"):"cli_dispatch"===a?A("settings.mcpScopeCliDispatch"):A("settings.mcpScopeRead")},a)),a.projectIds&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.projectIds.map(a=>k.find(b=>b.id===a)?.name??A("settings.mcpUnavailableProject")).join("、")}),!a.projectIds&&!a.allowedRoot&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:A("settings.mcpLegacyAccess")}),a.allowedRoot&&(0,b.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:a.allowedRoot}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.expiresAt?`${A("settings.mcpExpiresAt")}: ${new Date(a.expiresAt).toLocaleString(x)}`:A("settings.mcpPermanent")}),a.revoked&&(0,b.jsx)(v.Badge,{variant:"destructive",children:A("settings.mcpRevoked")}),(0,b.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:a.lastUsedAt?`${A("settings.mcpLastUsed")}: ${new Date(a.lastUsedAt).toLocaleString(x)}`:A("settings.mcpNeverUsed")}),!a.revoked&&(0,b.jsx)(w.Button,{type:"button",variant:"ghost",size:"icon",className:"size-7 shrink-0","aria-label":`${A("settings.mcpEditProjects")} ${a.name}`,onClick:()=>u(a),disabled:!!a.expiresAt&&Date.parse(a.expiresAt)<=Date.now(),children:(0,b.jsx)(al.Pencil,{className:"size-3.5"})}),!a.revoked&&(0,b.jsx)(w.Button,{type:"button",variant:"ghost",size:"icon",className:"size-7 shrink-0 text-destructive hover:text-destructive","aria-label":`${A("settings.mcpRevoke")} ${a.name}`,onClick:()=>t(a),children:(0,b.jsx)(ae.Trash2,{className:"size-3.5"})})]},a.id))}):(0,b.jsx)("p",{className:"p-3 text-xs text-muted-foreground",children:A("settings.mcpEmpty")})}),(0,b.jsx)(au,{endpoint:a})]})}function ar({projects:a,loading:d,error:e,selected:f,onChange:g}){let{t:h}=(0,B.useLanguage)(),[i,j]=(0,c.useState)(""),k=a.filter(a=>`${a.name} ${a.path}`.toLowerCase().includes(i.trim().toLowerCase())),l=d||e?[]:f.filter(b=>!a.some(a=>a.id===b));return(0,b.jsxs)("fieldset",{className:"min-w-0 space-y-2 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("legend",{className:"px-1 text-xs font-medium",children:[h("settings.mcpProjects")," · ",f.length]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(y.Input,{"aria-label":h("settings.mcpSearchProjects"),placeholder:h("settings.mcpSearchProjects"),value:i,onChange:a=>j(a.target.value),className:"h-8 min-w-0 text-xs"}),(0,b.jsx)(w.Button,{type:"button",variant:"outline",size:"sm",disabled:d||e||0===a.length||a.length>200,onClick:()=>g(a.map(a=>a.id)),children:h("settings.mcpSelectAll")}),(0,b.jsx)(w.Button,{type:"button",variant:"ghost",size:"sm",disabled:0===f.length,onClick:()=>g([]),children:h("settings.mcpClear")})]}),d?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("common.loading")}):e?(0,b.jsx)("p",{className:"text-xs text-destructive",children:h("settings.mcpProjectsFailed")}):0===k.length?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h(0===a.length?"settings.mcpNoProjects":"settings.mcpNoMatches")}):(0,b.jsx)("div",{className:"max-h-48 space-y-1 overflow-y-auto",children:k.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 hover:bg-muted/40",children:[(0,b.jsx)(am.Checkbox,{"aria-label":a.name,checked:f.includes(a.id),disabled:!f.includes(a.id)&&f.length>=200,onCheckedChange:b=>g(!0===b?[...f,a.id]:f.filter(b=>b!==a.id))}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"block truncate text-xs font-medium",children:a.name}),(0,b.jsx)("span",{className:"block truncate font-mono text-xs text-muted-foreground",children:a.path})]})]},a.id))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("settings.mcpProjectsHelp")}),l.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)(am.Checkbox,{checked:!0,"aria-label":`${h("settings.mcpUnavailableProject")} ${a}`,onCheckedChange:()=>g(f.filter(b=>b!==a))}),h("settings.mcpUnavailableProject")," · ",a]},a))]})}function as({token:a,projects:d,loading:e,error:f,onClose:g}){let{t:h}=(0,B.useLanguage)(),i=(0,r.useQueryClient)(),[j,k]=(0,c.useState)(a.projectIds??[]),l=(0,p.useMutation)({mutationFn:F.updateMcpTokenProjects,onError:()=>{i.invalidateQueries({queryKey:F.mcpTokensKey})},onSuccess:()=>{i.invalidateQueries({queryKey:F.mcpTokensKey}),g()}}),m=j.some(a=>!d.some(b=>b.id===a));return(0,b.jsx)(an.Dialog,{open:!0,onOpenChange:a=>{a||l.isPending||g()},children:(0,b.jsxs)(an.DialogContent,{className:"max-h-[calc(100dvh-2rem)] grid-cols-[minmax(0,1fr)] overflow-y-auto",children:[(0,b.jsxs)(an.DialogHeader,{children:[(0,b.jsxs)(an.DialogTitle,{children:[h("settings.mcpEditProjects")," · ",a.name]}),(0,b.jsx)(an.DialogDescription,{children:h("settings.mcpEditProjectsHelp")})]}),(0,b.jsx)(ar,{projects:d,loading:e,error:f,selected:j,onChange:k}),l.isError&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-destructive",children:l.error instanceof F.GatewayApiError?l.error.message:h("settings.mcpProjectsSaveFailed")}),(0,b.jsxs)(an.DialogFooter,{children:[(0,b.jsx)(w.Button,{variant:"outline",disabled:l.isPending,onClick:g,children:h("common.cancel")}),(0,b.jsx)(w.Button,{disabled:l.isPending||e||f||m||0===j.length||j.length>200,onClick:()=>l.mutate({id:a.id,projectIds:j,expectedProjectIds:a.projectIds??null}),children:h(l.isPending?"common.loading":"common.save")})]})]})})}function at(a,b){return JSON.stringify({mcpServers:{forgebadger:{type:"http",url:a,headers:{Authorization:`Bearer ${b}`}}}},null,2)}function au({endpoint:a}){let{t:c}=(0,B.useLanguage)();return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("settings.mcpConnectHelp")}),(0,b.jsx)(av,{label:c("settings.mcpConnectJson"),content:at(a,c("settings.mcpTokenPlaceholder"))})]})}function av({label:a,content:c}){let{t:d}=(0,B.useLanguage)();async function e(){if("u">typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(c),af.toast.success(d("settings.mcpCopied"))}catch{af.toast.error(d("settings.mcpCopyFailed"))}}return(0,b.jsxs)("div",{className:"min-w-0 max-w-full overflow-hidden rounded-md border border-border/70 bg-muted/20",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border/70 px-3 py-1.5",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)(w.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":a,onClick:()=>void e(),children:(0,b.jsx)(ak.Copy,{className:"size-3.5"})})]}),(0,b.jsx)("pre",{className:"min-w-0 max-w-full overflow-x-auto p-3 font-mono text-xs leading-relaxed",children:c})]})}function aw({endpoint:a,plaintext:c,onClose:d,onCopy:e}){let{t:f}=(0,B.useLanguage)();return(0,b.jsx)(an.Dialog,{open:null!==c,onOpenChange:a=>!a&&d(),children:(0,b.jsxs)(an.DialogContent,{className:"max-h-[calc(100dvh-2rem)] grid-cols-[minmax(0,1fr)] overflow-y-auto",children:[(0,b.jsxs)(an.DialogHeader,{children:[(0,b.jsx)(an.DialogTitle,{children:f("settings.mcpPlaintextTitle")}),(0,b.jsx)(an.DialogDescription,{children:f("settings.mcpPlaintextWarning")})]}),(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-xs",children:c}),(0,b.jsxs)(w.Button,{type:"button",variant:"outline",size:"sm",className:"shrink-0",onClick:()=>c&&e(c),children:[(0,b.jsx)(ak.Copy,{className:"size-3.5"}),f("settings.mcpCopy")]})]}),c&&(0,b.jsx)(av,{label:f("settings.mcpConnectJson"),content:at(a,c)}),(0,b.jsx)(an.DialogFooter,{children:(0,b.jsx)(w.Button,{onClick:d,children:f("settings.mcpClose")})})]})})}var ax=a.i(64457),ay=a.i(22510),az=a.i(62803);let aA=(0,i.default)("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]),aB=(0,i.default)("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);var aC=a.i(94327),aD=a.i(23579),aE=a.i(48844),aF=a.i(11200),aG=a.i(20409);function aH({preview:a}){return(0,b.jsxs)("div",{className:"flex h-32 overflow-hidden rounded-lg border border-black/10 text-left",style:{backgroundColor:a.background,color:a.foreground},"aria-hidden":"true",children:[(0,b.jsxs)("div",{className:"flex w-[28%] shrink-0 flex-col border-r p-2",style:{backgroundColor:a.sidebar,borderColor:a.card},children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"size-2 rounded-[3px]",style:{backgroundColor:a.accent}}),(0,b.jsx)("span",{className:"h-1 w-8 rounded-full",style:{backgroundColor:a.muted}})]}),(0,b.jsxs)("div",{className:"-mx-1 flex items-center gap-1.5 rounded px-1 py-1",style:{backgroundColor:a.card,color:a.accent},children:[(0,b.jsx)(az.FileCode2,{className:"size-3",strokeWidth:1.8}),(0,b.jsx)("span",{className:"font-mono text-[7px]",children:"theme.ts"})]}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-1.5 px-1 py-1",style:{color:a.muted},children:[(0,b.jsx)(ax.Braces,{className:"size-3",strokeWidth:1.8}),(0,b.jsx)("span",{className:"font-mono text-[7px]",children:"tokens.json"})]}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-1.5 px-1 py-1",style:{color:a.muted},children:[(0,b.jsx)(aC.TerminalSquare,{className:"size-3",strokeWidth:1.8}),(0,b.jsx)("span",{className:"font-mono text-[7px]",children:"terminal"})]})]}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex h-6 items-center gap-1.5 border-b px-2.5",style:{backgroundColor:a.card,borderColor:a.sidebar},children:[(0,b.jsx)(az.FileCode2,{className:"size-2.5",style:{color:a.accent},strokeWidth:1.8}),(0,b.jsx)("span",{className:"font-mono text-[7px]",children:"theme.ts"}),(0,b.jsx)("span",{className:"ml-auto size-1 rounded-full",style:{backgroundColor:a.muted}})]}),(0,b.jsxs)("div",{className:"space-y-1.5 px-3 py-3 font-mono text-[8px] leading-none",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{style:{color:a.purple},children:"const"})," ",(0,b.jsx)("span",{style:{color:a.accent},children:"workspace"})," = ","{"]}),(0,b.jsxs)("div",{className:"pl-3",children:[(0,b.jsx)("span",{style:{color:a.foreground},children:"theme"}),": ",(0,b.jsx)("span",{style:{color:a.green},children:'"focused"'}),","]}),(0,b.jsxs)("div",{className:"pl-3",children:[(0,b.jsx)("span",{style:{color:a.foreground},children:"contrast"}),": ",(0,b.jsx)("span",{style:{color:a.yellow},children:'"comfortable"'}),","]}),(0,b.jsxs)("div",{children:["}",";"]})]}),(0,b.jsxs)("div",{className:"mx-2.5 flex items-center gap-1.5 rounded px-2 py-1.5 font-mono text-[7px]",style:{backgroundColor:a.sidebar,color:a.muted},children:[(0,b.jsx)(aC.TerminalSquare,{className:"size-2.5",style:{color:a.accent},strokeWidth:1.8}),(0,b.jsx)("span",{style:{color:a.green},children:"●"}),(0,b.jsx)("span",{children:"ready"})]})]})]})}function aI({theme:a,preferred:c,active:d,followsSystem:e}){let{t:f}=(0,B.useLanguage)();return(0,b.jsxs)("button",{type:"button","aria-pressed":d,"aria-label":a.name,"data-theme-choice":a.id,onClick:function(){(0,aF.setColorTheme)(a.id),e||(0,aG.setColorMode)(a.mode)},className:(0,U.cn)("group rounded-xl border p-2.5 text-left outline-none transition-[border-color,box-shadow,background-color] duration-150 focus-visible:ring-2 focus-visible:ring-ring/60",d?"border-brand/70 bg-brand/[0.06] shadow-[0_0_0_1px_hsl(var(--brand)/0.16)]":"border-border bg-card hover:border-brand/35 hover:bg-muted/30"),children:[(0,b.jsx)(aH,{preview:a.preview}),(0,b.jsxs)("div",{className:"flex items-start gap-2 px-0.5 pb-0.5 pt-3",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"text-sm font-medium text-foreground",children:a.name}),(0,b.jsx)("p",{className:"mt-1 text-xs leading-5 text-muted-foreground",children:f(a.descriptionKey)})]}),c&&!d?(0,b.jsx)("span",{className:"mt-0.5 shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10px] text-muted-foreground",children:f("settings.themePreferred")}):(0,b.jsx)("span",{className:(0,U.cn)("mt-0.5 flex size-5 shrink-0 items-center justify-center rounded-full border",d?"border-brand bg-brand text-brand-foreground":"border-border text-transparent"),children:(0,b.jsx)(ay.Check,{className:"size-3",strokeWidth:2.5})})]})]})}function aJ(){let a=(0,aE.useColorTheme)(),{mode:c,resolved:d}=(0,aD.useColorMode)(),{t:e}=(0,B.useLanguage)(),f="system"===c;return(0,b.jsxs)(A.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)(j,{className:"size-4"}),title:e("settings.theme"),description:e("settings.themeDescription"),action:(0,b.jsxs)("label",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[e("settings.colorModeSystem"),(0,b.jsx)(ag.Switch,{"aria-label":e("settings.colorModeSystem"),checked:f,onCheckedChange:a=>(0,aG.setColorMode)(a?"system":d)})]})}),(0,b.jsx)(A.CardContent,{className:"space-y-6",children:[{mode:"dark",labelKey:"settings.themeDarkGroup",systemLabelKey:"settings.themeSystemDarkGroup",icon:aA},{mode:"light",labelKey:"settings.themeLightGroup",systemLabelKey:"settings.themeSystemLightGroup",icon:aB}].map(c=>(0,b.jsxs)("fieldset",{children:[(0,b.jsxs)("legend",{className:"mb-3 flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,b.jsx)(c.icon,{className:"size-3.5",strokeWidth:1.8}),e(f?c.systemLabelKey:c.labelKey)]}),(0,b.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:aF.COLOR_THEMES.filter(a=>a.mode===c.mode).map(e=>{let g=a[c.mode]===e.id;return(0,b.jsx)(aI,{theme:e,preferred:g,active:g&&d===c.mode,followsSystem:f},e.id)})})]},c.mode))})]})}var aK=a.i(60427),aL=a.i(53302),aM=a.i(68442),aN=a.i(49613);function aO(){let{t:a}=(0,B.useLanguage)(),d=(0,aM.usePetPreference)(),e=(0,c.useId)(),[f,g]=(0,c.useState)("idle");return(0,b.jsxs)(A.Card,{children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)(aK.Bot,{className:"size-4","aria-hidden":"true"}),title:a("settings.pet"),description:a("settings.petDescription"),titleId:e}),(0,b.jsxs)(A.CardContent,{className:"space-y-3",children:[(0,b.jsx)("div",{role:"radiogroup","aria-labelledby":e,className:"grid gap-3 sm:grid-cols-2",children:aN.PET_OPTIONS.map(c=>{let f=d===c.id,h=`${e}-${c.id}-name`,i=`${e}-${c.id}-description`;return(0,b.jsxs)("button",{type:"button",role:"radio","aria-checked":f,"aria-labelledby":h,"aria-describedby":i,onClick:()=>{var a;return a=c.id,void g((0,aN.writePetPreference)(a)?"saved":"error")},className:(0,U.cn)("flex items-center gap-3 rounded-md border p-3 text-left outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring",f?"border-brand/60 bg-brand/10":"border-border hover:bg-muted/40"),children:[(0,b.jsx)("span",{className:"shrink-0 rounded-md bg-muted/40 p-1","aria-hidden":"true",children:(0,b.jsx)(aL.RobotSprite,{petId:c.id,frame:"stand",size:80})}),(0,b.jsxs)("span",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsx)("span",{id:h,className:"block text-sm font-medium",children:a(c.nameKey)}),(0,b.jsx)("span",{id:i,className:"block text-xs leading-relaxed text-muted-foreground",children:a(c.descriptionKey)}),f&&(0,b.jsxs)("span",{className:"flex items-center gap-1 text-xs text-brand","aria-hidden":"true",children:[(0,b.jsx)(ay.Check,{className:"size-3"}),a("settings.petSelected")]})]})]},c.id)})}),"saved"===f&&(0,b.jsx)("p",{role:"status",className:"text-xs text-muted-foreground",children:a("settings.petSaved")}),"error"===f&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-destructive",children:a("settings.petSaveFailed")})]})]})}function aP(){let{t:a}=(0,B.useLanguage)(),c=(0,C.useAdminCopy)(),{data:d}=(0,q.useQuery)({queryKey:["dependencies"],queryFn:F.getDependencies}),e=d?.terminalRuntime?.persistence??a("settings.notDetected");return(0,b.jsxs)(A.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)(n.ShieldCheck,{className:"size-4"}),title:a("settings.securityBaseline"),description:a("settings.securityDescription")}),(0,b.jsxs)(A.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:[(0,b.jsx)(aQ,{label:a("settings.jwtAuth"),value:c.securityBaselineGuaranteed}),(0,b.jsx)(aQ,{label:a("settings.tenantIsolation"),value:c.securityBaselineGuaranteed}),(0,b.jsx)(aQ,{label:a("settings.apiKeyEncryption"),value:"AES-256-GCM"}),(0,b.jsx)(aQ,{label:a("settings.terminalPersistence"),value:e})]}),(0,b.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[(0,b.jsx)(s.KeyRound,{className:"mt-0.5 size-3.5 shrink-0"}),(0,b.jsx)("span",{children:c.securityBaselineGuaranteedHint})]}),(0,b.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[(0,b.jsx)(s.KeyRound,{className:"mt-0.5 size-3.5 shrink-0"}),(0,b.jsx)("span",{children:a("settings.secretsNotice")})]})]})]})}function aQ({label:a,value:c}){return(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 py-2.5 text-sm",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:a}),(0,b.jsx)(v.Badge,{variant:"secondary",children:c})]})}var aR=a.i(42167),aS=a.i(61047);let aT=[{code:"zh-CN",label:"简体中文"},{code:"zh-TW",label:"繁體中文"},{code:"en",label:"English"}],aU=[{id:"appearance",icon:j,labelKey:"settings.section.appearance",descriptionKey:"settings.section.appearanceDescription"},{id:"account",icon:n.ShieldCheck,labelKey:"settings.section.account",descriptionKey:"settings.section.accountDescription"},{id:"adapters",icon:g.Cpu,labelKey:"settings.section.adapters",descriptionKey:"settings.section.adaptersDescription"},{id:"integrations",icon:k.Plug,labelKey:"settings.section.integrations",descriptionKey:"settings.section.integrationsDescription"},{id:"instance",icon:l.Server,labelKey:"settings.section.instance",descriptionKey:"settings.section.instanceDescription"}];a.s(["default",0,function(){let{language:a,setLanguage:g,t:i}=(0,B.useLanguage)(),{user:j}=(0,ao.useAuth)(),k=(0,e.useSearchParams)(),[l,n]=(0,c.useState)(!1),[p,q]=(0,c.useState)("unsupported"),[r,s]=(0,c.useState)(aR.DEFAULT_TERMINAL_FONT.fontFamily),[t,u]=(0,c.useState)(String(aR.DEFAULT_TERMINAL_FONT.fontSize));function v(){let a=Number(t);(0,aR.setTerminalFont)({fontFamily:r,fontSize:Number.isFinite(a)&&""!==t?a:aR.DEFAULT_TERMINAL_FONT.fontSize})}(0,c.useEffect)(()=>{let a=(0,aR.readStoredTerminalFont)();s(a.fontFamily),u(String(a.fontSize)),n((0,aS.getBrowserNotificationPreference)()),q((0,aS.getBrowserNotificationPermission)())},[]);let x=j?.role==="admin",C=x?aU:aU.filter(a=>"instance"!==a.id),E=k.get("section"),F=C.find(a=>a.id===E)??aU[0];async function G(a){if(!a){(0,aS.setBrowserNotificationPreference)(!1),n(!1),q((0,aS.getBrowserNotificationPermission)());return}let b="default"===(0,aS.getBrowserNotificationPermission)()?await (0,aS.requestBrowserNotificationPermission)():(0,aS.getBrowserNotificationPermission)();q(b);let c="granted"===b;(0,aS.setBrowserNotificationPreference)(c),n(c)}return(0,b.jsxs)("div",{className:"mx-auto max-w-6xl space-y-6 p-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:i("settings.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:i("settings.subtitle")})]}),(0,b.jsxs)("div",{className:"lg:grid lg:grid-cols-[200px_minmax(0,1fr)] lg:gap-8",children:[(0,b.jsx)("nav",{"aria-label":i("settings.title"),className:"mb-4 flex gap-1 overflow-x-auto lg:sticky lg:top-6 lg:mb-0 lg:flex-col lg:self-start",children:C.map(a=>(0,b.jsxs)(d.default,{href:`/settings?section=${a.id}`,"aria-current":F.id===a.id?"page":void 0,className:(0,U.cn)("flex h-8 shrink-0 items-center gap-2.5 rounded-md px-2.5 text-[13px] font-medium transition-colors duration-150",F.id===a.id?"bg-brand/10 text-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[(0,b.jsx)(a.icon,{className:(0,U.cn)("size-4 shrink-0",F.id===a.id?"text-brand":"text-muted-foreground/70")}),i(a.labelKey)]},a.id))}),(0,b.jsxs)("div",{className:"min-w-0",children:["appearance"===F.id&&(0,b.jsxs)(D.SettingsSection,{title:i(F.labelKey),description:i(F.descriptionKey),children:[(0,b.jsxs)(A.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)(h.Globe2,{className:"size-4"}),title:i("settings.language"),description:i("settings.languageDescription")}),(0,b.jsx)(A.CardContent,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:aT.map(c=>(0,b.jsx)(w.Button,{type:"button",variant:a===c.code?"brand":"outline",size:"sm",onClick:()=>g(c.code),children:c.label},c.code))})})]}),(0,b.jsx)(aJ,{}),(0,b.jsxs)(A.Card,{className:"forgebadger-animate-in",style:{animationDelay:"120ms"},children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)(o,{className:"size-4"}),title:i("settings.terminalFont"),description:i("settings.terminalFontDescription")}),(0,b.jsx)(A.CardContent,{children:(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,b.jsxs)("div",{className:"grid min-w-52 flex-1 gap-2",children:[(0,b.jsx)(z.Label,{htmlFor:"terminal-font-family",className:"text-xs text-muted-foreground",children:i("settings.terminalFontFamily")}),(0,b.jsx)(y.Input,{id:"terminal-font-family",value:r,onChange:a=>s(a.target.value),onBlur:v,onKeyDown:a=>{"Enter"===a.key&&v()},spellCheck:!1,className:"font-mono text-xs"})]}),(0,b.jsxs)("div",{className:"grid w-24 gap-2",children:[(0,b.jsx)(z.Label,{htmlFor:"terminal-font-size",className:"text-xs text-muted-foreground",children:i("settings.terminalFontSize")}),(0,b.jsx)(y.Input,{id:"terminal-font-size",type:"number",min:aR.MIN_TERMINAL_FONT_SIZE,max:aR.MAX_TERMINAL_FONT_SIZE,value:t,onChange:a=>u(a.target.value),onBlur:v,onKeyDown:a=>{"Enter"===a.key&&v()}})]}),(0,b.jsx)(w.Button,{type:"button",variant:"outline",size:"sm",onClick:function(){s(aR.DEFAULT_TERMINAL_FONT.fontFamily),u(String(aR.DEFAULT_TERMINAL_FONT.fontSize)),(0,aR.setTerminalFont)(aR.DEFAULT_TERMINAL_FONT)},children:i("settings.terminalFontReset")})]})})]}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"160ms"},children:(0,b.jsx)(aO,{})}),(0,b.jsxs)(A.Card,{className:"forgebadger-animate-in",style:{animationDelay:"200ms"},children:[(0,b.jsx)(D.SettingsCardHeader,{icon:(0,b.jsx)(m,{className:"size-4"}),title:i("settings.console"),description:i("settings.consoleDescription")}),(0,b.jsx)(A.CardContent,{className:"space-y-2",children:(0,b.jsx)(D.SettingRow,{title:i("settings.browserNotifications"),description:"denied"===p?i("settings.browserNotificationsDenied"):i("settings.browserNotificationsDescription"),checked:l&&"granted"===p,disabled:"unsupported"===p,onCheckedChange:G,icon:(0,b.jsx)(f.Bell,{className:"size-4 text-muted-foreground"})})})]})]}),"account"===F.id&&(0,b.jsxs)(D.SettingsSection,{title:i(F.labelKey),description:i(F.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(H,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(aP,{})})]}),"adapters"===F.id&&(0,b.jsxs)(D.SettingsSection,{title:i(F.labelKey),description:i(F.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(V,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(ah,{})})]}),"integrations"===F.id&&(0,b.jsx)(D.SettingsSection,{title:i(F.labelKey),description:i(F.descriptionKey),children:(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(ap,{})})}),"instance"===F.id&&x&&(0,b.jsxs)(D.SettingsSection,{title:i(F.labelKey),description:i(F.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(aj.InstanceRuntimeSettings,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(ai,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"80ms"},children:(0,b.jsx)(_,{})})]})]},F.id)]})]})}],68236)}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=packages_web_src_app_%28dashboard%29_settings_page_tsx_05ku4-o._.js.map
|