flujo-ai 3.44.0 → 3.45.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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +7 -7
- package/.next/build-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/approvals/[id]/route.js +1 -1
- package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/route.js +1 -1
- package/.next/server/app/api/approvals/route.js.nft.json +1 -1
- package/.next/server/app/api/backup/route.js.nft.json +1 -1
- package/.next/server/app/api/bugs/enhance/route.js +1 -1
- package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
- package/.next/server/app/api/encryption/secure/route.js +1 -1
- package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/assist/route.js +1 -1
- package/.next/server/app/api/flow/assist/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/compile/route.js +1 -1
- package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generate/route.js +1 -1
- package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generate/visual/route.js +2 -2
- package/.next/server/app/api/flow/generate/visual/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generator/route.js +1 -1
- package/.next/server/app/api/flow/generator/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/improve/route.js +1 -1
- package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/repair/route.js +1 -1
- package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/route.js.nft.json +1 -1
- package/.next/server/app/api/init/route.js +1 -1
- package/.next/server/app/api/init/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/app-consent/route.js +1 -1
- package/.next/server/app/api/mcp/app-consent/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/app-sandbox/route.js +2 -2
- package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/assistant/route.js +1 -1
- package/.next/server/app/api/mcp/assistant/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/cancel/route.js +1 -1
- package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/authoring/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/authoring/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/automation/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/automation/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/flows/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/flows/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/resources/read/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/resources/read/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/resources/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/resources/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/servers/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/servers/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/state/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/state/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/tools/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/confirm/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/confirm/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/start/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/start/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/route.js +1 -1
- package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp-registry/route.js +1 -1
- package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
- package/.next/server/app/api/model/[id]/route.js +1 -1
- package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/model/provider/route.js +1 -1
- package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
- package/.next/server/app/api/model/route.js +1 -1
- package/.next/server/app/api/model/route.js.nft.json +1 -1
- package/.next/server/app/api/model/test/route.js +1 -1
- package/.next/server/app/api/model/test/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/reset/route.js +1 -1
- package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/install/route.js +1 -1
- package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/install/status/route.js +1 -1
- package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/installed/route.js +1 -1
- package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/uninstall/route.js +1 -1
- package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/route.js +1 -1
- package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
- package/.next/server/app/api/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/runs/active/route.js +1 -1
- package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
- package/.next/server/app/api/telemetry/daily-active/route.js +1 -1
- package/.next/server/app/api/waves/route.js +1 -1
- package/.next/server/app/api/waves/route.js.nft.json +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/automation/triggers/page_client-reference-manifest.js +1 -1
- package/.next/server/app/automation/triggers.html +1 -1
- package/.next/server/app/automation/triggers.rsc +3 -3
- package/.next/server/app/automation/triggers.segments/_full.segment.rsc +3 -3
- package/.next/server/app/automation/triggers.segments/_head.segment.rsc +1 -1
- package/.next/server/app/automation/triggers.segments/_index.segment.rsc +2 -2
- package/.next/server/app/automation/triggers.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/automation/triggers.segments/automation/triggers/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/automation/triggers.segments/automation/triggers.segment.rsc +1 -1
- package/.next/server/app/automation/triggers.segments/automation.segment.rsc +1 -1
- package/.next/server/app/automation/waves/page_client-reference-manifest.js +1 -1
- package/.next/server/app/automation/waves.html +1 -1
- package/.next/server/app/automation/waves.rsc +3 -3
- package/.next/server/app/automation/waves.segments/_full.segment.rsc +3 -3
- package/.next/server/app/automation/waves.segments/_head.segment.rsc +1 -1
- package/.next/server/app/automation/waves.segments/_index.segment.rsc +2 -2
- package/.next/server/app/automation/waves.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/automation/waves.segments/automation/waves/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/automation/waves.segments/automation/waves.segment.rsc +1 -1
- package/.next/server/app/automation/waves.segments/automation.segment.rsc +1 -1
- package/.next/server/app/chain-chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chain-chat.html +1 -1
- package/.next/server/app/chain-chat.rsc +3 -3
- package/.next/server/app/chain-chat.segments/_full.segment.rsc +3 -3
- package/.next/server/app/chain-chat.segments/_head.segment.rsc +1 -1
- package/.next/server/app/chain-chat.segments/_index.segment.rsc +2 -2
- package/.next/server/app/chain-chat.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/chain-chat.segments/chain-chat/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/chain-chat.segments/chain-chat.segment.rsc +1 -1
- package/.next/server/app/chat/page.js +4 -4
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +3 -3
- package/.next/server/app/chat.segments/_full.segment.rsc +3 -3
- package/.next/server/app/chat.segments/_head.segment.rsc +1 -1
- package/.next/server/app/chat.segments/_index.segment.rsc +2 -2
- package/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/chat.segments/chat.segment.rsc +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +3 -3
- package/.next/server/app/docs.segments/_full.segment.rsc +3 -3
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/executions.html +1 -1
- package/.next/server/app/executions.rsc +3 -3
- package/.next/server/app/executions.segments/_full.segment.rsc +3 -3
- package/.next/server/app/executions.segments/_head.segment.rsc +1 -1
- package/.next/server/app/executions.segments/_index.segment.rsc +2 -2
- package/.next/server/app/executions.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/executions.segments/executions/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/executions.segments/executions.segment.rsc +1 -1
- package/.next/server/app/flows/page.js +5 -5
- package/.next/server/app/flows/page.js.nft.json +1 -1
- package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/flows.html +1 -1
- package/.next/server/app/flows.rsc +3 -3
- package/.next/server/app/flows.segments/_full.segment.rsc +3 -3
- package/.next/server/app/flows.segments/_head.segment.rsc +1 -1
- package/.next/server/app/flows.segments/_index.segment.rsc +2 -2
- package/.next/server/app/flows.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/flows.segments/flows/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/flows.segments/flows.segment.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/mcp/page.js +1 -1
- package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-flows/route.js +1 -1
- package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
- package/.next/server/app/mcp.html +1 -1
- package/.next/server/app/mcp.rsc +3 -3
- package/.next/server/app/mcp.segments/_full.segment.rsc +3 -3
- package/.next/server/app/mcp.segments/_head.segment.rsc +1 -1
- package/.next/server/app/mcp.segments/_index.segment.rsc +2 -2
- package/.next/server/app/mcp.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/mcp.segments/mcp/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/mcp.segments/mcp.segment.rsc +1 -1
- package/.next/server/app/meetings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/meetings.html +1 -1
- package/.next/server/app/meetings.rsc +3 -3
- package/.next/server/app/meetings.segments/_full.segment.rsc +3 -3
- package/.next/server/app/meetings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/meetings.segments/_index.segment.rsc +2 -2
- package/.next/server/app/meetings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/meetings.segments/meetings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/meetings.segments/meetings.segment.rsc +1 -1
- package/.next/server/app/models/page.js +3 -3
- package/.next/server/app/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages.html +1 -1
- package/.next/server/app/packages.rsc +3 -3
- package/.next/server/app/packages.segments/_full.segment.rsc +3 -3
- package/.next/server/app/packages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/packages.segments/_index.segment.rsc +2 -2
- package/.next/server/app/packages.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/packages.segments/packages/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/packages.segments/packages.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +2 -2
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +3 -3
- package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/statistics/page_client-reference-manifest.js +1 -1
- package/.next/server/app/statistics.html +1 -1
- package/.next/server/app/statistics.rsc +3 -3
- package/.next/server/app/statistics.segments/_full.segment.rsc +3 -3
- package/.next/server/app/statistics.segments/_head.segment.rsc +1 -1
- package/.next/server/app/statistics.segments/_index.segment.rsc +2 -2
- package/.next/server/app/statistics.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/statistics.segments/statistics/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/statistics.segments/statistics.segment.rsc +1 -1
- package/.next/server/app/v1/chat/completions/route.js +1 -1
- package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversation-chains/route.js +1 -1
- package/.next/server/app/v1/chat/conversation-chains/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/attach/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/attach/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/state/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/state/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/recovery/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/recovery/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/events/route.js +1 -1
- package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/cancel/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/start/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/start/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/route.js +1 -1
- package/.next/server/app/v1/meetings/route.js.nft.json +1 -1
- package/.next/server/app/v1/models/route.js +1 -1
- package/.next/server/app/v1/models/route.js.nft.json +1 -1
- package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
- package/.next/server/app/waves.html +1 -1
- package/.next/server/app/waves.rsc +3 -3
- package/.next/server/app/waves.segments/_full.segment.rsc +3 -3
- package/.next/server/app/waves.segments/_head.segment.rsc +1 -1
- package/.next/server/app/waves.segments/_index.segment.rsc +2 -2
- package/.next/server/app/waves.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/waves.segments/waves/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/waves.segments/waves.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +7 -7
- package/.next/server/chunks/1114.js +1 -1
- package/.next/server/chunks/{4271.js → 2126.js} +13 -13
- package/.next/server/chunks/2425.js +1 -1
- package/.next/server/chunks/244.js +1 -1
- package/.next/server/chunks/2728.js +1 -1
- package/.next/server/chunks/2970.js +1 -1
- package/.next/server/chunks/3133.js +2 -2
- package/.next/server/chunks/4558.js +1 -1
- package/.next/server/chunks/4779.js +1 -0
- package/.next/server/chunks/531.js +1 -1
- package/.next/server/chunks/5354.js +1 -1
- package/.next/server/chunks/5831.js +1 -1
- package/.next/server/chunks/609.js +1 -1
- package/.next/server/chunks/75.js +1 -1
- package/.next/server/chunks/7513.js +1 -1
- package/.next/server/chunks/7754.js +60 -60
- package/.next/server/chunks/811.js +1 -1
- package/.next/server/chunks/8542.js +1 -1
- package/.next/server/chunks/87.js +1 -1
- package/.next/server/chunks/8767.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{8851-1ea4bbf9945c7b34.js → 2375-af6ebf80d9cb9975.js} +2 -2
- package/.next/static/chunks/{4742-e151939b0ae7ba74.js → 3841-0e4a10c621cac0e6.js} +1 -1
- package/.next/static/chunks/{5147-d239d0147237bb58.js → 5147-ec07dd70c20ec0b5.js} +1 -1
- package/.next/static/chunks/5212-898f308c44a32c22.js +2 -0
- package/.next/static/chunks/7401-cffc7c5fa1f5f06e.js +10 -0
- package/.next/static/chunks/app/chat/page-5b6d507b576cea9c.js +7 -0
- package/.next/static/chunks/app/flows/page-9b16d049d43ac817.js +9 -0
- package/.next/static/chunks/app/mcp/{page-70535f4bce57edbe.js → page-e4c284466c17fe32.js} +1 -1
- package/.next/static/chunks/app/models/page-2891efa80c126790.js +11 -0
- package/.next/static/chunks/{webpack-7efb2620f630c7d5.js → webpack-d9f1e56ee69d988f.js} +1 -1
- package/.next/trace +104 -104
- package/.next/trace-build +1 -1
- package/README.md +6 -3
- package/mcp-servers/bash/package.json +1 -1
- package/mcp-servers/browser/dist/resources.js +29 -3
- package/mcp-servers/browser/dist/resources.js.map +1 -1
- package/mcp-servers/browser/package.json +1 -1
- package/mcp-servers/filesystem/dist/resources.js +1 -1
- package/mcp-servers/filesystem/package.json +1 -1
- package/mcp-servers/flujo/package.json +1 -1
- package/package.json +5 -5
- package/.next/server/chunks/387.js +0 -1
- package/.next/static/chunks/5212-fa397222d5251b43.js +0 -2
- package/.next/static/chunks/7401-b0f0d4a7b2597302.js +0 -10
- package/.next/static/chunks/app/chat/page-3db891cc7ba29084.js +0 -7
- package/.next/static/chunks/app/flows/page-6b6748bc74604103.js +0 -9
- package/.next/static/chunks/app/models/page-e3430501cd05ff1f.js +0 -11
- /package/.next/static/{yjYCceqlIl4V9blcEb5AK → 4x_Vc1-WtJtqgqFZnCq3D}/_buildManifest.js +0 -0
- /package/.next/static/{yjYCceqlIl4V9blcEb5AK → 4x_Vc1-WtJtqgqFZnCq3D}/_ssgManifest.js +0 -0
|
@@ -52,7 +52,7 @@ ${p("mcp.local.console.testError",{error:e.message||p("mcp.server.unknownError")
|
|
|
52
52
|
❌ ${p("mcp.local.messages.testFailed")}
|
|
53
53
|
`))}catch(e){console.error("Error testing stdio connection:",e),s(t=>t+`
|
|
54
54
|
${p("mcp.local.console.testError",{error:e.message||p("mcp.server.unknownError")})}
|
|
55
|
-
`),o({type:"error",text:p("mcp.local.messages.testError")})}finally{a(!1)}};var tu=r(9160),th=r(73212),tg=r(44493),tf=r(47863),tx=r(10685),tv=r(24563),tb=r(96606),ty=r(2255);async function tj(e,t){let r=await e.json().catch(()=>null);return Error(r?.error||t)}async function tA(e,t,r){let a=await fetch("/api/mcp/assistant",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"research",...e}),signal:r});if(!a.ok)throw await tj(a,"Could not research MCP servers.");let n=null,s=null;if(await (0,ty.d)(a,async e=>{await t(e),"complete"===e.type&&(n=e.result),"error"===e.type&&(s=e.error)}),s)throw Error(s);if(!n)throw Error("Research ended without a recommendation.");return n}async function tw(e){let t=await fetch("/api/mcp/assistant",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",install:e})});if(!t.ok)throw await tj(t,"Could not install the MCP server.");return t.json()}async function tC(e){let t=await fetch("/api/mcp/assistant",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"troubleshoot",context:e})});if(!t.ok)throw await tj(t,"Could not diagnose this MCP setup.");return t.json()}function tS({context:e,onApplyPatch:t}){var r;let{t:l}=(0,g.s9)(),[o,i]=(0,s.useState)([]),[c,d]=(0,s.useState)(""),[p,h]=(0,s.useState)(!1),[f,x]=(0,s.useState)(null),[b,j]=(0,s.useState)(null),[w,C]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=!1;return e8.N.loadModels().then(t=>{e||(i(t),d(e=>t.some(t=>t.id===e)?e:t[0]?.id??""))}).catch(()=>{e||j(l("mcp.ai.modelsFailed"))}),()=>{e=!0}},[l]);let S=async()=>{if(c&&!p){h(!0),j(null),x(null),C(!1);try{x(await tC({...e,modelId:c}))}catch(e){j(e instanceof Error?e.message:String(e))}finally{h(!1)}}},k=f?.patch?[(r=f.patch).command?`command → ${r.command}`:null,r.args?`args → ${r.args.join(" ")}`:null,r.serverUrl?`URL → ${r.serverUrl}`:null,r.rootPath?`root → ${r.rootPath}`:null,r.installCommand?`install → ${r.installCommand}`:null,r.buildCommand?`build → ${r.buildCommand}`:null,r.addEnvNames?.length?`add empty env fields → ${r.addEnvNames.join(", ")}`:null,r.addHeaderNames?.length?`add empty header fields → ${r.addHeaderNames.join(", ")}`:null].filter(e=>!!e):[];return(0,a.jsx)(u.A,{variant:"outlined",sx:{mt:2,p:2,borderRadius:2.5},children:(0,a.jsxs)(y.A,{spacing:1.4,children:[(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"flex-start",gap:1},children:[(0,a.jsx)(tv.A,{color:"primary"}),(0,a.jsxs)(n.default,{children:[(0,a.jsx)(m.A,{variant:"subtitle1",sx:{fontWeight:700},children:l("mcp.troubleshoot.title")}),(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",children:l("mcp.troubleshoot.description")})]})]}),(0,a.jsxs)(n.default,{sx:{display:"flex",gap:1,flexWrap:"wrap",alignItems:"center"},children:[(0,a.jsxs)(e3.A,{size:"small",sx:{minWidth:220},children:[(0,a.jsx)(e5.A,{id:"mcp-troubleshoot-model-label",children:l("mcp.ai.model")}),(0,a.jsx)(e6.A,{labelId:"mcp-troubleshoot-model-label",label:l("mcp.ai.model"),value:c,onChange:e=>d(e.target.value),disabled:p||0===o.length,children:o.map(e=>(0,a.jsx)(e4.A,{value:e.id,children:e.displayName||e.name},e.id))})]}),(0,a.jsx)(A.A,{variant:"outlined",startIcon:p?(0,a.jsx)(eb.default,{size:17}):(0,a.jsx)(tx.A,{}),onClick:()=>void S(),disabled:p||!c,children:p?l("mcp.troubleshoot.diagnosing"):l("mcp.troubleshoot.askAi")}),(0,a.jsx)(eA.A,{size:"small",variant:"outlined",label:l("mcp.troubleshoot.privacy")})]}),b?(0,a.jsx)(v.A,{severity:"error",children:b}):null,f?(0,a.jsxs)(y.A,{spacing:1.2,children:[(0,a.jsx)(v.A,{severity:"info",children:f.diagnosis}),f.steps.length?(0,a.jsx)(n.default,{component:"ol",sx:{my:0,pl:2.7},children:f.steps.map(e=>(0,a.jsx)(m.A,{component:"li",variant:"body2",sx:{mb:.4},children:e},e))}):null,f.authHelp?(0,a.jsx)(v.A,{severity:"warning",children:f.authHelp}):null,f.researchedUrls?.length?(0,a.jsx)(n.default,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:f.researchedUrls.map(e=>(0,a.jsxs)(e_.A,{href:e,target:"_blank",rel:"noreferrer",sx:{display:"inline-flex",alignItems:"center",gap:.4,fontSize:12},children:[l("mcp.troubleshoot.researchedSource")," ",(0,a.jsx)(tb.A,{fontSize:"inherit"})]},e))}):null,f.patch&&k.length?(0,a.jsxs)(u.A,{variant:"outlined",sx:{p:1.4,bgcolor:"action.hover"},children:[(0,a.jsx)(m.A,{variant:"subtitle2",children:l("mcp.troubleshoot.proposedChanges")}),(0,a.jsx)(n.default,{component:"ul",sx:{my:.8,pl:2.4},children:k.map(e=>(0,a.jsx)(m.A,{component:"li",variant:"body2",sx:{fontFamily:"monospace"},children:e},e))}),(0,a.jsx)(A.A,{size:"small",variant:"contained",disabled:w,onClick:()=>{t(f.patch),C(!0)},children:w?l("mcp.troubleshoot.applied"):l("mcp.troubleshoot.apply")})]}):null]}):null]})})}let tk=({initialConfig:e,onAdd:t,onUpdate:r,onClose:l,autoTestRun:o,handoffId:i,onSaveAndAuthenticate:c})=>{let{t:d}=(0,g.s9)(),{localConfig:p,setLocalConfig:u,websocketUrl:f,setWebsocketUrl:x,serverUrl:b,setServerUrl:j,buildCommand:w,setBuildCommand:C,installCommand:S,setInstallCommand:k,message:$,setMessage:E,buildMessage:z,setBuildMessage:T,isBuilding:P,setIsBuilding:R,isInstalling:I,setIsInstalling:N,buildCompleted:F,setBuildCompleted:W,installCompleted:O,setInstallCompleted:M,isParsingReadme:_,setIsParsingReadme:D,isParsingEnv:U,setIsParsingEnv:B,isRunning:L,setIsRunning:H,runCompleted:J,setRunCompleted:q,expandedSections:G,setExpandedSections:K,handleTransportChange:V,handleArgChange:X,addArgField:Z,removeArgField:Y,handleEnvChange:Q}=(({initialConfig:e,isOpen:t=!0})=>{let{t:r}=(0,g.s9)(),[a,n]=(0,s.useState)({define:!0,build:!0,run:!0}),[l,o]=(0,s.useState)({name:"",command:"",args:[],env:{},disabled:!1,autoApprove:[],rootPath:"",transport:"stdio",_buildCommand:"",_installCommand:""}),[i,c]=(0,s.useState)(""),[d,p]=(0,s.useState)(""),[m,u]=(0,s.useState)(""),[h,f]=(0,s.useState)(""),[x,v]=(0,s.useState)(null),[b,y]=(0,s.useState)(null),[j,A]=(0,s.useState)(!1),[w,C]=(0,s.useState)(!1),[S,k]=(0,s.useState)(!1),[$,E]=(0,s.useState)(!1),[z,T]=(0,s.useState)(!1),[P,R]=(0,s.useState)(!1),[I,N]=(0,s.useState)(""),[F,W]=(0,s.useState)(!1),[O,M]=(0,s.useState)(!1),[_,D]=(0,s.useState)(!1),[U,B]=(0,s.useState)(()=>r("mcp.local.console.output"));return(0,s.useEffect)(()=>{if(t)if(e){let t=e.rootPath||"";o({...e,rootPath:t}),u(e._buildCommand||""),f(e._installCommand||""),"websocket"===e.transport?(c(e.websocketUrl||""),p("")):"sse"===e.transport||"streamable"===e.transport?(p(e.serverUrl||""),c("")):(c(""),p(""))}else o({name:"",command:"",args:[],env:{},disabled:!1,autoApprove:[],rootPath:"",transport:"stdio",_buildCommand:"",_installCommand:""}),u(""),f(""),c(""),v(null),y(null),A(!1),C(!1),k(!1),E(!1),T(!1),R(!1),N(""),W(!1),M(!1),D(!1),B(r("mcp.local.console.output")),n({define:!0,build:!0,run:!0})},[t,e,r]),{localConfig:l,setLocalConfig:o,websocketUrl:i,setWebsocketUrl:c,serverUrl:d,setServerUrl:p,buildCommand:m,setBuildCommand:u,installCommand:h,setInstallCommand:f,message:x,setMessage:v,buildMessage:b,setBuildMessage:y,isBuilding:j,setIsBuilding:A,isInstalling:w,setIsInstalling:C,buildCompleted:S,setBuildCompleted:k,installCompleted:$,setInstallCompleted:E,isParsingReadme:z,setIsParsingReadme:T,isParsingEnv:P,setIsParsingEnv:R,consoleOutput:I,setConsoleOutput:N,isConsoleVisible:F,setIsConsoleVisible:W,isRunning:O,setIsRunning:M,runCompleted:_,setRunCompleted:D,consoleTitle:U,setConsoleTitle:B,expandedSections:a,setExpandedSections:n,handleTransportChange:e=>{"websocket"===e?o(e=>({name:e.name,disabled:e.disabled,autoApprove:e.autoApprove,rootPath:e.rootPath,env:e.env,_buildCommand:e._buildCommand,_installCommand:e._installCommand,roots:e.roots,exposeAsMcpServer:e.exposeAsMcpServer,sampling:e.sampling,transport:"websocket",websocketUrl:i})):"sse"===e?o(e=>({name:e.name,disabled:e.disabled,autoApprove:e.autoApprove,rootPath:e.rootPath,env:e.env,_buildCommand:e._buildCommand,_installCommand:e._installCommand,roots:e.roots,exposeAsMcpServer:e.exposeAsMcpServer,sampling:e.sampling,transport:"sse",serverUrl:d,headers:e.headers||{}})):"streamable"===e?o(e=>({name:e.name,disabled:e.disabled,autoApprove:e.autoApprove,rootPath:e.rootPath,env:e.env,_buildCommand:e._buildCommand,_installCommand:e._installCommand,roots:e.roots,exposeAsMcpServer:e.exposeAsMcpServer,sampling:e.sampling,transport:"streamable",serverUrl:d,headers:e.headers||{}})):o(e=>({name:e.name,command:"stdio"===e.transport?e.command:"",args:"stdio"===e.transport?e.args:[],disabled:e.disabled,autoApprove:e.autoApprove,rootPath:e.rootPath,env:e.env,_buildCommand:e._buildCommand,_installCommand:e._installCommand,roots:e.roots,exposeAsMcpServer:e.exposeAsMcpServer,sampling:e.sampling,transport:"stdio"}))},handleArgChange:(e,t)=>{"stdio"===l.transport&&o(r=>"stdio"===r.transport&&r.args?{...r,args:r.args.map((r,a)=>a===e?t:r)}:r)},addArgField:()=>{"stdio"===l.transport&&o(e=>{if("stdio"===e.transport){let t=e.args||[];return{...e,args:[...t,""]}}return e})},removeArgField:e=>{"stdio"===l.transport&&o(t=>"stdio"===t.transport&&t.args?{...t,args:t.args.filter((t,r)=>r!==e)}:t)},handleEnvChange:e=>{o(t=>{let r={...t,env:e};return"stdio"===t.transport||"websocket"===t.transport?r:t})}}})({initialConfig:e,isOpen:!0});(0,s.useEffect)(()=>{e&&e.name&&e.rootPath&&"stdio"===e.transport&&(!e.command||""===e.command)&&(!e._buildCommand||""===e._buildCommand)&&(!e._installCommand||""===e._installCommand)&&(E({type:"warning",text:d("mcp.local.detectionFailed")}),K({define:!0,build:!0,run:!0}))},[e,K,E,d]);let[ee,et]=(0,s.useState)(!1),[er,ea]=(0,s.useState)(null),en=async()=>{et(!0)},es=async e=>{ea(e)},el=async()=>{await ti(p,u,E,C,k,x,f,d)},eo=async()=>{await tc(p,u,E,D,C,k,x,f,d)},ei=async()=>{await td(p,S,N,T,ew,eS,eE,M,d)},ec=async()=>{await tp(p,w,R,T,ew,eS,eE,W,d)},[ed,ep]=(0,s.useState)(!1),[em,eu]=(0,s.useState)(!1),eh=async()=>{await tm(p,f,b,H,ew,eE,eS,E,q,e?.name,ep,d)},eg=async()=>{if(!c)return;if(!p.name||!b)return void E({type:"error",text:d("mcp.local.auth.missingDetails")});let e=to(p,f,b,w,S);eu(!0),E({type:"success",text:d("mcp.local.auth.starting",{server:e.name})});try{let t=await c(e);"needs_client_credentials"===t.status?E({type:"warning",text:t.error||d("mcp.local.auth.credentialsRequired")}):"error"===t.status&&E({type:"error",text:t.error||d("mcp.local.auth.failed")})}catch(e){E({type:"error",text:d("mcp.local.auth.failedWithError",{error:e instanceof Error?e.message:d("mcp.server.unknownError")})})}finally{eu(!1)}},{consoleOutput:eb,isConsoleVisible:ej,consoleTitle:eA,setConsoleTitle:ew,toggleConsoleVisibility:eC,setIsConsoleVisible:eS,appendToConsole:ek,clearConsole:e$,updateConsole:eE}=ex(),ez=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!o)return;let t=i??0;ez.current!==t&&e?.name&&p.name===e.name&&(ez.current=t,K({define:!1,build:!1,run:!0}),M(!0),W(!0),eh())},[o,i,e,p.name]);let eT=e=>(t,r)=>{K({...G,[e]:r})},eP=e=>{switch(e){case"error":return"error.main";case"success":return"success.main";case"warning":return"warning.main";case"loading":return"info.main";default:return"text.primary"}},eR=p.launch;return(0,a.jsxs)(n.default,{component:"form",onSubmit:a=>{((e,t,r,a,n,s,l,o,i,c,d,p=tl)=>{if(e.preventDefault(),!t.name||"stdio"===t.transport&&!t.command)return l({type:"error",text:p("mcp.local.messages.required")});if("websocket"===t.transport&&!r)return l({type:"error",text:p("mcp.local.run.validWebsocket")});if(("sse"===t.transport||"streamable"===t.transport)&&!a)return l({type:"error",text:p("mcp.local.run.validServer")});let m=to(t,r,a,n,s);c&&i?i(m):o(m),d&&d()})(a,p,f,b,w,S,E,t,r,e,l,d)},sx:{width:"100%"},children:[(0,a.jsxs)(h.Ay,{container:!0,spacing:2,children:[(0,a.jsx)(h.Ay,{item:!0,xs:12,md:ej?8:12,children:(0,a.jsxs)(y.A,{spacing:3,children:[eR&&(0,a.jsxs)(v.A,{severity:"info",children:[(0,a.jsx)(m.A,{variant:"body2",children:d("mcp.registry.manualLaunch.description")}),(0,a.jsx)(m.A,{variant:"caption",component:"code",sx:{display:"block",mt:1,fontFamily:"monospace",wordBreak:"break-all"},children:[eR.command,...eR.args??[]].join(" ")})]}),(0,a.jsxs)(tu.A,{expanded:G.define,onChange:eT("define"),sx:{border:1,borderColor:p.name&&p.rootPath?o?"success.main":"divider":"error.main",bgcolor:p.name&&p.rootPath?o?"success.lighter":"background.paper":"error.lighter","&:before":{display:"none"},borderRadius:1,boxShadow:e=>+("dark"===e.palette.mode),mb:2,overflow:"hidden"},children:[(0,a.jsx)(th.A,{expandIcon:(0,a.jsx)(tf.A,{}),"aria-controls":"define-server-content",id:"define-server-header",sx:{"& .MuiAccordionSummary-content":{alignItems:"center"},minHeight:56,px:2},children:(0,a.jsx)(m.A,{variant:"h6",sx:{color:eP(p.name&&p.rootPath?o?"success":"default":"error"),fontWeight:500},children:d("mcp.local.section.define")})}),(0,a.jsx)(tg.A,{sx:{px:3,py:2},children:(0,a.jsx)(ev,{name:p.name,setName:e=>u({...p,name:e}),rootPath:p.rootPath||"",setRootPath:e=>u({...p,rootPath:e}),onRootPathSelect:en})})]}),(0,a.jsxs)(tu.A,{expanded:G.build,onChange:eT("build"),sx:{border:1,borderColor:z?.type==="error"?"error.main":O&&F?"success.main":O||F?"warning.main":I||P?"info.main":"divider",bgcolor:z?.type==="error"?"error.lighter":O&&F?"success.lighter":O||F?"warning.lighter":I||P?"info.lighter":"background.paper","&:before":{display:"none"},borderRadius:1,boxShadow:e=>+("dark"===e.palette.mode),mb:2,overflow:"hidden"},children:[(0,a.jsx)(th.A,{expandIcon:(0,a.jsx)(tf.A,{}),"aria-controls":"build-content",id:"build-header",sx:{"& .MuiAccordionSummary-content":{alignItems:"center"},minHeight:56,px:2},children:(0,a.jsx)(m.A,{variant:"h6",sx:{color:eP(z?.type==="error"?"error":O&&F?"success":O||F?"warning":I||P?"loading":"default"),fontWeight:500},children:d("mcp.local.section.build")})}),(0,a.jsx)(tg.A,{sx:{px:3,py:2},children:(0,a.jsx)(ey,{installCommand:S,setinstallCommand:k,buildCommand:w,setBuildCommand:C,onInstall:ei,onBuild:ec,isInstalling:I,isBuilding:P,installCompleted:O,buildCompleted:F,buildMessage:z})})]}),(0,a.jsxs)(tu.A,{expanded:G.run,onChange:eT("run"),sx:{border:1,borderColor:$?.type!=="error"||L?J?"success.main":L?"info.main":"divider":"error.main",bgcolor:$?.type!=="error"||L?J?"success.lighter":L?"info.lighter":"background.paper":"error.lighter","&:before":{display:"none"},borderRadius:1,boxShadow:e=>+("dark"===e.palette.mode),mb:2,overflow:"hidden"},children:[(0,a.jsx)(th.A,{expandIcon:(0,a.jsx)(tf.A,{}),"aria-controls":"run-content",id:"run-header",sx:{"& .MuiAccordionSummary-content":{alignItems:"center"},minHeight:56,px:2},children:(0,a.jsx)(m.A,{variant:"h6",sx:{color:eP($?.type!=="error"||L?J?"success":L?"loading":"default":"error"),fontWeight:500},children:d("mcp.local.section.run")})}),(0,a.jsx)(tg.A,{sx:{px:3,py:2},children:(0,a.jsxs)(y.A,{spacing:4,children:[(0,a.jsx)(eY,{command:"stdio"===p.transport?p.command:"",setCommand:e=>{"stdio"===p.transport&&u(t=>"stdio"===t.transport?{...t,command:e}:t)},transport:p.transport,setTransport:V,websocketUrl:f,setWebsocketUrl:x,serverUrl:b,setServerUrl:j,onRun:eh,isRunning:L,runCompleted:J,env:p.env,onEnvChange:Q,headers:("sse"===p.transport||"streamable"===p.transport)&&p.headers||{},onHeadersChange:e=>u(t=>({...t,headers:e})),oauthClientId:p.oauthClientId||"",oauthClientSecret:p.oauthClientSecret||"",onOAuthClientIdChange:e=>u(t=>({...t,oauthClientId:e})),onOAuthClientSecretChange:e=>u(t=>({...t,oauthClientSecret:e})),serverName:p.name,consoleOutput:eb,message:$,setMessage:E,oauthCapable:ed,onSaveAndAuthenticate:c?eg:void 0,isAuthenticating:em}),(0,a.jsx)(n.default,{children:(0,a.jsx)(e0,{args:"stdio"===p.transport&&p.args||[],onArgChange:X,onAddArg:Z,onRemoveArg:Y,onFolderSelect:es,onParseReadme:eo,onParseClipboard:el,isParsingReadme:_})}),(0,a.jsx)(n.default,{children:(0,a.jsx)(e1.A,{roots:p.roots||[],onChange:e=>u(t=>({...t,roots:e}))})}),(0,a.jsx)(n.default,{children:(0,a.jsx)(te,{policy:p.sampling,onChange:e=>u(t=>({...t,sampling:e}))})}),(0,a.jsx)(n.default,{children:(0,a.jsx)(tr,{policy:p.elicitation,onChange:e=>u(t=>({...t,elicitation:e}))})})]})})]})]})}),ej&&(0,a.jsx)(h.Ay,{item:!0,xs:12,md:4,sx:{height:{xs:320,md:"auto"},minHeight:{xs:240,md:0}},children:(0,a.jsx)(ef,{output:eb,isVisible:!0,toggleVisibility:eC,title:eA})})]}),$&&(0,a.jsx)(n.default,{sx:{mt:2,mb:2},children:(0,a.jsx)(v.A,{severity:$.type,children:$.text})}),(0,a.jsx)(tS,{context:{config:{name:p.name,transport:p.transport,..."stdio"===p.transport?{command:p.command,args:p.args}:{},..."sse"===p.transport||"streamable"===p.transport?{serverUrl:b,headerNames:Object.keys(p.headers||{})}:{},rootPath:p.rootPath,envNames:Object.keys(p.env||{}),installCommand:S,buildCommand:w},error:[z?.text,$?.text].filter(Boolean).join("\n"),consoleOutput:eb},onApplyPatch:e=>{u(t=>{let r={...t.env||{}};for(let t of e.addEnvNames??[])t in r||(r[t]="");let a={...t,env:r,...e.rootPath?{rootPath:e.rootPath}:{}};if("stdio"===t.transport)return{...a,...e.command?{command:e.command}:{},...e.args?{args:e.args}:{}};if("sse"===t.transport||"streamable"===t.transport){let r={...t.headers||{}};for(let t of e.addHeaderNames??[])t in r||(r[t]="");return{...a,headers:r}}return a}),e.serverUrl&&j(e.serverUrl),void 0!==e.installCommand&&k(e.installCommand),void 0!==e.buildCommand&&C(e.buildCommand),E({type:"warning",text:d("mcp.troubleshoot.reviewApplied")})}}),(0,a.jsxs)(n.default,{sx:{display:"flex",flexWrap:"wrap",justifyContent:"flex-end",gap:1,mt:3},children:[(0,a.jsx)(A.A,{variant:"outlined",onClick:l,children:d("mcp.local.cancel")}),(0,a.jsx)(A.A,{type:"submit",variant:"contained",color:"primary",children:e?d("mcp.local.updateServer"):d("mcp.local.addServer")})]}),(0,a.jsx)(ta.A,{open:ee,title:d("mcp.local.chooseServerFolder"),initialPath:p.rootPath||void 0,onClose:()=>et(!1),onSelect:e=>u({...p,rootPath:e})}),(0,a.jsx)(ta.A,{open:null!==er,title:d("mcp.local.chooseFolderOrFile"),selectFiles:!0,onClose:()=>ea(null),onSelect:e=>{null!==er&&X(er,e)}})]})};function t$(e){return"manual-launch"!==e.kind}let tE={npm:"npx",pypi:"uvx",oci:"docker",nuget:"dnx"},tz={npm:"npm",pypi:"PyPI",oci:"Docker",nuget:"NuGet",mcpb:"MCPB",cargo:"Cargo"};function tT(e){return""!==e&&/^[A-Za-z0-9_@%+=:,./-]+$/.test(e)?e:`"${e.replace(/(["$`\\])/g,"\\$1")}"`}function tP(e){var t;let r=[],a=[];for(let n of e.packages??[]){let e=function(e){if(!e.identifier)return{supported:!1,reason:"no-identifier"};if(!tE[e.registryType]&&!e.runtimeHint)return{supported:!1,reason:"unknown-runner"};let t=e.transport?.type;return t&&"stdio"!==t?"streamable-http"===t||"sse"===t?{supported:!1,reason:"launch-and-connect"}:{supported:!1,reason:"unknown-transport"}:{supported:!0}}(n);e.supported?r.push({kind:"package",label:`${tz[t=n.registryType]||t}: ${n.identifier}`,pkg:n}):"launch-and-connect"===e.reason&&a.push(function(e){var t;let{command:r,args:a}=tU(e,{envFlags:"inline"}),n=e.transport?.type==="sse"?"sse":"streamable",s=e.transport?.url,l={kind:"manual-launch",label:`${tz[t=e.registryType]||t}: ${e.identifier} (manual start)`,pkg:e,transport:n,runLine:[r,...a].map(tT).join(" ")};if(!s)return{...l,urlError:"missing-url",urlErrorDetail:"no transport.url declared"};let o=function(e,t){let r,a=[],n=e.replace(/\{([^{}]+)\}/g,(e,r)=>{let n=t.args[r]??t.env[r];return void 0===n||""===n?(a.push(r),""):n});if(a.length>0)return{error:"unresolved-placeholder",detail:a.join(", ")};try{r=new URL(n)}catch{return{error:"invalid-url",detail:n}}return/^https?:$/.test(r.protocol)?!function(e){let t=e.toLowerCase().replace(/^\[/,"").replace(/\]$/,"");if("localhost"===t||"::1"===t||"0:0:0:0:0:0:0:1"===t)return!0;let r=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(t);if(!r)return!1;let a=r.slice(1,5).map(Number);return!a.some(e=>e>255)&&127===a[0]}(r.hostname)?{error:"non-loopback",detail:r.hostname}:{url:r.toString()}:{error:"invalid-url",detail:n}}(s,{env:function(e){let t={};for(let r of e??[]){if(!r.name)continue;let e=r.value??r.default;void 0!==e&&""!==e&&(t[r.name]=e)}return t}(e.environmentVariables),args:{...tM(e.runtimeArguments),...tM(e.packageArguments)}});return"url"in o?{...l,resolvedUrl:o.url}:{...l,urlError:o.error,urlErrorDetail:o.detail}}(n))}for(let t of e.remotes??[])t.url&&("streamable-http"===t.type||"sse"===t.type)&&r.push({kind:"remote",label:`Remote (${"sse"===t.type?"SSE":"Streamable HTTP"}): ${t.url}`,remote:t});return[...r,...a]}let tR=new Set(["mcp","server","mcp-server","mcpserver"]);function tI(e){let t=e.indexOf("/"),r=t>=0?e.slice(0,t):"",a=t>=0?e.slice(t+1):e;if(!tR.has(a.toLowerCase())||!r)return a;let n=r.split(".").reverse().find(e=>e&&!tR.has(e.toLowerCase()))||"";return n?`${n}-${a}`:a}function tN(e){return e.title?e.title:tI(e.name)}function tF(e,t){let r=e.icons;if(!r||0===r.length)return null;let a=r.filter(e=>{if(!e?.src)return!1;try{return/^https?:$/.test(new URL(e.src).protocol)}catch{return!1}});return 0===a.length?null:((t?a.find(e=>e.theme===t):void 0)??a[0]).src}function tW(e){let t=e.value??e.default;return"named"===e.type?e.name?void 0!==t&&""!==t?[e.name,t]:e.isRequired&&e.valueHint?[e.name,`<${e.valueHint}>`]:e.isRequired?[e.name]:[]:[]:void 0!==t&&""!==t?[t]:e.isRequired?[`<${e.valueHint||"value"}>`]:[]}function tO(e){return(e??[]).flatMap(tW)}function tM(e){let t={};for(let r of e??[]){if("named"!==r.type||!r.name)continue;let e=r.value??r.default;void 0!==e&&""!==e&&(t[r.name]=e)}return t}function t_(e){let t=(e.icons??[]).flatMap(e=>{if(!e?.src)return[];try{if(!/^https?:$/.test(new URL(e.src).protocol))return[]}catch{return[]}return[{src:e.src,...e.sizes?{sizes:e.sizes}:{},...e.mimeType?{mimeType:e.mimeType}:{},..."light"===e.theme||"dark"===e.theme?{theme:e.theme}:{}}]});return{name:tI(e.name).replace(/[^a-zA-Z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")||"mcp-server",disabled:!1,autoApprove:[],env:{},_buildCommand:"",_installCommand:"",...t.length>0?{icons:t}:{}}}function tD(e){return e.version?`${e.identifier}@${e.version}`:e.identifier}function tU(e,t={}){let r,a=e.runtimeHint||tE[e.registryType],n=tO(e.packageArguments),s=tO(e.runtimeArguments),l=function(e){let t={};for(let r of e??[]){if(!r.name)continue;let e=r.value??r.default??"";t[r.name]=r.isSecret?{value:e,metadata:{isSecret:!0}}:e}return t}(e.environmentVariables);switch(e.registryType){case"npm":r=[...s,"-y",tD(e),...n];break;case"pypi":r=[...s,e.version?`${e.identifier}==${e.version}`:e.identifier,...n];break;case"oci":{let a,o="inline"===t.envFlags?function(e){let t=[];for(let r of e??[]){if(!r.name)continue;let e=r.value??r.default,a=!r.isSecret&&void 0!==e&&""!==e;t.push("-e",`${r.name}=${a?e:`<${r.name}>`}`)}return t}(e.environmentVariables):Object.keys(l).flatMap(e=>["-e",e]);r=[..."run"===s[0]?[]:["run","-i","--rm"],...s,...o,!((a=e.identifier.split("/").pop()||e.identifier).includes(":")||a.includes("@"))&&e.version?`${e.identifier}:${e.version}`:e.identifier,...n];break}case"nuget":r=[...s,tD(e),"--yes",...n];break;default:r=[...s,tD(e),...n]}return{command:a,args:r,env:l}}function tB(e,t){return"remote"===e.kind?(e.remote.headers??[]).filter(e=>e.isRequired&&!(e.value??e.default)&&!t?.[e.name]).map(e=>e.name):(e.pkg.environmentVariables??[]).filter(e=>e.isRequired&&!(e.value??e.default)&&!t?.[e.name]).map(e=>e.name)}var tL=r(78674),tH=r(7880),tJ=r(10286),tq=r(6438),tG=r(66808),tK=r(25404),tV=r(83793),tX=r(85930),tZ=r(20418),tY=r(34951),tQ=r(42840);let t0=({option:e,disabled:t,onConfigureAsRemote:r})=>{let{t:s}=(0,g.s9)(),l=async()=>{try{await navigator.clipboard?.writeText(e.runLine)}catch{}};return(0,a.jsxs)(n.default,{sx:{px:2,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:[(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5},children:[(0,a.jsx)(tQ.A,{fontSize:"small",color:"disabled"}),(0,a.jsx)(m.A,{variant:"body2",sx:{wordBreak:"break-all",flexGrow:1},children:e.label})]}),(0,a.jsx)(m.A,{variant:"caption",color:"text.secondary",component:"div",sx:{mb:1},children:s("mcp.registry.manualLaunch.description")}),(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"flex-start",gap:1,p:1,borderRadius:1,bgcolor:"action.hover"},children:[(0,a.jsx)(m.A,{variant:"caption",component:"code",sx:{flexGrow:1,fontFamily:"monospace",wordBreak:"break-all"},children:e.runLine}),(0,a.jsx)(eS.A,{title:s("mcp.registry.manualLaunch.copyCommand"),children:(0,a.jsx)(C.A,{size:"small",onClick:l,"aria-label":s("mcp.registry.manualLaunch.copyCommand"),children:(0,a.jsx)(eD.A,{fontSize:"inherit"})})})]}),e.resolvedUrl?(0,a.jsx)(m.A,{variant:"caption",color:"text.secondary",component:"div",sx:{mt:1,wordBreak:"break-all"},children:e.resolvedUrl}):null,r?(0,a.jsx)(A.A,{size:"small",sx:{mt:1},disabled:t,onClick:()=>{t||r(e)},children:s("mcp.registry.manualLaunch.configureAsRemote")}):null]})},t1=({options:e,envDefaults:t,disabled:r,onSelect:s,onConfigureAsRemote:l})=>{let{t:o,formatList:i}=(0,g.s9)(),c=e.filter(e=>"manual-launch"!==e.kind),d=e.filter(e=>"manual-launch"===e.kind);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tL.A,{children:c.map((e,n)=>{let l=tB(e,t);return(0,a.jsxs)(tH.A,{disabled:r,"aria-disabled":r||void 0,onClick:()=>{r||s(e)},children:[(0,a.jsx)(tJ.A,{children:"package"===e.kind?(0,a.jsx)(tZ.A,{}):(0,a.jsx)(tY.A,{})}),(0,a.jsx)(tq.A,{primary:e.label,secondary:l.length>0?o("mcp.marketplace.requires",{values:i(l)}):"package"===e.kind?o("mcp.marketplace.runsLocal"):o("mcp.marketplace.hostedRemote"),primaryTypographyProps:{sx:{wordBreak:"break-all"}}})]},n)})}),d.length>0?(0,a.jsxs)(n.default,{children:[(0,a.jsx)(v.A,{severity:"info",sx:{mb:1},children:o("mcp.registry.manualLaunch.title")}),d.map((e,t)=>(0,a.jsx)(t0,{option:e,disabled:r,onConfigureAsRemote:l},`manual-${t}`))]}):null]})},t2=({open:e,title:t,helpText:r,onClose:n,...s})=>{let{t:l}=(0,g.s9)();return(0,a.jsxs)(tG.A,{open:e,onClose:n,maxWidth:"sm",fullWidth:!0,children:[(0,a.jsx)(tK.A,{children:t}),(0,a.jsxs)(tV.A,{children:[r?(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",sx:{mb:1},children:r}):null,(0,a.jsx)(t1,{...s})]}),(0,a.jsx)(tX.A,{children:(0,a.jsx)(A.A,{onClick:n,children:l("mcp.local.cancel")})})]})},t3=function({requireTrust:e,onHandoff:t}){let[r,a]=(0,s.useState)(null),[n,l]=(0,s.useState)(!1),o=(0,s.useCallback)((e,t)=>{let r=tP(e);return l(!1),a({server:e,options:r,...t?{envDefaults:t}:{}}),r},[]),i=(0,s.useCallback)(()=>{a(null),l(!1)},[]),c=(0,s.useCallback)((e,t,r)=>{let a,n,s;var l=(a="package"===t.kind?function(e,t){let{command:r,args:a,env:n}=tU(t);return{...t_(e),transport:"stdio",command:r,args:a,env:n,rootPath:"."}}(e,t.pkg):"manual-launch"===t.kind?function(e,t){let{command:r,args:a,env:n}=tU(t.pkg),s={command:r,...a.length>0?{args:a}:{},...Object.keys(n).length>0?{env:n}:{}};return{...t_(e),transport:t.transport,serverUrl:t.resolvedUrl??"",headers:{},env:n,launch:s,rootPath:"."}}(e,t):function(e,t){let r={};for(let e of t.headers??[])e.name&&(r[e.name]=e.value??e.default??"");let a=t_(e);return{...a,transport:"sse"===t.type?"sse":"streamable",serverUrl:t.url,headers:r,rootPath:`mcp-servers/${a.name}`}}(e,t.remote),n="remote"===t.kind?e.version:t.pkg.version??e.version,s={type:"registry",registryName:e.name,...n?{version:n}:{}},{...a,source:s}),o=r;if(!o||0===Object.keys(o).length)return l;let i={...l.env??{}};for(let[e,t]of Object.entries(o)){let r=i[e];r&&"object"==typeof r&&r.metadata?.isSecret?i[e]={value:t,metadata:{isSecret:!0}}:i[e]=t}return{...l,env:i}},[]),d=(0,s.useCallback)((e,r,a)=>{let n=c(e,r,a),s=tB(r,a);return i(),t?.({to:"configure",config:n,autoTestRun:!0}),s},[c,i,t]),p=(0,s.useCallback)((e,r,a)=>{let n=c(e,r,a);i(),t?.({to:"configure",config:n})},[c,i,t]),m=(0,s.useCallback)((e,t)=>tB(e,t),[]);return{selection:r,options:r?.options??[],trustConfirmed:n,setTrustConfirmed:l,installBlocked:e&&!n,open:o,close:i,install:d,configureAsRemote:p,missingFor:m}};var t5=r(99084),t6=r(47667),t4=r(39922),t9=r(83063),t8=r(83550),t7=r(49625),re=r(28512),rt=r(59035),rr=r(8349),ra=r(43018),rn=r(60714);let rs=({onClose:e,onHandoff:t})=>{let r=(0,eg.A)(),{t:l,formatNumber:o,formatList:i}=(0,g.s9)(),[c,d]=(0,s.useState)(""),[p,u]=(0,s.useState)(""),[f,x]=(0,s.useState)([]),[b,S]=(0,s.useState)(null),[k,$]=(0,s.useState)(!1),[E,z]=(0,s.useState)(!1),[T,P]=(0,s.useState)(null),R=t3({requireTrust:!0,onHandoff:t}),I=R.selection?.server??null,N=R.trustConfirmed,F=(0,s.useRef)(0),W=(0,s.useCallback)(e=>{R.open(e)},[R]),O=(0,s.useCallback)(()=>{R.close()},[R]),M=(0,s.useCallback)(async(e,t)=>{let r=++F.current,a=!t;a?$(!0):z(!0),P(null);try{let n=new URLSearchParams({limit:String(30)});e&&n.set("search",e),t&&n.set("cursor",t);let s=await fetch(`/api/mcp-registry?${n.toString()}`),l=await s.json();if(r!==F.current)return;if(!s.ok||!1===l.success)throw Error(l.error||String(s.status));let o=l.servers??[];x(e=>a?o:[...e,...o]),S(o.length>0?l.metadata?.nextCursor??null:null)}catch(e){if(r!==F.current)return;console.error("Error fetching from MCP Registry:",e),P({type:"error",text:l("mcp.marketplace.loadError",{error:e instanceof Error?e.message:l("mcp.server.unknownError")})})}finally{r===F.current&&($(!1),z(!1))}},[l]);(0,s.useEffect)(()=>{p&&M(p)},[p,M]);let _=()=>{d(""),u(""),F.current++,$(!1),z(!1),x([]),S(null),P(null)},D=e=>{let t=e.repository?.url;if(!t)return null;try{return"github.com"===new URL(t).hostname?t:null}catch{return null}},U=R.options;return(0,a.jsxs)(n.default,{sx:{width:"100%"},children:[(0,a.jsxs)(y.A,{spacing:3,children:[(0,a.jsx)(m.A,{variant:"h6",gutterBottom:!0,children:l("mcp.marketplace.title")}),(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",children:(0,a.jsx)(eN.A,{message:"mcp.marketplace.help",values:{registryLink:(0,a.jsx)(e_.A,{href:"https://registry.modelcontextprotocol.io",target:"_blank",rel:"noopener noreferrer",children:l("mcp.marketplace.registry")})}})}),(0,a.jsx)(j.A,{fullWidth:!0,size:"small",value:c,onChange:e=>d(e.target.value),onKeyDown:e=>{if("Enter"===e.key){e.preventDefault();let t=c.trim();t?t===p?M(t):u(t):_()}},placeholder:l("mcp.marketplace.search"),variant:"outlined",InputProps:{startAdornment:(0,a.jsx)(w.A,{position:"start",children:(0,a.jsx)(t8.A,{})}),endAdornment:c?(0,a.jsx)(w.A,{position:"end",children:(0,a.jsx)(C.A,{size:"small",onClick:_,"aria-label":l("mcp.marketplace.clearSearch"),children:(0,a.jsx)(rt.A,{fontSize:"small"})})}):void 0}}),T&&(0,a.jsx)(v.A,{severity:T.type,onClose:()=>P(null),children:T.text}),k?(0,a.jsx)(n.default,{sx:{display:"flex",justifyContent:"center",my:4},children:(0,a.jsx)(eb.default,{})}):(0,a.jsxs)(a.Fragment,{children:[0===f.length&&!T&&(0,a.jsx)(m.A,{variant:"body1",color:"text.secondary",sx:{textAlign:"center",my:4},children:p?(0,a.jsx)(a.Fragment,{children:l("mcp.marketplace.noResults",{search:p})}):(0,a.jsx)(a.Fragment,{children:l("mcp.marketplace.startSearch")})}),(0,a.jsx)(h.Ay,{container:!0,spacing:2,children:f.map(e=>{let t,s=e.server,i=tP(s).some(t$),c="active"===("string"==typeof(t=e?._meta?.["io.modelcontextprotocol.registry/official"]?.status)&&t.length>0?t:"unverified");return(0,a.jsx)(h.Ay,{item:!0,xs:12,sm:6,md:4,children:(0,a.jsx)(t5.A,{sx:{height:"100%",display:"flex",flexDirection:"column",transition:"transform 0.2s, box-shadow 0.2s","&:hover":{transform:"translateY(-4px)",boxShadow:6}},children:(0,a.jsxs)(t6.A,{sx:{flexGrow:1,display:"flex",flexDirection:"column",alignItems:"stretch"},onClick:()=>{W(s)},children:[(0,a.jsxs)(n.default,{sx:{p:2,display:"flex",alignItems:"center",borderBottom:"1px solid",borderColor:"divider"},children:[(0,a.jsx)(t4.A,{src:tF(s,r.palette.mode)??void 0,sx:{bgcolor:r.palette.primary.main,color:"#fff",mr:2,boxShadow:1},children:tN(s).charAt(0).toUpperCase()}),(0,a.jsxs)(n.default,{sx:{flexGrow:1,minWidth:0},children:[(0,a.jsx)(m.A,{variant:"subtitle1",component:"div",noWrap:!0,title:tN(s),children:tN(s)}),(0,a.jsx)(m.A,{variant:"caption",color:"text.secondary",noWrap:!0,component:"div",title:s.name,children:s.name})]})]}),(0,a.jsxs)(t9.A,{sx:{flexGrow:1,pt:2,width:"100%"},children:[(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",sx:{mb:2,display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:s.description||l("mcp.spotlight.noDescription")}),(0,a.jsxs)(n.default,{sx:{display:"flex",flexWrap:"wrap",gap:.5,alignItems:"center"},children:["number"==typeof e.quality?.stars&&(0,a.jsx)(eA.A,{size:"small",variant:"outlined",icon:(0,a.jsx)(ra.A,{}),label:o(e.quality.stars,{notation:"compact",maximumFractionDigits:1}),title:l("mcp.marketplace.stars",{count:o(e.quality.stars)})}),"number"==typeof e.quality?.weeklyDownloads&&(0,a.jsx)(eA.A,{size:"small",variant:"outlined",icon:(0,a.jsx)(rn.A,{}),label:l("mcp.marketplace.weeklyCompact",{count:o(e.quality.weeklyDownloads,{notation:"compact",maximumFractionDigits:1})}),title:l("mcp.marketplace.weeklyDownloads",{count:o(e.quality.weeklyDownloads)})}),(e=>{let t=[],r=new Set;for(let s of e.packages??[]){var n;let e=tz[n=s.registryType]||n;r.has(e)||(r.add(e),t.push((0,a.jsx)(eA.A,{size:"small",icon:(0,a.jsx)(tZ.A,{}),label:e},`pkg-${e}`)))}return(e.remotes??[]).length>0&&t.push((0,a.jsx)(eA.A,{size:"small",icon:(0,a.jsx)(tY.A,{}),label:l("mcp.marketplace.remote")},"remote")),t})(s),s.version&&(0,a.jsx)(eA.A,{size:"small",variant:"outlined",label:`v${s.version}`}),!i&&(0,a.jsx)(eA.A,{size:"small",color:"warning",variant:"outlined",label:l("mcp.marketplace.manualSetup")}),i&&!c&&(0,a.jsx)(eA.A,{size:"small",color:"warning",variant:"outlined",icon:(0,a.jsx)(rr.A,{}),label:l("mcp.marketplace.unverified"),title:l("mcp.marketplace.unverifiedHelp")})]})]})]})})},s.name)})}),b&&f.length>0&&(0,a.jsx)(n.default,{sx:{display:"flex",justifyContent:"center"},children:(0,a.jsx)(A.A,{variant:"outlined",onClick:()=>M(p,b),disabled:E,startIcon:E?(0,a.jsx)(eb.default,{size:20,color:"inherit"}):void 0,children:E?l("mcp.marketplace.loading"):l("mcp.marketplace.loadMore")})})]}),(0,a.jsx)(n.default,{sx:{display:"flex",justifyContent:"flex-end",gap:1},children:(0,a.jsx)(A.A,{variant:"outlined",onClick:e,children:l("mcp.local.cancel")})})]}),(0,a.jsx)(tG.A,{open:null!==I,onClose:O,maxWidth:"sm",fullWidth:!0,children:I&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tK.A,{component:"div",children:(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1.5,minWidth:0},children:[(0,a.jsx)(t4.A,{src:tF(I,r.palette.mode)??void 0,sx:{bgcolor:r.palette.primary.main,color:"#fff",width:40,height:40},children:tN(I).charAt(0).toUpperCase()}),(0,a.jsxs)(n.default,{sx:{minWidth:0},children:[(0,a.jsx)(m.A,{variant:"h6",noWrap:!0,title:tN(I),children:tN(I)}),(0,a.jsx)(m.A,{variant:"caption",color:"text.secondary",noWrap:!0,component:"div",title:I.name,children:I.name})]})]})}),(0,a.jsxs)(tV.A,{children:[(I.repository?.url||I.websiteUrl)&&(0,a.jsxs)(n.default,{sx:{display:"flex",gap:1,mb:2,flexWrap:"wrap"},children:[I.repository?.url&&(0,a.jsx)(A.A,{size:"small",startIcon:(0,a.jsx)(t7.A,{}),component:"a",href:I.repository.url,target:"_blank",rel:"noopener noreferrer",children:l("mcp.marketplace.repository")}),I.websiteUrl&&(0,a.jsx)(A.A,{size:"small",startIcon:(0,a.jsx)(re.A,{}),component:"a",href:I.websiteUrl,target:"_blank",rel:"noopener noreferrer",children:l("mcp.marketplace.website")})]}),(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:I.description||l("mcp.spotlight.noDescription")}),(0,a.jsx)(v.A,{severity:"warning",icon:(0,a.jsx)(rr.A,{}),sx:{mb:1},children:l("mcp.marketplace.securityWarning")}),(0,a.jsx)(ew.A,{sx:{mb:1},control:(0,a.jsx)(eC.A,{checked:N,onChange:e=>R.setTrustConfirmed(e.target.checked)}),label:l("mcp.marketplace.trust")}),U.length>0?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{variant:"subtitle2",gutterBottom:!0,children:l("mcp.marketplace.chooseInstall")}),(0,a.jsx)(t1,{options:U,disabled:R.installBlocked,onSelect:e=>{let t;P({type:(t=R.install(I,e)).length>0?"warning":"success",text:t.length>0?l("mcp.marketplace.preparedMissing",{values:i(t)}):l("mcp.marketplace.prepared")})},onConfigureAsRemote:e=>{R.configureAsRemote(I,e),P({type:"success",text:l("mcp.marketplace.prepared")})}})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(v.A,{severity:"info",children:[l("mcp.marketplace.noAutomatic"),D(I)&&t&&(0,a.jsxs)(a.Fragment,{children:[" ",l("mcp.marketplace.githubFallback")]})]}),D(I)&&t&&(0,a.jsx)(A.A,{variant:"contained",startIcon:(0,a.jsx)(t7.A,{}),disabled:!N,onClick:()=>{let e;(e=D(I))&&t&&(O(),t({to:"github",repoUrl:e}))},sx:{mt:2},children:l("mcp.marketplace.tryManual")})]})]}),(0,a.jsx)(tX.A,{children:(0,a.jsx)(A.A,{onClick:O,children:l("mcp.marketplace.close")})})]})})]})};var rl=r(99637);let ro=({onClose:e,onHandoff:t})=>{let r=(0,eg.A)(),{t:l,tp:o,formatDate:i,formatList:c}=(0,g.s9)(),[d,p]=(0,s.useState)(null),[u,f]=(0,s.useState)(!0),[x,b]=(0,s.useState)(!1),[j,w]=(0,s.useState)(null),C=t3({requireTrust:!1,onHandoff:t});(0,s.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/mcp-registry/spotlight"),r=await t.json();if(e)return;if(!t.ok||!1===r.success)throw Error(r.error||String(t.status));p(r.cache??null)}catch(t){e||w({type:"error",text:l("mcp.spotlight.loadError",{error:t instanceof Error?t.message:l("mcp.server.unknownError")})})}finally{e||f(!1)}})(),()=>{e=!0}},[l]);let S=async()=>{b(!0),w(null);try{let e=await fetch("/api/mcp-registry/spotlight",{method:"POST"}),t=await e.json();if(!e.ok||!1===t.success)throw Error(t.error||String(e.status));p(t.cache??null)}catch(e){w({type:"error",text:l("mcp.spotlight.refreshError",{error:e instanceof Error?e.message:l("mcp.server.unknownError")})})}finally{b(!1)}},k=(e,t)=>{let r=C.install(e.server,t,e.env);r.length>0&&w({type:"warning",text:l("mcp.marketplace.preparedMissing",{values:c(r)})})},$=(d?.entries??[]).filter(e=>e.result).map(e=>({server:e.result.server,env:e.env})),E=(d?.entries??[]).filter(e=>!e.result),z=C.selection?{server:C.selection.server,...C.selection.envDefaults?{env:C.selection.envDefaults}:{}}:null;return(0,a.jsxs)(n.default,{sx:{width:"100%"},children:[(0,a.jsxs)(y.A,{spacing:3,children:[(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,a.jsx)(m.A,{variant:"h6",children:l("mcp.spotlight.title")}),(0,a.jsx)(A.A,{variant:"outlined",size:"small",onClick:S,disabled:x,startIcon:x?(0,a.jsx)(eb.default,{size:16,color:"inherit"}):(0,a.jsx)(rl.A,{}),children:x?l("mcp.spotlight.refreshing"):l("mcp.spotlight.refresh")})]}),(0,a.jsxs)(m.A,{variant:"body2",color:"text.secondary",children:[l("mcp.spotlight.help"),d?.updatedAt&&(0,a.jsxs)(a.Fragment,{children:[" ",l("mcp.spotlight.updated",{date:i(d.updatedAt,{dateStyle:"medium",timeStyle:"short"})})]})]}),j&&(0,a.jsx)(v.A,{severity:j.type,onClose:()=>w(null),children:j.text}),u?(0,a.jsx)(n.default,{sx:{display:"flex",justifyContent:"center",my:4},children:(0,a.jsx)(eb.default,{})}):0===$.length?(0,a.jsx)(m.A,{variant:"body1",color:"text.secondary",sx:{textAlign:"center",my:4},children:l("mcp.spotlight.empty")}):(0,a.jsx)(h.Ay,{container:!0,spacing:2,children:$.map(e=>{let{server:t}=e,s=tP(t),o=s.some(e=>"package"===e.kind),i=s.some(e=>"remote"===e.kind);return(0,a.jsx)(h.Ay,{item:!0,xs:12,sm:6,md:4,children:(0,a.jsx)(t5.A,{sx:{height:"100%",display:"flex",flexDirection:"column",transition:"transform 0.2s, box-shadow 0.2s","&:hover":{transform:"translateY(-4px)",boxShadow:6}},children:(0,a.jsxs)(t6.A,{sx:{flexGrow:1,display:"flex",flexDirection:"column",alignItems:"stretch"},onClick:()=>(e=>{let t=C.open(e.server,e.env);if(0===t.length){C.close(),w({type:"warning",text:l("mcp.spotlight.noInstall",{server:tN(e.server)})});return}1===t.length&&t$(t[0])&&k(e,t[0])})(e),children:[(0,a.jsxs)(n.default,{sx:{p:2,display:"flex",alignItems:"center",borderBottom:"1px solid",borderColor:"divider"},children:[(0,a.jsx)(t4.A,{sx:{bgcolor:r.palette.warning.main,color:"#fff",mr:2,boxShadow:1},children:(0,a.jsx)(ra.A,{fontSize:"small"})}),(0,a.jsxs)(n.default,{sx:{flexGrow:1,minWidth:0},children:[(0,a.jsx)(m.A,{variant:"subtitle1",component:"div",noWrap:!0,title:tN(t),children:tN(t)}),(0,a.jsx)(m.A,{variant:"caption",color:"text.secondary",noWrap:!0,component:"div",title:t.name,children:t.name})]})]}),(0,a.jsxs)(t9.A,{sx:{flexGrow:1,pt:2,width:"100%"},children:[(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",sx:{mb:2,display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:t.description||l("mcp.spotlight.noDescription")}),(0,a.jsxs)(n.default,{sx:{display:"flex",flexWrap:"wrap",gap:.5,alignItems:"center"},children:[o&&(0,a.jsx)(eA.A,{size:"small",icon:(0,a.jsx)(tZ.A,{}),label:l("mcp.spotlight.local")}),i&&(0,a.jsx)(eA.A,{size:"small",icon:(0,a.jsx)(tY.A,{}),label:l("mcp.spotlight.remote")}),t.version&&(0,a.jsx)(eA.A,{size:"small",variant:"outlined",label:`v${t.version}`})]})]})]})})},t.name)})}),E.length>0&&!u&&(0,a.jsxs)(v.A,{severity:"warning",children:[o("mcp.spotlight.failures",E.length),E.map(e=>(0,a.jsxs)(m.A,{variant:"caption",component:"div",sx:{wordBreak:"break-all"},children:[e.url," — ",e.error||l("mcp.server.unknownError")]},e.url))]}),(0,a.jsx)(n.default,{sx:{display:"flex",justifyContent:"flex-end",gap:1},children:(0,a.jsx)(A.A,{variant:"outlined",onClick:e,children:l("mcp.local.cancel")})})]}),z&&(0,a.jsx)(t2,{open:!0,title:tN(z.server),helpText:l("mcp.spotlight.chooseHelp"),options:C.options,...z.env?{envDefaults:z.env}:{},onClose:C.close,onSelect:e=>k(z,e),onConfigureAsRemote:e=>{C.configureAsRemote(z.server,e,z.env)}})]})},ri=({onAdd:e,onClose:t,onHandoff:r})=>{let l=(0,eg.A)(),{t:o,tp:i}=(0,g.s9)(),[c,d]=(0,s.useState)(!1),[p,f]=(0,s.useState)(!1),[x,b]=(0,s.useState)(!1),[j,w]=(0,s.useState)(null),[C,S]=(0,s.useState)([]),[k,$]=(0,s.useState)(""),[E,z]=(0,s.useState)(!1),{consoleOutput:T,isConsoleVisible:P,setIsConsoleVisible:R,updateConsole:I,clearConsole:N}=ex();(0,s.useEffect)(()=>{(async()=>{d(!0);try{let e=await fetch("/api/cwd"),t=await e.json();if(t.success){$(t.mcpServersDir);let e=`${t.mcpServersDir}/servers`,r=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"exists",savePath:e})}),a=await r.json();z(a.exists),a.exists?await W(e):w({type:"warning",text:o("mcp.reference.repoMissing")})}}catch(e){console.error("Error initializing Reference Servers tab:",e),w({type:"error",text:o("mcp.reference.initializeError",{error:e instanceof Error?e.message:o("mcp.server.unknownError")})})}finally{d(!1)}})()},[o]);let F=async()=>{f(!0),N(),R(!0),I(`${o("mcp.reference.refreshStart")}
|
|
55
|
+
`),o({type:"error",text:p("mcp.local.messages.testError")})}finally{a(!1)}};var tu=r(9160),th=r(73212),tg=r(44493),tf=r(47863),tx=r(10685),tv=r(24563),tb=r(96606),ty=r(2255);async function tj(e,t){let r=await e.json().catch(()=>null);return Error(r?.error||t)}async function tA(e,t,r){let a=await fetch("/api/mcp/assistant",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"research",...e}),signal:r});if(!a.ok)throw await tj(a,"Could not research MCP servers.");let n=null,s=null;if(await (0,ty.d)(a,async e=>{await t(e),"complete"===e.type&&(n=e.result),"error"===e.type&&(s=e.error)}),s)throw Error(s);if(!n)throw Error("Research ended without a recommendation.");return n}async function tw(e){let t=await fetch("/api/mcp/assistant",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",install:e})});if(!t.ok)throw await tj(t,"Could not install the MCP server.");return t.json()}async function tC(e){let t=await fetch("/api/mcp/assistant",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"troubleshoot",context:e})});if(!t.ok)throw await tj(t,"Could not diagnose this MCP setup.");return t.json()}function tS({context:e,onApplyPatch:t}){var r;let{t:l}=(0,g.s9)(),[o,i]=(0,s.useState)([]),[c,d]=(0,s.useState)(""),[p,h]=(0,s.useState)(!1),[f,x]=(0,s.useState)(null),[b,j]=(0,s.useState)(null),[w,C]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=!1;return e8.N.loadModels().then(t=>{e||(i(t),d(e=>t.some(t=>t.id===e)?e:t[0]?.id??""))}).catch(()=>{e||j(l("mcp.ai.modelsFailed"))}),()=>{e=!0}},[l]);let S=async()=>{if(c&&!p){h(!0),j(null),x(null),C(!1);try{x(await tC({...e,modelId:c}))}catch(e){j(e instanceof Error?e.message:String(e))}finally{h(!1)}}},k=f?.patch?[(r=f.patch).command?`command → ${r.command}`:null,r.args?`args → ${r.args.join(" ")}`:null,r.serverUrl?`URL → ${r.serverUrl}`:null,r.rootPath?`root → ${r.rootPath}`:null,r.installCommand?`install → ${r.installCommand}`:null,r.buildCommand?`build → ${r.buildCommand}`:null,r.addEnvNames?.length?`add empty env fields → ${r.addEnvNames.join(", ")}`:null,r.addHeaderNames?.length?`add empty header fields → ${r.addHeaderNames.join(", ")}`:null].filter(e=>!!e):[];return(0,a.jsx)(u.A,{variant:"outlined",sx:{mt:2,p:2,borderRadius:2.5},children:(0,a.jsxs)(y.A,{spacing:1.4,children:[(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"flex-start",gap:1},children:[(0,a.jsx)(tv.A,{color:"primary"}),(0,a.jsxs)(n.default,{children:[(0,a.jsx)(m.A,{variant:"subtitle1",sx:{fontWeight:700},children:l("mcp.troubleshoot.title")}),(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",children:l("mcp.troubleshoot.description")})]})]}),(0,a.jsxs)(n.default,{sx:{display:"flex",gap:1,flexWrap:"wrap",alignItems:"center"},children:[(0,a.jsxs)(e3.A,{size:"small",sx:{minWidth:220},children:[(0,a.jsx)(e5.A,{id:"mcp-troubleshoot-model-label",children:l("mcp.ai.model")}),(0,a.jsx)(e6.A,{labelId:"mcp-troubleshoot-model-label",label:l("mcp.ai.model"),value:c,onChange:e=>d(e.target.value),disabled:p||0===o.length,children:o.map(e=>(0,a.jsx)(e4.A,{value:e.id,children:e.displayName||e.name},e.id))})]}),(0,a.jsx)(A.A,{variant:"outlined",startIcon:p?(0,a.jsx)(eb.default,{size:17}):(0,a.jsx)(tx.A,{}),onClick:()=>void S(),disabled:p||!c,children:p?l("mcp.troubleshoot.diagnosing"):l("mcp.troubleshoot.askAi")}),(0,a.jsx)(eA.A,{size:"small",variant:"outlined",label:l("mcp.troubleshoot.privacy")})]}),b?(0,a.jsx)(v.A,{severity:"error",children:b}):null,f?(0,a.jsxs)(y.A,{spacing:1.2,children:[(0,a.jsx)(v.A,{severity:"info",children:f.diagnosis}),f.steps.length?(0,a.jsx)(n.default,{component:"ol",sx:{my:0,pl:2.7},children:f.steps.map(e=>(0,a.jsx)(m.A,{component:"li",variant:"body2",sx:{mb:.4},children:e},e))}):null,f.authHelp?(0,a.jsx)(v.A,{severity:"warning",children:f.authHelp}):null,f.researchedUrls?.length?(0,a.jsx)(n.default,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:f.researchedUrls.map(e=>(0,a.jsxs)(e_.A,{href:e,target:"_blank",rel:"noreferrer",sx:{display:"inline-flex",alignItems:"center",gap:.4,fontSize:12},children:[l("mcp.troubleshoot.researchedSource")," ",(0,a.jsx)(tb.A,{fontSize:"inherit"})]},e))}):null,f.patch&&k.length?(0,a.jsxs)(u.A,{variant:"outlined",sx:{p:1.4,bgcolor:"action.hover"},children:[(0,a.jsx)(m.A,{variant:"subtitle2",children:l("mcp.troubleshoot.proposedChanges")}),(0,a.jsx)(n.default,{component:"ul",sx:{my:.8,pl:2.4},children:k.map(e=>(0,a.jsx)(m.A,{component:"li",variant:"body2",sx:{fontFamily:"monospace"},children:e},e))}),(0,a.jsx)(A.A,{size:"small",variant:"contained",disabled:w,onClick:()=>{t(f.patch),C(!0)},children:w?l("mcp.troubleshoot.applied"):l("mcp.troubleshoot.apply")})]}):null]}):null]})})}let tk=({initialConfig:e,onAdd:t,onUpdate:r,onClose:l,autoTestRun:o,handoffId:i,onSaveAndAuthenticate:c})=>{let{t:d}=(0,g.s9)(),{localConfig:p,setLocalConfig:u,websocketUrl:f,setWebsocketUrl:x,serverUrl:b,setServerUrl:j,buildCommand:w,setBuildCommand:C,installCommand:S,setInstallCommand:k,message:$,setMessage:E,buildMessage:z,setBuildMessage:T,isBuilding:P,setIsBuilding:R,isInstalling:I,setIsInstalling:N,buildCompleted:F,setBuildCompleted:W,installCompleted:O,setInstallCompleted:M,isParsingReadme:_,setIsParsingReadme:D,isParsingEnv:U,setIsParsingEnv:B,isRunning:L,setIsRunning:H,runCompleted:J,setRunCompleted:q,expandedSections:G,setExpandedSections:K,handleTransportChange:V,handleArgChange:X,addArgField:Z,removeArgField:Y,handleEnvChange:Q}=(({initialConfig:e,isOpen:t=!0})=>{let{t:r}=(0,g.s9)(),[a,n]=(0,s.useState)({define:!0,build:!0,run:!0}),[l,o]=(0,s.useState)({name:"",command:"",args:[],env:{},disabled:!1,autoApprove:[],rootPath:"",transport:"stdio",_buildCommand:"",_installCommand:""}),[i,c]=(0,s.useState)(""),[d,p]=(0,s.useState)(""),[m,u]=(0,s.useState)(""),[h,f]=(0,s.useState)(""),[x,v]=(0,s.useState)(null),[b,y]=(0,s.useState)(null),[j,A]=(0,s.useState)(!1),[w,C]=(0,s.useState)(!1),[S,k]=(0,s.useState)(!1),[$,E]=(0,s.useState)(!1),[z,T]=(0,s.useState)(!1),[P,R]=(0,s.useState)(!1),[I,N]=(0,s.useState)(""),[F,W]=(0,s.useState)(!1),[O,M]=(0,s.useState)(!1),[_,D]=(0,s.useState)(!1),[U,B]=(0,s.useState)(()=>r("mcp.local.console.output"));return(0,s.useEffect)(()=>{if(t)if(e){let t=e.rootPath||"";o({...e,rootPath:t}),u(e._buildCommand||""),f(e._installCommand||""),"websocket"===e.transport?(c(e.websocketUrl||""),p("")):"sse"===e.transport||"streamable"===e.transport?(p(e.serverUrl||""),c("")):(c(""),p(""))}else o({name:"",command:"",args:[],env:{},disabled:!1,autoApprove:[],rootPath:"",transport:"stdio",_buildCommand:"",_installCommand:""}),u(""),f(""),c(""),v(null),y(null),A(!1),C(!1),k(!1),E(!1),T(!1),R(!1),N(""),W(!1),M(!1),D(!1),B(r("mcp.local.console.output")),n({define:!0,build:!0,run:!0})},[t,e,r]),{localConfig:l,setLocalConfig:o,websocketUrl:i,setWebsocketUrl:c,serverUrl:d,setServerUrl:p,buildCommand:m,setBuildCommand:u,installCommand:h,setInstallCommand:f,message:x,setMessage:v,buildMessage:b,setBuildMessage:y,isBuilding:j,setIsBuilding:A,isInstalling:w,setIsInstalling:C,buildCompleted:S,setBuildCompleted:k,installCompleted:$,setInstallCompleted:E,isParsingReadme:z,setIsParsingReadme:T,isParsingEnv:P,setIsParsingEnv:R,consoleOutput:I,setConsoleOutput:N,isConsoleVisible:F,setIsConsoleVisible:W,isRunning:O,setIsRunning:M,runCompleted:_,setRunCompleted:D,consoleTitle:U,setConsoleTitle:B,expandedSections:a,setExpandedSections:n,handleTransportChange:e=>{"websocket"===e?o(e=>({name:e.name,disabled:e.disabled,autoApprove:e.autoApprove,rootPath:e.rootPath,env:e.env,_buildCommand:e._buildCommand,_installCommand:e._installCommand,roots:e.roots,exposeAsMcpServer:e.exposeAsMcpServer,sampling:e.sampling,transport:"websocket",websocketUrl:i})):"sse"===e?o(e=>({name:e.name,disabled:e.disabled,autoApprove:e.autoApprove,rootPath:e.rootPath,env:e.env,_buildCommand:e._buildCommand,_installCommand:e._installCommand,roots:e.roots,exposeAsMcpServer:e.exposeAsMcpServer,sampling:e.sampling,transport:"sse",serverUrl:d,headers:e.headers||{}})):"streamable"===e?o(e=>({name:e.name,disabled:e.disabled,autoApprove:e.autoApprove,rootPath:e.rootPath,env:e.env,_buildCommand:e._buildCommand,_installCommand:e._installCommand,roots:e.roots,exposeAsMcpServer:e.exposeAsMcpServer,sampling:e.sampling,transport:"streamable",serverUrl:d,headers:e.headers||{}})):o(e=>({name:e.name,command:"stdio"===e.transport?e.command:"",args:"stdio"===e.transport?e.args:[],disabled:e.disabled,autoApprove:e.autoApprove,rootPath:e.rootPath,env:e.env,_buildCommand:e._buildCommand,_installCommand:e._installCommand,roots:e.roots,exposeAsMcpServer:e.exposeAsMcpServer,sampling:e.sampling,transport:"stdio"}))},handleArgChange:(e,t)=>{"stdio"===l.transport&&o(r=>"stdio"===r.transport&&r.args?{...r,args:r.args.map((r,a)=>a===e?t:r)}:r)},addArgField:()=>{"stdio"===l.transport&&o(e=>{if("stdio"===e.transport){let t=e.args||[];return{...e,args:[...t,""]}}return e})},removeArgField:e=>{"stdio"===l.transport&&o(t=>"stdio"===t.transport&&t.args?{...t,args:t.args.filter((t,r)=>r!==e)}:t)},handleEnvChange:e=>{o(t=>{let r={...t,env:e};return"stdio"===t.transport||"websocket"===t.transport?r:t})}}})({initialConfig:e,isOpen:!0});(0,s.useEffect)(()=>{e&&e.name&&e.rootPath&&"stdio"===e.transport&&(!e.command||""===e.command)&&(!e._buildCommand||""===e._buildCommand)&&(!e._installCommand||""===e._installCommand)&&(E({type:"warning",text:d("mcp.local.detectionFailed")}),K({define:!0,build:!0,run:!0}))},[e,K,E,d]);let[ee,et]=(0,s.useState)(!1),[er,ea]=(0,s.useState)(null),en=async()=>{et(!0)},es=async e=>{ea(e)},el=async()=>{await ti(p,u,E,C,k,x,f,d)},eo=async()=>{await tc(p,u,E,D,C,k,x,f,d)},ei=async()=>{await td(p,S,N,T,ew,eS,eE,M,d)},ec=async()=>{await tp(p,w,R,T,ew,eS,eE,W,d)},[ed,ep]=(0,s.useState)(!1),[em,eu]=(0,s.useState)(!1),eh=async()=>{await tm(p,f,b,H,ew,eE,eS,E,q,e?.name,ep,d)},eg=async()=>{if(!c)return;if(!p.name||!b)return void E({type:"error",text:d("mcp.local.auth.missingDetails")});let e=to(p,f,b,w,S);eu(!0),E({type:"success",text:d("mcp.local.auth.starting",{server:e.name})});try{let t=await c(e);"needs_client_credentials"===t.status?E({type:"warning",text:t.error||d("mcp.local.auth.credentialsRequired")}):"error"===t.status&&E({type:"error",text:t.error||d("mcp.local.auth.failed")})}catch(e){E({type:"error",text:d("mcp.local.auth.failedWithError",{error:e instanceof Error?e.message:d("mcp.server.unknownError")})})}finally{eu(!1)}},{consoleOutput:eb,isConsoleVisible:ej,consoleTitle:eA,setConsoleTitle:ew,toggleConsoleVisibility:eC,setIsConsoleVisible:eS,appendToConsole:ek,clearConsole:e$,updateConsole:eE}=ex(),ez=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!o)return;let t=i??0;ez.current!==t&&e?.name&&p.name===e.name&&(ez.current=t,K({define:!1,build:!1,run:!0}),M(!0),W(!0),eh())},[o,i,e,p.name]);let eT=e=>(t,r)=>{K({...G,[e]:r})},eP=e=>{switch(e){case"error":return"error.main";case"success":return"success.main";case"warning":return"warning.main";case"loading":return"info.main";default:return"text.primary"}},eR=p.launch;return(0,a.jsxs)(n.default,{component:"form",onSubmit:a=>{((e,t,r,a,n,s,l,o,i,c,d,p=tl)=>{if(e.preventDefault(),!t.name||"stdio"===t.transport&&!t.command)return l({type:"error",text:p("mcp.local.messages.required")});if("websocket"===t.transport&&!r)return l({type:"error",text:p("mcp.local.run.validWebsocket")});if(("sse"===t.transport||"streamable"===t.transport)&&!a)return l({type:"error",text:p("mcp.local.run.validServer")});let m=to(t,r,a,n,s);c&&i?i(m):o(m),d&&d()})(a,p,f,b,w,S,E,t,r,e,l,d)},sx:{width:"100%"},children:[(0,a.jsxs)(h.Ay,{container:!0,spacing:2,children:[(0,a.jsx)(h.Ay,{item:!0,xs:12,md:ej?8:12,children:(0,a.jsxs)(y.A,{spacing:3,children:[eR&&(0,a.jsxs)(v.A,{severity:"info",children:[(0,a.jsx)(m.A,{variant:"body2",children:d("mcp.registry.manualLaunch.description")}),(0,a.jsx)(m.A,{variant:"caption",component:"code",sx:{display:"block",mt:1,fontFamily:"monospace",wordBreak:"break-all"},children:[eR.command,...eR.args??[]].join(" ")})]}),(0,a.jsxs)(tu.A,{expanded:G.define,onChange:eT("define"),sx:{border:1,borderColor:p.name&&p.rootPath?o?"success.main":"divider":"error.main",bgcolor:p.name&&p.rootPath?o?"success.lighter":"background.paper":"error.lighter","&:before":{display:"none"},borderRadius:1,boxShadow:e=>+("dark"===e.palette.mode),mb:2,overflow:"hidden"},children:[(0,a.jsx)(th.A,{expandIcon:(0,a.jsx)(tf.A,{}),"aria-controls":"define-server-content",id:"define-server-header",sx:{"& .MuiAccordionSummary-content":{alignItems:"center"},minHeight:56,px:2},children:(0,a.jsx)(m.A,{variant:"h6",sx:{color:eP(p.name&&p.rootPath?o?"success":"default":"error"),fontWeight:500},children:d("mcp.local.section.define")})}),(0,a.jsx)(tg.A,{sx:{px:3,py:2},children:(0,a.jsx)(ev,{name:p.name,setName:e=>u({...p,name:e}),rootPath:p.rootPath||"",setRootPath:e=>u({...p,rootPath:e}),onRootPathSelect:en})})]}),(0,a.jsxs)(tu.A,{expanded:G.build,onChange:eT("build"),sx:{border:1,borderColor:z?.type==="error"?"error.main":O&&F?"success.main":O||F?"warning.main":I||P?"info.main":"divider",bgcolor:z?.type==="error"?"error.lighter":O&&F?"success.lighter":O||F?"warning.lighter":I||P?"info.lighter":"background.paper","&:before":{display:"none"},borderRadius:1,boxShadow:e=>+("dark"===e.palette.mode),mb:2,overflow:"hidden"},children:[(0,a.jsx)(th.A,{expandIcon:(0,a.jsx)(tf.A,{}),"aria-controls":"build-content",id:"build-header",sx:{"& .MuiAccordionSummary-content":{alignItems:"center"},minHeight:56,px:2},children:(0,a.jsx)(m.A,{variant:"h6",sx:{color:eP(z?.type==="error"?"error":O&&F?"success":O||F?"warning":I||P?"loading":"default"),fontWeight:500},children:d("mcp.local.section.build")})}),(0,a.jsx)(tg.A,{sx:{px:3,py:2},children:(0,a.jsx)(ey,{installCommand:S,setinstallCommand:k,buildCommand:w,setBuildCommand:C,onInstall:ei,onBuild:ec,isInstalling:I,isBuilding:P,installCompleted:O,buildCompleted:F,buildMessage:z})})]}),(0,a.jsxs)(tu.A,{expanded:G.run,onChange:eT("run"),sx:{border:1,borderColor:$?.type!=="error"||L?J?"success.main":L?"info.main":"divider":"error.main",bgcolor:$?.type!=="error"||L?J?"success.lighter":L?"info.lighter":"background.paper":"error.lighter","&:before":{display:"none"},borderRadius:1,boxShadow:e=>+("dark"===e.palette.mode),mb:2,overflow:"hidden"},children:[(0,a.jsx)(th.A,{expandIcon:(0,a.jsx)(tf.A,{}),"aria-controls":"run-content",id:"run-header",sx:{"& .MuiAccordionSummary-content":{alignItems:"center"},minHeight:56,px:2},children:(0,a.jsx)(m.A,{variant:"h6",sx:{color:eP($?.type!=="error"||L?J?"success":L?"loading":"default":"error"),fontWeight:500},children:d("mcp.local.section.run")})}),(0,a.jsx)(tg.A,{sx:{px:3,py:2},children:(0,a.jsxs)(y.A,{spacing:4,children:[(0,a.jsx)(eY,{command:"stdio"===p.transport?p.command:"",setCommand:e=>{"stdio"===p.transport&&u(t=>"stdio"===t.transport?{...t,command:e}:t)},transport:p.transport,setTransport:V,websocketUrl:f,setWebsocketUrl:x,serverUrl:b,setServerUrl:j,onRun:eh,isRunning:L,runCompleted:J,env:p.env,onEnvChange:Q,headers:("sse"===p.transport||"streamable"===p.transport)&&p.headers||{},onHeadersChange:e=>u(t=>({...t,headers:e})),oauthClientId:p.oauthClientId||"",oauthClientSecret:p.oauthClientSecret||"",onOAuthClientIdChange:e=>u(t=>({...t,oauthClientId:e})),onOAuthClientSecretChange:e=>u(t=>({...t,oauthClientSecret:e})),serverName:p.name,consoleOutput:eb,message:$,setMessage:E,oauthCapable:ed,onSaveAndAuthenticate:c?eg:void 0,isAuthenticating:em}),(0,a.jsx)(n.default,{children:(0,a.jsx)(e0,{args:"stdio"===p.transport&&p.args||[],onArgChange:X,onAddArg:Z,onRemoveArg:Y,onFolderSelect:es,onParseReadme:eo,onParseClipboard:el,isParsingReadme:_})}),(0,a.jsx)(n.default,{children:(0,a.jsx)(e1.A,{roots:p.roots||[],onChange:e=>u(t=>({...t,roots:e}))})}),(0,a.jsx)(n.default,{children:(0,a.jsx)(te,{policy:p.sampling,onChange:e=>u(t=>({...t,sampling:e}))})}),(0,a.jsx)(n.default,{children:(0,a.jsx)(tr,{policy:p.elicitation,onChange:e=>u(t=>({...t,elicitation:e}))})})]})})]})]})}),ej&&(0,a.jsx)(h.Ay,{item:!0,xs:12,md:4,sx:{height:{xs:320,md:"auto"},minHeight:{xs:240,md:0}},children:(0,a.jsx)(ef,{output:eb,isVisible:!0,toggleVisibility:eC,title:eA})})]}),$&&(0,a.jsx)(n.default,{sx:{mt:2,mb:2},children:(0,a.jsx)(v.A,{severity:$.type,children:$.text})}),(0,a.jsx)(tS,{context:{config:{name:p.name,transport:p.transport,..."stdio"===p.transport?{command:p.command,args:p.args}:{},..."sse"===p.transport||"streamable"===p.transport?{serverUrl:b,headerNames:Object.keys(p.headers||{})}:{},rootPath:p.rootPath,envNames:Object.keys(p.env||{}),installCommand:S,buildCommand:w},error:[z?.text,$?.text].filter(Boolean).join("\n"),consoleOutput:eb},onApplyPatch:e=>{u(t=>{let r={...t.env||{}};for(let t of e.addEnvNames??[])t in r||(r[t]="");let a={...t,env:r,...e.rootPath?{rootPath:e.rootPath}:{}};if("stdio"===t.transport)return{...a,...e.command?{command:e.command}:{},...e.args?{args:e.args}:{}};if("sse"===t.transport||"streamable"===t.transport){let r={...t.headers||{}};for(let t of e.addHeaderNames??[])t in r||(r[t]="");return{...a,headers:r}}return a}),e.serverUrl&&j(e.serverUrl),void 0!==e.installCommand&&k(e.installCommand),void 0!==e.buildCommand&&C(e.buildCommand),E({type:"warning",text:d("mcp.troubleshoot.reviewApplied")})}}),(0,a.jsxs)(n.default,{sx:{display:"flex",flexWrap:"wrap",justifyContent:"flex-end",gap:1,mt:3},children:[(0,a.jsx)(A.A,{variant:"outlined",onClick:l,children:d("mcp.local.cancel")}),(0,a.jsx)(A.A,{type:"submit",variant:"contained",color:"primary",children:e?d("mcp.local.updateServer"):d("mcp.local.addServer")})]}),(0,a.jsx)(ta.A,{open:ee,title:d("mcp.local.chooseServerFolder"),initialPath:p.rootPath||void 0,onClose:()=>et(!1),onSelect:e=>u({...p,rootPath:e})}),(0,a.jsx)(ta.A,{open:null!==er,title:d("mcp.local.chooseFolderOrFile"),selectFiles:!0,onClose:()=>ea(null),onSelect:e=>{null!==er&&X(er,e)}})]})};function t$(e){return"manual-launch"!==e.kind}let tE={npm:"npx",pypi:"uvx",oci:"docker",nuget:"dnx"},tz={npm:"npm",pypi:"PyPI",oci:"Docker",nuget:"NuGet",mcpb:"MCPB",cargo:"Cargo"};function tT(e){return""!==e&&/^[A-Za-z0-9_@%+=:,./-]+$/.test(e)?e:`"${e.replace(/(["$`\\])/g,"\\$1")}"`}function tP(e){var t;let r=[],a=[];for(let n of e.packages??[]){let e=function(e){if(!e.identifier)return{supported:!1,reason:"no-identifier"};if(!tE[e.registryType]&&!e.runtimeHint)return{supported:!1,reason:"unknown-runner"};let t=e.transport?.type;return t&&"stdio"!==t?"streamable-http"===t||"sse"===t?{supported:!1,reason:"launch-and-connect"}:{supported:!1,reason:"unknown-transport"}:{supported:!0}}(n);e.supported?r.push({kind:"package",label:`${tz[t=n.registryType]||t}: ${n.identifier}`,pkg:n}):"launch-and-connect"===e.reason&&a.push(function(e){var t;let{command:r,args:a}=tU(e,{envFlags:"inline"}),n=e.transport?.type==="sse"?"sse":"streamable",s=e.transport?.url,l={kind:"manual-launch",label:`${tz[t=e.registryType]||t}: ${e.identifier} (manual start)`,pkg:e,transport:n,runLine:[r,...a].map(tT).join(" ")};if(!s)return{...l,urlError:"missing-url",urlErrorDetail:"no transport.url declared"};let o=function(e,t){let r,a=[],n=e.replace(/\{([^{}]+)\}/g,(e,r)=>{let n=t.args[r]??t.env[r];return void 0===n||""===n?(a.push(r),""):n});if(a.length>0)return{error:"unresolved-placeholder",detail:a.join(", ")};try{r=new URL(n)}catch{return{error:"invalid-url",detail:n}}return/^https?:$/.test(r.protocol)?!function(e){let t=e.toLowerCase().replace(/^\[/,"").replace(/\]$/,"");if("localhost"===t||"::1"===t||"0:0:0:0:0:0:0:1"===t)return!0;let r=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(t);if(!r)return!1;let a=r.slice(1,5).map(Number);return!a.some(e=>e>255)&&127===a[0]}(r.hostname)?{error:"non-loopback",detail:r.hostname}:{url:r.toString()}:{error:"invalid-url",detail:n}}(s,{env:function(e){let t={};for(let r of e??[]){if(!r.name)continue;let e=r.value??r.default;void 0!==e&&""!==e&&(t[r.name]=e)}return t}(e.environmentVariables),args:{...tM(e.runtimeArguments),...tM(e.packageArguments)}});return"url"in o?{...l,resolvedUrl:o.url}:{...l,urlError:o.error,urlErrorDetail:o.detail}}(n))}for(let t of e.remotes??[])t.url&&("streamable-http"===t.type||"sse"===t.type)&&r.push({kind:"remote",label:`Remote (${"sse"===t.type?"SSE":"Streamable HTTP"}): ${t.url}`,remote:t});return[...r,...a]}let tR=new Set(["mcp","server","mcp-server","mcpserver"]);function tI(e){let t=e.indexOf("/"),r=t>=0?e.slice(0,t):"",a=t>=0?e.slice(t+1):e;if(!tR.has(a.toLowerCase())||!r)return a;let n=r.split(".").reverse().find(e=>e&&!tR.has(e.toLowerCase()))||"";return n?`${n}-${a}`:a}function tN(e){return e.title?e.title:tI(e.name)}function tF(e,t){let r=e.icons;if(!r||0===r.length)return null;let a=r.filter(e=>{if(!e?.src)return!1;try{return/^https?:$/.test(new URL(e.src).protocol)}catch{return!1}});return 0===a.length?null:((t?a.find(e=>e.theme===t):void 0)??a[0]).src}function tW(e){let t=e.value??e.default;return"named"===e.type?e.name?void 0!==t&&""!==t?[e.name,t]:e.isRequired&&e.valueHint?[e.name,`<${e.valueHint}>`]:e.isRequired?[e.name]:[]:[]:void 0!==t&&""!==t?[t]:e.isRequired?[`<${e.valueHint||"value"}>`]:[]}function tO(e){return(e??[]).flatMap(tW)}function tM(e){let t={};for(let r of e??[]){if("named"!==r.type||!r.name)continue;let e=r.value??r.default;void 0!==e&&""!==e&&(t[r.name]=e)}return t}function t_(e){let t=(e.icons??[]).flatMap(e=>{if(!e?.src)return[];try{if(!/^https?:$/.test(new URL(e.src).protocol))return[]}catch{return[]}return[{src:e.src,...e.sizes?{sizes:e.sizes}:{},...e.mimeType?{mimeType:e.mimeType}:{},..."light"===e.theme||"dark"===e.theme?{theme:e.theme}:{}}]});return{name:tI(e.name).replace(/[^a-zA-Z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")||"mcp-server",disabled:!1,autoApprove:[],env:{},_buildCommand:"",_installCommand:"",...t.length>0?{icons:t}:{}}}function tD(e){return e.version?`${e.identifier}@${e.version}`:e.identifier}function tU(e,t={}){let r,a=e.runtimeHint||tE[e.registryType],n=tO(e.packageArguments),s=tO(e.runtimeArguments),l=function(e){let t={};for(let r of e??[]){if(!r.name)continue;let e=r.value??r.default??"";t[r.name]=r.isSecret?{value:e,metadata:{isSecret:!0}}:e}return t}(e.environmentVariables);switch(e.registryType){case"npm":r=[...s,"-y",tD(e),...n];break;case"pypi":r=[...s,e.version?`${e.identifier}==${e.version}`:e.identifier,...n];break;case"oci":{let a,o="inline"===t.envFlags?function(e){let t=[];for(let r of e??[]){if(!r.name)continue;let e=r.value??r.default,a=!r.isSecret&&void 0!==e&&""!==e;t.push("-e",`${r.name}=${a?e:`<${r.name}>`}`)}return t}(e.environmentVariables):Object.keys(l).flatMap(e=>["-e",e]);r=[..."run"===s[0]?[]:["run","-i","--rm"],...s,...o,!((a=e.identifier.split("/").pop()||e.identifier).includes(":")||a.includes("@"))&&e.version?`${e.identifier}:${e.version}`:e.identifier,...n];break}case"nuget":r=[...s,tD(e),"--yes",...n];break;default:r=[...s,tD(e),...n]}return{command:a,args:r,env:l}}function tB(e,t){return"remote"===e.kind?(e.remote.headers??[]).filter(e=>e.isRequired&&!(e.value??e.default)&&!t?.[e.name]).map(e=>e.name):(e.pkg.environmentVariables??[]).filter(e=>e.isRequired&&!(e.value??e.default)&&!t?.[e.name]).map(e=>e.name)}var tL=r(78674),tH=r(7880),tJ=r(10286),tq=r(6438),tG=r(66808),tK=r(25404),tV=r(83793),tX=r(85930),tZ=r(20418),tY=r(34951),tQ=r(42840);let t0=({option:e,disabled:t,onConfigureAsRemote:r})=>{let{t:s}=(0,g.s9)(),l=async()=>{try{await navigator.clipboard?.writeText(e.runLine)}catch{}};return(0,a.jsxs)(n.default,{sx:{px:2,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:[(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5},children:[(0,a.jsx)(tQ.A,{fontSize:"small",color:"disabled"}),(0,a.jsx)(m.A,{variant:"body2",sx:{wordBreak:"break-all",flexGrow:1},children:e.label})]}),(0,a.jsx)(m.A,{variant:"caption",color:"text.secondary",component:"div",sx:{mb:1},children:s("mcp.registry.manualLaunch.description")}),(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"flex-start",gap:1,p:1,borderRadius:1,bgcolor:"action.hover"},children:[(0,a.jsx)(m.A,{variant:"caption",component:"code",sx:{flexGrow:1,fontFamily:"monospace",wordBreak:"break-all"},children:e.runLine}),(0,a.jsx)(eS.A,{title:s("mcp.registry.manualLaunch.copyCommand"),children:(0,a.jsx)(C.A,{size:"small",onClick:l,"aria-label":s("mcp.registry.manualLaunch.copyCommand"),children:(0,a.jsx)(eD.A,{fontSize:"inherit"})})})]}),e.resolvedUrl?(0,a.jsx)(m.A,{variant:"caption",color:"text.secondary",component:"div",sx:{mt:1,wordBreak:"break-all"},children:e.resolvedUrl}):null,r?(0,a.jsx)(A.A,{size:"small",sx:{mt:1},disabled:t,onClick:()=>{t||r(e)},children:s("mcp.registry.manualLaunch.configureAsRemote")}):null]})},t1=({options:e,envDefaults:t,disabled:r,onSelect:s,onConfigureAsRemote:l})=>{let{t:o,formatList:i}=(0,g.s9)(),c=e.filter(e=>"manual-launch"!==e.kind),d=e.filter(e=>"manual-launch"===e.kind);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tL.A,{children:c.map((e,n)=>{let l=tB(e,t);return(0,a.jsxs)(tH.A,{disabled:r,"aria-disabled":r||void 0,onClick:()=>{r||s(e)},children:[(0,a.jsx)(tJ.A,{children:"package"===e.kind?(0,a.jsx)(tZ.A,{}):(0,a.jsx)(tY.A,{})}),(0,a.jsx)(tq.A,{primary:e.label,secondary:l.length>0?o("mcp.marketplace.requires",{values:i(l)}):"package"===e.kind?o("mcp.marketplace.runsLocal"):o("mcp.marketplace.hostedRemote"),primaryTypographyProps:{sx:{wordBreak:"break-all"}}})]},n)})}),d.length>0?(0,a.jsxs)(n.default,{children:[(0,a.jsx)(v.A,{severity:"info",sx:{mb:1},children:o("mcp.registry.manualLaunch.title")}),d.map((e,t)=>(0,a.jsx)(t0,{option:e,disabled:r,onConfigureAsRemote:l},`manual-${t}`))]}):null]})},t2=({open:e,title:t,helpText:r,onClose:n,...s})=>{let{t:l}=(0,g.s9)();return(0,a.jsxs)(tG.A,{open:e,onClose:n,maxWidth:"sm",fullWidth:!0,children:[(0,a.jsx)(tK.A,{children:t}),(0,a.jsxs)(tV.A,{children:[r?(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",sx:{mb:1},children:r}):null,(0,a.jsx)(t1,{...s})]}),(0,a.jsx)(tX.A,{children:(0,a.jsx)(A.A,{onClick:n,children:l("mcp.local.cancel")})})]})},t3=function({requireTrust:e,onHandoff:t}){let[r,a]=(0,s.useState)(null),[n,l]=(0,s.useState)(!1),o=(0,s.useCallback)((e,t)=>{let r=tP(e);return l(!1),a({server:e,options:r,...t?{envDefaults:t}:{}}),r},[]),i=(0,s.useCallback)(()=>{a(null),l(!1)},[]),c=(0,s.useCallback)((e,t,r)=>{let a,n,s;var l=(a="package"===t.kind?function(e,t){let{command:r,args:a,env:n}=tU(t),s=t_(e);return{...s,transport:"stdio",command:r,args:a,env:n,rootPath:`mcp-servers/${s.name}`}}(e,t.pkg):"manual-launch"===t.kind?function(e,t){let{command:r,args:a,env:n}=tU(t.pkg),s=t_(e),l={command:r,...a.length>0?{args:a}:{},...Object.keys(n).length>0?{env:n}:{}};return{...s,transport:t.transport,serverUrl:t.resolvedUrl??"",headers:{},env:n,launch:l,rootPath:`mcp-servers/${s.name}`}}(e,t):function(e,t){let r={};for(let e of t.headers??[])e.name&&(r[e.name]=e.value??e.default??"");let a=t_(e);return{...a,transport:"sse"===t.type?"sse":"streamable",serverUrl:t.url,headers:r,rootPath:`mcp-servers/${a.name}`}}(e,t.remote),n="remote"===t.kind?e.version:t.pkg.version??e.version,s={type:"registry",registryName:e.name,...n?{version:n}:{}},{...a,source:s}),o=r;if(!o||0===Object.keys(o).length)return l;let i={...l.env??{}};for(let[e,t]of Object.entries(o)){let r=i[e];r&&"object"==typeof r&&r.metadata?.isSecret?i[e]={value:t,metadata:{isSecret:!0}}:i[e]=t}return{...l,env:i}},[]),d=(0,s.useCallback)((e,r,a)=>{let n=c(e,r,a),s=tB(r,a);return i(),t?.({to:"configure",config:n,autoTestRun:!0}),s},[c,i,t]),p=(0,s.useCallback)((e,r,a)=>{let n=c(e,r,a);i(),t?.({to:"configure",config:n})},[c,i,t]),m=(0,s.useCallback)((e,t)=>tB(e,t),[]);return{selection:r,options:r?.options??[],trustConfirmed:n,setTrustConfirmed:l,installBlocked:e&&!n,open:o,close:i,install:d,configureAsRemote:p,missingFor:m}};var t5=r(99084),t6=r(47667),t4=r(39922),t9=r(83063),t8=r(83550),t7=r(49625),re=r(28512),rt=r(59035),rr=r(8349),ra=r(43018),rn=r(60714);let rs=({onClose:e,onHandoff:t})=>{let r=(0,eg.A)(),{t:l,formatNumber:o,formatList:i}=(0,g.s9)(),[c,d]=(0,s.useState)(""),[p,u]=(0,s.useState)(""),[f,x]=(0,s.useState)([]),[b,S]=(0,s.useState)(null),[k,$]=(0,s.useState)(!1),[E,z]=(0,s.useState)(!1),[T,P]=(0,s.useState)(null),R=t3({requireTrust:!0,onHandoff:t}),I=R.selection?.server??null,N=R.trustConfirmed,F=(0,s.useRef)(0),W=(0,s.useCallback)(e=>{R.open(e)},[R]),O=(0,s.useCallback)(()=>{R.close()},[R]),M=(0,s.useCallback)(async(e,t)=>{let r=++F.current,a=!t;a?$(!0):z(!0),P(null);try{let n=new URLSearchParams({limit:String(30)});e&&n.set("search",e),t&&n.set("cursor",t);let s=await fetch(`/api/mcp-registry?${n.toString()}`),l=await s.json();if(r!==F.current)return;if(!s.ok||!1===l.success)throw Error(l.error||String(s.status));let o=l.servers??[];x(e=>a?o:[...e,...o]),S(o.length>0?l.metadata?.nextCursor??null:null)}catch(e){if(r!==F.current)return;console.error("Error fetching from MCP Registry:",e),P({type:"error",text:l("mcp.marketplace.loadError",{error:e instanceof Error?e.message:l("mcp.server.unknownError")})})}finally{r===F.current&&($(!1),z(!1))}},[l]);(0,s.useEffect)(()=>{p&&M(p)},[p,M]);let _=()=>{d(""),u(""),F.current++,$(!1),z(!1),x([]),S(null),P(null)},D=e=>{let t=e.repository?.url;if(!t)return null;try{return"github.com"===new URL(t).hostname?t:null}catch{return null}},U=R.options;return(0,a.jsxs)(n.default,{sx:{width:"100%"},children:[(0,a.jsxs)(y.A,{spacing:3,children:[(0,a.jsx)(m.A,{variant:"h6",gutterBottom:!0,children:l("mcp.marketplace.title")}),(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",children:(0,a.jsx)(eN.A,{message:"mcp.marketplace.help",values:{registryLink:(0,a.jsx)(e_.A,{href:"https://registry.modelcontextprotocol.io",target:"_blank",rel:"noopener noreferrer",children:l("mcp.marketplace.registry")})}})}),(0,a.jsx)(j.A,{fullWidth:!0,size:"small",value:c,onChange:e=>d(e.target.value),onKeyDown:e=>{if("Enter"===e.key){e.preventDefault();let t=c.trim();t?t===p?M(t):u(t):_()}},placeholder:l("mcp.marketplace.search"),variant:"outlined",InputProps:{startAdornment:(0,a.jsx)(w.A,{position:"start",children:(0,a.jsx)(t8.A,{})}),endAdornment:c?(0,a.jsx)(w.A,{position:"end",children:(0,a.jsx)(C.A,{size:"small",onClick:_,"aria-label":l("mcp.marketplace.clearSearch"),children:(0,a.jsx)(rt.A,{fontSize:"small"})})}):void 0}}),T&&(0,a.jsx)(v.A,{severity:T.type,onClose:()=>P(null),children:T.text}),k?(0,a.jsx)(n.default,{sx:{display:"flex",justifyContent:"center",my:4},children:(0,a.jsx)(eb.default,{})}):(0,a.jsxs)(a.Fragment,{children:[0===f.length&&!T&&(0,a.jsx)(m.A,{variant:"body1",color:"text.secondary",sx:{textAlign:"center",my:4},children:p?(0,a.jsx)(a.Fragment,{children:l("mcp.marketplace.noResults",{search:p})}):(0,a.jsx)(a.Fragment,{children:l("mcp.marketplace.startSearch")})}),(0,a.jsx)(h.Ay,{container:!0,spacing:2,children:f.map(e=>{let t,s=e.server,i=tP(s).some(t$),c="active"===("string"==typeof(t=e?._meta?.["io.modelcontextprotocol.registry/official"]?.status)&&t.length>0?t:"unverified");return(0,a.jsx)(h.Ay,{item:!0,xs:12,sm:6,md:4,children:(0,a.jsx)(t5.A,{sx:{height:"100%",display:"flex",flexDirection:"column",transition:"transform 0.2s, box-shadow 0.2s","&:hover":{transform:"translateY(-4px)",boxShadow:6}},children:(0,a.jsxs)(t6.A,{sx:{flexGrow:1,display:"flex",flexDirection:"column",alignItems:"stretch"},onClick:()=>{W(s)},children:[(0,a.jsxs)(n.default,{sx:{p:2,display:"flex",alignItems:"center",borderBottom:"1px solid",borderColor:"divider"},children:[(0,a.jsx)(t4.A,{src:tF(s,r.palette.mode)??void 0,sx:{bgcolor:r.palette.primary.main,color:"#fff",mr:2,boxShadow:1},children:tN(s).charAt(0).toUpperCase()}),(0,a.jsxs)(n.default,{sx:{flexGrow:1,minWidth:0},children:[(0,a.jsx)(m.A,{variant:"subtitle1",component:"div",noWrap:!0,title:tN(s),children:tN(s)}),(0,a.jsx)(m.A,{variant:"caption",color:"text.secondary",noWrap:!0,component:"div",title:s.name,children:s.name})]})]}),(0,a.jsxs)(t9.A,{sx:{flexGrow:1,pt:2,width:"100%"},children:[(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",sx:{mb:2,display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:s.description||l("mcp.spotlight.noDescription")}),(0,a.jsxs)(n.default,{sx:{display:"flex",flexWrap:"wrap",gap:.5,alignItems:"center"},children:["number"==typeof e.quality?.stars&&(0,a.jsx)(eA.A,{size:"small",variant:"outlined",icon:(0,a.jsx)(ra.A,{}),label:o(e.quality.stars,{notation:"compact",maximumFractionDigits:1}),title:l("mcp.marketplace.stars",{count:o(e.quality.stars)})}),"number"==typeof e.quality?.weeklyDownloads&&(0,a.jsx)(eA.A,{size:"small",variant:"outlined",icon:(0,a.jsx)(rn.A,{}),label:l("mcp.marketplace.weeklyCompact",{count:o(e.quality.weeklyDownloads,{notation:"compact",maximumFractionDigits:1})}),title:l("mcp.marketplace.weeklyDownloads",{count:o(e.quality.weeklyDownloads)})}),(e=>{let t=[],r=new Set;for(let s of e.packages??[]){var n;let e=tz[n=s.registryType]||n;r.has(e)||(r.add(e),t.push((0,a.jsx)(eA.A,{size:"small",icon:(0,a.jsx)(tZ.A,{}),label:e},`pkg-${e}`)))}return(e.remotes??[]).length>0&&t.push((0,a.jsx)(eA.A,{size:"small",icon:(0,a.jsx)(tY.A,{}),label:l("mcp.marketplace.remote")},"remote")),t})(s),s.version&&(0,a.jsx)(eA.A,{size:"small",variant:"outlined",label:`v${s.version}`}),!i&&(0,a.jsx)(eA.A,{size:"small",color:"warning",variant:"outlined",label:l("mcp.marketplace.manualSetup")}),i&&!c&&(0,a.jsx)(eA.A,{size:"small",color:"warning",variant:"outlined",icon:(0,a.jsx)(rr.A,{}),label:l("mcp.marketplace.unverified"),title:l("mcp.marketplace.unverifiedHelp")})]})]})]})})},s.name)})}),b&&f.length>0&&(0,a.jsx)(n.default,{sx:{display:"flex",justifyContent:"center"},children:(0,a.jsx)(A.A,{variant:"outlined",onClick:()=>M(p,b),disabled:E,startIcon:E?(0,a.jsx)(eb.default,{size:20,color:"inherit"}):void 0,children:E?l("mcp.marketplace.loading"):l("mcp.marketplace.loadMore")})})]}),(0,a.jsx)(n.default,{sx:{display:"flex",justifyContent:"flex-end",gap:1},children:(0,a.jsx)(A.A,{variant:"outlined",onClick:e,children:l("mcp.local.cancel")})})]}),(0,a.jsx)(tG.A,{open:null!==I,onClose:O,maxWidth:"sm",fullWidth:!0,children:I&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tK.A,{component:"div",children:(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1.5,minWidth:0},children:[(0,a.jsx)(t4.A,{src:tF(I,r.palette.mode)??void 0,sx:{bgcolor:r.palette.primary.main,color:"#fff",width:40,height:40},children:tN(I).charAt(0).toUpperCase()}),(0,a.jsxs)(n.default,{sx:{minWidth:0},children:[(0,a.jsx)(m.A,{variant:"h6",noWrap:!0,title:tN(I),children:tN(I)}),(0,a.jsx)(m.A,{variant:"caption",color:"text.secondary",noWrap:!0,component:"div",title:I.name,children:I.name})]})]})}),(0,a.jsxs)(tV.A,{children:[(I.repository?.url||I.websiteUrl)&&(0,a.jsxs)(n.default,{sx:{display:"flex",gap:1,mb:2,flexWrap:"wrap"},children:[I.repository?.url&&(0,a.jsx)(A.A,{size:"small",startIcon:(0,a.jsx)(t7.A,{}),component:"a",href:I.repository.url,target:"_blank",rel:"noopener noreferrer",children:l("mcp.marketplace.repository")}),I.websiteUrl&&(0,a.jsx)(A.A,{size:"small",startIcon:(0,a.jsx)(re.A,{}),component:"a",href:I.websiteUrl,target:"_blank",rel:"noopener noreferrer",children:l("mcp.marketplace.website")})]}),(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:I.description||l("mcp.spotlight.noDescription")}),(0,a.jsx)(v.A,{severity:"warning",icon:(0,a.jsx)(rr.A,{}),sx:{mb:1},children:l("mcp.marketplace.securityWarning")}),(0,a.jsx)(ew.A,{sx:{mb:1},control:(0,a.jsx)(eC.A,{checked:N,onChange:e=>R.setTrustConfirmed(e.target.checked)}),label:l("mcp.marketplace.trust")}),U.length>0?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{variant:"subtitle2",gutterBottom:!0,children:l("mcp.marketplace.chooseInstall")}),(0,a.jsx)(t1,{options:U,disabled:R.installBlocked,onSelect:e=>{let t;P({type:(t=R.install(I,e)).length>0?"warning":"success",text:t.length>0?l("mcp.marketplace.preparedMissing",{values:i(t)}):l("mcp.marketplace.prepared")})},onConfigureAsRemote:e=>{R.configureAsRemote(I,e),P({type:"success",text:l("mcp.marketplace.prepared")})}})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(v.A,{severity:"info",children:[l("mcp.marketplace.noAutomatic"),D(I)&&t&&(0,a.jsxs)(a.Fragment,{children:[" ",l("mcp.marketplace.githubFallback")]})]}),D(I)&&t&&(0,a.jsx)(A.A,{variant:"contained",startIcon:(0,a.jsx)(t7.A,{}),disabled:!N,onClick:()=>{let e;(e=D(I))&&t&&(O(),t({to:"github",repoUrl:e}))},sx:{mt:2},children:l("mcp.marketplace.tryManual")})]})]}),(0,a.jsx)(tX.A,{children:(0,a.jsx)(A.A,{onClick:O,children:l("mcp.marketplace.close")})})]})})]})};var rl=r(99637);let ro=({onClose:e,onHandoff:t})=>{let r=(0,eg.A)(),{t:l,tp:o,formatDate:i,formatList:c}=(0,g.s9)(),[d,p]=(0,s.useState)(null),[u,f]=(0,s.useState)(!0),[x,b]=(0,s.useState)(!1),[j,w]=(0,s.useState)(null),C=t3({requireTrust:!1,onHandoff:t});(0,s.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/mcp-registry/spotlight"),r=await t.json();if(e)return;if(!t.ok||!1===r.success)throw Error(r.error||String(t.status));p(r.cache??null)}catch(t){e||w({type:"error",text:l("mcp.spotlight.loadError",{error:t instanceof Error?t.message:l("mcp.server.unknownError")})})}finally{e||f(!1)}})(),()=>{e=!0}},[l]);let S=async()=>{b(!0),w(null);try{let e=await fetch("/api/mcp-registry/spotlight",{method:"POST"}),t=await e.json();if(!e.ok||!1===t.success)throw Error(t.error||String(e.status));p(t.cache??null)}catch(e){w({type:"error",text:l("mcp.spotlight.refreshError",{error:e instanceof Error?e.message:l("mcp.server.unknownError")})})}finally{b(!1)}},k=(e,t)=>{let r=C.install(e.server,t,e.env);r.length>0&&w({type:"warning",text:l("mcp.marketplace.preparedMissing",{values:c(r)})})},$=(d?.entries??[]).filter(e=>e.result).map(e=>({server:e.result.server,env:e.env})),E=(d?.entries??[]).filter(e=>!e.result),z=C.selection?{server:C.selection.server,...C.selection.envDefaults?{env:C.selection.envDefaults}:{}}:null;return(0,a.jsxs)(n.default,{sx:{width:"100%"},children:[(0,a.jsxs)(y.A,{spacing:3,children:[(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,a.jsx)(m.A,{variant:"h6",children:l("mcp.spotlight.title")}),(0,a.jsx)(A.A,{variant:"outlined",size:"small",onClick:S,disabled:x,startIcon:x?(0,a.jsx)(eb.default,{size:16,color:"inherit"}):(0,a.jsx)(rl.A,{}),children:x?l("mcp.spotlight.refreshing"):l("mcp.spotlight.refresh")})]}),(0,a.jsxs)(m.A,{variant:"body2",color:"text.secondary",children:[l("mcp.spotlight.help"),d?.updatedAt&&(0,a.jsxs)(a.Fragment,{children:[" ",l("mcp.spotlight.updated",{date:i(d.updatedAt,{dateStyle:"medium",timeStyle:"short"})})]})]}),j&&(0,a.jsx)(v.A,{severity:j.type,onClose:()=>w(null),children:j.text}),u?(0,a.jsx)(n.default,{sx:{display:"flex",justifyContent:"center",my:4},children:(0,a.jsx)(eb.default,{})}):0===$.length?(0,a.jsx)(m.A,{variant:"body1",color:"text.secondary",sx:{textAlign:"center",my:4},children:l("mcp.spotlight.empty")}):(0,a.jsx)(h.Ay,{container:!0,spacing:2,children:$.map(e=>{let{server:t}=e,s=tP(t),o=s.some(e=>"package"===e.kind),i=s.some(e=>"remote"===e.kind);return(0,a.jsx)(h.Ay,{item:!0,xs:12,sm:6,md:4,children:(0,a.jsx)(t5.A,{sx:{height:"100%",display:"flex",flexDirection:"column",transition:"transform 0.2s, box-shadow 0.2s","&:hover":{transform:"translateY(-4px)",boxShadow:6}},children:(0,a.jsxs)(t6.A,{sx:{flexGrow:1,display:"flex",flexDirection:"column",alignItems:"stretch"},onClick:()=>(e=>{let t=C.open(e.server,e.env);if(0===t.length){C.close(),w({type:"warning",text:l("mcp.spotlight.noInstall",{server:tN(e.server)})});return}1===t.length&&t$(t[0])&&k(e,t[0])})(e),children:[(0,a.jsxs)(n.default,{sx:{p:2,display:"flex",alignItems:"center",borderBottom:"1px solid",borderColor:"divider"},children:[(0,a.jsx)(t4.A,{sx:{bgcolor:r.palette.warning.main,color:"#fff",mr:2,boxShadow:1},children:(0,a.jsx)(ra.A,{fontSize:"small"})}),(0,a.jsxs)(n.default,{sx:{flexGrow:1,minWidth:0},children:[(0,a.jsx)(m.A,{variant:"subtitle1",component:"div",noWrap:!0,title:tN(t),children:tN(t)}),(0,a.jsx)(m.A,{variant:"caption",color:"text.secondary",noWrap:!0,component:"div",title:t.name,children:t.name})]})]}),(0,a.jsxs)(t9.A,{sx:{flexGrow:1,pt:2,width:"100%"},children:[(0,a.jsx)(m.A,{variant:"body2",color:"text.secondary",sx:{mb:2,display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:t.description||l("mcp.spotlight.noDescription")}),(0,a.jsxs)(n.default,{sx:{display:"flex",flexWrap:"wrap",gap:.5,alignItems:"center"},children:[o&&(0,a.jsx)(eA.A,{size:"small",icon:(0,a.jsx)(tZ.A,{}),label:l("mcp.spotlight.local")}),i&&(0,a.jsx)(eA.A,{size:"small",icon:(0,a.jsx)(tY.A,{}),label:l("mcp.spotlight.remote")}),t.version&&(0,a.jsx)(eA.A,{size:"small",variant:"outlined",label:`v${t.version}`})]})]})]})})},t.name)})}),E.length>0&&!u&&(0,a.jsxs)(v.A,{severity:"warning",children:[o("mcp.spotlight.failures",E.length),E.map(e=>(0,a.jsxs)(m.A,{variant:"caption",component:"div",sx:{wordBreak:"break-all"},children:[e.url," — ",e.error||l("mcp.server.unknownError")]},e.url))]}),(0,a.jsx)(n.default,{sx:{display:"flex",justifyContent:"flex-end",gap:1},children:(0,a.jsx)(A.A,{variant:"outlined",onClick:e,children:l("mcp.local.cancel")})})]}),z&&(0,a.jsx)(t2,{open:!0,title:tN(z.server),helpText:l("mcp.spotlight.chooseHelp"),options:C.options,...z.env?{envDefaults:z.env}:{},onClose:C.close,onSelect:e=>k(z,e),onConfigureAsRemote:e=>{C.configureAsRemote(z.server,e,z.env)}})]})},ri=({onAdd:e,onClose:t,onHandoff:r})=>{let l=(0,eg.A)(),{t:o,tp:i}=(0,g.s9)(),[c,d]=(0,s.useState)(!1),[p,f]=(0,s.useState)(!1),[x,b]=(0,s.useState)(!1),[j,w]=(0,s.useState)(null),[C,S]=(0,s.useState)([]),[k,$]=(0,s.useState)(""),[E,z]=(0,s.useState)(!1),{consoleOutput:T,isConsoleVisible:P,setIsConsoleVisible:R,updateConsole:I,clearConsole:N}=ex();(0,s.useEffect)(()=>{(async()=>{d(!0);try{let e=await fetch("/api/cwd"),t=await e.json();if(t.success){$(t.mcpServersDir);let e=`${t.mcpServersDir}/servers`,r=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"exists",savePath:e})}),a=await r.json();z(a.exists),a.exists?await W(e):w({type:"warning",text:o("mcp.reference.repoMissing")})}}catch(e){console.error("Error initializing Reference Servers tab:",e),w({type:"error",text:o("mcp.reference.initializeError",{error:e instanceof Error?e.message:o("mcp.server.unknownError")})})}finally{d(!1)}})()},[o]);let F=async()=>{f(!0),N(),R(!0),I(`${o("mcp.reference.refreshStart")}
|
|
56
56
|
`);try{let e="https://github.com/modelcontextprotocol/servers.git",t=`${k}/servers`;if(E){I(`${o("mcp.reference.repoPulling")}
|
|
57
57
|
`);let e=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"run",savePath:t,runCommand:"git pull"})}),r=await e.json();r.success?I(`${o("mcp.reference.pullSuccess",{output:r.output||o("mcp.reference.repoUpdated")})}
|
|
58
58
|
`):(I(`${o("mcp.reference.pullWarning",{error:r.error||o("mcp.server.unknownError")})}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8329],{8106:(e,r,t)=>{"use strict";t.d(r,{RJ:()=>i,gF:()=>a});let a="masked:********",i="********"},22766:(e,r,t)=>{"use strict";t.d(r,{Ij:()=>s,Pz:()=>d,g_:()=>m,wW:()=>n});let a=/<flujo-ui-actions>\s*([\s\S]*?)\s*<\/flujo-ui-actions>/gi,i=/```flujo-ui-actions\s*([\s\S]*?)\s*```/gi,o=new Set(["__proto__","prototype","constructor"]);function l(e){try{let r=JSON.parse(e);return(Array.isArray(r)?r:Array.isArray(r?.actions)?r.actions:[]).slice(0,20).flatMap((e,r)=>{if(!e||"object"!=typeof e||"highlight"!==e.type&&"set_value"!==e.type||"set_value"===e.type&&!("value"in e)||!e.target||"object"!=typeof e.target)return[];let t=e.target;return"string"==typeof t.kind&&t.kind.trim()?[{id:"string"==typeof e.id&&e.id?e.id:`ui-action-${r+1}`,type:e.type,target:{kind:t.kind,..."string"==typeof t.id?{id:t.id}:{},..."string"==typeof t.field?{field:t.field}:{},..."string"==typeof t.path?{path:t.path}:{}},..."value"in e?{value:e.value}:{},..."string"==typeof e.label?{label:e.label}:{},..."string"==typeof e.evidence?{evidence:e.evidence}:{}}]:[]})}catch{return[]}}function s(e){let r=[];for(let t of e){if(!t||"object"!=typeof t)continue;let e=t.tool_calls;if(Array.isArray(e))for(let t of e){if(!t||"object"!=typeof t)continue;let e=t.function?.name;if("string"!=typeof e||!e.endsWith("propose_ui_action"))continue;let a=t.function?.arguments;if("string"==typeof a)try{let e=JSON.parse(a),i=l(JSON.stringify({actions:[{...e,id:"string"==typeof t.id?t.id:void 0}]}));r.push(...i)}catch{}}}return r}function n(e){let r=[],t=(e,t)=>t.replace(e,(e,t)=>(r.push(...l(t)),"")),o=t(a,e);return{text:t(i,o).trim(),actions:r}}function d(e,r,t){let a=r?(r.startsWith("/")?r.slice(1).split("/").map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~")):r.split(".")).filter(Boolean):[];if(0===a.length||a.length>20||a.some(e=>o.has(e)))throw Error("The requested field path is not editable.");let i=Array.isArray(e)?[...e]:{...e},l=i,s=e;for(let e=0;e<a.length-1;e+=1){let r=a[e],t=s?.[r];if(null===t||"object"!=typeof t)throw Error(`The field path does not exist at "${r}".`);let i=Array.isArray(t)?[...t]:{...t};l[r]=i,l=i,s=t}let n=a[a.length-1];if(!s||!(n in Object(s)))throw Error(`The field "${n}" does not exist.`);return l[n]=t,i}function m(e,r=9e3){return e instanceof HTMLElement&&(document.querySelectorAll(".ask-flujo-highlight").forEach(e=>e.classList.remove("ask-flujo-highlight")),e.classList.add("ask-flujo-highlight"),e.scrollIntoView({behavior:"smooth",block:"center",inline:"center"}),window.setTimeout(()=>e.classList.remove("ask-flujo-highlight"),r),!0)}},30711:(e,r,t)=>{"use strict";t.d(r,{CR:()=>n,Lg:()=>o,eZ:()=>s});var a=t(89238),i=t(29598);let o=e=>e.displayName||e.name||"",l=e=>(0,a.T_)(e.provider,e.adapter).label;function s(e,r){switch(r){case"provider":{let r=l(e);return{key:`provider:${r}`,label:r}}case"context-asc":case"context-desc":var t;return"number"!=typeof(t=e.contextWindow)||Number.isNaN(t)?{key:"ctx:unknown",label:"Unknown context"}:t<=8e3?{key:"ctx:<=8k",label:"≤ 8K tokens"}:t<=32e3?{key:"ctx:8k-32k",label:"8K–32K tokens"}:t<=128e3?{key:"ctx:32k-128k",label:"32K–128K tokens"}:t<=1e6?{key:"ctx:128k-1m",label:"128K–1M tokens"}:{key:"ctx:>1m",label:"> 1M tokens"};default:return(0,i.po)(o(e))}}function n(e,r){let t=(e,t)=>{switch(r){case"name-asc":return o(e).localeCompare(o(t));case"name-desc":return o(t).localeCompare(o(e));case"provider":return l(e).localeCompare(l(t))||o(e).localeCompare(o(t));case"context-desc":case"context-asc":{let a="number"!=typeof e.contextWindow||Number.isNaN(e.contextWindow)?void 0:e.contextWindow,i="number"!=typeof t.contextWindow||Number.isNaN(t.contextWindow)?void 0:t.contextWindow;if(void 0===a&&void 0===i)return o(e).localeCompare(o(t));if(void 0===a)return 1;if(void 0===i)return -1;let l="context-desc"===r?i-a:a-i;return 0!==l?l:o(e).localeCompare(o(t))}default:return 0}};return[...e].sort((e,r)=>{let a=Number(!!r.favorite)-Number(!!e.favorite);return 0!==a?a:t(e,r)})}},62361:(e,r,t)=>{"use strict";t.d(r,{default:()=>s});var a=t(95155);t(12115);var i=t(76010),o=t(4061),l=t(75769);function s({storageKey:e,sx:r,deps:t,nav:n=!0,children:d}){let{ref:m,clusterProps:c}=(0,l.QY)(e,{deps:t});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.default,{ref:m,sx:{...r,overflow:"auto"},children:d}),!1!==n&&(0,a.jsx)(o.A,{...c,...Array.isArray(n)?{actions:n}:{}})]})}},69586:(e,r,t)=>{Promise.resolve().then(t.bind(t,56394)),Promise.resolve().then(t.bind(t,76010)),Promise.resolve().then(t.bind(t,41112)),Promise.resolve().then(t.bind(t,21957)),Promise.resolve().then(t.bind(t,79578)),Promise.resolve().then(t.bind(t,80919)),Promise.resolve().then(t.bind(t,62361)),Promise.resolve().then(t.bind(t,44424))},75769:(e,r,t)=>{"use strict";t.d(r,{QY:()=>n});var a=t(12115),i=t(90015),o=t(66301),l=t(74786),s=t(6310);function n(e,r={}){let{deps:t=[],groupsEnabled:d=!0,anchorSelector:m="[data-scroll-group-key]"}=r,{t:c}=(0,s.s9)(),{ref:u}=function(e,r={}){let{threshold:t=200,deps:l=[]}=r,s=(0,a.useRef)(null),[n,d]=(0,a.useState)(!1),m=(0,a.useRef)(!1),c=(0,a.useCallback)(()=>(0,o.Uu)(s),[]),u=(0,a.useCallback)(()=>(0,o.Ds)(c()).scrollTop,[c]),p=(0,a.useCallback)(e=>{(0,o.B_)(c(),e)},[c]);return(0,a.useEffect)(()=>{let r=s.current,a=0,o="function"==typeof window.requestAnimationFrame?window.requestAnimationFrame.bind(window):e=>window.setTimeout(()=>e(0),16),l="function"==typeof window.cancelAnimationFrame?window.cancelAnimationFrame.bind(window):e=>window.clearTimeout(e),n=()=>{let r=u();d(r>t),a&&l(a),a=o(()=>(0,i.WL)(e,r))};return r?.addEventListener("scroll",n,{passive:!0}),window.addEventListener("scroll",n,{passive:!0}),()=>{a&&l(a),r?.removeEventListener("scroll",n),window.removeEventListener("scroll",n)}},[e,t,u]),(0,a.useEffect)(()=>{if(m.current)return;let r=(0,i.F0)(e,0);if(r<=0){m.current=!0;return}p(r);let a=u();a>0&&(m.current=!0,d(a>t))},l),{ref:s,showBackToTop:n,scrollToTop:(0,a.useCallback)(()=>{(0,o.B_)(c(),0,(0,o.ik)("smooth")),d(!1)},[c])}}(e,{deps:t}),p=(0,l.Q)({ref:u,anchorSelector:m,deps:t}),h=(0,a.useCallback)(e=>{"top"===e?p.scrollToTop():"up"===e?p.scrollToPreviousAnchor():"down"===e?p.scrollToNextAnchor():p.scrollToBottom()},[p]);return{ref:u,clusterProps:(0,a.useMemo)(()=>({show:p.scrollable,disabled:{top:p.atTop,bottom:p.atBottom},labels:d?{up:c("scrollNav.previousGroup"),down:c("scrollNav.nextGroup")}:void 0,onAction:h}),[p.scrollable,p.atTop,p.atBottom,d,c,h]),atTop:p.atTop,atBottom:p.atBottom,scrollable:p.scrollable}}},79578:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>e1});var a=t(95155),i=t(12115),o=t(73321),l=t(95877),s=t(76010),n=t(91216),d=t(45483),m=t(1791),c=t(89852),u=t(10550),p=t(61281),h=t(10286),x=t(6438),f=t(72636),g=t(82325),y=t(45790),b=t(33801),v=t(83550),w=t(18785),A=t(19260),j=t(37156),z=t(93385),k=t(26576),C=t(64924),T=t(32782),S=t(85876),L=t(35558),M=t(82513),U=t(64090),F=t(2861),N=t(2168),I=t(36637),O=t(76152),E=t(99308),R=t(17842),W=t(29598),D=t(90015),q=t(30711),K=t(49103),P=t(6310);let $=(0,K.h)("frontend/components/models/list/ModelList"),B=({models:e,isLoading:r,onAdd:t,onUpdate:o,onDelete:n,folders:d=[],onSetFolder:m,onToggleFavorite:c})=>{let{t:f,tp:g}=(0,P.s9)(),y=(0,j.A)(),[b,v]=(0,D.Io)("flujo-ui:models:sort","name-asc"),[w,A]=(0,D.Io)("flujo-ui:models:group",W.FM),[K,B]=(0,i.useState)(null),[H,V]=(0,i.useState)(null),[X,_]=(0,D.Io)("flujo-ui:models:collapsed",[]),G=(0,i.useMemo)(()=>new Set(X),[X]),J=e=>{v(e),B(null)},Y=e=>{A(e),V(null)},Q=async e=>{let r=await o(e);r.success||$.error("Failed to update model in ModelList",r.error)},Z=(0,i.useMemo)(()=>(0,q.CR)(e,b),[e,b]),ee=(0,i.useMemo)(()=>"folder"===w?(0,W.Je)(Z,e=>e.folder,f("models.group.ungrouped")):"sort"===w?(0,W.Az)(Z,e=>{let r=(0,q.eZ)(e,b),t={"ctx:unknown":"models.group.unknownContext","ctx:<=8k":"models.group.context8k","ctx:8k-32k":"models.group.context32k","ctx:32k-128k":"models.group.context128k","ctx:128k-1m":"models.group.context1m","ctx:>1m":"models.group.contextOver1m"};return t[r.key]?{...r,label:f(t[r.key])}:r}):[],[w,Z,b,f]);if(r)return(0,a.jsx)(s.default,{display:"flex",justifyContent:"center",py:4,children:(0,a.jsx)(z.default,{})});let er=e=>(0,a.jsx)(k.Ay,{container:!0,spacing:2.5,children:e.map(e=>(0,a.jsx)(k.Ay,{item:!0,xs:12,sm:6,md:4,children:(0,a.jsx)(E.A,{model:e,onEdit:()=>Q(e),onDelete:()=>n(e.id),folder:e.folder,folders:d,onSetFolder:m?r=>m(e.id,r):void 0,onToggleFavorite:c})},e.id))});return(0,a.jsxs)(s.default,{children:[(0,a.jsx)(l.A,{elevation:0,variant:"outlined",sx:{mb:2.5,p:1.1,borderRadius:3,bgcolor:"transparent"},children:(0,a.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:1},children:[(0,a.jsxs)(C.A,{variant:"body2",color:"textSecondary",children:[g("models.connectionCount",e.length),(0,a.jsx)(s.default,{component:"span",sx:{mx:1,opacity:.5},children:"\xb7"}),f("models.sortedBy",{sort:f({"name-asc":"models.sort.nameAsc","name-desc":"models.sort.nameDesc",provider:"models.sort.provider","context-desc":"models.sort.contextLargest","context-asc":"models.sort.contextSmallest"}[b])})]}),(0,a.jsxs)(s.default,{sx:{display:"flex",gap:1,alignItems:"center"},children:[(0,a.jsx)(T.A,{size:"small",onClick:e=>V(e.currentTarget),color:"none"!==w?"primary":"default",sx:{border:`1px solid ${y.palette.divider}`,backgroundColor:y.palette.background.default},title:f("models.groupCards"),children:(0,a.jsx)(N.A,{fontSize:"small"})}),(0,a.jsx)(T.A,{size:"small",onClick:e=>B(e.currentTarget),sx:{border:`1px solid ${y.palette.divider}`,backgroundColor:y.palette.background.default},title:f("models.sortModels"),children:(0,a.jsx)(L.A,{fontSize:"small"})})]})]})}),e&&0!==e.length?"none"===w?er(Z):ee.map(e=>(0,a.jsx)(R.A,{groupKey:e.key,label:e.label,count:e.items.length,expanded:!G.has(e.key),onToggle:()=>{var r;return r=e.key,void _(e=>e.includes(r)?e.filter(e=>e!==r):[...e,r])},showFolderIcon:"folder"===w,children:er(e.items)},e.key)):(0,a.jsx)(l.A,{variant:"outlined",sx:{display:"grid",minHeight:240,p:4,placeItems:"center",textAlign:"center",borderStyle:"dashed",bgcolor:"transparent"},children:(0,a.jsxs)(s.default,{children:[(0,a.jsx)(F.A,{sx:{mb:1.5,fontSize:38,color:"primary.light"}}),(0,a.jsx)(C.A,{variant:"h6",children:f("models.emptyTitle")}),(0,a.jsx)(C.A,{variant:"body2",color:"text.secondary",sx:{mt:.7,mb:2},children:f("models.emptyDescription")}),(0,a.jsx)(s.default,{children:(0,a.jsx)(T.A,{color:"primary",onClick:t,title:f("models.connectAi"),children:(0,a.jsx)(F.A,{})})})]})}),(0,a.jsxs)(u.A,{anchorEl:H,open:!!H,onClose:()=>V(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,a.jsxs)(p.A,{selected:"none"===w,onClick:()=>Y("none"),children:[(0,a.jsx)(h.A,{children:(0,a.jsx)(I.A,{fontSize:"small"})}),(0,a.jsx)(x.A,{primary:f("models.group.none")})]}),(0,a.jsxs)(p.A,{selected:"folder"===w,onClick:()=>Y("folder"),children:[(0,a.jsx)(h.A,{children:(0,a.jsx)(O.A,{fontSize:"small"})}),(0,a.jsx)(x.A,{primary:f("models.group.folder")})]}),(0,a.jsxs)(p.A,{selected:"sort"===w,onClick:()=>Y("sort"),children:[(0,a.jsx)(h.A,{children:(0,a.jsx)(N.A,{fontSize:"small"})}),(0,a.jsx)(x.A,{primary:f("models.group.sort")})]})]}),(0,a.jsxs)(u.A,{anchorEl:K,open:!!K,onClose:()=>B(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,a.jsxs)(p.A,{selected:"name-asc"===b,onClick:()=>J("name-asc"),children:[(0,a.jsx)(h.A,{children:(0,a.jsx)(M.A,{fontSize:"small"})}),(0,a.jsx)(x.A,{primary:f("models.sort.nameAsc")})]}),(0,a.jsxs)(p.A,{selected:"name-desc"===b,onClick:()=>J("name-desc"),children:[(0,a.jsx)(h.A,{children:(0,a.jsx)(M.A,{fontSize:"small",sx:{transform:"scaleX(-1)"}})}),(0,a.jsx)(x.A,{primary:f("models.sort.nameDesc")})]}),(0,a.jsx)(S.A,{}),(0,a.jsxs)(p.A,{selected:"provider"===b,onClick:()=>J("provider"),children:[(0,a.jsx)(h.A,{children:(0,a.jsx)(U.A,{fontSize:"small"})}),(0,a.jsx)(x.A,{primary:f("models.sort.provider")})]}),(0,a.jsx)(S.A,{}),(0,a.jsxs)(p.A,{selected:"context-desc"===b,onClick:()=>J("context-desc"),children:[(0,a.jsx)(h.A,{children:(0,a.jsx)(F.A,{fontSize:"small"})}),(0,a.jsx)(x.A,{primary:f("models.sort.contextLargest")})]}),(0,a.jsxs)(p.A,{selected:"context-asc"===b,onClick:()=>J("context-asc"),children:[(0,a.jsx)(h.A,{children:(0,a.jsx)(F.A,{fontSize:"small",sx:{transform:"scaleY(-1)"}})}),(0,a.jsx)(x.A,{primary:f("models.sort.contextSmallest")})]})]})]})};var H=t(44469),V=t(66808),X=t(83793),_=t(87696),G=t(15344),J=t(1507),Y=t(78293),Q=t(85930),Z=t(82360),ee=t(42546),er=t(39749),et=t(71473),ea=t(89238),ei=t(8106),eo=t(32897),el=t(45355),es=t(22766),en=t(71031);let ed=(0,K.h)("frontend/components/models/modal"),em=e=>({...void 0!==e.contextWindow?{contextWindow:e.contextWindow}:{},...void 0!==e.maxTokens?{maxTokens:e.maxTokens}:{},...void 0!==e.supportsTools?{supportsTools:e.supportsTools}:{},...void 0!==e.supportedParameters?{supportedParameters:e.supportedParameters}:{},...void 0!==e.inputModalities?{inputModalities:e.inputModalities}:{},...void 0!==e.outputModalities?{outputModalities:e.outputModalities}:{},...void 0!==e.visionInputCapability?{visionInputCapability:e.visionInputCapability}:{}}),ec=({open:e,model:r,onSave:t,onClose:l})=>{let{t:d}=(0,P.s9)(),m=(0,j.A)(),u=(0,H.A)(m.breakpoints.down("sm")),h=(0,o.useRouter)(),{globalEnvVars:x,settings:g}=(0,er.useStorage)(),[y,b]=(0,i.useState)({}),[v,w]=(0,i.useState)({}),[A,S]=(0,i.useState)(null),[L,M]=(0,i.useState)(!1),[U,F]=(0,i.useState)(null),[N,I]=(0,i.useState)(!1),[O,E]=(0,i.useState)([]),[R,W]=(0,i.useState)(!1),D=(0,i.useRef)(null),q=(0,i.useRef)(null),K=(0,ea.T_)(y.provider,y.adapter),$=(0,i.useMemo)(()=>["displayName","name","description","baseUrl","azureApiVersion","promptTemplate","temperature","reasoningEffort","thinkingLevel","thinkingBudget","serviceTier","contextWindow","maxTurns","maxTokens"],[]),B=(0,i.useCallback)(e=>{let t=[...document.querySelectorAll("[data-ask-flujo-model-id]")].find(e=>e.getAttribute("data-ask-flujo-model-id")===r.id)??null,a=t?[...t.querySelectorAll("[name]")].find(r=>r.getAttribute("name")===e)??null:null,i=a?.closest(".MuiFormControl-root")??t;return(0,es.g_)(i)},[r.id]),ec=(0,i.useCallback)(e=>{if("model-field"!==e.target.kind||!e.target.field)return{success:!1,message:"That model UI target is not supported."};let r=e.target.field;if(!$.includes(r))return{success:!1,message:`The model field "${r}" is read-only for Ask FLUJO.`};if("highlight"===e.type){let e=B(r);return{success:e,message:e?`Highlighted ${r}.`:`Could not find ${r} on screen.`}}if(new Set(["thinkingBudget","contextWindow","maxTurns","maxTokens"]).has(r)){if("number"!=typeof e.value||!Number.isFinite(e.value))return{success:!1,message:`${r} must be a finite number.`}}else if("string"!=typeof e.value)return{success:!1,message:`${r} must be text.`};return b(t=>({...t,[r]:e.value})),window.requestAnimationFrame(()=>B(r)),{success:!0,message:`Updated ${r} in the unsaved form. Review it, then Save.`}},[$,B]);(0,el.qz)({scopeId:`model:${r.id}`,pageType:"model",route:"/models",title:y.displayName||r.displayName||r.name||"Model",identifiers:{modelId:r.id},data:{model:{...y,id:r.id,ApiKey:y.ApiKey?"[REDACTED]":""},saved:!1},capabilities:{highlightTargets:$.map(e=>({kind:"model-field",field:e})),editableTargets:$.map(e=>({kind:"model-field",field:e})),notes:["This is the live, unsaved model form.","API keys are never included in Ask FLUJO context and cannot be edited by Ask FLUJO."]}},ec,100),(0,i.useEffect)(()=>{e&&E([])},[e]),(0,i.useEffect)(()=>{!1!==K.supportsModelDiscovery&&y.baseUrl&&(ed.debug("Base URL or API Key changed",{baseUrl:y.baseUrl}),E([]))},[y.baseUrl,y.ApiKey]),(0,i.useEffect)(()=>(q.current&&clearTimeout(q.current),y.baseUrl&&(q.current=setTimeout(()=>{ed.debug("Debounced fetchModels triggered",{name:y.name,baseUrl:y.baseUrl,searchTerm:y.name?`"${y.name}"`:"none"}),eu(y.baseUrl,y.name)},100)),()=>{q.current&&clearTimeout(q.current)}),[y.name,y.baseUrl,K.id,K.supportsModelDiscovery]),(0,i.useEffect)(()=>()=>{q.current&&clearTimeout(q.current)},[]);let eu=async(e,t)=>{ed.debug("fetchModels called",{baseUrl:e,searchTerm:t?`"${t}"`:"none",apiKey:y.ApiKey?"present":"not present",isApiKeyBound:L}),W(!0),w({});try{let a=L&&U?`\${global:${U}}`:y.ApiKey&&y.ApiKey!==ei.RJ?y.ApiKey:void 0,i=await eo.N.fetchProviderModels(e,r.id,t,a);if(ed.debug("Models fetched successfully",{count:i?.length,searchTerm:t?`"${t}"`:"none"}),Array.isArray(i)){E(i);let e=i.find(e=>e.id===y.name);e&&b(r=>r.name===e.id?{...r,...em(e)}:r),ed.info("Models set in state",{count:i.length,searchTerm:t?`"${t}"`:"none"})}else ed.warn("Unexpected API response format",{models:i}),E([])}catch(r){ed.warn("Error fetching models",{baseUrl:e,searchTerm:t,error:r}),E([])}finally{W(!1)}};(0,i.useEffect)(()=>{if(e){b({...r,displayName:r.displayName||r.name});let e=(r.ApiKey||"").match(/\$\{global:([^}]+)\}/);e?(M(!0),F(e[1])):(M(!1),F(null),b(e=>({...e,ApiKey:r.name?ei.RJ:""})))}else b({name:"",displayName:"",description:"",ApiKey:"",baseUrl:"https://api.openai.com/v1",provider:"openai",adapter:"openai",promptTemplate:"",temperature:"0.0"}),M(!1),F(null);w({}),S(null)},[e,r]);let ep=(0,ea.g3)(y.provider,y.adapter,y.name),eh=(0,i.useMemo)(()=>g?.experimental?.showModelsWithoutToolCapabilities?O:O.filter(e=>!1!==e.supportsTools),[O,g?.experimental?.showModelsWithoutToolCapabilities]),ex=(e,r)=>{b(t=>({...t,[e]:r})),w(r=>({...r,[e]:""}))},ef=async e=>{e.preventDefault();let a={};if(y.name?.trim()||(a.name=d("models.modal.nameRequired")),y.displayName?.trim()||(a.displayName=d("models.modal.displayNameRequired")),"azure"===K.adapter){let e=y.baseUrl?.trim();if(e)try{"https:"!==new URL(e).protocol&&(a.baseUrl=d("models.modal.azureEndpointHttps"))}catch{a.baseUrl=d("models.modal.azureEndpointInvalid")}else a.baseUrl=d("models.modal.azureEndpointRequired");y.azureApiVersion?.trim()||(a.azureApiVersion=d("models.modal.azureApiVersionRequired"))}if(ep.creativity&&y.temperature?.trim()){let e=Number(y.temperature);(!Number.isFinite(e)||e<ep.creativity.min||e>ep.creativity.max)&&(a.temperature=d("models.modal.creativityRange",{min:ep.creativity.min,max:ep.creativity.max}))}if(L||y.ApiKey?.trim()||"codex-cli"===K.adapter||(a.ApiKey=d("models.modal.apiKeyRequired")),Object.keys(a).length>0)return void w(a);try{let e=await t({id:r.id,name:y.name,displayName:y.displayName,description:y.description,ApiKey:y.ApiKey,baseUrl:y.baseUrl,azureApiVersion:"azure"===K.adapter?y.azureApiVersion:"",provider:y.provider,adapter:y.adapter||"openai",promptTemplate:y.promptTemplate,temperature:ep.creativity?y.temperature:void 0,reasoningEffort:ep.effortLevels?.includes(y.reasoningEffort)?y.reasoningEffort:void 0,thinkingLevel:ep.thinkingLevels?.includes(y.thinkingLevel)?y.thinkingLevel:void 0,thinkingBudget:ep.thinkingBudget?y.thinkingBudget:void 0,serviceTier:ep.priority?y.serviceTier||"default":void 0,contextWindow:y.contextWindow,supportsTools:y.supportsTools,supportedParameters:y.supportedParameters,inputModalities:y.inputModalities,outputModalities:y.outputModalities,visionInputCapability:y.visionInputCapability??(Array.isArray(y.inputModalities)?y.inputModalities.some(e=>/^(?:image|vision)$/i.test(e))?"supported":"unsupported":"unknown"),maxTurns:y.maxTurns,maxTokens:ep.maxOutputTokens?y.maxTokens:void 0});e.success?h.refresh():w({submit:e.error||d("models.saveFailed")})}catch(e){ed.error("Failed to save model",{error:e}),w({submit:e?.message||d("models.saveFailed")})}},eg={minimal:"models.modal.level.minimal",low:"models.modal.level.low",medium:"models.modal.level.medium",high:"models.modal.level.high",xhigh:"models.modal.level.xhigh",max:"models.modal.level.max"},ey=e=>eg[e]?d(eg[e]):e;return(0,a.jsx)(V.A,{open:e,onClose:l,maxWidth:"xl",fullWidth:!0,fullScreen:u,PaperProps:{"data-ask-flujo-model-id":r.id,sx:{width:u?"100%":"95vw",height:u?"100dvh":"90vh",maxWidth:u?"100%":"95vw",maxHeight:u?"100dvh":"90vh"}},children:(0,a.jsxs)("form",{onSubmit:ef,style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[(0,a.jsx)(en.A,{title:r.name?d("models.modal.editTitle"):d("models.modal.createTitle"),onClose:l}),(0,a.jsxs)(X.A,{sx:{display:"flex",flex:1,flexDirection:"column",minHeight:0,overflowY:{xs:"auto",md:"hidden"},px:{xs:2,sm:3}},children:[v.submit&&(0,a.jsx)(f.A,{severity:"error",sx:{mb:2},children:v.submit}),A&&(0,a.jsx)(f.A,{severity:"info",sx:{mb:2},children:A}),(0,a.jsxs)(k.Ay,{container:!0,spacing:2,sx:{flexGrow:1,minHeight:{md:0}},children:[(0,a.jsx)(k.Ay,{item:!0,xs:12,md:6,sx:{height:{xs:"auto",md:"100%"},minWidth:0},children:(0,a.jsxs)(s.default,{sx:{display:"flex",flexDirection:"column",height:{xs:"auto",md:"100%"},pr:{xs:0,md:2},overflowY:{xs:"visible",md:"auto"}},children:[(0,a.jsx)(C.A,{variant:"h6",gutterBottom:!0,children:d("models.modal.connectionDetails")}),(0,a.jsx)(n.A,{name:"displayName",autoFocus:!0,margin:"dense",label:d("models.modal.displayName"),fullWidth:!0,required:!0,value:y.displayName||"",onChange:e=>ex("displayName",e.target.value),error:!!v.displayName,helperText:v.displayName||d("models.modal.displayNameHelp")}),(0,a.jsxs)(_.A,{fullWidth:!0,margin:"dense",children:[(0,a.jsx)(G.A,{id:"provider-profile-label",children:d("models.modal.provider")}),(0,a.jsx)(J.A,{name:"provider",labelId:"provider-profile-label",label:d("models.modal.provider"),value:K.id,onChange:e=>{var r;let t;return r=e.target.value,void((t=ea.xx.find(e=>e.id===r))&&(b(e=>({...e,provider:t.provider,adapter:t.adapter,baseUrl:t.baseUrl,azureApiVersion:t.defaultApiVersion??""})),w(e=>({...e,baseUrl:""}))))},children:ea.xx.map(e=>(0,a.jsx)(p.A,{value:e.id,children:e.label},e.id))})]}),(0,a.jsxs)(C.A,{variant:"caption",color:"text.secondary",sx:{mt:.5,mb:1,display:"block"},children:[d("models.modal.usesSdk",{sdk:K.sdkLabel}),"claude-cli"===K.adapter?` ${d("models.modal.claudeAuthHelp")}`:"codex-cli"===K.adapter?` ${d("models.modal.codexAuthHelp")}`:""]}),K.showBaseUrl&&(0,a.jsx)(n.A,{name:"baseUrl",margin:"dense",label:"azure"===K.adapter?d("models.modal.azureEndpoint"):d("models.card.baseUrl"),fullWidth:!0,required:"azure"===K.adapter,value:y.baseUrl||"",onChange:e=>ex("baseUrl",e.target.value),error:!!v.baseUrl,helperText:v.baseUrl||("azure"===K.adapter?d("models.modal.azureEndpointHelp"):d("models.modal.baseUrlHelp"))}),"azure"===K.adapter&&(0,a.jsx)(n.A,{name:"azureApiVersion",margin:"dense",label:d("models.modal.azureApiVersion"),fullWidth:!0,required:!0,value:y.azureApiVersion||"",onChange:e=>ex("azureApiVersion",e.target.value),error:!!v.azureApiVersion,helperText:v.azureApiVersion||d("models.modal.azureApiVersionHelp")}),(0,a.jsx)(s.default,{sx:{position:"relative",mt:1,mb:1},children:(0,a.jsx)(n.A,{name:"ApiKey",margin:"dense",label:d("models.modal.apiKey"),fullWidth:!0,required:!L&&"codex-cli"!==K.adapter,type:L?"text":"password",value:y.ApiKey||"",onChange:e=>ex("ApiKey",e.target.value),error:!!v.ApiKey,helperText:v.ApiKey||("codex-cli"===K.adapter?d("models.modal.apiKeyOptionalCodex"):d("models.modal.apiKeyRequiredProvider")),InputProps:{readOnly:L,endAdornment:(0,a.jsx)(s.default,{sx:{display:"flex",alignItems:"center"},children:L?(0,a.jsx)(T.A,{onClick:()=>{M(!1),F(null),b(e=>({...e,ApiKey:""}))},size:"small",title:d("models.modal.unbindGlobal"),children:(0,a.jsx)(Z.A,{})}):(0,a.jsx)(T.A,{onClick:()=>{I(!0)},size:"small",title:d("models.modal.bindGlobal"),children:(0,a.jsx)(ee.A,{})})})}})}),(0,a.jsx)(Y.A,{freeSolo:!0,loading:R,options:!1!==K.supportsModelDiscovery&&K.showBaseUrl?eh.map(e=>e.id):K.defaultModels??[],value:y.name||"",onChange:(e,r)=>{let t=O.find(e=>e.id===r);b(e=>({...e,name:r||"",...t?{description:t.description??e.description,...em(t)}:{}})),w(e=>({...e,name:""}))},onInputChange:(e,r)=>{ex("name",r)},filterOptions:(e,r)=>{let t=r.inputValue.toLowerCase();return t?e.filter(e=>{let r=e.toLowerCase();if(r.includes(t))return!0;let a=0,i=0;for(;a<r.length&&i<t.length;)r[a]===t[i]&&i++,a++;return i===t.length}):e},ListboxProps:{style:{maxHeight:"300px",overflow:"auto"}},renderInput:e=>(0,a.jsx)(n.A,{...e,margin:"dense",label:"azure"===K.adapter?d("models.modal.azureDeployment"):d("models.modal.technicalName"),required:!0,error:!!v.name,helperText:v.name||("azure"===K.adapter?d("models.modal.azureDeploymentHelp"):d("models.modal.technicalNameHelp")),InputProps:{...e.InputProps,endAdornment:(0,a.jsxs)(a.Fragment,{children:[R?(0,a.jsx)(z.default,{color:"inherit",size:20}):null,e.InputProps.endAdornment]})}}),renderOption:(e,r)=>{let t=O.find(e=>e.id===r),{key:i,...o}=e;return(0,a.jsx)("li",{...o,style:{borderBottom:"1px solid rgba(0,0,0,0.1)",padding:"8px 16px"},children:(0,a.jsxs)(s.default,{children:[(0,a.jsx)(C.A,{variant:"body1",fontWeight:"bold",children:r}),t?.description&&(0,a.jsx)(C.A,{variant:"body2",color:"text.secondary",sx:{fontSize:"0.75rem"},children:t.description})]})},i)},noOptionsText:d("models.modal.noMatches"),loadingText:d("models.modal.loadingModels")}),(0,a.jsx)(n.A,{name:"description",margin:"dense",label:d("models.modal.description"),fullWidth:!0,multiline:!0,rows:3,value:y.description||"",onChange:e=>ex("description",e.target.value)}),ep.creativity&&(0,a.jsx)(n.A,{name:"temperature",margin:"dense",label:d("models.modal.creativity"),fullWidth:!0,type:"number",value:y.temperature??"",onChange:e=>ex("temperature",e.target.value),error:!!v.temperature,inputProps:ep.creativity,helperText:v.temperature||d("models.modal.creativityHelp",{min:ep.creativity.min,max:ep.creativity.max})}),ep.effortLevels&&(0,a.jsxs)(_.A,{fullWidth:!0,margin:"dense",children:[(0,a.jsx)(G.A,{id:"reasoning-effort-label",children:d("models.modal.effort")}),(0,a.jsxs)(J.A,{name:"reasoningEffort",labelId:"reasoning-effort-label",label:d("models.modal.effort"),value:y.reasoningEffort||"",onChange:e=>b(r=>({...r,reasoningEffort:e.target.value?e.target.value:void 0})),children:[(0,a.jsx)(p.A,{value:"",children:(0,a.jsx)("em",{children:d("models.modal.providerDefault")})}),ep.effortLevels.map(e=>(0,a.jsx)(p.A,{value:e,children:ey(e)},e))]}),(0,a.jsx)(C.A,{variant:"caption",color:"text.secondary",sx:{mt:.5,ml:1.75},children:d("models.modal.effortHelp")})]}),ep.thinkingLevels&&(0,a.jsxs)(_.A,{fullWidth:!0,margin:"dense",children:[(0,a.jsx)(G.A,{id:"thinking-level-label",children:d("models.modal.thinkingLevel")}),(0,a.jsxs)(J.A,{name:"thinkingLevel",labelId:"thinking-level-label",label:d("models.modal.thinkingLevel"),value:y.thinkingLevel||"",onChange:e=>b(r=>({...r,thinkingLevel:e.target.value?e.target.value:void 0})),children:[(0,a.jsx)(p.A,{value:"",children:(0,a.jsx)("em",{children:d("models.modal.providerDefault")})}),ep.thinkingLevels.map(e=>(0,a.jsx)(p.A,{value:e,children:ey(e)},e))]})]}),ep.thinkingBudget&&(0,a.jsx)(n.A,{name:"thinkingBudget",margin:"dense",label:d("models.modal.thinkingBudget"),fullWidth:!0,type:"number",value:y.thinkingBudget??"",onChange:e=>{let r=e.target.value,t=""===r?void 0:Number(r);b(e=>({...e,thinkingBudget:void 0!==t&&Number.isFinite(t)&&t>=-1?Math.floor(t):void 0}))},inputProps:{min:-1,step:1},helperText:d("models.modal.thinkingBudgetHelp")}),ep.priority&&(0,a.jsxs)(_.A,{fullWidth:!0,margin:"dense",children:[(0,a.jsx)(G.A,{id:"service-tier-label",children:d("models.modal.priority")}),(0,a.jsxs)(J.A,{name:"serviceTier",labelId:"service-tier-label",label:d("models.modal.priority"),value:y.serviceTier||"default",onChange:e=>b(r=>({...r,serviceTier:e.target.value})),children:[(0,a.jsx)(p.A,{value:"default",children:d("models.modal.standard")}),(0,a.jsx)(p.A,{value:"priority",children:d("models.modal.priorityFaster")})]}),(0,a.jsx)(C.A,{variant:"caption",color:"text.secondary",sx:{mt:.5,ml:1.75},children:d("models.modal.priorityHelp")})]}),(0,a.jsx)(n.A,{name:"contextWindow",margin:"dense",label:d("models.modal.contextWindow"),fullWidth:!0,type:"number",value:y.contextWindow??"",onChange:e=>{let r=e.target.value,t=""===r?void 0:Number(r);b(e=>({...e,contextWindow:void 0!==t&&Number.isFinite(t)&&t>0?Math.floor(t):void 0}))},helperText:d("models.modal.contextWindowHelp")}),(0,a.jsx)(n.A,{name:"maxTurns",margin:"dense",label:d("models.modal.maxTurns"),fullWidth:!0,type:"number",value:y.maxTurns??"",onChange:e=>{let r=e.target.value,t=""===r?void 0:Number(r);b(e=>({...e,maxTurns:void 0!==t&&Number.isFinite(t)&&t>0?Math.floor(t):void 0}))},inputProps:{min:1},helperText:d("models.modal.maxTurnsHelp")}),ep.maxOutputTokens&&(0,a.jsx)(n.A,{name:"maxTokens",margin:"dense",label:d("models.modal.maxOutputTokens"),fullWidth:!0,type:"number",value:y.maxTokens??"",onChange:e=>{let r=e.target.value,t=""===r?void 0:Number(r);b(e=>({...e,maxTokens:void 0!==t&&Number.isFinite(t)&&t>0?Math.floor(t):void 0}))},inputProps:{min:1},helperText:d("models.modal.maxOutputTokensHelp")})]})}),(0,a.jsx)(k.Ay,{item:!0,xs:12,md:6,sx:{height:{xs:400,md:"100%"},minWidth:0},children:(0,a.jsxs)(s.default,{sx:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,pl:{xs:0,md:2}},children:[(0,a.jsx)(C.A,{variant:"h6",gutterBottom:!0,children:d("models.modal.promptTemplate")}),(0,a.jsx)(s.default,{sx:{flexGrow:1,display:"flex",flexDirection:"column",minHeight:0},children:(0,a.jsx)(et.A,{ref:D,value:y.promptTemplate||"",onChange:e=>ex("promptTemplate",e),label:"",height:"100%"})})]})})]}),N&&(0,a.jsxs)(s.default,{sx:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:{xs:"calc(100% - 32px)",sm:400},maxWidth:400,bgcolor:"background.paper",boxShadow:24,p:{xs:2,sm:4},borderRadius:1,zIndex:9999},children:[(0,a.jsx)(C.A,{variant:"h6",component:"h2",sx:{mb:2},children:d("models.modal.bindTitle")}),0===Object.keys(x).length?(0,a.jsx)(C.A,{sx:{mb:2},children:d("models.modal.noGlobals")}):(0,a.jsx)(s.default,{sx:{maxHeight:300,overflow:"auto",mb:2},children:Object.entries(x).map(([e,r])=>(0,a.jsx)(c.A,{onClick:()=>{M(!0),F(e),b(r=>({...r,ApiKey:`\${global:${e}}`})),I(!1)},fullWidth:!0,sx:{justifyContent:"flex-start",textAlign:"left",mb:1,p:1,"&:hover":{bgcolor:"action.hover"}},children:(0,a.jsxs)(s.default,{sx:{display:"flex",justifyContent:"space-between",width:"100%"},children:[(0,a.jsx)(C.A,{children:e}),(0,a.jsx)(C.A,{variant:"body2",color:"text.secondary",children:e.toLowerCase().includes("key")||e.toLowerCase().includes("secret")||e.toLowerCase().includes("token")||e.toLowerCase().includes("password")?"********":"object"==typeof r&&null!==r&&"value"in r?r.value:r})]})},e))}),(0,a.jsx)(s.default,{sx:{display:"flex",justifyContent:"flex-end"},children:(0,a.jsx)(c.A,{onClick:()=>I(!1),children:d("common.cancel")})})]})]}),(0,a.jsxs)(Q.A,{sx:{flexShrink:0},children:[(0,a.jsx)(c.A,{onClick:l,children:d("common.cancel")}),(0,a.jsx)(c.A,{type:"submit",variant:"contained",color:"primary",children:d("models.modal.save")})]})]})})};var eu=t(95473),ep=t(40323),eh=t(12289),ex=t(53157),ef=t(25422),eg=t(6302),ey=t(23462),eb=t(5704),ev=t(1841),ew=t(35986),eA=t(63739),ej=t(21603),ez=t(58907),ek=t(77036),eC=t(22355),eT=t(52790),eS=t(92343),eL=t(92406),eM=t(96606),eU=t(12034),eF=t(78714),eN=t(10470),eI=t(90515),eO=t(65938),eE=t(93919),eR=t(28705),eW=t(30502),eD=t(28834),eq=t(5661);let eK={"openrouter-free":[{name:"openrouter/free",displayName:"OpenRouter Free",description:"Automatically routes each request to an available free OpenRouter model.",provider:"openrouter",adapter:"openai",baseUrl:"https://openrouter.ai/api/v1",supportsTools:!0}],"requesty-free":[{name:"openrouter/free",displayName:"Requesty Free Router",description:"Routes to OpenRouter’s free-model router through your Requesty account.",provider:"requesty",adapter:"openai",baseUrl:"https://router.requesty.ai/v1",supportsTools:!0}],"openrouter-paid":[{name:"openrouter/auto",displayName:"OpenRouter Auto",description:"A balanced automatic router for everyday work.",provider:"openrouter",adapter:"openai",baseUrl:"https://openrouter.ai/api/v1",supportsTools:!0},{name:"deepseek/deepseek-v3.2",displayName:"DeepSeek V3.2",description:"A cost-conscious model for fast general-purpose work.",provider:"openrouter",adapter:"openai",baseUrl:"https://openrouter.ai/api/v1",supportsTools:!0},{name:"openai/gpt-5.6-sol",displayName:"GPT-5.6 Sol via OpenRouter",description:"A high-capability model for demanding agentic work.",provider:"openrouter",adapter:"openai",baseUrl:"https://openrouter.ai/api/v1",reasoningEffort:"medium",supportsTools:!0}],"requesty-paid":[{name:"deepseek/deepseek-v3.2",displayName:"DeepSeek V3.2 via Requesty",description:"A cost-conscious default routed through Requesty.",provider:"requesty",adapter:"openai",baseUrl:"https://router.requesty.ai/v1",supportsTools:!0},{name:"anthropic/claude-sonnet-4-6",displayName:"Claude Sonnet via Requesty",description:"A balanced model for planning, writing, and tool use.",provider:"requesty",adapter:"openai",baseUrl:"https://router.requesty.ai/v1",supportsTools:!0},{name:"openai/gpt-5.6-sol",displayName:"GPT-5.6 Sol via Requesty",description:"A high-capability model for demanding agentic work.",provider:"requesty",adapter:"openai",baseUrl:"https://router.requesty.ai/v1",reasoningEffort:"medium",supportsTools:!0}],"claude-subscription":[{name:"haiku",displayName:"Claude Haiku",description:"Fast and light for small tasks through your Claude subscription.",provider:"claude-subscription",adapter:"claude-cli",supportsTools:!0},{name:"sonnet",displayName:"Claude Sonnet",description:"The balanced everyday choice through your Claude subscription.",provider:"claude-subscription",adapter:"claude-cli",reasoningEffort:"medium",supportsTools:!0},{name:"opus",displayName:"Claude Opus",description:"The strongest Claude option for complex work.",provider:"claude-subscription",adapter:"claude-cli",reasoningEffort:"high",supportsTools:!0},{name:"fable",displayName:"Claude Fable",description:"An additional Claude subscription model for flexible routing.",provider:"claude-subscription",adapter:"claude-cli",reasoningEffort:"medium",supportsTools:!0}],"codex-subscription":[{name:"gpt-5.6-terra",displayName:"Codex Terra",description:"A balanced Codex model for everyday agent work.",provider:"codex",adapter:"codex-cli",reasoningEffort:"medium",supportsTools:!0},{name:"gpt-5.6-sol",displayName:"Codex Sol",description:"The high-capability Codex model for difficult work.",provider:"codex",adapter:"codex-cli",reasoningEffort:"high",supportsTools:!0},{name:"gpt-5.4-mini",displayName:"Codex Mini",description:"A quick, efficient Codex option for smaller tasks.",provider:"codex",adapter:"codex-cli",reasoningEffort:"medium",supportsTools:!0}],"gemini-native":[{name:"gemini-2.5-flash-lite",displayName:"Gemini Flash Lite",description:"A quick and economical native Gemini model.",provider:"gemini",adapter:"gemini",supportsTools:!0},{name:"gemini-2.5-flash",displayName:"Gemini Flash",description:"A balanced native Gemini model for everyday work.",provider:"gemini",adapter:"gemini",supportsTools:!0},{name:"gemini-2.5-pro",displayName:"Gemini Pro",description:"A stronger native Gemini model for complex work.",provider:"gemini",adapter:"gemini",supportsTools:!0}]};function eP(e){let r=e.apiKey?.trim()??"";return("azure"===e.kind?[{name:e.azureDeployment?.trim()||"azure-deployment",displayName:e.azureDeployment?.trim()?`Azure ${e.azureDeployment.trim()}`:"Azure OpenAI deployment",description:"An Azure OpenAI deployment connected through the deployment-aware Azure SDK.",provider:"azure",adapter:"azure",baseUrl:e.azureEndpoint?.trim().replace(/\/+$/,"")||"",supportsTools:!0}]:"ollama"===e.kind?[{name:e.ollamaModel?.trim()||"llama3.2:3b",displayName:`Local ${e.ollamaModel?.trim()||"Llama 3.2"}`,description:"Runs privately on this machine through Ollama.",provider:"ollama",adapter:"openai",baseUrl:`${(e.ollamaUrl||"http://localhost:11434").replace(/\/+$/,"")}/v1`,supportsTools:!0}]:eK[e.kind]).map(t=>({id:(0,A.A)(),name:t.name,displayName:t.displayName,description:t.description,ApiKey:"ollama"===e.kind?"ollama":r,baseUrl:t.baseUrl||"",provider:t.provider,adapter:t.adapter,..."azure"===e.kind?{azureApiVersion:e.azureApiVersion?.trim()||ea.V0}:{},promptTemplate:"",temperature:"openai"===t.adapter||"azure"===t.adapter||"gemini"===t.adapter?"0.0":void 0,reasoningEffort:t.reasoningEffort,supportsTools:t.supportsTools}))}let e$=(0,ey.i7)`
|
|
2
|
+
0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
|
|
3
|
+
50% { transform: translate3d(0, -9px, 0) rotate(5deg); }
|
|
4
|
+
`,eB=(0,ey.i7)`
|
|
5
|
+
from { opacity: 0; transform: translate3d(18px, 0, 0) scale(.985); }
|
|
6
|
+
to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
|
|
7
|
+
`,eH=(0,ey.i7)`
|
|
8
|
+
0% { transform: scale(.6) rotate(-12deg); opacity: 0; }
|
|
9
|
+
70% { transform: scale(1.08) rotate(3deg); opacity: 1; }
|
|
10
|
+
100% { transform: scale(1) rotate(0); opacity: 1; }
|
|
11
|
+
`,eV={"openrouter-free":{eyebrow:"models.wizard.copy.freeOnline",title:"models.wizard.openrouterFree.title",summary:"models.wizard.openrouterFree.summary",accountUrl:"https://openrouter.ai/settings/keys",accountLabel:"models.wizard.openrouterFree.account",keyLabel:"models.wizard.openrouterKey",note:"models.wizard.openrouterFree.note"},"requesty-free":{eyebrow:"models.wizard.copy.freeOnline",title:"models.wizard.requestyFree.title",summary:"models.wizard.requestyFree.summary",accountUrl:"https://app.requesty.ai/api-keys",accountLabel:"models.wizard.requestyFree.account",keyLabel:"models.wizard.requestyKey",note:"models.wizard.requestyFree.note"},"openrouter-paid":{eyebrow:"models.wizard.copy.paygOnline",title:"models.wizard.openrouterPaid.title",summary:"models.wizard.openrouterPaid.summary",accountUrl:"https://openrouter.ai/settings/keys",accountLabel:"models.wizard.openrouterPaid.account",keyLabel:"models.wizard.openrouterKey",note:"models.wizard.openrouterPaid.note"},"requesty-paid":{eyebrow:"models.wizard.copy.paygOnline",title:"models.wizard.requestyPaid.title",summary:"models.wizard.requestyPaid.summary",accountUrl:"https://app.requesty.ai/api-keys",accountLabel:"models.wizard.requestyPaid.account",keyLabel:"models.wizard.requestyKey",note:"models.wizard.requestyPaid.note"},azure:{eyebrow:"models.wizard.copy.azure",title:"models.wizard.azure.title",summary:"models.wizard.azure.summary",accountUrl:"https://ai.azure.com/",accountLabel:"models.wizard.azure.account",keyLabel:"models.wizard.azure.key",note:"models.wizard.azure.note"},"claude-subscription":{eyebrow:"models.wizard.copy.claudeSubscription",title:"models.wizard.claude.title",summary:"models.wizard.claude.summary",keyLabel:"models.wizard.claude.key",note:"models.wizard.claude.note"},"codex-subscription":{eyebrow:"models.wizard.copy.chatgptSubscription",title:"models.wizard.codex.title",summary:"models.wizard.codex.summary",note:"models.wizard.codex.note"},"gemini-native":{eyebrow:"models.wizard.copy.googleNative",title:"models.wizard.gemini.title",summary:"models.wizard.gemini.summary",accountUrl:"https://aistudio.google.com/app/apikey",accountLabel:"models.wizard.gemini.account",keyLabel:"models.wizard.gemini.key",note:"models.wizard.gemini.note"}};function eX({icon:e,title:r,description:t,badge:i,onClick:o}){let n=(0,j.A)();return(0,a.jsxs)(l.A,{component:"button",type:"button",variant:"outlined",onClick:o,sx:{position:"relative",width:"100%",minHeight:132,p:2.2,borderRadius:3,color:"text.primary",textAlign:"left",cursor:"pointer",font:"inherit",background:`linear-gradient(145deg, ${(0,eb.X4)(n.palette.primary.main,.08)}, ${(0,eb.X4)(n.palette.background.paper,.72)} 55%)`,transition:"transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease","&:hover":{transform:"translateY(-3px) rotate(-.2deg)",borderColor:(0,eb.X4)(n.palette.primary.main,.7),boxShadow:`0 16px 38px ${(0,eb.X4)(n.palette.primary.main,.16)}`},"&:focus-visible":{outline:`3px solid ${(0,eb.X4)(n.palette.primary.main,.3)}`,outlineOffset:3}},children:[i?(0,a.jsx)(eu.A,{label:i,size:"small",color:"primary",sx:{position:"absolute",top:12,right:12}}):null,(0,a.jsx)(s.default,{sx:{width:43,height:43,display:"grid",placeItems:"center",mb:1.3,borderRadius:2.4,color:"primary.main",bgcolor:(0,eb.X4)(n.palette.primary.main,.12)},children:(0,a.jsx)(e,{})}),(0,a.jsx)(C.A,{variant:"subtitle1",sx:{fontWeight:720,pr:7*!!i},children:r}),(0,a.jsx)(C.A,{variant:"body2",color:"text.secondary",sx:{mt:.45},children:t})]})}function e_({children:e}){return(0,a.jsx)(s.default,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"repeat(3, minmax(0, 1fr))"},gap:1.5},children:e})}function eG({command:e,copied:r,onCopy:t}){let i=(0,j.A)(),{t:o}=(0,P.s9)();return(0,a.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:1,borderRadius:2,bgcolor:(0,eb.X4)(i.palette.common.black,"dark"===i.palette.mode?.26:.055)},children:[(0,a.jsx)(eE.A,{fontSize:"small",color:"action"}),(0,a.jsx)(C.A,{component:"code",variant:"body2",sx:{flex:1,overflowWrap:"anywhere",fontFamily:"var(--font-geist-mono), ui-monospace, monospace"},children:e}),(0,a.jsx)(ep.A,{title:o(r?"models.wizard.copied":"models.wizard.copyCommand"),children:(0,a.jsx)(T.A,{size:"small",onClick:t,"aria-label":o("models.wizard.copyCommandAria",{command:e}),children:r?(0,a.jsx)(eA.A,{color:"success",fontSize:"small"}):(0,a.jsx)(eC.A,{fontSize:"small"})})})]})}function eJ({open:e,onClose:r,onManualCreation:t,onCreateModels:o}){let d=(0,j.A)(),{t:m,tp:u}=(0,P.s9)(),[p,h]=(0,i.useState)("welcome"),[x,g]=(0,i.useState)([]),[y,v]=(0,i.useState)("beginner"),[A,k]=(0,i.useState)(null),[S,L]=(0,i.useState)(""),[M,U]=(0,i.useState)(""),[F,N]=(0,i.useState)(""),[I,O]=(0,i.useState)(ea.V0),[E,R]=(0,i.useState)(!1),[W,D]=(0,i.useState)(!1),[q,K]=(0,i.useState)(null),[$,B]=(0,i.useState)([]),[H,_]=(0,i.useState)([]),[G,J]=(0,i.useState)(null),[Y,Q]=(0,i.useState)(null),[Z,ee]=(0,i.useState)([]),[er,et]=(0,i.useState)("idle"),[ei,eo]=(0,i.useState)(null),[el,es]=(0,i.useState)(!1),[en,ed]=(0,i.useState)(!1),[em,ec]=(0,i.useState)(!1),[ep,ey]=(0,i.useState)([]);(0,i.useEffect)(()=>{e&&(h("welcome"),g([]),v("beginner"),k(null),L(""),U(""),N(""),O(ea.V0),R(!1),D(!1),K(null),B([]),_([]),J(null),Q(null),ee([]),et("idle"),eo(null),ed(!1),ey([]))},[e]);let eC=e=>{g(e=>[...e,p]),h(e),K(null)},eK=e=>{k(e),eC("setup")},eY=async e=>{try{await navigator.clipboard.writeText(e),J(e),window.setTimeout(()=>J(r=>r===e?null:r),1600)}catch{K(m("models.wizard.copyFailed"))}},eQ=(0,i.useCallback)(async()=>{es(!0),K(null);try{let e=await fetch("/api/local-models/capability",{cache:"no-store"});if(!e.ok)throw Error(m("models.wizard.inspectFailed"));eo(await e.json())}catch(e){K(e instanceof Error?e.message:m("models.wizard.inspectFailed"))}finally{ed(!0),es(!1)}},[m]);(0,i.useEffect)(()=>{!e||"setup"!==p||"ollama"!==A||en||el||eQ()},[A,eQ,en,el,e,p]);let eZ=async e=>{Q(e),et("idle"),ee([]),K(null);try{let r=await fetch("/api/setup/ai-cli",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tool:e})});if(!r.ok){let e=await r.json().catch(()=>({}));throw Error(e.error||m("models.wizard.installerStartFailed"))}let t=!1,a="";if(await (0,eq.z)(r,e=>{("stdout"===e.type||"stderr"===e.type)&&ee(r=>[...r,e.data].slice(-8)),"status"===e.type&&e.message&&ee(r=>[...r,e.message].slice(-8)),"result"===e.type&&(t=e.success,a=e.error||"")}),!t)throw Error(a||m("models.wizard.wingetFailed"));et("success"),"ollama"===e&&window.setTimeout(()=>void eQ(),1200)}catch(e){et("error"),K(e instanceof Error?e.message:m("models.wizard.installFailed"))}finally{Q(null)}},e0=async e=>{D(!0),K(null);try{let r=await o(e);if(!r.success)throw Error(r.error||m("models.wizard.createFailed"));B(r.created),_(r.existing),eC("success")}catch(e){K(e instanceof Error?e.message:m("models.wizard.createFailed"))}finally{D(!1)}},e1=async()=>{if(A&&"ollama"!==A){if("codex-subscription"!==A&&!S.trim())return void K("claude-subscription"===A?m("models.wizard.pasteClaudeToken"):m("models.wizard.pasteApiKey"));if("codex-subscription"===A&&!E)return void K(m("models.wizard.confirmCodexLogin"));if("azure"===A){let e=M.trim();if(!e||!F.trim()||!I.trim())return void K(m("models.wizard.azure.completeFields"));try{if("https:"!==new URL(e).protocol)throw Error("https")}catch{K(m("models.wizard.azure.endpointInvalid"));return}}await e0(eP({kind:A,apiKey:S,azureEndpoint:M,azureDeployment:F,azureApiVersion:I}))}},e2=async()=>{let e=ei?.suggestedModel||"llama3.2:3b",r=ei?.installedModels?.some(r=>r===e);if(!ei?.ollamaReachable)return void K(m("models.wizard.startOllama"));if(!r){ec(!0),ey([]),K(null);try{let r=await fetch("/api/local-models/pull",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:e})});if(!r.ok)throw Error(m("models.wizard.ollamaDownloadStartFailed"));let t=!1,a="";if(await (0,eq.z)(r,e=>{("stdout"===e.type||"stderr"===e.type)&&ey(r=>[...r,e.data].slice(-6)),"result"===e.type&&(t=e.success,a=e.error||"")}),!t)throw Error(a||m("models.wizard.modelDownloadFailed",{model:e}))}catch(e){K(e instanceof Error?e.message:m("models.wizard.downloadFailed")),ec(!1);return}ec(!1)}await e0(eP({kind:"ollama",ollamaModel:e,ollamaUrl:ei?.ollamaUrl}))},e5="beginner"===y,e3=Math.min(96,"welcome"===p?8:"success"===p?100:22+15*x.length),e4=A&&"ollama"!==A?eV[A]:null,e6=(0,i.useMemo)(()=>"azure"===A?[`Azure ${F.trim()||"OpenAI deployment"}`]:A?eP({kind:A}).map(e=>e.displayName||e.name):[],[F,A]),e8=ei?.suggestedModel||"llama3.2:3b",e7=!!ei?.installedModels?.includes(e8),e9=(e,r,t)=>(0,a.jsxs)(eh.A,{spacing:1.1,children:[(0,a.jsx)(eG,{command:r,copied:G===r,onCopy:()=>void eY(r)}),(0,a.jsx)(c.A,{variant:"outlined",startIcon:Y===e?(0,a.jsx)(z.default,{size:17}):(0,a.jsx)(eS.A,{}),disabled:!!Y,onClick:()=>void eZ(e),sx:{alignSelf:"flex-start"},children:Y===e?m("models.wizard.installing"):m("models.wizard.installWinget")}),t?(0,a.jsx)(eG,{command:t,copied:G===t,onCopy:()=>void eY(t)}):null,"success"===er?(0,a.jsx)(f.A,{severity:"success",children:m("models.wizard.installedContinue")}):null,Z.length?(0,a.jsx)(s.default,{component:"pre",sx:{m:0,p:1.4,maxHeight:110,overflow:"auto",borderRadius:2,bgcolor:(0,eb.X4)(d.palette.common.black,"dark"===d.palette.mode?.3:.06),color:"text.secondary",whiteSpace:"pre-wrap",fontSize:11},children:Z.join("\n")}):null]});return(0,a.jsx)(V.A,{open:e,onClose:W||em||Y?void 0:r,fullWidth:!0,maxWidth:"md","aria-label":m("models.wizard.aria"),children:(0,a.jsxs)(X.A,{"data-tour":"ai-setup-wizard",sx:{position:"relative",minHeight:{xs:560,sm:590},p:{xs:2.2,sm:4},overflowX:"hidden",overflowY:"auto"},children:[(0,a.jsx)(s.default,{"aria-hidden":!0,sx:{position:"absolute",width:220,height:220,borderRadius:"50%",top:-120,right:-70,bgcolor:(0,eb.X4)(d.palette.secondary.main,.12),filter:"blur(1px)",animation:`${e$} 6s ease-in-out infinite`}}),(0,a.jsx)(s.default,{"aria-hidden":!0,sx:{position:"absolute",width:150,height:150,borderRadius:5,bottom:-100,left:-70,bgcolor:(0,eb.X4)(d.palette.primary.main,.1),transform:"rotate(24deg)",animation:`${e$} 7s ease-in-out -2s infinite`}}),(0,a.jsxs)(s.default,{sx:{position:"relative",zIndex:1},children:[(0,a.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:2},children:[x.length&&"success"!==p?(0,a.jsx)(T.A,{onClick:()=>{let e=x[x.length-1];e&&(g(e=>e.slice(0,-1)),h(e),K(null))},"aria-label":m("models.wizard.backAria"),children:(0,a.jsx)(ev.A,{})}):(0,a.jsx)(s.default,{sx:{width:40}}),(0,a.jsx)(s.default,{sx:{flex:1},children:(0,a.jsx)(ex.A,{variant:"determinate",value:e3,"aria-label":m("models.wizard.progressAria")})}),(0,a.jsxs)(s.default,{display:"flex",alignItems:"center",gap:.5,children:[(0,a.jsx)(eW.A,{}),(0,a.jsx)(eD.A,{variant:"icon"}),(0,a.jsx)(T.A,{onClick:r,"aria-label":m("models.wizard.closeAria"),disabled:W||em||!!Y,children:(0,a.jsx)(ej.A,{})})]})]}),q?(0,a.jsx)(f.A,{severity:"error",onClose:()=>K(null),sx:{mb:2},children:q}):null,(0,a.jsx)(s.default,{sx:{animation:`${eB} 260ms ease-out both`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},children:(()=>{if("welcome"===p)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eu.A,{icon:(0,a.jsx)(b.A,{}),label:m("models.wizard.twoMinuteSetup"),color:"primary",variant:"outlined",sx:{mb:2}}),(0,a.jsx)(C.A,{variant:"h4",children:m("models.wizard.welcomeTitle")}),(0,a.jsx)(C.A,{variant:"body1",color:"text.secondary",sx:{mt:1,mb:3,maxWidth:680},children:m("models.wizard.welcomeQuestion")}),(0,a.jsxs)(e_,{children:[(0,a.jsx)(eX,{icon:eI.A,title:m("models.wizard.noIdea"),description:m("models.wizard.noIdeaDescription"),badge:m("models.wizard.gentleGuide"),onClick:()=>{v("beginner"),eC("budget")}}),(0,a.jsx)(eX,{icon:ew.A,title:m("models.wizard.knowABit"),description:m("models.wizard.knowABitDescription"),onClick:()=>{v("familiar"),eC("budget")}}),(0,a.jsx)(eX,{icon:w.A,title:m("models.wizard.expert"),description:m("models.wizard.expertDescription"),onClick:t})]})]});if("budget"===p)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.firstThings")}),(0,a.jsx)(C.A,{variant:"h4",children:m("models.wizard.budgetTitle")}),e5?(0,a.jsx)(C.A,{variant:"body1",color:"text.secondary",sx:{mt:1,mb:3,maxWidth:700},children:m("models.wizard.budgetVerbose")}):(0,a.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:3},children:m("models.wizard.budgetBrief")}),(0,a.jsxs)(e_,{children:[(0,a.jsx)(eX,{icon:eN.A,title:m("models.wizard.startFree"),description:m("models.wizard.startFreeDescription"),badge:m("models.wizard.startHere"),onClick:()=>eC("location")}),(0,a.jsx)(eX,{icon:eR.A,title:m("models.wizard.alreadySubscribe"),description:m("models.wizard.alreadySubscribeDescription"),onClick:()=>eC("subscription-provider")}),(0,a.jsx)(eX,{icon:eT.A,title:m("models.wizard.payNoSubscription"),description:m("models.wizard.payNoSubscriptionDescription"),onClick:()=>eC("paid-provider")})]})]});if("location"===p)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.freeRoute")}),(0,a.jsx)(C.A,{variant:"h4",children:m("models.wizard.locationTitle")}),(0,a.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:3},children:e5?m("models.wizard.locationVerbose"):m("models.wizard.locationBrief")}),(0,a.jsxs)(s.default,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:1.5},children:[(0,a.jsx)(eX,{icon:ez.A,title:m("models.wizard.online"),description:m("models.wizard.onlineDescription"),badge:m("models.wizard.easy"),onClick:()=>eC("free-provider")}),(0,a.jsx)(eX,{icon:ek.A,title:m("models.wizard.offline"),description:m("models.wizard.offlineDescription"),badge:m("models.wizard.private"),onClick:()=>eK("ollama")})]})]});if("free-provider"===p)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.copy.freeOnline")}),(0,a.jsx)(C.A,{variant:"h4",children:m("models.wizard.chooseGateway")}),(0,a.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:3},children:e5?m("models.wizard.freeGatewayVerbose"):m("models.wizard.freeGatewayBrief")}),(0,a.jsxs)(s.default,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:1.5},children:[(0,a.jsx)(eX,{icon:eF.A,title:"OpenRouter",description:m("models.wizard.openrouterFreeDescription"),badge:m("models.wizard.recommended"),onClick:()=>eK("openrouter-free")}),(0,a.jsx)(eX,{icon:ez.A,title:"Requesty",description:m("models.wizard.requestyFreeDescription"),onClick:()=>eK("requesty-free")})]})]});if("subscription-provider"===p)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.useExisting")}),(0,a.jsx)(C.A,{variant:"h4",children:m("models.wizard.whichService")}),(0,a.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:3},children:e5?m("models.wizard.subscriptionVerbose"):m("models.wizard.subscriptionBrief")}),(0,a.jsxs)(e_,{children:[(0,a.jsx)(eX,{icon:eO.A,title:"Claude",description:m("models.wizard.claudeDescription"),onClick:()=>eK("claude-subscription")}),(0,a.jsx)(eX,{icon:eE.A,title:"ChatGPT / Codex",description:m("models.wizard.codexDescription"),badge:m("models.wizard.noKeyPaste"),onClick:()=>eK("codex-subscription")}),(0,a.jsx)(eX,{icon:b.A,title:m("models.wizard.geminiNative"),description:m("models.wizard.geminiDescription"),onClick:()=>eK("gemini-native")})]})]});if("paid-provider"===p)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.payUsage")}),(0,a.jsx)(C.A,{variant:"h4",children:m("models.wizard.chooseModelGateway")}),(0,a.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:3},children:e5?m("models.wizard.paidVerbose"):m("models.wizard.paidBrief")}),(0,a.jsxs)(e_,{children:[(0,a.jsx)(eX,{icon:eF.A,title:"OpenRouter",description:m("models.wizard.openrouterPaidDescription"),badge:m("models.wizard.recommended"),onClick:()=>eK("openrouter-paid")}),(0,a.jsx)(eX,{icon:ez.A,title:"Requesty",description:m("models.wizard.requestyPaidDescription"),onClick:()=>eK("requesty-paid")}),(0,a.jsx)(eX,{icon:ez.A,title:"Azure OpenAI",description:m("models.wizard.azureDescription"),onClick:()=>eK("azure")})]})]});if("setup"===p&&"ollama"===A)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.freeOffline")}),(0,a.jsx)(C.A,{variant:"h4",children:m("models.wizard.ollamaTitle")}),(0,a.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:2.5},children:m("models.wizard.ollamaDescription")}),el?(0,a.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",gap:1.5,py:3},children:[(0,a.jsx)(z.default,{size:22}),(0,a.jsx)(C.A,{children:m("models.wizard.checkingOllama")})]}):null,!el&&ei?(0,a.jsx)(l.A,{variant:"outlined",sx:{p:2,mb:2,borderRadius:3},children:(0,a.jsxs)(eh.A,{direction:{xs:"column",sm:"row"},justifyContent:"space-between",spacing:1.5,children:[(0,a.jsxs)(s.default,{children:[(0,a.jsx)(C.A,{variant:"subtitle1",sx:{fontWeight:720},children:m("models.wizard.recommendedModel",{model:e8})}),(0,a.jsx)(C.A,{variant:"body2",color:"text.secondary",children:ei.ollamaReachable?e7?m("models.wizard.ollamaInstalled"):m("models.wizard.ollamaCanDownload"):m("models.wizard.ollamaNotRunningHelp")})]}),(0,a.jsx)(eu.A,{color:ei.ollamaReachable?"success":"warning",label:ei.ollamaReachable?m("models.wizard.ollamaReady"):m("models.wizard.notRunning")})]})}):null,el||ei?.ollamaReachable?null:(0,a.jsxs)(s.default,{sx:{mb:2},children:[e9("ollama","winget install --id Ollama.Ollama -e --source winget"),(0,a.jsx)(c.A,{startIcon:(0,a.jsx)(eU.A,{}),onClick:()=>void eQ(),disabled:el||!!Y,sx:{mt:1},children:m("models.wizard.checkAgain")})]}),em?(0,a.jsxs)(s.default,{sx:{my:2},children:[(0,a.jsx)(ex.A,{}),(0,a.jsx)(C.A,{variant:"body2",sx:{mt:1},children:m("models.wizard.downloading",{model:e8})}),ep.length?(0,a.jsx)(C.A,{component:"pre",variant:"caption",color:"text.secondary",sx:{whiteSpace:"pre-wrap"},children:ep.join("\n")}):null]}):null,(0,a.jsx)(c.A,{variant:"contained",size:"large",startIcon:W||em?(0,a.jsx)(z.default,{size:18,color:"inherit"}):(0,a.jsx)(eS.A,{}),onClick:()=>void e2(),disabled:!ei?.ollamaReachable||W||em,children:e7?m("models.wizard.connectModel",{model:e8}):m("models.wizard.downloadConnect",{model:e8})})]});if("setup"===p&&A&&e4){let e="claude-subscription"===A,r="codex-subscription"===A,t="azure"===A;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(C.A,{variant:"overline",color:"primary.main",children:m(e4.eyebrow)}),(0,a.jsx)(C.A,{variant:"h4",children:m(e4.title)}),(0,a.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:2.2,maxWidth:720},children:m(e4.summary)}),e?(0,a.jsxs)(s.default,{sx:{mb:2},children:[(0,a.jsx)(C.A,{variant:"subtitle2",sx:{mb:1},children:m("models.wizard.installClaude")}),e9("claude","winget install --id Anthropic.ClaudeCode -e --source winget","claude setup-token")]}):null,r?(0,a.jsxs)(s.default,{sx:{mb:2},children:[(0,a.jsx)(C.A,{variant:"subtitle2",sx:{mb:1},children:m("models.wizard.installCodex")}),e9("codex","winget install --id OpenAI.Codex -e --source winget","codex login"),(0,a.jsx)(ef.A,{sx:{mt:1},control:(0,a.jsx)(eg.A,{checked:E,onChange:e=>R(e.target.checked)}),label:m("models.wizard.codexLoginComplete")})]}):null,e4.accountUrl?(0,a.jsx)(c.A,{href:e4.accountUrl,target:"_blank",rel:"noreferrer",variant:"outlined",startIcon:(0,a.jsx)(eM.A,{}),sx:{mb:2},children:e4.accountLabel?m(e4.accountLabel):null}):null,t?(0,a.jsxs)(eh.A,{spacing:1.2,sx:{mb:1},children:[(0,a.jsx)(n.A,{fullWidth:!0,required:!0,label:m("models.wizard.azure.endpoint"),placeholder:"https://your-resource.openai.azure.com",value:M,onChange:e=>{U(e.target.value),K(null)},helperText:m("models.wizard.azure.endpointHelp")}),(0,a.jsx)(n.A,{fullWidth:!0,required:!0,label:m("models.wizard.azure.deployment"),value:F,onChange:e=>{N(e.target.value),K(null)},helperText:m("models.wizard.azure.deploymentHelp")}),(0,a.jsx)(n.A,{fullWidth:!0,required:!0,label:m("models.wizard.azure.apiVersion"),value:I,onChange:e=>{O(e.target.value),K(null)},helperText:m("models.wizard.azure.apiVersionHelp")})]}):null,r?null:(0,a.jsx)(n.A,{fullWidth:!0,type:"password",autoComplete:"off",label:`${e?"2. ":""}${e4.keyLabel?m(e4.keyLabel):""}`,value:S,onChange:e=>{L(e.target.value),K(null)},InputProps:{startAdornment:(0,a.jsx)(eL.A,{color:"action",sx:{mr:1}})},helperText:m("models.wizard.keyStorageHelp"),sx:{mb:2}}),(0,a.jsx)(f.A,{severity:"info",sx:{mb:2},children:m(e4.note)}),(0,a.jsx)(C.A,{variant:"subtitle2",sx:{mb:1},children:m("models.wizard.willAdd")}),(0,a.jsx)(eh.A,{direction:"row",gap:.8,flexWrap:"wrap",sx:{mb:2.5},children:e6.map(e=>(0,a.jsx)(eu.A,{label:e,variant:"outlined"},e))}),(0,a.jsx)(c.A,{variant:"contained",size:"large",startIcon:W?(0,a.jsx)(z.default,{size:18,color:"inherit"}):(0,a.jsx)(b.A,{}),onClick:()=>void e1(),disabled:W||!!Y,children:u("models.wizard.createModels",e6.length)})]})}if("success"===p){let e=[...$,...H].map(e=>e.displayName||e.name);return(0,a.jsxs)(s.default,{sx:{textAlign:"center",py:2},children:[(0,a.jsx)(s.default,{sx:{width:78,height:78,mx:"auto",mb:2,display:"grid",placeItems:"center",borderRadius:"50%",color:"success.main",bgcolor:(0,eb.X4)(d.palette.success.main,.13),animation:`${eH} 520ms cubic-bezier(.2,.8,.2,1) both`},children:(0,a.jsx)(eA.A,{sx:{fontSize:47}})}),(0,a.jsx)(C.A,{variant:"h4",children:m("models.wizard.successTitle")}),(0,a.jsxs)(C.A,{color:"text.secondary",sx:{mt:1,mb:2.2},children:[$.length?u("models.wizard.created",$.length):m("models.wizard.alreadyMatched"),H.length?` ${u("models.wizard.kept",H.length)}`:""]}),(0,a.jsx)(eh.A,{direction:"row",gap:.8,justifyContent:"center",flexWrap:"wrap",sx:{mb:3},children:e.map(e=>(0,a.jsx)(eu.A,{icon:(0,a.jsx)(eO.A,{}),label:e,color:"primary",variant:"outlined"},e))}),(0,a.jsx)(c.A,{variant:"contained",size:"large",onClick:r,children:m("models.wizard.seeModels")})]})}return null})()},p)]})]})})}var eY=t(57643),eQ=t(43409),eZ=t(44424);let e0=(0,K.h)("app/models/ModelClient");function e1(){let{t:e}=(0,P.s9)(),r=(0,o.useRouter)(),t=(0,o.useSearchParams)(),[j,z]=(0,i.useState)([]),[k,C]=(0,i.useState)(!1),[T,S]=(0,i.useState)(""),L=(0,eQ.j)(),[M,U]=(0,i.useState)(null),[F,N]=(0,i.useState)(!1),[I,O]=(0,i.useState)(!1),[E,R]=(0,i.useState)(null),[D,q]=(0,i.useState)(null),K=(0,i.useRef)(!1);(0,el.qz)({scopeId:"models:dashboard",pageType:"models",route:"/models",title:"AI Setup",data:{models:j.map(e=>({...e,ApiKey:e.ApiKey?"[REDACTED]":""})),searchTerm:T},capabilities:{notes:["API keys are intentionally redacted before model configuration enters AI context."]}});let $=t.get("add"),H="manual"===$;if((0,i.useEffect)(()=>{H?q(e=>e??{id:(0,A.A)(),name:"",displayName:"",description:"",ApiKey:"",baseUrl:"",provider:"openai",promptTemplate:"",temperature:"0.0"}):q(null)},[H]),(0,i.useEffect)(()=>{try{let e=(0,eo.X)();e&&"function"==typeof e.loadModels&&(O(!0),e0.debug("Model service is ready"))}catch(r){e0.warn("Model service not ready, retrying...",r);let e=setTimeout(()=>{try{let e=(0,eo.X)();e&&"function"==typeof e.loadModels&&(O(!0),e0.debug("Model service is now ready"))}catch(e){e0.warn("Model service still not ready",e)}},100);return()=>clearTimeout(e)}},[]),(0,i.useEffect)(()=>{if(!I)return;let r=!1;return(0,eo.X)().loadModels().then(e=>{r||z(e)}).catch(t=>{e0.error("Failed to load models",t),r||U(e("models.error.description"))}).finally(()=>{r||C(!0)}),()=>{r=!0}},[I,e]),!I||!k)return e0.debug("Waiting for model service to be ready..."),(0,a.jsx)(eZ.default,{});let V=t.get("edit"),X=H?D:V?j.find(e=>e.id===V)??null:null,_=H?!!D:!!V,G=async t=>{e0.info("Saving model",{modelId:t.id,modelName:t.name,mode:H?"add":"update"}),N(!0);try{let a=(0,eo.X)(),i=H?await a.addModel(t):await a.updateModel(t);if(!i.success)return U(i.error||e("models.saveFailed")),{success:!1,error:i.error};{let e=await a.loadModels();return z(e),q(null),K.current?(K.current=!1,r.back()):r.push("/models"),{success:!0,model:i.model}}}catch(r){return e0.error("Failed to save model",r),U(r?.message||e("models.saveFailedRetry")),{success:!1,error:r?.message||e("models.saveFailed")}}finally{N(!1)}},J=async e=>(e0.info("Editing model",{modelId:e.id,modelName:e.name}),K.current=!0,r.push(`/models?edit=${e.id}`),{success:!0}),Y=async()=>{e0.info("Opening guided model connection wizard"),R(null),K.current=!0,r.push("/models?add=1")},Q=()=>{e0.info("Opening manual add-model modal"),R(null),K.current=!0,r.push("/models?add=manual")},Z=async t=>{e0.info("Creating guided model bundle",{count:t.length}),N(!0),U(null);let a=[],i=[];try{let o=(0,eo.X)(),l=[...await o.loadModels()];for(let r of t){let t=l.find(e=>e.provider===r.provider&&(e.adapter||"openai")===(r.adapter||"openai")&&e.name.trim().toLowerCase()===r.name.trim().toLowerCase()&&("azure"!==r.provider||(e.baseUrl||"").replace(/\/+$/,"").toLowerCase()===(r.baseUrl||"").replace(/\/+$/,"").toLowerCase()&&e.azureApiVersion===r.azureApiVersion));if(t){i.push(t);continue}let s=r.displayName||r.name,n=s,d=2;for(;l.some(e=>e.displayName?.trim().toLowerCase()===n.trim().toLowerCase());)n=`${s} (${d})`,d+=1;let m=await o.addModel({...r,displayName:n});if(!m.success||!m.model){let r=await o.loadModels();return z(r),{success:!1,created:a,existing:i,error:m.error||e("models.createNamedFailed",{name:n})}}a.push(m.model),l.push(m.model)}let s=await o.loadModels();return z(s),r.refresh(),{success:!0,created:a,existing:i}}catch(t){e0.error("Failed to create guided model bundle",t);let r=t?.message||e("models.guidedBundleFailed");return U(r),{success:!1,created:a,existing:i,error:r}}finally{N(!1)}},ee=async r=>{e0.info("Deleting model",{modelId:r}),N(!0);try{let e=(0,eo.X)();await e.deleteModel(r);let t=await e.loadModels();z(t)}catch(r){e0.error("Failed to delete model",r),U(e("models.deleteFailed"))}finally{N(!1)}},er=async(r,t)=>{e0.info("Setting model folder",{modelId:r,folder:t}),N(!0);try{let a=(0,eo.X)(),i=await a.getModel(r);if(!i)return void U(e("models.notFound"));let o=await a.updateModel({...i,folder:t});if(!o.success)return void U(o.error||e("models.moveFailed"));let l=await a.loadModels();z(l)}catch(r){e0.error("Failed to set model folder",r),U(r?.message||e("models.moveFailedRetry"))}finally{N(!1)}},et=async r=>{e0.info("Toggling model favorite",{modelId:r}),N(!0);try{let t=(0,eo.X)(),a=await t.getModel(r);if(!a)return void U(e("models.notFound"));let i=!a.favorite,o=await t.updateModel({...a,favorite:i||void 0});if(!o.success)return void U(o.error||e("models.favoriteFailed"));let l=await t.loadModels();z(l)}catch(r){e0.error("Failed to toggle model favorite",r),U(r?.message||e("models.favoriteFailedRetry"))}finally{N(!1)}},ea=async()=>{q(null),K.current?(K.current=!1,r.back()):r.replace("/models")},ei=T.trim()?j.filter(e=>{let r=T.toLowerCase();return(e.displayName||"").toLowerCase().includes(r)||(e.name||"").toLowerCase().includes(r)}):j;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eY.A,{mode:"page",children:(0,a.jsx)(l.A,{elevation:0,variant:"outlined",sx:{mb:2.5,p:1.2,borderRadius:3},children:(0,a.jsxs)(s.default,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},gap:1,alignItems:{xs:"stretch",sm:"center"},justifyContent:"space-between"},children:[(0,a.jsx)(n.A,{placeholder:e("models.searchPlaceholder"),variant:"outlined",size:"small",value:T,onChange:e=>S(e.target.value),inputRef:L,InputProps:{startAdornment:(0,a.jsx)(d.A,{position:"start",children:(0,a.jsx)(v.A,{fontSize:"small"})})},sx:{maxWidth:{sm:300},width:"100%"}}),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(m.A,{variant:"contained",color:"primary","aria-label":e("models.connectionOptionsAria"),children:[(0,a.jsx)(c.A,{startIcon:(0,a.jsx)(g.A,{}),onClick:Y,"data-tour":"add-model",children:e("models.connectAi")}),(0,a.jsx)(c.A,{size:"small","aria-label":e("models.moreOptionsAria"),"aria-controls":E?"add-model-menu":void 0,"aria-haspopup":"menu","aria-expanded":E?"true":void 0,onClick:e=>R(e.currentTarget),sx:{px:.8,minWidth:40},children:(0,a.jsx)(y.A,{})})]}),(0,a.jsxs)(u.A,{id:"add-model-menu",anchorEl:E,open:!!E,onClose:()=>R(null),children:[(0,a.jsxs)(p.A,{onClick:Y,children:[(0,a.jsx)(h.A,{children:(0,a.jsx)(b.A,{fontSize:"small"})}),(0,a.jsx)(x.A,{primary:e("models.guidedConnection"),secondary:e("models.guidedConnectionDescription")})]}),(0,a.jsxs)(p.A,{onClick:Q,children:[(0,a.jsx)(h.A,{children:(0,a.jsx)(w.A,{fontSize:"small"})}),(0,a.jsx)(x.A,{primary:e("models.manualCreation"),secondary:e("models.manualCreationDescription")})]})]})]})]})})}),M&&(0,a.jsx)(s.default,{sx:{mb:2},children:(0,a.jsx)(f.A,{severity:"error",onClose:()=>U(null),children:M})}),(0,a.jsx)(B,{models:ei,isLoading:F,onAdd:Y,onUpdate:J,onDelete:ee,folders:(0,W.yF)(j,e=>e.folder),onSetFolder:er,onToggleFavorite:et}),(0,a.jsx)(eJ,{open:"1"===$,onClose:ea,onManualCreation:Q,onCreateModels:Z}),_&&X?(0,a.jsx)(ec,{open:_,model:X,onSave:G,onClose:ea}):null]})}},80919:(e,r,t)=>{"use strict";t.d(r,{default:()=>m});var a=t(95155),i=t(37156),o=t(76010),l=t(12289),s=t(64924),n=t(5704),d=t(6310);function m({title:e,titleKey:r,description:t,descriptionKey:c,eyebrow:u,eyebrowKey:p,icon:h,leading:x,badge:f,actions:g,compact:y=!1,maxWidth:b=1440}){let v=(0,i.A)(),{t:w}=(0,d.s9)(),A=r?w(r):e,j=c?w(c):t,z=p?w(p):u;return(0,a.jsx)(o.default,{component:"header","data-page-header":!0,sx:{position:"relative",overflow:"hidden",borderBottom:1,borderColor:"divider",background:`linear-gradient(110deg, ${(0,n.X4)(v.palette.primary.main,"dark"===v.palette.mode?.09:.055)}, transparent 38%, ${(0,n.X4)(v.palette.secondary.main,.045)})`,"&::after":{position:"absolute",top:-90,right:"8%",width:220,height:160,borderRadius:"50%",content:'""',pointerEvents:"none",background:`radial-gradient(circle, ${(0,n.X4)(v.palette.primary.main,.16)}, transparent 68%)`,filter:"blur(20px)"}},children:(0,a.jsxs)(o.default,{"data-page-header-content":!0,sx:{position:"relative",zIndex:1,display:"flex",width:"100%",maxWidth:b,mx:"auto",px:{xs:2,sm:3,lg:4},py:y?{xs:1.8,sm:2}:{xs:2.2,sm:2.8},alignItems:{xs:"flex-start",md:"center"},justifyContent:"space-between",flexDirection:{xs:"column",md:"row"},gap:2},children:[(0,a.jsxs)(l.A,{"data-page-header-heading":!0,direction:"row",spacing:1.5,alignItems:"center",sx:{minWidth:0},children:[x,h&&(0,a.jsx)(o.default,{"data-page-header-icon":!0,"aria-hidden":"true",sx:{display:"grid",width:y?40:46,height:y?40:46,flexShrink:0,placeItems:"center",border:`1px solid ${(0,n.X4)(v.palette.primary.main,.24)}`,borderRadius:y?2.8:3.2,color:"primary.light",bgcolor:(0,n.X4)(v.palette.primary.main,.1),boxShadow:`inset 0 1px 0 ${(0,n.X4)(v.palette.common.white,.08)}, 0 10px 30px ${(0,n.X4)(v.palette.primary.main,.12)}`},children:(0,a.jsx)(h,{sx:{fontSize:y?21:24}})}),(0,a.jsxs)(o.default,{"data-page-header-title-block":!0,sx:{minWidth:0},children:[(u||f)&&(0,a.jsxs)(l.A,{"data-page-header-meta":!0,direction:"row",spacing:1,alignItems:"center",sx:{mb:.35},children:[z&&(0,a.jsx)(s.A,{sx:{color:"primary.light",fontSize:"0.67rem",fontWeight:780,letterSpacing:"0.13em",textTransform:"uppercase"},children:z}),f]}),(0,a.jsx)(s.A,{"data-page-header-title":!0,component:"h1",variant:"h5",sx:{overflow:"hidden",textOverflow:"ellipsis",fontSize:y?"1.2rem":void 0,whiteSpace:{xs:"normal",sm:"nowrap"}},children:A}),j&&(0,a.jsx)(s.A,{"data-page-header-description":!0,variant:"body2",color:"text.secondary",sx:{mt:.45,maxWidth:720,textWrap:"balance"},children:j})]})]}),g&&(0,a.jsx)(o.default,{"data-page-header-actions":!0,sx:{display:"flex",width:{xs:"100%",md:"auto"},flexShrink:0,flexWrap:"wrap",alignItems:"center",gap:1,"& > .MuiButton-root":{flex:{xs:"1 1 auto",sm:"0 0 auto"}}},children:g})]})})}},89238:(e,r,t)=>{"use strict";t.d(r,{T_:()=>d,V0:()=>a,g3:()=>s,xx:()=>n});let a="2024-10-21",i=/(^|[/_-])(o[1-9]|gpt-5)(?:[./_-]|$)/i,o=/claude-(?:fable|mythos)-5|claude-opus-4-(?:[7-9]|\d{2,})|claude-sonnet-5/i,l=/^(?:opus|sonnet|fable)$|claude-(?:fable|mythos)-5|claude-opus-4-(?:[6-9]|\d{2,})|claude-sonnet-4-6/i;function s(e,r,t=""){let a=r||"openai",n=t.trim();if("codex-cli"===a)return{effortLevels:/^gpt-5\.6-(?:sol|terra)$/i.test(n)?["low","medium","high","xhigh","max","ultra"]:/^gpt-5\.6-/i.test(n)?["low","medium","high","xhigh","max"]:["low","medium","high","xhigh"],priority:!/(?:mini|spark|review)/i.test(n),maxOutputTokens:!1};if("claude-cli"===a)return{...l.test(n)?{effortLevels:["low","medium","high","xhigh","max"]}:{},maxOutputTokens:!1};if("anthropic"===a)return{...!o.test(n)?{creativity:{min:0,max:1,step:.1}}:{},...l.test(n)?{effortLevels:["low","medium","high","xhigh","max"]}:{},maxOutputTokens:!0};if("gemini"===a)return{creativity:{min:0,max:2,step:.1},.../^gemini-2\.5/i.test(n)?{thinkingBudget:!0}:!/^gemini-2\.0/i.test(n)?{thinkingLevels:["minimal","low","medium","high"]}:{},maxOutputTokens:!0};let d="openai"===(e||"openai")&&i.test(n);return{...!d?{creativity:{min:0,max:2,step:.1}}:{},...d?{effortLevels:["low","medium","high"]}:{},maxOutputTokens:!0}}let n=[{id:"openai",label:"OpenAI",provider:"openai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.openai.com/v1",showBaseUrl:!0},{id:"openai-responses",label:"OpenAI (Responses API)",provider:"openai",adapter:"openai-responses",sdkLabel:"OpenAI SDK (Responses)",baseUrl:"https://api.openai.com/v1",showBaseUrl:!0,defaultModels:["gpt-5","gpt-5-mini","o4-mini","o3"]},{id:"azure",label:"Azure OpenAI",provider:"azure",adapter:"azure",sdkLabel:"AzureOpenAI SDK",baseUrl:"",showBaseUrl:!0,supportsModelDiscovery:!1,defaultApiVersion:a},{id:"openrouter",label:"OpenRouter",provider:"openrouter",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://openrouter.ai/api/v1",showBaseUrl:!0},{id:"requesty",label:"Requesty",provider:"requesty",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://router.requesty.ai/v1",showBaseUrl:!0},{id:"xai",label:"X.ai",provider:"xai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.x.ai/v1",showBaseUrl:!0},{id:"ollama",label:"Ollama",provider:"ollama",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"http://localhost:11434/v1",showBaseUrl:!0},{id:"litellm",label:"LiteLLM",provider:"litellm",adapter:"openai",sdkLabel:"OpenAI SDK (via LiteLLM Proxy)",baseUrl:"http://localhost:4000/v1",showBaseUrl:!0},{id:"gemini-openai",label:"Gemini (OpenAI Format)",provider:"gemini",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai/",showBaseUrl:!0},{id:"gemini-native",label:"Gemini (Native)",provider:"gemini",adapter:"gemini",sdkLabel:"GenAI SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite","gemini-2.0-flash"]},{id:"anthropic-openai",label:"Anthropic (OpenAI Format)",provider:"anthropic",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.anthropic.com/v1/",showBaseUrl:!0},{id:"anthropic-native",label:"Anthropic (Native)",provider:"anthropic",adapter:"anthropic",sdkLabel:"Anthropic SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["claude-opus-4-8","claude-sonnet-4-6","claude-haiku-4-5-20251001","claude-fable-5"]},{id:"claude-subscription",label:"Claude Subscription",provider:"claude-subscription",adapter:"claude-cli",sdkLabel:"Claude CLI",baseUrl:"",showBaseUrl:!1,defaultModels:["opus","sonnet","haiku","fable"]},{id:"codex",label:"Codex (OpenAI)",provider:"codex",adapter:"codex-cli",sdkLabel:"Codex SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.5","gpt-5.4","gpt-5.4-mini"]}];function d(e,r){let t=e||"openai",a=r||"openai";return n.find(e=>e.provider===t&&e.adapter===a)||n.find(e=>e.provider===t)||n[0]}}},e=>{e.O(0,[6373,7926,7564,2457,6714,8111,1627,2782,9852,1418,6686,1216,238,3420,8961,6268,9086,2667,191,7129,1190,7641,10,5212,9749,2352,1114,7540,8441,3794,7358],()=>e(e.s=69586)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e,t,r,
|
|
1
|
+
(()=>{"use strict";var e,t,a,r,c,s,n,o,f={},i={};function d(e){var t=i[e];if(void 0!==t)return t.exports;var a=i[e]={exports:{}},r=!0;try{f[e].call(a.exports,a,a.exports,d),r=!1}finally{r&&delete i[e]}return a.exports}d.m=f,e=[],d.O=(t,a,r,c)=>{if(a){c=c||0;for(var s=e.length;s>0&&e[s-1][2]>c;s--)e[s]=e[s-1];e[s]=[a,r,c];return}for(var n=1/0,s=0;s<e.length;s++){for(var[a,r,c]=e[s],o=!0,f=0;f<a.length;f++)(!1&c||n>=c)&&Object.keys(d.O).every(e=>d.O[e](a[f]))?a.splice(f--,1):(o=!1,c<n&&(n=c));if(o){e.splice(s--,1);var i=r();void 0!==i&&(t=i)}}return t},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);d.r(c);var s={};t=t||[null,a({}),a([]),a(a)];for(var n=2&r&&e;"object"==typeof n&&!~t.indexOf(n);n=a(n))Object.getOwnPropertyNames(n).forEach(t=>s[t]=()=>e[t]);return s.default=()=>e,d.d(c,s),c},d.d=(e,t)=>{for(var a in t)d.o(t,a)&&!d.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce((t,a)=>(d.f[a](e,t),t),[])),d.u=e=>3899===e?"static/chunks/3899.3f761f7e3a944e8c.js":1966===e?"static/chunks/1966.b8f83f7ba376c962.js":1508===e?"static/chunks/1508.995f1c9493195d6f.js":8830===e?"static/chunks/8830.d68c2bc10bf0378a.js":3552===e?"static/chunks/3552.917ae59695dc4dd8.js":9460===e?"static/chunks/9460.544c0932764d207b.js":3169===e?"static/chunks/3169.eae406b32045ac27.js":1701===e?"static/chunks/1701.8eef2ee9f2ac830e.js":2958===e?"static/chunks/2958.3dcad6df08ff8e1e.js":2188===e?"static/chunks/2188.9fd08399e52fd4d6.js":4067===e?"static/chunks/4067.3b3cf2942550e501.js":6689===e?"static/chunks/6689.e119380c59e9a955.js":5308===e?"static/chunks/5308.93039248fc1beb79.js":7582===e?"static/chunks/7582.cbb363188feb4635.js":5353===e?"static/chunks/5353.7ebbc3e7f7501b1c.js":2738===e?"static/chunks/2738.201b6cc9d4d88366.js":"static/chunks/"+e+"-"+({238:"394f563730772bf9",1216:"4c75d6e5efe2e193",1566:"bfeb02ebf6b2b3d5",1627:"124d5cb0ebb88761",2352:"bee4f7f6697e6c89",2454:"df04767ffd7c7e25",2457:"6aee43c03314b6e6",2502:"c69b8ee632376677",2782:"c25c4f3985e377f9",3420:"e68648b921dcdeba",3464:"643732ed0b818bcf",3664:"58a243034f2e6380",3883:"2761a18e23f041b1",3999:"4c43ad3f7e248aed",5147:"ec07dd70c20ec0b5",6268:"7d6cca0a341a3dd3",6686:"520056e9d05e5f53",6714:"421da18fa5366363",8111:"55ff10e1dbdcc048",8540:"936eb8e289d21155",9304:"1f940d490ea5c972",9852:"d18a37f927477b17"})[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},d.l=(e,t,a,c)=>{if(r[e])return void r[e].push(t);if(void 0!==a)for(var s,n,o=document.getElementsByTagName("script"),f=0;f<o.length;f++){var i=o[f];if(i.getAttribute("src")==e||i.getAttribute("data-webpack")=="_N_E:"+a){s=i;break}}s||(n=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,d.nc&&s.setAttribute("nonce",d.nc),s.setAttribute("data-webpack","_N_E:"+a),s.src=d.tu(e)),r[e]=[t];var u=(t,a)=>{s.onerror=s.onload=null,clearTimeout(b);var c=r[e];if(delete r[e],s.parentNode&&s.parentNode.removeChild(s),c&&c.forEach(e=>e(a)),t)return t(a)},b=setTimeout(u.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=u.bind(null,s.onerror),s.onload=u.bind(null,s.onload),n&&document.head.appendChild(s)},d.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=()=>(void 0===c&&(c={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(c=trustedTypes.createPolicy("nextjs#bundler",c))),c),d.tu=e=>d.tt().createScriptURL(e),d.p="/_next/",s={5687:0,5021:0,2574:0,1950:0,6373:0},d.f.j=(e,t)=>{var a=d.o(s,e)?s[e]:void 0;if(0!==a)if(a)t.push(a[2]);else if(/^(1950|2574|5021|5687|6373)$/.test(e))s[e]=0;else{var r=new Promise((t,r)=>a=s[e]=[t,r]);t.push(a[2]=r);var c=d.p+d.u(e),n=Error();d.l(c,t=>{if(d.o(s,e)&&(0!==(a=s[e])&&(s[e]=void 0),a)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;n.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",n.name="ChunkLoadError",n.type=r,n.request=c,a[1](n)}},"chunk-"+e,e)}},d.O.j=e=>0===s[e],n=(e,t)=>{var a,r,[c,n,o]=t,f=0;if(c.some(e=>0!==s[e])){for(a in n)d.o(n,a)&&(d.m[a]=n[a]);if(o)var i=o(d)}for(e&&e(t);f<c.length;f++)r=c[f],d.o(s,r)&&s[r]&&s[r][0](),s[r]=0;return d.O(i)},(o=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(n.bind(null,0)),o.push=n.bind(null,o.push.bind(o))})();
|