flujo-ai 3.26.0 → 3.28.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-build-manifest.json +470 -306
- package/.next/app-path-routes-manifest.json +28 -8
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +24 -0
- package/.next/react-loadable-manifest.json +31 -18
- package/.next/routes-manifest.json +29 -0
- 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/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/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/approvals/route.js +2 -2
- package/.next/server/app/api/approvals/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/backup/route.js +1 -1
- package/.next/server/app/api/backup/route.js.nft.json +1 -1
- package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/bugs/enhance/route.js +3 -3
- package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
- package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/route.js +1 -1
- package/.next/server/app/api/cwd/route_client-reference-manifest.js +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/encryption/secure/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/env/route.js +2 -2
- package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/route.js +1 -1
- package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js +1 -0
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -0
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/flow/[id]/versions/route.js +1 -0
- package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -0
- package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -0
- 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/compile/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/improve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
- package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +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/quick-chat/route_client-reference-manifest.js +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/repair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/route.js +1 -1
- package/.next/server/app/api/flow/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/route.js +2 -2
- package/.next/server/app/api/git/route.js.nft.json +1 -1
- package/.next/server/app/api/git/route_client-reference-manifest.js +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/init/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/app-sandbox/route.js +1 -0
- package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/cancel/route.js +2 -2
- package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route.js +1 -0
- package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +1 -0
- 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/get/route_client-reference-manifest.js +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]/prompts/route_client-reference-manifest.js +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/read/route_client-reference-manifest.js +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]/resources/route_client-reference-manifest.js +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]/route_client-reference-manifest.js +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]/status/route_client-reference-manifest.js +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/[toolName]/route_client-reference-manifest.js +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/[name]/tools/route_client-reference-manifest.js +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/servers/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/test-connection/stream/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp-registry/route.js +2 -2
- package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +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/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/provider/route.js +2 -2
- package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
- package/.next/server/app/api/model/provider/route_client-reference-manifest.js +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/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/test/route.js +2 -2
- package/.next/server/app/api/model/test/route.js.nft.json +1 -1
- package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/callback/route.js +2 -2
- package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/initiate/route.js +2 -2
- package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/reset/route.js +2 -2
- package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/build/route.js +1 -0
- package/.next/server/app/api/packages/build/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/derive-secrets/route.js +1 -0
- package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/install/route.js +1 -0
- package/.next/server/app/api/packages/install/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/install/status/route.js +1 -0
- package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/installed/route.js +1 -0
- package/.next/server/app/api/packages/installed/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/resolve/route.js +1 -0
- package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/uninstall/route.js +1 -0
- package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/planned-executions/[id]/route.js +2 -2
- package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -2
- package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -2
- package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +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/reconcile/route_client-reference-manifest.js +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/planned-executions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/resend/route.js +1 -0
- package/.next/server/app/api/registry/auth/resend/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/registry/auth/reset/route.js +1 -0
- package/.next/server/app/api/registry/auth/reset/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/registry/auth/route.js +1 -0
- package/.next/server/app/api/registry/auth/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/registry/oauth/callback/route.js +1 -0
- package/.next/server/app/api/registry/oauth/callback/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/registry/oauth/initiate/route.js +1 -0
- package/.next/server/app/api/registry/oauth/initiate/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/registry/publish/route.js +1 -0
- package/.next/server/app/api/registry/publish/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/registry/settings/route.js +1 -0
- package/.next/server/app/api/registry/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/restore/route.js +1 -1
- package/.next/server/app/api/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runs/active/route.js +2 -2
- package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
- package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/storage/route.js +1 -1
- package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update/route.js +1 -1
- package/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/server/app/api/update/route_client-reference-manifest.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/waves/route_client-reference-manifest.js +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/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +9 -10
- 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/docs/page.js +7 -6
- package/.next/server/app/docs/page.js.nft.json +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/executions/page.js +39 -3
- package/.next/server/app/executions/page.js.nft.json +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/flows/page.js +3 -3
- 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 +4 -4
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/mcp/page.js +14 -14
- package/.next/server/app/mcp/page.js.nft.json +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-flows/route_client-reference-manifest.js +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-proxy/[server]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp.html +1 -1
- package/.next/server/app/mcp.rsc +3 -3
- package/.next/server/app/models/page.js +2 -2
- package/.next/server/app/models/page.js.nft.json +1 -1
- package/.next/server/app/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages/page.js +2 -0
- package/.next/server/app/packages/page.js.nft.json +1 -0
- package/.next/server/app/packages/page_client-reference-manifest.js +1 -0
- package/.next/server/app/packages.html +1 -0
- package/.next/server/app/packages.meta +7 -0
- package/.next/server/app/packages.rsc +22 -0
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page.js.nft.json +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.js.nft.json +1 -1
- 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/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/completions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +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/continue/route_client-reference-manifest.js +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]/debug/step/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +3 -3
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +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]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/events/route.js +11 -0
- package/.next/server/app/v1/chat/events/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/models/route.js +2 -2
- package/.next/server/app/v1/models/route.js.nft.json +1 -1
- package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/waves/page.js +4 -4
- package/.next/server/app/waves/page.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-paths-manifest.json +28 -8
- package/.next/server/chunks/1083.js +1 -1
- package/.next/server/chunks/1114.js +1 -1
- package/.next/server/chunks/1197.js +1 -1
- package/.next/server/chunks/1226.js +1 -1
- package/.next/server/chunks/1314.js +1 -0
- package/.next/server/chunks/1604.js +70 -0
- package/.next/server/chunks/1615.js +1 -0
- package/.next/server/chunks/1659.js +1 -1
- package/.next/server/chunks/166.js +5 -5
- package/.next/server/chunks/1805.js +1 -0
- package/.next/server/chunks/1819.js +2 -0
- package/.next/server/chunks/1925.js +1 -0
- package/.next/server/chunks/2388.js +1 -0
- package/.next/server/chunks/2434.js +2 -0
- package/.next/server/chunks/2666.js +1 -0
- package/.next/server/chunks/2859.js +1 -1
- package/.next/server/chunks/2940.js +46 -0
- package/.next/server/chunks/2985.js +1 -0
- package/.next/server/chunks/3128.js +62 -0
- package/.next/server/chunks/3273.js +1 -0
- package/.next/server/chunks/3298.js +1 -1
- package/.next/server/chunks/{8445.js → 3392.js} +2 -2
- package/.next/server/chunks/346.js +1 -0
- package/.next/server/chunks/3570.js +249 -0
- package/.next/server/chunks/3629.js +1 -0
- package/.next/server/chunks/38.js +2 -2
- package/.next/server/chunks/3951.js +151 -0
- package/.next/server/chunks/4042.js +1 -0
- package/.next/server/chunks/4265.js +1 -1
- package/.next/server/chunks/4306.js +1 -0
- package/.next/server/chunks/4322.js +1 -0
- package/.next/server/chunks/4426.js +6 -0
- package/.next/server/chunks/{6745.js → 4661.js} +1 -1
- package/.next/server/chunks/4671.js +1 -1
- package/.next/server/chunks/4681.js +1 -0
- package/.next/server/chunks/4765.js +1 -0
- package/.next/server/chunks/4771.js +2 -2
- package/.next/server/chunks/5067.js +1 -0
- package/.next/server/chunks/5096.js +1 -0
- package/.next/server/chunks/510.js +1 -0
- package/.next/server/chunks/5148.js +1 -1
- package/.next/server/chunks/{4578.js → 5150.js} +1 -1
- package/.next/server/chunks/5200.js +1 -0
- package/.next/server/chunks/5463.js +1 -1
- package/.next/server/chunks/5471.js +1 -0
- package/.next/server/chunks/5544.js +5 -5
- package/.next/server/chunks/5708.js +6 -5
- package/.next/server/chunks/5880.js +1 -0
- package/.next/server/chunks/5958.js +2 -0
- package/.next/server/chunks/6005.js +1 -0
- package/.next/server/chunks/6126.js +53 -0
- package/.next/server/chunks/6529.js +5 -0
- package/.next/server/chunks/6537.js +1 -1
- package/.next/server/chunks/6826.js +1 -1
- package/.next/server/chunks/6849.js +66 -0
- package/.next/server/chunks/688.js +3 -0
- package/.next/server/chunks/701.js +1 -1
- package/.next/server/chunks/7032.js +1 -1
- package/.next/server/chunks/7214.js +4 -4
- package/.next/server/chunks/724.js +1 -1
- package/.next/server/chunks/7463.js +4 -4
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7538.js +21 -0
- package/.next/server/chunks/7579.js +8 -7
- package/.next/server/chunks/{3030.js → 7674.js} +1 -1
- package/.next/server/chunks/7821.js +1 -1
- package/.next/server/chunks/793.js +393 -0
- package/.next/server/chunks/8037.js +1 -0
- package/.next/server/chunks/8165.js +3 -0
- package/.next/server/chunks/8339.js +1 -0
- package/.next/server/chunks/8387.js +1 -1
- package/.next/server/chunks/8522.js +2 -0
- package/.next/server/chunks/8568.js +12 -0
- package/.next/server/chunks/8667.js +1 -0
- package/.next/server/chunks/869.js +2 -0
- package/.next/server/chunks/{3489.js → 8730.js} +1 -1
- package/.next/server/chunks/8739.js +2 -2
- package/.next/server/chunks/8745.js +1 -1
- package/.next/server/chunks/8979.js +37 -0
- package/.next/server/chunks/8994.js +1 -1
- package/.next/server/chunks/9165.js +1 -1
- package/.next/server/chunks/9285.js +1 -1
- package/.next/server/chunks/94.js +1 -1
- package/.next/server/chunks/9400.js +2 -0
- package/.next/server/chunks/{4456.js → 9472.js} +2 -2
- package/.next/server/chunks/9583.js +1 -0
- package/.next/server/chunks/9671.js +1 -0
- package/.next/server/chunks/9724.js +393 -0
- package/.next/server/chunks/991.js +2 -0
- package/.next/server/functions-config-manifest.json +1 -0
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +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/server/src/middleware.js +1 -1
- package/.next/server/src/middleware.js.map +1 -1
- package/.next/static/Q6ITx_bZyoEOnKdZu_C7j/_buildManifest.js +1 -0
- package/.next/static/chunks/1594-309fa6363f215d76.js +1 -0
- package/.next/static/chunks/1809-e56cf3c476261e34.js +1 -0
- package/.next/static/chunks/1937-6bbdcdc660db562c.js +1 -0
- package/.next/static/chunks/1988-1b651d581fc44a36.js +1 -0
- package/.next/static/chunks/{2003-7710c23acaef11c9.js → 2003-f826c607d609d1fa.js} +1 -1
- package/.next/static/chunks/2164-7d6451e88a447de7.js +1 -0
- package/.next/static/chunks/218-6cbe09820faa3272.js +1 -0
- package/.next/static/chunks/2566-60acd5838abd9f3f.js +1 -0
- package/.next/static/chunks/{2403-5c26e0abd76095b1.js → 2800-4fa29a3eeb693593.js} +1 -1
- package/.next/static/chunks/289-98f50bfcf833d661.js +1 -0
- package/.next/static/chunks/3089.9e15df4ffd0fe4e8.js +1 -0
- package/.next/static/chunks/{3217.f728df99ab5da33c.js → 3217.260785c2198d1e9d.js} +1 -1
- package/.next/static/chunks/3392-6dd9ad3be66a7ce9.js +1 -0
- package/.next/static/chunks/3418-a2f5d0c4f29ee2fb.js +1 -0
- package/.next/static/chunks/{3556-3b6f7c99b015b752.js → 3556-b9855146c7506696.js} +1 -1
- package/.next/static/chunks/3827-9e9a6e11ef808d90.js +1 -0
- package/.next/static/chunks/3910.5c6885d7a5bd753e.js +1 -0
- package/.next/static/chunks/3948-1cb8fc7a64805254.js +1 -0
- package/.next/static/chunks/3958-5641a828b320f2fe.js +100 -0
- package/.next/static/chunks/{488-623d07c3fbc21e28.js → 488-7ab54d8ae2b4b550.js} +1 -1
- package/.next/static/chunks/5328-4e556503b70e72b4.js +1 -0
- package/.next/static/chunks/{5512.d01d565f73109a1a.js → 5512.682bef7fd3a7c286.js} +1 -1
- package/.next/static/chunks/6195-8c4c57628e9013d5.js +1 -0
- package/.next/static/chunks/6669-a949326b30ea1d39.js +1 -0
- package/.next/static/chunks/6777-4b0d05731a089de4.js +1 -0
- package/.next/static/chunks/6947-0ff3545efb53e959.js +1 -0
- package/.next/static/chunks/7111-44538f8a64241b74.js +1 -0
- package/.next/static/chunks/7304-e7cd725083617b81.js +8 -0
- package/.next/static/chunks/7445-2802e158c9093556.js +1 -0
- package/.next/static/chunks/795-704a0e742ecc2ef6.js +1 -0
- package/.next/static/chunks/812-3ceea0da38ad2891.js +1 -0
- package/.next/static/chunks/{8345.fbc0af16acce7256.js → 8345.bc5534ec13abc9ee.js} +1 -1
- package/.next/static/chunks/8401-0f39d91810180a88.js +1 -0
- package/.next/static/chunks/{8405.e728bc83a7c9fed6.js → 8405.73e8be2c8e5b55c5.js} +1 -1
- package/.next/static/chunks/8551-a28272acfda62ac9.js +1 -0
- package/.next/static/chunks/8855-02889c9ab4bf0bcf.js +1 -0
- package/.next/static/chunks/{8989-401559d9f3bc80a0.js → 8989-5fa9c7c670eb9a1a.js} +1 -1
- package/.next/static/chunks/{9164-829ab5b085ec06d6.js → 9164-840f056a0e11d979.js} +1 -1
- package/.next/static/chunks/9562-ef0ddd4e6b9023cf.js +1 -0
- package/.next/static/chunks/app/api/approvals/[id]/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/approvals/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/backup/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/browse/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/bugs/enhance/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/cwd/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/encryption/secure/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/env/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/flow/compile/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/flow/generate/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/flow/improve/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/flow/quick-chat/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/flow/repair/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/flow/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/git/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/init/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/local-models/capability/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/local-models/pull/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/local-models/suggest/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/app-sandbox/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/cancel/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/oauth-capability/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/model/[id]/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/model/provider/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/model/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/model/test/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/oauth/callback/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/oauth/initiate/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/oauth/reset/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/packages/build/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/packages/derive-secrets/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/packages/install/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/packages/install/status/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/packages/installed/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/packages/resolve/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/packages/uninstall/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/resend/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/reset/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/callback/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/initiate/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/registry/publish/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/registry/settings/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/restore/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/runs/active/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/storage/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/update/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/waves/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[id]/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/chat/page-c39160ddf90bbae9.js +1 -0
- package/.next/static/chunks/app/docs/page-250523af44e96120.js +1 -0
- package/.next/static/chunks/app/executions/page-10d09f36de30939f.js +1 -0
- package/.next/static/chunks/app/flows/page-0d8fb471adfc2981.js +1 -0
- package/.next/static/chunks/app/layout-eea7078d7553c21a.js +1 -0
- package/.next/static/chunks/app/mcp/page-8ad71bf5801bfe5f.js +1 -0
- package/.next/static/chunks/app/mcp-flows/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/mcp-proxy/[server]/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/models/page-17e8e6668f92f58d.js +1 -0
- package/.next/static/chunks/app/packages/page-9f61751e98134f3d.js +1 -0
- package/.next/static/chunks/app/{page-0a95c40a65dbd2eb.js → page-d3ea90b065b95d1e.js} +1 -1
- package/.next/static/chunks/app/settings/page-afbf8790e99fecaf.js +1 -0
- package/.next/static/chunks/app/v1/chat/completions/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/chat/events/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/v1/models/route-c745e5b53b81491a.js +1 -0
- package/.next/static/chunks/app/waves/page-97ad6b51c9cae4b3.js +1 -0
- package/.next/static/chunks/webpack-0d4a4e773990ac44.js +1 -0
- package/.next/static/css/{64cb1f185b52a623.css → 69ab44eb350e0b6c.css} +1 -1
- package/.next/trace +10 -10
- package/.next/types/app/api/flow/[id]/versions/[versionId]/route.ts +347 -0
- package/.next/types/app/api/flow/[id]/versions/route.ts +347 -0
- package/.next/types/app/api/mcp/app-sandbox/route.ts +347 -0
- package/.next/types/app/api/mcp/oauth-capability/route.ts +347 -0
- package/.next/types/app/api/packages/build/route.ts +347 -0
- package/.next/types/app/api/packages/derive-secrets/route.ts +347 -0
- package/.next/types/app/api/packages/install/route.ts +347 -0
- package/.next/types/app/api/packages/install/status/route.ts +347 -0
- package/.next/types/app/api/packages/installed/route.ts +347 -0
- package/.next/types/app/api/packages/resolve/route.ts +347 -0
- package/.next/types/app/api/packages/uninstall/route.ts +347 -0
- package/.next/types/app/api/registry/auth/resend/route.ts +347 -0
- package/.next/types/app/api/registry/auth/reset/route.ts +347 -0
- package/.next/types/app/api/registry/auth/route.ts +347 -0
- package/.next/types/app/api/registry/oauth/callback/route.ts +347 -0
- package/.next/types/app/api/registry/oauth/initiate/route.ts +347 -0
- package/.next/types/app/api/registry/publish/route.ts +347 -0
- package/.next/types/app/api/registry/settings/route.ts +347 -0
- package/.next/types/app/packages/page.ts +84 -0
- package/.next/types/app/v1/chat/events/route.ts +347 -0
- package/.next/types/routes.d.ts +22 -2
- package/.next/types/validator.ts +180 -0
- package/README.md +1 -1
- package/package.json +97 -90
- package/.next/server/chunks/1152.js +0 -2
- package/.next/server/chunks/1223.js +0 -1
- package/.next/server/chunks/1377.js +0 -1
- package/.next/server/chunks/2373.js +0 -1
- package/.next/server/chunks/289.js +0 -1
- package/.next/server/chunks/3774.js +0 -6
- package/.next/server/chunks/3823.js +0 -41
- package/.next/server/chunks/3855.js +0 -1
- package/.next/server/chunks/3924.js +0 -52
- package/.next/server/chunks/4372.js +0 -1
- package/.next/server/chunks/4545.js +0 -21
- package/.next/server/chunks/4561.js +0 -65
- package/.next/server/chunks/4677.js +0 -37
- package/.next/server/chunks/472.js +0 -1
- package/.next/server/chunks/4793.js +0 -2
- package/.next/server/chunks/4836.js +0 -1
- package/.next/server/chunks/5311.js +0 -1
- package/.next/server/chunks/5662.js +0 -2
- package/.next/server/chunks/5734.js +0 -60
- package/.next/server/chunks/584.js +0 -1
- package/.next/server/chunks/62.js +0 -1
- package/.next/server/chunks/6240.js +0 -1
- package/.next/server/chunks/6306.js +0 -1
- package/.next/server/chunks/6793.js +0 -1
- package/.next/server/chunks/6908.js +0 -12
- package/.next/server/chunks/6996.js +0 -62
- package/.next/server/chunks/7362.js +0 -158
- package/.next/server/chunks/8216.js +0 -1
- package/.next/server/chunks/856.js +0 -5
- package/.next/server/chunks/8652.js +0 -42
- package/.next/server/chunks/9427.js +0 -1
- package/.next/static/Il6IDWxf3CN0dv-P6QQrp/_buildManifest.js +0 -1
- package/.next/static/chunks/1675-773454288de4309d.js +0 -1
- package/.next/static/chunks/1731-6e45fb529f9044a3.js +0 -1
- package/.next/static/chunks/2318-76fcb6c769b1a569.js +0 -1
- package/.next/static/chunks/2566-6e2b9d9349814789.js +0 -1
- package/.next/static/chunks/2734-59fbe2f62a59df86.js +0 -1
- package/.next/static/chunks/3089.6b4e21e1faa304e2.js +0 -1
- package/.next/static/chunks/3109-11bdec9bdfd996c3.js +0 -1
- package/.next/static/chunks/333-5f3c5be57c80c48c.js +0 -1
- package/.next/static/chunks/3333-b7b3e5758a568013.js +0 -1
- package/.next/static/chunks/4003-3b3768446ae333df.js +0 -1
- package/.next/static/chunks/4635-0fe310d3be64e71e.js +0 -1
- package/.next/static/chunks/4690-ec7d397cfacedac3.js +0 -1
- package/.next/static/chunks/4775-cb9c0be621363a08.js +0 -8
- package/.next/static/chunks/5336-81da1080de29ebfc.js +0 -1
- package/.next/static/chunks/6691-117567b2b40cd9f4.js +0 -1
- package/.next/static/chunks/7274-1184563607f2b5f5.js +0 -1
- package/.next/static/chunks/812-624e93f4c0f671c7.js +0 -1
- package/.next/static/chunks/8166-e75acdc559b34fcd.js +0 -1
- package/.next/static/chunks/8607-5787e42775fc3acb.js +0 -1
- package/.next/static/chunks/8610-660d5088bc1dd7a7.js +0 -1
- package/.next/static/chunks/9240-d0a51f4d504f34b1.js +0 -1
- package/.next/static/chunks/9562-b7922ceb400ec536.js +0 -1
- package/.next/static/chunks/9704-6b7415964d7c042a.js +0 -1
- package/.next/static/chunks/app/api/approvals/[id]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/approvals/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/backup/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/browse/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/bugs/enhance/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/cwd/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/encryption/secure/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/env/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/compile/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/generate/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/improve/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/quick-chat/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/repair/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/git/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/init/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/local-models/capability/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/local-models/pull/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/local-models/suggest/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/cancel/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/model/[id]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/model/provider/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/model/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/model/test/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/oauth/callback/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/oauth/initiate/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/oauth/reset/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/restore/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/runs/active/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/storage/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/update/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/waves/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[id]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/chat/page-04ad1fad78048afb.js +0 -1
- package/.next/static/chunks/app/docs/page-5475c616764dbb18.js +0 -1
- package/.next/static/chunks/app/executions/page-c18708ed96d228ec.js +0 -1
- package/.next/static/chunks/app/flows/page-f7e44aa545bcc56e.js +0 -1
- package/.next/static/chunks/app/layout-e6fbae80e0f456a6.js +0 -1
- package/.next/static/chunks/app/mcp/page-3638fbee04a3a6ea.js +0 -1
- package/.next/static/chunks/app/mcp-flows/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/mcp-proxy/[server]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/models/page-e690a986047b1e62.js +0 -1
- package/.next/static/chunks/app/settings/page-3ef9b95187e18a5a.js +0 -1
- package/.next/static/chunks/app/v1/chat/completions/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/models/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/waves/page-c9a307e2236423a4.js +0 -1
- package/.next/static/chunks/webpack-a6844e1074885c2f.js +0 -1
- /package/.next/static/{Il6IDWxf3CN0dv-P6QQrp → Q6ITx_bZyoEOnKdZu_C7j}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=8216,exports.ids=[8216],exports.modules={354:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M20 6h-8l-2-2H7.17l4 4H20v9.17l1.76 1.76c.15-.28.24-.59.24-.93V8c0-1.1-.9-2-2-2M2.1 2.1.69 3.51l1.56 1.56c-.15.28-.24.59-.24.93L2 18c0 1.1.9 2 2 2h13.17l3.31 3.31 1.41-1.41zM4 18V6.83L15.17 18z"}),"FolderOffOutlined")},423:(a,b,c)=>{c.d(b,{A:()=>s});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(68333),i=c(6636),j=c(29565),k=c(33105);function l(a){return(0,k.Ay)("MuiCardActionArea",a)}let m=(0,j.A)("MuiCardActionArea",["root","focusVisible","focusHighlight"]);var n=c(14328),o=c(20385),p=c(21124);let q=(0,g.Ay)(n.A,{name:"MuiCardActionArea",slot:"Root",overridesResolver:(a,b)=>b.root})((0,h.A)(({theme:a})=>({display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%",[`&:hover .${m.focusHighlight}`]:{opacity:(a.vars||a).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}},[`&.${m.focusVisible} .${m.focusHighlight}`]:{opacity:(a.vars||a).palette.action.focusOpacity}}))),r=(0,g.Ay)("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:(a,b)=>b.focusHighlight})((0,h.A)(({theme:a})=>({overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:a.transitions.create("opacity",{duration:a.transitions.duration.short})}))),s=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiCardActionArea"}),{children:d,className:g,focusVisibleClassName:h,slots:j={},slotProps:k={},...m}=c,n=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"],focusHighlight:["focusHighlight"]},l,b)})(c),s={slots:j,slotProps:k},[t,u]=(0,o.A)("root",{elementType:q,externalForwardedProps:{...s,...m},shouldForwardComponentProp:!0,ownerState:c,ref:b,className:(0,e.A)(n.root,g),additionalProps:{focusVisibleClassName:(0,e.A)(h,n.focusVisible)}}),[v,w]=(0,o.A)("focusHighlight",{elementType:r,externalForwardedProps:s,ownerState:c,ref:b,className:n.focusHighlight});return(0,p.jsxs)(t,{...u,children:[d,(0,p.jsx)(v,{...w})]})})},5501:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Star")},8165:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z"}),"CheckCircle")},12033:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z"}),"Edit")},18467:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"}),"FolderOutlined")},27114:(a,b,c)=>{c.d(b,{A:()=>n});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(29565),j=c(33105);function k(a){return(0,j.Ay)("MuiCardContent",a)}(0,i.A)("MuiCardContent",["root"]);var l=c(21124);let m=(0,g.Ay)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(a,b)=>b.root})({padding:16,"&:last-child":{paddingBottom:24}}),n=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiCardContent"}),{className:d,component:g="div",...i}=c,j={...c,component:g},n=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"]},k,b)})(j);return(0,l.jsx)(m,{as:g,className:(0,e.A)(n.root,d),ownerState:j,ref:b,...i})})},30818:(a,b,c)=>{c.d(b,{A:()=>o});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(54573),j=c(29565),k=c(33105);function l(a){return(0,k.Ay)("MuiCard",a)}(0,j.A)("MuiCard",["root"]);var m=c(21124);let n=(0,g.Ay)(i.A,{name:"MuiCard",slot:"Root",overridesResolver:(a,b)=>b.root})({overflow:"hidden"}),o=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiCard"}),{className:d,raised:g=!1,...i}=c,j={...c,raised:g},k=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"]},l,b)})(j);return(0,m.jsx)(n,{className:(0,e.A)(k.root,d),elevation:g?8:void 0,ref:b,ownerState:j,...i})})},31973:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2m0 12H4V6h5.17l2 2H20zm-8-4h2v2h2v-2h2v-2h-2v-2h-2v2h-2z"}),"CreateNewFolderOutlined")},36698:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"}),"Check")},38313:(a,b,c)=>{c.d(b,{A:()=>g,f:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiListItemIcon",a)}let g=(0,d.A)("MuiListItemIcon",["root","alignItemsFlexStart"])},40973:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"}),"Search")},50553:(a,b,c)=>{c.d(b,{A:()=>n});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(68333),i=c(6636),j=c(38313),k=c(55470),l=c(21124);let m=(0,g.Ay)("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,"flex-start"===c.alignItems&&b.alignItemsFlexStart]}})((0,h.A)(({theme:a})=>({minWidth:56,color:(a.vars||a).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}))),n=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiListItemIcon"}),{className:g,...h}=c,n=d.useContext(k.A),o={...c,alignItems:n.alignItems},p=(a=>{let{alignItems:b,classes:c}=a;return(0,f.A)({root:["root","flex-start"===b&&"alignItemsFlexStart"]},j.f,c)})(o);return(0,l.jsx)(m,{className:(0,e.A)(p.root,g),ownerState:o,ref:b,...h})})},76345:(a,b,c)=>{c.d(b,{A:()=>g,b:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiListItemText",a)}let g=(0,d.A)("MuiListItemText",["root","multiline","dense","inset","primary","secondary"])},84233:(a,b,c)=>{c.d(b,{A:()=>p});var d=c(38301),e=c(43249),f=c(2783),g=c(29071),h=c(79515),i=c(55470),j=c(18168),k=c(6636),l=c(76345),m=c(20385),n=c(21124);let o=(0,j.Ay)("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[{[`& .${l.A.primary}`]:b.primary},{[`& .${l.A.secondary}`]:b.secondary},b.root,c.inset&&b.inset,c.primary&&c.secondary&&b.multiline,c.dense&&b.dense]}})({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4,[`.${g.A.root}:where(& .${l.A.primary})`]:{display:"block"},[`.${g.A.root}:where(& .${l.A.secondary})`]:{display:"block"},variants:[{props:({ownerState:a})=>a.primary&&a.secondary,style:{marginTop:6,marginBottom:6}},{props:({ownerState:a})=>a.inset,style:{paddingLeft:56}}]}),p=d.forwardRef(function(a,b){let c=(0,k.b)({props:a,name:"MuiListItemText"}),{children:g,className:j,disableTypography:p=!1,inset:q=!1,primary:r,primaryTypographyProps:s,secondary:t,secondaryTypographyProps:u,slots:v={},slotProps:w={},...x}=c,{dense:y}=d.useContext(i.A),z=null!=r?r:g,A=t,B={...c,disableTypography:p,inset:q,primary:!!z,secondary:!!A,dense:y},C=(a=>{let{classes:b,inset:c,primary:d,secondary:e,dense:g}=a;return(0,f.A)({root:["root",c&&"inset",g&&"dense",d&&e&&"multiline"],primary:["primary"],secondary:["secondary"]},l.b,b)})(B),D={slots:v,slotProps:{primary:s,secondary:u,...w}},[E,F]=(0,m.A)("root",{className:(0,e.A)(C.root,j),elementType:o,externalForwardedProps:{...D,...x},ownerState:B,ref:b}),[G,H]=(0,m.A)("primary",{className:C.primary,elementType:h.default,externalForwardedProps:D,ownerState:B}),[I,J]=(0,m.A)("secondary",{className:C.secondary,elementType:h.default,externalForwardedProps:D,ownerState:B});return null==z||z.type===h.default||p||(z=(0,n.jsx)(G,{variant:y?"body2":"body1",component:H?.variant?void 0:"span",...H,children:z})),null==A||A.type===h.default||p||(A=(0,n.jsx)(I,{variant:"body2",color:"textSecondary",...J,children:A})),(0,n.jsxs)(E,{...F,children:[z,A]})})},94367:(a,b,c)=>{c.d(b,{A:()=>y});var d=c(38301),e=c(43249),f=c(2783),g=c(37489),h=c(41126),i=c(18168),j=c(68333),k=c(6636),l=c(55470),m=c(14328),n=c(14758),o=c(26636),p=c(93895),q=c(38313),r=c(76345),s=c(29565),t=c(33105);function u(a){return(0,t.Ay)("MuiMenuItem",a)}let v=(0,s.A)("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]);var w=c(21124);let x=(0,i.Ay)(m.A,{shouldForwardProp:a=>(0,h.A)(a)||"classes"===a,name:"MuiMenuItem",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.dense&&b.dense,c.divider&&b.divider,!c.disableGutters&&b.gutters]}})((0,j.A)(({theme:a})=>({...a.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(a.vars||a).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${v.selected}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity),[`&.${v.focusVisible}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.focusOpacity}))`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity+a.palette.action.focusOpacity)}},[`&.${v.selected}:hover`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.hoverOpacity}))`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity+a.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity)}},[`&.${v.focusVisible}`]:{backgroundColor:(a.vars||a).palette.action.focus},[`&.${v.disabled}`]:{opacity:(a.vars||a).palette.action.disabledOpacity},[`& + .${p.A.root}`]:{marginTop:a.spacing(1),marginBottom:a.spacing(1)},[`& + .${p.A.inset}`]:{marginLeft:52},[`& .${r.A.root}`]:{marginTop:0,marginBottom:0},[`& .${r.A.inset}`]:{paddingLeft:36},[`& .${q.A.root}`]:{minWidth:36},variants:[{props:({ownerState:a})=>!a.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:a})=>a.divider,style:{borderBottom:`1px solid ${(a.vars||a).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:a})=>!a.dense,style:{[a.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:a})=>a.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...a.typography.body2,[`& .${q.A.root} svg`]:{fontSize:"1.25rem"}}}]}))),y=d.forwardRef(function(a,b){let c,g=(0,k.b)({props:a,name:"MuiMenuItem"}),{autoFocus:h=!1,component:i="li",dense:j=!1,divider:m=!1,disableGutters:p=!1,focusVisibleClassName:q,role:r="menuitem",tabIndex:s,className:t,...v}=g,y=d.useContext(l.A),z=d.useMemo(()=>({dense:j||y.dense||!1,disableGutters:p}),[y.dense,j,p]),A=d.useRef(null);(0,n.A)(()=>{h&&A.current&&A.current.focus()},[h]);let B={...g,dense:z.dense,divider:m,disableGutters:p},C=(a=>{let{disabled:b,dense:c,divider:d,disableGutters:e,selected:g,classes:h}=a,i=(0,f.A)({root:["root",c&&"dense",b&&"disabled",!e&&"gutters",d&&"divider",g&&"selected"]},u,h);return{...h,...i}})(g),D=(0,o.A)(A,b);return g.disabled||(c=void 0!==s?s:-1),(0,w.jsx)(l.A.Provider,{value:z,children:(0,w.jsx)(x,{ref:D,role:r,tabIndex:c,component:i,focusVisibleClassName:(0,e.A)(C.focusVisible,q),className:(0,e.A)(C.root,t),...v,ownerState:B,classes:C})})})},98463:(a,b,c)=>{c.d(b,{A:()=>n});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(29565),j=c(33105);function k(a){return(0,j.Ay)("MuiCardActions",a)}(0,i.A)("MuiCardActions",["root","spacing"]);var l=c(21124);let m=(0,g.Ay)("div",{name:"MuiCardActions",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,!c.disableSpacing&&b.spacing]}})({display:"flex",alignItems:"center",padding:8,variants:[{props:{disableSpacing:!1},style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),n=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiCardActions"}),{disableSpacing:d=!1,className:g,...i}=c,j={...c,disableSpacing:d},n=(a=>{let{classes:b,disableSpacing:c}=a;return(0,f.A)({root:["root",!c&&"spacing"]},k,b)})(j);return(0,l.jsx)(m,{className:(0,e.A)(n.root,g),ownerState:j,ref:b,...i})})},99587:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28z"}),"StarBorder")}};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=856,exports.ids=[856],exports.modules={32720:(a,b,c)=>{c.d(b,{A:()=>B});var d=c(21124),e=c(38301),f=c(40512),g=c(83899),h=c(52327),i=c(81637),j=c(43312),k=c(44079),l=c(37674),m=c(41893),n=c(88745),o=c(8521),p=c(79515),q=c(89490),r=c(75983),s=c(50553),t=c(84233),u=c(19925),v=c(68730),w=c(30717),x=c(98810),y=c(52399),z=c(91314);let A=(0,c(19815).h)("frontend/components/shared/FolderPickerDialog"),B=({open:a,title:b="Choose a folder",selectFiles:c=!1,initialPath:B,onClose:C,onSelect:D})=>{let[E,F]=(0,e.useState)(null),[G,H]=(0,e.useState)(""),[I,J]=(0,e.useState)(!1),[K,L]=(0,e.useState)(null),M=(0,e.useCallback)(async a=>{J(!0),L(null);try{let b=a?`?path=${encodeURIComponent(a)}`:"",c=await fetch(`/api/browse${b}`),d=await c.json();if(!c.ok||d.error)return void L(d.error||`HTTP ${c.status}`);F(d),H(d.path)}catch(a){A.warn("Browse failed",a),L("Could not reach the backend to browse folders.")}finally{J(!1)}},[]);(0,e.useEffect)(()=>{a?M(B||void 0):(F(null),L(null))},[a,B,M]);let N=a=>{D(a),C()};return(0,d.jsxs)(f.A,{open:a,onClose:C,maxWidth:"sm",fullWidth:!0,children:[(0,d.jsx)(g.A,{children:b}),(0,d.jsxs)(h.A,{dividers:!0,sx:{display:"flex",flexDirection:"column",gap:1.5},children:[(0,d.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,d.jsx)(j.A,{title:"Up one folder",children:(0,d.jsx)("span",{children:(0,d.jsx)(k.A,{size:"small",disabled:!E?.parent||I,onClick:()=>E?.parent&&void M(E.parent),children:(0,d.jsx)(y.A,{fontSize:"small"})})})}),(0,d.jsx)(j.A,{title:"Home folder",children:(0,d.jsx)("span",{children:(0,d.jsx)(k.A,{size:"small",disabled:I,onClick:()=>void M(),children:(0,d.jsx)(z.A,{fontSize:"small"})})})}),(0,d.jsx)(l.A,{fullWidth:!0,size:"small",value:G,onChange:a=>H(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),M(G))},placeholder:"Type a path and press Enter"})]}),E&&E.drives.length>0&&(0,d.jsx)(i.default,{sx:{display:"flex",gap:.75,flexWrap:"wrap"},children:E.drives.map(a=>(0,d.jsx)(m.A,{label:a,size:"small",variant:E.path.toLowerCase().startsWith(a.toLowerCase())?"filled":"outlined",onClick:()=>void M(a)},a))}),K&&(0,d.jsx)(n.A,{severity:"error",children:K}),(0,d.jsxs)(i.default,{sx:{minHeight:240,maxHeight:"45vh",overflow:"auto",border:1,borderColor:"divider",borderRadius:1},children:[I&&(0,d.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,d.jsx)(o.default,{size:24})}),!I&&E&&0===E.entries.length&&(0,d.jsx)(p.default,{variant:"body2",color:"text.secondary",sx:{p:2},children:"This folder is empty."}),!I&&(0,d.jsx)(q.A,{dense:!0,disablePadding:!0,children:E?.entries.map(a=>(0,d.jsxs)(r.A,{disabled:!a.isDirectory&&!c,onClick:()=>a.isDirectory?void M(a.path):N(a.path),children:[(0,d.jsx)(s.A,{sx:{minWidth:34},children:a.isDirectory?(0,d.jsx)(w.A,{fontSize:"small",color:"primary"}):(0,d.jsx)(x.A,{fontSize:"small"})}),(0,d.jsx)(t.A,{primary:a.name,primaryTypographyProps:{noWrap:!0}})]},a.path))})]})]}),(0,d.jsxs)(u.A,{children:[(0,d.jsx)(v.A,{onClick:C,children:"Cancel"}),(0,d.jsx)(v.A,{variant:"contained",disabled:!E||I,onClick:()=>E&&N(E.path),children:"Select this folder"})]})]})}},33799:(a,b,c)=>{c.d(b,{b:()=>f,c:()=>g});var d=c(50648);async function e(a,b){try{let c=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!c.ok||!c.body)return null;let e=null;return await (0,d.z)(c,a=>{"stdout"===a.type||"stderr"===a.type?b(a.data):"result"===a.type&&(e={success:a.success,output:a.commandOutput??""})}),e}catch(a){return console.error("Error streaming git command:",a),null}}let f=async(a,b,c)=>{if(c){let d=await e({action:"installStream",savePath:a,installCommand:b},c);if(d)return{success:d.success,message:d.success?{type:"success",text:"Dependencies installed successfully. You can now build the server."}:{type:"error",text:"Error installing dependencies. You can still try to build the server."},output:d.output||"No output was returned from the installation process."}}try{let c=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",savePath:a,installCommand:b})}),d=await c.json();if(!c.ok)throw Error(d.error||"Failed to install dependencies");return{success:!0,message:{type:"success",text:"Dependencies installed successfully. You can now build the server."},output:d.commandOutput||"No output was returned from the installation process."}}catch(a){return console.error("Error installing dependencies:",a),{success:!1,message:{type:"error",text:`Error installing dependencies: ${a.message||"Unknown error"}. You can still try to build the server.`},output:a instanceof Response?await a.text():a?.message||"Unknown error"}}},g=async(a,b,c)=>{if(c){let d=await e({action:"buildStream",savePath:a,buildCommand:b},c);if(d)return{success:d.success,message:d.success?{type:"success",text:"Server built successfully."}:{type:"error",text:"Error building server."},output:d.output||"No output was returned from the build process."}}try{let c=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"build",savePath:a,buildCommand:b})}),d=await c.json();if(!c.ok)throw Error(d.error||"Failed to build repository");return{success:!0,message:{type:"success",text:"Server built successfully."},output:d.commandOutput||"No output was returned from the build process."}}catch(a){return console.error("Error building server:",a),{success:!1,message:{type:"error",text:`Error building server: ${a.message||"Unknown error"}.`},output:a instanceof Response?await a.text():a?.message||"Unknown error"}}}},35070:(a,b,c)=>{c.d(b,{A:()=>ao});var d=c(21124),e=c(38301),f=c(19815),g=c(48748),h=c(8165),i=c(93083),j=c(65343),k=c(53222),l=c(12033),m=c(91034),n=c(95786),o=c(64956),p=c(55641),q=c(29320),r=c(5748),s=c(38941),t=c(51694),u=c(1312),v=c(25750),w=c(5501),x=c(99587),y=c(61615),z=c(78352),A=c(28055),B=c(44920),C=c(46410),D=c(41893),E=c(56685),F=c(71756),G=c(91901),H=c(83013);let I=({transport:a,size:b="small"})=>{let{colors:c}=(0,g.Ic)(),e=c.domain.transport,f=(()=>{switch(a){case"stdio":return{label:"STDIO",icon:(0,d.jsx)(E.A,{fontSize:"small"}),color:e.stdio.fg,bgColor:e.stdio.bg};case"websocket":return{label:"WebSocket",icon:(0,d.jsx)(F.A,{fontSize:"small"}),color:e.websocket.fg,bgColor:e.websocket.bg};case"sse":return{label:"SSE",icon:(0,d.jsx)(G.A,{fontSize:"small"}),color:e.sse.fg,bgColor:e.sse.bg};case"streamable":return{label:"HTTP Stream",icon:(0,d.jsx)(H.A,{fontSize:"small"}),color:e.streamable.fg,bgColor:e.streamable.bg};default:return{label:"UNKNOWN",icon:(0,d.jsx)(E.A,{fontSize:"small"}),color:e.default.fg,bgColor:e.default.bg}}})();return(0,d.jsx)(D.A,{icon:f.icon,label:f.label,size:b,sx:{backgroundColor:f.bgColor,color:f.color,fontWeight:500,fontSize:"small"===b?"0.75rem":"0.875rem",height:"small"===b?24:32,"& .MuiChip-icon":{color:f.color}}})};var J=c(40512),K=c(83899),L=c(52327),M=c(19925),N=c(68730),O=c(81637),P=c(79515),Q=c(88745),R=c(95587),S=c(77028),T=c(89490),U=c(71439),V=c(50553),W=c(84233),X=c(72264),Y=c(53455),Z=c(33799);let $=(0,f.h)("frontend/components/mcp/MCPServerManager/ServerUpdateDialog"),_=({open:a,onClose:b,serverName:c,rootPath:f,installCommand:g,buildCommand:i,enabled:k,updateInfo:l,onToggle:m,onUpdated:n})=>{let[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),[u,w]=(0,e.useState)(!1),[x,z]=(0,e.useState)(null),[A,B]=(0,e.useState)({}),[C,E]=(0,e.useState)(""),F=!!(g&&g.trim()),G=!!(i&&i.trim()),H=[{key:"stop",label:"Stop server",active:k},{key:"pull",label:"Pull latest changes",active:!0},{key:"install",label:`Install dependencies (${g})`,active:F},{key:"build",label:`Build (${i})`,active:G},{key:"restart",label:"Restart server",active:k}];(0,e.useEffect)(()=>{a&&(r(!1),t(!1),w(!1),z(null),B({}),E(""))},[a,c]),(0,e.useEffect)(()=>{if(a&&l.remoteUrl&&l.localSha&&l.remoteSha){let a=!1;return(0,Y.Qz)(l.remoteUrl,l.localSha,l.remoteSha).then(b=>{a||p(b)}),()=>{a=!0}}p(null)},[a,l.remoteUrl,l.localSha,l.remoteSha]);let I=(0,e.useCallback)((a,b)=>{B(c=>({...c,[a]:b}))},[]),_=(0,e.useCallback)((a,b)=>{E(c=>c+(c?"\n":"")+`--- ${a} ---
|
|
2
|
-
`+(b||"").trim()+"\n")},[]),aa=async()=>{t(!0),z(null),$.info(`Starting update for server ${c}`);let a=(a,b)=>{I(a,"error"),z(b),t(!1)};try{k&&(I("stop","running"),await Promise.resolve(m(!1)),I("stop","done")),I("pull","running");let b=await (0,Y.Qv)(f);if(!b.success)return void a("pull",b.error||"Failed to pull updates");if(_("Pull",`Updated ${(0,Y.Fu)(b.oldSha)} -> ${(0,Y.Fu)(b.newSha)}`),I("pull","done"),F){I("install","running");let b=await (0,Z.b)(f,g.trim());if(_("Install",b.output),!b.success)return void a("install",b.message.text);I("install","done")}if(G){I("build","running");let b=await (0,Z.c)(f,i.trim());if(_("Build",b.output),!b.success)return void a("build",b.message.text);I("build","done")}k&&(I("restart","running"),await Promise.resolve(m(!0)),I("restart","done")),$.info(`Update completed for server ${c}`),w(!0),t(!1),n?.()}catch(a){$.error(`Update failed for server ${c}`,a),z(a.message||"Update failed"),t(!1)}},ab=s||u||Object.keys(A).length>0,ac=l.hasLocalChanges&&!q;return(0,d.jsxs)(J.A,{open:a,onClose:s?void 0:b,maxWidth:"sm",fullWidth:!0,onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(K.A,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,d.jsx)(v.A,{color:"primary"}),"Update ",c]}),(0,d.jsxs)(L.A,{children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1,flexWrap:"wrap"},children:[(0,d.jsx)(D.A,{size:"small",label:(0,Y.Fu)(l.localSha),sx:{fontFamily:"monospace"}}),(0,d.jsx)(P.default,{variant:"body2",color:"text.secondary",children:"→"}),(0,d.jsx)(D.A,{size:"small",color:"primary",label:(0,Y.Fu)(l.remoteSha),sx:{fontFamily:"monospace"}}),l.branch&&"HEAD"!==l.branch&&(0,d.jsxs)(P.default,{variant:"body2",color:"text.secondary",children:["on ",(0,d.jsx)("code",{children:l.branch})]}),o?.behindBy!=null&&(0,d.jsxs)(P.default,{variant:"body2",color:"text.secondary",children:["(",o.behindBy," commit",1===o.behindBy?"":"s"," behind)"]})]}),l.repoRoot&&l.repoRoot.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()!==f.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()&&(0,d.jsxs)(P.default,{variant:"body2",color:"text.secondary",sx:{mb:1},children:["This server lives inside a larger repository — the update pulls"," ",(0,d.jsx)("code",{children:l.repoRoot})," as a whole (other servers from the same repository are updated along with it)."]}),o&&o.commits.length>0&&!ab&&(0,d.jsx)(O.default,{sx:{mb:2,p:1,borderRadius:1,border:"1px solid",borderColor:"divider",maxHeight:160,overflow:"auto"},children:o.commits.map(a=>(0,d.jsxs)(P.default,{variant:"body2",sx:{fontSize:"0.8rem"},noWrap:!0,title:a.message,children:[(0,d.jsx)("code",{children:a.sha})," ",a.message]},a.sha))}),l.hasLocalChanges&&!ab&&(0,d.jsxs)(Q.A,{severity:"warning",sx:{mb:2},children:[(0,d.jsxs)(P.default,{variant:"body2",sx:{mb:1},children:["This repository has local changes to tracked files. Updating will ",(0,d.jsx)("strong",{children:"discard"})," them. Untracked files (e.g. a ",(0,d.jsx)("code",{children:".env"})," you created) and all FLUJO settings for this server are kept."]}),(0,d.jsx)(O.default,{component:"ul",sx:{m:0,pl:3,maxHeight:100,overflow:"auto"},children:l.dirtyFiles.map(a=>(0,d.jsx)("li",{children:(0,d.jsx)(P.default,{variant:"body2",component:"span",sx:{fontFamily:"monospace",fontSize:"0.8rem"},children:a})},a))}),(0,d.jsx)(R.A,{sx:{mt:1},control:(0,d.jsx)(S.A,{size:"small",checked:q,onChange:a=>r(a.target.checked)}),label:(0,d.jsx)(P.default,{variant:"body2",children:"Discard my local changes and update"})})]}),(0,d.jsx)(T.A,{dense:!0,disablePadding:!0,children:H.filter(a=>a.active).map(a=>(0,d.jsxs)(U.Ay,{disableGutters:!0,sx:{py:.25},children:[(0,d.jsx)(V.A,{sx:{minWidth:32},children:(a=>{switch(a){case"running":return(0,d.jsx)(y.default,{size:"small",color:"primary"});case"done":return(0,d.jsx)(h.A,{color:"success",fontSize:"small"});case"error":return(0,d.jsx)(j.A,{color:"error",fontSize:"small"});default:return(0,d.jsx)(X.A,{color:"disabled",fontSize:"small"})}})(A[a.key])}),(0,d.jsx)(W.A,{primary:a.label,primaryTypographyProps:{variant:"body2",noWrap:!0,title:a.label}})]},a.key))}),x&&(0,d.jsxs)(Q.A,{severity:"error",sx:{mt:2,whiteSpace:"pre-wrap"},children:[x,k&&(0,d.jsx)(P.default,{variant:"body2",sx:{mt:1},children:"The server was left stopped. Adjust the install/build commands via Edit, then re-enable it."})]}),u&&(0,d.jsxs)(Q.A,{severity:"success",sx:{mt:2},children:["Server updated successfully",k?" and restarted":"","."]}),C&&(0,d.jsx)(O.default,{sx:{mt:2,p:1,borderRadius:1,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",fontFamily:"monospace",fontSize:"0.75rem",whiteSpace:"pre-wrap",overflow:"auto",maxHeight:200},children:C})]}),(0,d.jsxs)(M.A,{children:[(0,d.jsx)(N.A,{onClick:b,disabled:s,children:u?"Close":"Cancel"}),!u&&(0,d.jsx)(N.A,{variant:"contained",color:"primary",startIcon:(0,d.jsx)(v.A,{}),onClick:aa,disabled:s||ac,children:s?"Updating…":x?"Retry Update":"Update"})]})]})};var aa=c(37674),ab=c(44079),ac=c(47902);let ad=(0,f.h)("frontend/components/mcp/MCPServerManager/FilesystemRootsModal"),ae=({open:a,serverName:b,initialRoots:c,onClose:f,onSaved:g})=>{let[h,i]=(0,e.useState)([]),[j,k]=(0,e.useState)(""),[l,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(null);(0,e.useEffect)(()=>{a&&(i(Array.isArray(c)?[...c]:[]),k(""),p(null))},[a,c]);let q=()=>{let a=j.trim();if(a){if(h.includes(a))return void p("That root is already in the list.");i(b=>[...b,a]),k(""),p(null)}},r=async()=>{n(!0),p(null);try{let a=await A.S.updateServerConfig(b,{roots:h});if(a&&"error"in a&&a.error)return void p("string"==typeof a.error?a.error:"Failed to save roots.");ad.info(`Saved ${h.length} filesystem root(s) for ${b}`),g?.(h),f()}catch(a){ad.warn("Failed to save filesystem roots",a),p(a instanceof Error?a.message:"Failed to save roots.")}finally{n(!1)}};return(0,d.jsxs)(J.A,{open:a,onClose:f,maxWidth:"sm",fullWidth:!0,onClick:a=>a.stopPropagation(),children:[(0,d.jsx)(K.A,{children:"Configure filesystem roots"}),(0,d.jsxs)(L.A,{children:[(0,d.jsxs)(P.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:["Confine the built-in ",(0,d.jsx)("b",{children:"filesystem"})," server to these folders. Leave the list empty for full host access (unless the ",(0,d.jsx)("code",{children:"FLUJO_FS_ROOTS"})," environment variable is set, which always acts as a hard ceiling)."]}),o&&(0,d.jsx)(Q.A,{severity:"error",sx:{mb:2},onClose:()=>p(null),children:o}),(0,d.jsxs)(O.default,{sx:{display:"flex",gap:1,mb:1},children:[(0,d.jsx)(aa.A,{fullWidth:!0,size:"small",label:"Add a root folder (absolute path)",value:j,onChange:a=>k(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),q())},placeholder:"e.g. C:\\\\Users\\\\me\\\\project or /home/me/project"}),(0,d.jsx)(N.A,{variant:"outlined",startIcon:(0,d.jsx)(ac.A,{}),onClick:q,disabled:!j.trim(),children:"Add"})]}),0===h.length?(0,d.jsx)(P.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"No roots configured — the server has full host access."}):(0,d.jsx)(T.A,{dense:!0,children:h.map((a,b)=>(0,d.jsx)(U.Ay,{secondaryAction:(0,d.jsx)(ab.A,{edge:"end","aria-label":"remove root",onClick:()=>{i(a=>a.filter((a,c)=>c!==b))},children:(0,d.jsx)(m.A,{fontSize:"small"})}),children:(0,d.jsx)(P.default,{variant:"body2",sx:{wordBreak:"break-all"},children:a})},`${a}-${b}`))})]}),(0,d.jsxs)(M.A,{children:[(0,d.jsx)(N.A,{onClick:f,disabled:l,children:"Cancel"}),(0,d.jsx)(N.A,{onClick:r,variant:"contained",disabled:l,children:l?"Saving…":"Save"})]})]})};var af=c(30873),ag=c(60839),ah=c(30818),ai=c(43312),aj=c(37489),ak=c(27114),al=c(67191),am=c(98463);let an=(0,f.h)("frontend/components/mcp/MCPServerManager/ServerCard"),ao=({name:a,status:b,path:f,enabled:E,transport:F,onToggle:G=()=>{},onRetry:H=()=>{},onDelete:R=()=>{},onClick:T,onEdit:U=()=>{},onAuthenticate:V,pickerMode:W=!1,error:X,stderrOutput:Z,authorizationUrl:$,selected:aa=!1,onSelect:ac,selectionMode:ad=!1,hasOAuthTokens:ao=!1,exposeAsMcpServer:ap=!1,enableMcpApps:aq=!1,updateInfo:ar,installCommand:as,buildCommand:at,onUpdated:au,folder:av,folders:aw=[],onSetFolder:ax,favorite:ay=!1,onToggleFavorite:az,builtIn:aA=!1,serverConfig:aB})=>{let[aC,aD]=(0,e.useState)(!1),[aE,aF]=(0,e.useState)(null),[aG,aH]=(0,e.useState)(!1),[aI,aJ]=(0,e.useState)(!1),[aK,aL]=(0,e.useState)(""),[aM,aN]=(0,e.useState)("success"),[aO,aP]=(0,e.useState)(!1),[aQ,aR]=(0,e.useState)(!1),[aS,aT]=(0,e.useState)(!1),[aU,aV]=(0,e.useState)(aB?.roots);(0,e.useEffect)(()=>{aV(aB?.roots)},[aB?.roots]);let[aW,aX]=(0,e.useState)(ap),[aY,aZ]=(0,e.useState)(aq),a$=(0,ag.A)();(0,e.useEffect)(()=>{aX(ap)},[ap]),(0,e.useEffect)(()=>{aZ(aq)},[aq]);let a_=async b=>{aX(b);let c=await A.S.updateServerConfig(a,{exposeAsMcpServer:b});"success"in c&&c.success?(aL(b?"Server is now exposed to external apps.":"Server is no longer exposed."),aN("success")):(aX(!b),aL("Failed to update exposure setting."),aN("error")),aJ(!0)},a0=async b=>{aZ(b);let c=await A.S.updateServerConfig(a,{enableMcpApps:b});"success"in c&&c.success?(aL(b?"This server may now render interactive apps in chat (sandboxed).":"Interactive apps disabled for this server."),aN("success")):(aZ(!b),aL("Failed to update the MCP Apps setting."),aN("error")),aJ(!0)},a1=()=>{navigator.clipboard.writeText(""),aL("Endpoint URL copied to clipboard."),aN("success"),aJ(!0)},a2=()=>{navigator.clipboard.writeText((0,B.CZ)(a,aB,"")),aL("Server JSON copied to clipboard."),aN("success"),aJ(!0)},a3={connected:"success.main",disconnected:"text.secondary",error:"error.main",connecting:"info.main",initialization:"info.main",requires_authentication:"warning.main"}[b];(0,e.useEffect)(()=>{if(("connecting"===b||"initialization"===b)&&E&&!W){aP(!0);let b=setTimeout(()=>{an.debug(`Polling status for server: ${a}`),H()},2e3);return()=>{clearTimeout(b),aP(!1)}}"connecting"!==b&&"initialization"!==b&&aP(!1)},[b,E,a,H]);let[a4,a5]=(0,e.useState)(null);(0,e.useEffect)(()=>()=>{a4&&clearTimeout(a4)},[a4]);let a6=async b=>{b.stopPropagation(),an.debug(`Reset OAuth tokens button clicked for server: ${a}`),aR(!0);try{let b=await fetch("/api/oauth/reset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:a})});if(!b.ok){let a=await b.json();throw Error(a.error||"Failed to reset OAuth tokens")}let c=await b.json();an.info(`OAuth tokens reset successfully for ${a}`,c),aL("OAuth tokens reset successfully. Server will require re-authentication."),aN("success"),aJ(!0),setTimeout(()=>{H()},500)}catch(b){an.error(`Failed to reset OAuth tokens for ${a}`,b),aL(`Failed to reset OAuth tokens: ${b instanceof Error?b.message:"Unknown error"}`),aN("error"),aJ(!0)}finally{aR(!1)}},{getThemeValue:a7,getThemeColor:a8,colors:a9}=(0,g.Ic)(),ba=()=>{an.debug(`Server restart initiated for: ${a}`),G(!1),setTimeout(()=>{G(!0),an.info(`Server ${a} restarted`)},1e3)};return(0,d.jsxs)(ah.A,{role:W?"button":void 0,"aria-pressed":W?aa:void 0,sx:{cursor:"pointer",position:"relative",height:W?"100%":void 0,transition:"box-shadow 0.3s ease, border-color 0.12s ease",border:a=>W&&aa?`2px solid ${a.palette.primary.main}`:"2px solid transparent","&:hover":{boxShadow:3}},onClick:()=>{an.debug(`Server card clicked: ${a}`),T()},children:[az&&!aA&&(0,d.jsx)(ai.A,{title:ay?"Remove from favorites":"Add to favorites",arrow:!0,placement:"top",children:(0,d.jsx)(ab.A,{size:"small","aria-label":ay?"remove from favorites":"add to favorites",onClick:a=>{a.stopPropagation(),az()},sx:{position:"absolute",top:4,left:4,zIndex:2,color:ay?a$.palette.warning.main:a$.palette.text.secondary,backgroundColor:(0,aj.X4)(a$.palette.background.paper,.6),"&:hover":{backgroundColor:(0,aj.X4)(a$.palette.background.paper,.9)}},children:ay?(0,d.jsx)(w.A,{fontSize:"small"}):(0,d.jsx)(x.A,{fontSize:"small"})})}),(0,d.jsxs)(ak.A,{sx:{pb:1},children:[(0,d.jsxs)(O.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",mb:1},children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center",flex:1},children:[ad&&ac&&(0,d.jsx)(S.A,{checked:aa,onClick:a=>a.stopPropagation(),onChange:a=>ac(a.target.checked),size:"small",sx:{mr:1,p:.5}}),(0,d.jsx)(P.default,{variant:"h6",component:"h3",sx:{flex:1},children:a})]}),(0,d.jsxs)(O.default,{sx:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:.5},children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[ar?.updateAvailable&&(0,d.jsx)(ai.A,{title:`Update available: ${(0,Y.Fu)(ar.localSha)} → ${(0,Y.Fu)(ar.remoteSha)}. Click to update.`,children:(0,d.jsx)(D.A,{icon:(0,d.jsx)(v.A,{}),label:"Update",color:"warning",size:"small",onClick:b=>{b.stopPropagation(),an.debug(`Update badge clicked for server: ${a}`),aH(!0)}})}),aA?(0,d.jsx)(ai.A,{title:"FLUJO's built-in server — can be enabled or disabled below, but not edited or removed.",children:(0,d.jsx)(D.A,{label:"Built-in",color:"primary",size:"small"})}):(0,d.jsx)(I,{transport:F,size:"small"})]}),(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:["connected"===b&&(0,d.jsx)(h.A,{color:"success",sx:{mr:.5},fontSize:"small"}),"disconnected"===b&&(0,d.jsx)(i.A,{color:"action",sx:{mr:.5},fontSize:"small"}),"error"===b&&(0,d.jsx)(j.A,{color:"error",sx:{mr:.5},fontSize:"small"}),"requires_authentication"===b&&(0,d.jsx)(n.A,{color:"warning",sx:{mr:.5},fontSize:"small"}),("connecting"===b||"initialization"===b)&&(0,d.jsx)(y.default,{size:"small",color:"primary",sx:{mr:.5}}),(0,d.jsx)(P.default,{variant:"body2",color:a3,children:"requires_authentication"===b?"Requires Authentication":b})]})]})]}),(0,d.jsx)(P.default,{variant:"body2",color:"text.secondary",sx:{mb:1,fontSize:"0.875rem"},noWrap:!0,title:aA?void 0:f,children:aA?"FLUJO's own backend API — flow authoring, execution and server management as MCP tools.":f}),aA&&!W&&(0,d.jsxs)(O.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(q.A,{fontSize:"small",sx:{mr:.5,color:"primary.main"}}),(0,d.jsx)(ai.A,{title:"External MCP clients (Claude Code, Claude Desktop, Cursor, …) can drive FLUJO through this local endpoint.",children:(0,d.jsx)(P.default,{variant:"body2",sx:{fontWeight:500},children:"Exposed to external apps"})})]}),(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,d.jsx)(P.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:"",children:""}),(0,d.jsx)(ai.A,{title:"Copy endpoint URL",children:(0,d.jsx)(ab.A,{size:"small",onClick:a1,children:(0,d.jsx)(s.A,{fontSize:"small"})})}),(0,d.jsx)(ai.A,{title:"Copy MCP server JSON",children:(0,d.jsx)(ab.A,{size:"small",onClick:a2,children:(0,d.jsx)(t.A,{fontSize:"small"})})})]})]}),!aA&&!W&&(0,d.jsxs)(O.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(q.A,{fontSize:"small",sx:{mr:.5,color:aW?"primary.main":"text.disabled"}}),(0,d.jsx)(al.A,{checked:aW,onChange:a=>a_(a.target.checked),size:"small"}),(0,d.jsx)(ai.A,{title:"Re-expose this server's tools to external MCP clients (Claude Desktop, Cursor, …) at a local URL.",children:(0,d.jsx)(P.default,{variant:"body2",sx:{fontWeight:500},children:"Expose to external apps"})})]}),aW&&(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,d.jsx)(P.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:"",children:""}),(0,d.jsx)(ai.A,{title:"Copy endpoint URL",children:(0,d.jsx)(ab.A,{size:"small",onClick:a1,children:(0,d.jsx)(s.A,{fontSize:"small"})})}),(0,d.jsx)(ai.A,{title:"Copy MCP server JSON",children:(0,d.jsx)(ab.A,{size:"small",onClick:a2,children:(0,d.jsx)(t.A,{fontSize:"small"})})})]})]}),!aA&&!W&&(0,d.jsx)(O.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:a=>a.stopPropagation(),children:(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(r.A,{fontSize:"small",sx:{mr:.5,color:aY?"primary.main":"text.disabled"}}),(0,d.jsx)(al.A,{checked:aY,onChange:a=>a0(a.target.checked),size:"small"}),(0,d.jsx)(ai.A,{title:"Allow this server's tools to render interactive apps (MCP Apps / ui:// resources) in chat. Rendered read-only in a strict sandbox. Only enable for servers you trust.",children:(0,d.jsx)(P.default,{variant:"body2",sx:{fontWeight:500},children:"Render interactive apps"})})]})}),"error"===b&&(0,d.jsxs)(O.default,{sx:{mt:1,mb:1},children:[(0,d.jsxs)(O.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:.5},children:[(0,d.jsx)(P.default,{variant:"body2",fontWeight:"medium",color:"error",children:"Error:"}),(0,d.jsx)(N.A,{size:"small",color:"primary",onClick:b=>{b.stopPropagation(),an.debug(`View full error clicked for server: ${a}`),aD(!0)},children:"View Full Error"})]}),(0,d.jsx)(O.default,{sx:{maxHeight:"80px",overflow:"auto",p:1,borderRadius:1,bgcolor:a=>a8("error.background"),color:a=>a8("error.text"),border:"1px solid",borderColor:a=>a8("error.border"),fontSize:"0.75rem",fontWeight:500,whiteSpace:"pre-wrap"},children:X||"Unknown error"})]}),"requires_authentication"===b&&!W&&(0,d.jsxs)(O.default,{sx:{mt:1,mb:1},children:[(0,d.jsx)(O.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1},children:(0,d.jsx)(P.default,{variant:"body2",fontWeight:"medium",color:"warning.main",children:"Authentication Required"})}),(0,d.jsxs)(N.A,{variant:"contained",color:"warning",size:"small",startIcon:(0,d.jsx)(o.A,{}),onClick:async b=>{if(b.stopPropagation(),an.debug(`Authenticate button clicked for server: ${a}`),V)V();else try{let b=await fetch("/api/oauth/initiate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:a})});if(!b.ok){let a=await b.json();throw Error(a.error||"Failed to initiate OAuth")}let{authorizationUrl:d,alreadyAuthorized:e}=await b.json();if(e||!d){an.info(`Server ${a} already authorized, no popup needed`),ba();return}let{openOAuthPopup:f}=await c.e(558).then(c.bind(c,60558));await f({url:d,windowName:`oauth_${a}`,onSuccess:b=>{an.info(`OAuth authentication successful for ${a}`,b),an.info(`Automatically restarting server ${a} after OAuth completion`),ba()},onError:b=>{an.error(`OAuth authentication failed for ${a}`,b),aL("OAuth authentication failed"),aN("error"),aJ(!0)}})}catch(b){an.error(`Failed to start OAuth authentication for ${a}`,b),aL("Failed to start OAuth authentication"),aN("error"),aJ(!0)}},sx:{width:"100%"},children:["Authenticate with ",a]})]})]}),aA&&!W&&G&&(0,d.jsx)(am.A,{sx:{justifyContent:"flex-start",px:2,py:1},onClick:a=>a.stopPropagation(),children:(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(al.A,{checked:E,onClick:a=>a.stopPropagation(),onChange:b=>{an.debug(`Built-in server ${a} toggle changed to: ${b.target.checked}`),G(b.target.checked)},color:"primary",size:"small"}),(0,d.jsx)(P.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:E?"primary.main":"text.secondary"},children:E?"Enabled":"Disabled"}),"filesystem"===a&&(0,d.jsx)(ai.A,{title:"Configure filesystem roots",children:(0,d.jsxs)(N.A,{size:"small",variant:"text",startIcon:(0,d.jsx)(C.A,{fontSize:"small"}),sx:{ml:1.5,textTransform:"none"},onClick:a=>{a.stopPropagation(),aT(!0)},children:["Configure roots",aU&&aU.length?` (${aU.length})`:""]})})]})}),"filesystem"===a&&(0,d.jsx)(ae,{open:aS,serverName:a,initialRoots:aU,onClose:()=>aT(!1),onSaved:a=>aV(a)}),!aA&&!W&&(0,d.jsxs)(am.A,{sx:{justifyContent:"space-between",px:2,py:1},children:[(0,d.jsxs)(O.default,{sx:{display:"flex",alignItems:"center"},children:[(0,d.jsx)(al.A,{checked:E,onClick:a=>a.stopPropagation(),onChange:b=>{an.debug(`Server ${a} toggle changed to: ${b.target.checked}`),G(b.target.checked)},color:"primary",size:"small"}),(0,d.jsx)(P.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:E?"primary.main":"text.secondary"},children:E?"Enabled":"Disabled"}),E&&(0,d.jsx)(ai.A,{title:"Restart server",children:(0,d.jsx)(ab.A,{size:"small",onClick:b=>{b.stopPropagation(),an.debug(`Restart button clicked for server: ${a}`),ba()},sx:{ml:1},children:(0,d.jsx)(k.A,{fontSize:"small"})})})]}),(0,d.jsxs)(O.default,{children:[(0,d.jsx)(ai.A,{title:"Retry connection",children:(0,d.jsx)(ab.A,{color:"primary",onClick:c=>{c.stopPropagation(),an.debug(`Retry button clicked for server: ${a}`),a4&&clearTimeout(a4),aP(!0),H();let d=setTimeout(()=>{"connecting"!==b&&"initialization"!==b&&aP(!1),a5(null)},1e4);a5(d)},disabled:aO,size:"small",children:aO?(0,d.jsx)(y.default,{size:"small",color:"primary"}):(0,d.jsx)(k.A,{})})}),"streamable"===F&&ao&&(0,d.jsx)(ai.A,{title:"Reset OAuth tokens",children:(0,d.jsx)(ab.A,{color:"warning",onClick:a6,disabled:aQ,size:"small",children:aQ?(0,d.jsx)(y.default,{size:"small",color:"primary"}):(0,d.jsx)(p.A,{})})}),ax&&(0,d.jsx)(ai.A,{title:av?`Folder: ${av}`:"Move to folder",children:(0,d.jsx)(ab.A,{color:av?"primary":"default",onClick:a=>{a.stopPropagation(),aF(a.currentTarget)},size:"small",children:(0,d.jsx)(u.A,{})})}),(0,d.jsx)(ai.A,{title:"Edit server",children:(0,d.jsx)(ab.A,{color:"primary",onClick:a=>{a.stopPropagation(),U()},size:"small",children:(0,d.jsx)(l.A,{})})}),(0,d.jsx)(ai.A,{title:"Delete server",children:(0,d.jsx)(ab.A,{color:"error",onClick:a=>{a.stopPropagation(),R()},size:"small",children:(0,d.jsx)(m.A,{})})})]})]}),ax&&(0,d.jsx)(z.A,{anchorEl:aE,open:!!aE,currentFolder:av,folders:aw,onClose:()=>aF(null),onAssign:a=>ax(a)}),(0,d.jsxs)(J.A,{open:aC,onClose:()=>{an.debug(`Error modal closed for server: ${a}`),aD(!1)},maxWidth:"md",fullWidth:!0,onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)(K.A,{component:"div",children:["Error Details for ",a]}),(0,d.jsxs)(L.A,{children:[(0,d.jsx)(O.default,{sx:{p:2,borderRadius:1,bgcolor:a=>a8("error.background"),color:a=>a8("error.text"),border:"1px solid",borderColor:a=>a8("error.border"),fontFamily:"monospace",fontSize:"0.875rem",fontWeight:500,whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px",mb:2},children:X||"Unknown error"}),Z&&(0,d.jsxs)(O.default,{sx:{mt:2},children:[(0,d.jsx)(P.default,{variant:"h6",gutterBottom:!0,children:"Stderr Output:"}),(0,d.jsx)(O.default,{sx:{p:2,borderRadius:1,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",fontFamily:"monospace",fontSize:"0.875rem",whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px"},children:Z})]})]}),(0,d.jsxs)(M.A,{children:[(0,d.jsx)(N.A,{onClick:()=>aD(!1),children:"Close"}),(0,d.jsx)(N.A,{onClick:()=>{let b=[X||"Unknown error",Z?`
|
|
3
|
-
|
|
4
|
-
Stderr Output:
|
|
5
|
-
${Z}`:""].join("");navigator.clipboard.writeText(b),an.debug(`Error copied to clipboard for server: ${a}`),aL("Error message copied to clipboard"),aN("success"),aJ(!0)},color:"primary",children:"Copy to Clipboard"})]})]}),ar&&(0,d.jsx)(_,{open:aG,onClose:()=>aH(!1),serverName:a,rootPath:f,installCommand:as,buildCommand:at,enabled:E,updateInfo:ar,onToggle:G,onUpdated:au}),(0,d.jsx)(af.A,{open:aI,autoHideDuration:3e3,onClose:()=>aJ(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,d.jsx)(Q.A,{onClose:()=>aJ(!1),severity:aM,sx:{width:"100%"},children:aK||"Error message copied to clipboard"})})]})}},44920:(a,b,c)=>{function d(a){let b={};if(!a)return b;for(let[c,d]of Object.entries(a))b[c]=d&&"object"==typeof d&&"value"in d?d.value:"string"==typeof d?d:"";return b}function e(a){let b,c=[],d=[];if("string"==typeof a)try{b=JSON.parse(a)}catch(a){return{servers:d,errors:[`Invalid JSON: ${a.message}`]}}else b=a;if(!b||"object"!=typeof b)return{servers:d,errors:["Expected a JSON object."]};let e=b,f=e.mcpServers&&"object"==typeof e.mcpServers?e.mcpServers:e;if(0===Object.keys(f).length)return{servers:d,errors:['No servers found. Expected an "mcpServers" object.']};for(let[a,b]of Object.entries(f)){if(!b||"object"!=typeof b){c.push(`"${a}": entry is not an object.`);continue}let e=function(a){let b=(a.transport||a.type||"").toString().toLowerCase().trim();if(!b)return"stdio";switch(b){case"stdio":return"stdio";case"http":case"streamable-http":case"streamable":case"streamablehttp":return"streamable";case"sse":return"sse";case"ws":case"websocket":return"websocket";default:return null}}(b);if(!e){c.push(`"${a}": unknown transport type "${b.type||b.transport}".`);continue}let f={};if(b.env&&"object"==typeof b.env)for(let[a,c]of Object.entries(b.env))f[a]="string"==typeof c?c:String(c??"");let g={name:a,env:f,disabled:b.disabled??!1,autoApprove:Array.isArray(b.autoApprove)?b.autoApprove:[],rootPath:"",_buildCommand:"",_installCommand:""};if("stdio"===e){if(!b.command||"string"!=typeof b.command){c.push(`"${a}": stdio server is missing a "command".`);continue}d.push({...g,transport:"stdio",command:b.command,args:Array.isArray(b.args)?b.args:[]})}else if("websocket"===e){let e=b.url||b.websocketUrl;if(!e){c.push(`"${a}": websocket server is missing a "url".`);continue}d.push({...g,transport:"websocket",websocketUrl:e})}else{let f=b.url||b.serverUrl;if(!f){c.push(`"${a}": ${e} server is missing a "url".`);continue}let h=b.headers&&"object"==typeof b.headers?b.headers:void 0;d.push({...g,transport:e,serverUrl:f,...h?{headers:h}:{}})}}return{servers:d,errors:c}}c.d(b,{_i:()=>f,CZ:()=>h,Kt:()=>g});let f=[{id:"claude",label:"Claude",fileName:"mcp_config.json",export:function(a,b={}){let c=(b.proxyBaseUrl||"").replace(/\/$/,""),e={};for(let b of a){if(b.exposeAsMcpServer){e[b.name]={type:"http",url:`${c}/mcp-proxy/${b.name}`};continue}let a={},f=d(b.env);switch(b.transport){case"stdio":a.command=b.command,a.args=b.args||[],Object.keys(f).length>0&&(a.env=f);break;case"streamable":a.type="http",a.url=b.serverUrl,b.headers&&Object.keys(b.headers).length>0&&(a.headers=d(b.headers)),Object.keys(f).length>0&&(a.env=f);break;case"sse":a.type="sse",a.url=b.serverUrl,b.headers&&Object.keys(b.headers).length>0&&(a.headers=d(b.headers)),Object.keys(f).length>0&&(a.env=f);break;case"websocket":a.type="ws",a.url=b.websocketUrl,Object.keys(f).length>0&&(a.env=f);break;default:Object.keys(f).length>0&&(a.env=f)}e[b.name]=a}return{mcpServers:e}},import:e},{id:"cline",label:"Cline",fileName:"cline_mcp_settings.json",export:function(a,b={}){let c=(b.proxyBaseUrl||"").replace(/\/$/,""),e={};for(let b of a){let a={disabled:b.disabled??!1,autoApprove:b.autoApprove??[],timeout:60};if(b.exposeAsMcpServer){e[b.name]={...a,type:"streamableHttp",url:`${c}/mcp-proxy/${b.name}`};continue}let f=d(b.env),g={...a};switch(b.transport){case"stdio":g.command=b.command,g.args=b.args||[],Object.keys(f).length>0&&(g.env=f);break;case"streamable":g.type="streamableHttp",g.url=b.serverUrl,b.headers&&Object.keys(b.headers).length>0&&(g.headers=d(b.headers));break;case"sse":g.type="sse",g.url=b.serverUrl,b.headers&&Object.keys(b.headers).length>0&&(g.headers=d(b.headers));break;case"websocket":g.type="ws",g.url=b.websocketUrl;break;default:Object.keys(f).length>0&&(g.env=f)}e[b.name]=g}return{mcpServers:e}},import:function(a){return e(a)}}];function g(a){return f.find(b=>b.id===a)??f[0]}function h(a,b,c,d="claude"){let e=(c||"").replace(/\/$/,"");return JSON.stringify(b?g(d).export([b],{proxyBaseUrl:e}):{mcpServers:{[a]:{type:"http",url:`${e}/mcp-proxy/${a}`}}},null,2)}},53455:(a,b,c)=>{c.d(b,{Fu:()=>i,M8:()=>f,Qv:()=>g,Qz:()=>h});let d=(0,c(19815).h)("frontend/components/mcp/MCPServerManager/utils/serverUpdates"),e=new Map;async function f(a,b=!1){let c=Date.now(),g={},h=[];for(let d of new Set(a.filter(Boolean))){let a=e.get(d);!b&&a&&c-a.at<6e5?g[d]=a.info:h.push(d)}if(h.length>0)try{let a=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"checkUpdatesBatch",paths:h})}),b=await a.json();if(a.ok&&b.results)for(let[a,d]of Object.entries(b.results))e.set(a,{at:c,info:d}),g[a]=d;else d.warn("Batch update check failed",b.error)}catch(a){d.warn("Batch update check request failed",a)}return g}async function g(a){try{let b=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"pullUpdates",savePath:a})}),c=await b.json();if(!b.ok)return{success:!1,error:c.error||"Failed to pull updates"};return{success:!0,oldSha:c.oldSha,newSha:c.newSha,updated:c.updated}}catch(a){return{success:!1,error:a.message||"Failed to pull updates"}}}async function h(a,b,c){let e=a.match(/github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?\/?$/i);if(!e)return null;try{let a=await fetch(`https://api.github.com/repos/${e[1]}/${e[2]}/compare/${b}...${c}`);if(!a.ok)return null;let d=await a.json(),f=Array.isArray(d.commits)?d.commits:[];return{behindBy:"number"==typeof d.total_commits?d.total_commits:null,commits:f.slice(-10).reverse().map(a=>({sha:(a.sha||"").slice(0,7),message:(a.commit?.message||"").split("\n")[0]}))}}catch(a){return d.debug("GitHub compare preview failed (non-fatal)",a),null}}function i(a){return a?a.slice(0,7):""}},61160:(a,b,c)=>{c.d(b,{mO:()=>f,oO:()=>g});var d=c(7329);let e=["stdio","websocket","sse","streamable"];function f(a,b){switch(b){case"name-asc":case"name-desc":return(0,d.po)(a.name);case"status-connected":case"status-disconnected":{let b=a.status;if("connected"===b)return{key:"status:connected",label:"Connected"};if("error"===b)return{key:"status:error",label:"Error"};if("requires_authentication"===b)return{key:"status:auth",label:"Requires authentication"};return{key:"status:disconnected",label:"Disconnected"}}case"transport":{let b=a.transport||"unknown";return{key:`transport:${b}`,label:({stdio:"Stdio",websocket:"WebSocket",sse:"SSE",streamable:"Streamable HTTP"})[b]||b}}default:return{key:"all",label:"All servers"}}}function g(a,b){let c=(a,c)=>{switch(b){case"name-asc":return a.name.localeCompare(c.name);case"name-desc":return c.name.localeCompare(a.name);case"status-connected":if("connected"===a.status&&"connected"!==c.status)return -1;if("connected"!==a.status&&"connected"===c.status)return 1;return a.name.localeCompare(c.name);case"status-disconnected":if("disconnected"===a.status&&"disconnected"!==c.status)return -1;if("disconnected"!==a.status&&"disconnected"===c.status)return 1;return a.name.localeCompare(c.name);case"transport":{let b=e.indexOf(a.transport??""),d=e.indexOf(c.transport??"");if(b!==d)return b-d;return a.name.localeCompare(c.name)}default:return 0}};return[...a].sort((a,b)=>{let d=Number(!!b.favorite)-Number(!!a.favorite);return 0!==d?d:c(a,b)})}}};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=8652,exports.ids=[8652],exports.modules={5248:(a,b,c)=>{c.d(b,{P:()=>m,p:()=>k});var d=c(32524),e=c(81226);function f(a){return!!a&&a.includes("mcp")}function g(a){return!!a&&a.includes("resource")}let h=a=>({source:`${a}-bottom`,target:`${a}-top`});function i(a,b){let c=a.filter(a=>"mcp"!==a.type&&"resource"!==a.type&&"string"==typeof a.id),d=new Map(c.map(a=>[a.id,a])),e=new Map,i=new Map,j=new Set;for(let a of c)e.set(a.id,0),i.set(a.id,0);let k=(a,b)=>{j.add(`${a}->${b}`),i.set(a,(i.get(a)??0)+1),e.set(b,(e.get(b)??0)+1)};for(let a of b)d.has(a.from)&&d.has(a.to)&&a.from!==a.to&&(k(a.from,a.to),a.bidirectional&&k(a.to,a.from));let l=[];for(let a of[...c].sort((a,b)=>a.y-b.y||a.x-b.x)){let b=l[l.length-1];b&&70>=Math.abs(a.y-b[0].y)?b.push(a):l.push([a])}let m=new Map;l.forEach((a,b)=>a.forEach(a=>m.set(a.id,b)));let n=new Map;for(let a=1;a<l.length;a++){let b=l[a],c=b.filter(a=>"subflow"===a.type);if(c.length>=2&&c.length===b.length){let b=l[a-1];if(1===b.length&&"process"===b[0].type)for(let a of c)n.set(a.id,b[0].id)}}let o=[],p=(a,b)=>{if(a===b||j.has(`${a}->${b}`))return!1;let c=d.get(a),e=d.get(b);return!(!c||!e||null!==function(a,b,c,d){if("start"===c)return"Start nodes cannot have incoming connections";if("finish"===a)return"Finish nodes cannot have outgoing connections";if("mcp"===a||"mcp"===c||f(b)||f(d))return("mcp"!==a||"process"!==c)&&("process"!==a||"mcp"!==c)?"MCP connections must link an MCP node to a Process node via MCP handles":"process"!==a||f(b)?null:"Connect MCP nodes from the Process node's left/right MCP handles";if("resource"===a||"resource"===c||g(b)||g(d)){if(("resource"!==a||"process"!==c)&&("process"!==a||"resource"!==c))return"Resource connections must link a Resource node to a Process node via resource handles";if("process"===a&&!g(b))return"Connect Resource nodes from the Process node's left/right resource handles"}return null}(c.type,h(c.type).source,e.type,h(e.type).target)||"subflow"===c.type&&(i.get(a)??0)>=1)},q=(a,b,c,d)=>{o.push({from:a,to:b,bidirectional:c,reason:d}),k(a,b),c&&k(b,a)},r=a=>{let b=m.get(a.id)??0;for(let c=b-1;c>=0;c--){let b=l[c].filter(b=>b.id!==a.id&&"finish"!==b.type&&!n.has(b.id));if(0!==b.length){if(1===b.length)return b[0];return b.reduce((b,c)=>Math.abs(c.x-a.x)<Math.abs(b.x-a.x)?c:b)}}return null};for(let a of l)for(let b of a){if("start"===b.type||(e.get(b.id)??0)>0)continue;let a=n.get(b.id);if(a){p(a,b.id)&&q(a,b.id,!0,"auto-bidirectional-subflow");continue}let c=r(b);c&&p(c.id,b.id)&&q(c.id,b.id,!1,"auto-connected")}let s=c.filter(a=>"start"===a.type),t=()=>c.filter(a=>"start"!==a.type&&"finish"!==a.type&&!n.has(a.id)&&(e.get(a.id)??0)===0),u=null;if(0===s.length){let a=t();if(a.length>0)u={targets:a.map(a=>a.id)};else{let a=c.filter(a=>"finish"!==a.type).sort((a,b)=>a.y-b.y)[0];a&&(u={targets:[a.id]})}}else{let a=s[0];for(let b of t())p(a.id,b.id)&&q(a.id,b.id,!1,"auto-connected")}let v=c.filter(a=>"finish"===a.type),w=()=>c.filter(a=>"start"!==a.type&&"finish"!==a.type&&!n.has(a.id)&&(i.get(a.id)??0)===0),x=null;if(0===v.length){let a=w();a.length>0&&(x={sources:a.map(a=>a.id)})}else{let a=v[0];for(let b of w())p(b.id,a.id)&&q(b.id,a.id,!1,"auto-connected")}return{addEdges:o,addStart:u,addFinish:x}}function j(a,b){if(!b.has(a))return a;for(let c=2;;c++){let d=`${a}_${c}`;if(!b.has(d))return d}}function k(a){let b=[];return{spec:function a(b,c){let d=Array.isArray(b?.nodes)?b.nodes.map(a=>({...a})):[],e=Array.isArray(b?.edges)?b.edges.map(a=>({...a})):[];for(let b of d)b?.type==="subflow"&&b.subflowSpec&&(b.subflowSpec=a(b.subflowSpec,c));let f=d.filter(a=>a&&"string"==typeof a.key&&!!a.key&&"mcp"!==a.type);if(0===f.length)return{...b,nodes:d,edges:e};let g=i(f.map((a,b)=>({id:a.key,type:a.type,x:0,y:1e3*b})),e.filter(a=>a&&"string"==typeof a.from&&"string"==typeof a.to).map(a=>({from:a.from,to:a.to,bidirectional:!0===a.bidirectional})));for(let a of g.addEdges)e.push({from:a.from,to:a.to,...a.bidirectional?{bidirectional:!0}:{}}),c.push({code:a.reason,message:n(a.reason),nodeId:a.to});let h=new Set(d.map(a=>a.key).filter(Boolean));if(g.addStart){let a=j("start",h);for(let b of(h.add(a),d.unshift({key:a,type:"start"}),g.addStart.targets))e.push({from:a,to:b});c.push({code:"auto-added-start",message:`Added a Start node connected to ${g.addStart.targets.length} entry step(s).`})}if(g.addFinish){let a=j("finish",h);for(let b of(h.add(a),d.push({key:a,type:"finish"}),g.addFinish.sources))e.push({from:b,to:a});c.push({code:"auto-added-finish",message:`Added a Finish node connected from ${g.addFinish.sources.length} final step(s).`})}return{...b,nodes:d,edges:e}}(a,b),changes:b}}function l(a){return a.data?.type??a.type??"unknown"}function m(a){var b,c;let f=(a?.nodes??[]).map(a=>({...a,position:{...a.position??{x:0,y:0}},data:{...a.data}})),g=[...a?.edges??[]],h={...a,nodes:f,edges:g},j=[],k=i(f.filter(a=>"mcp"!==l(a)&&"resource"!==l(a)).map(a=>({id:a.id,type:l(a),x:a.position?.x??0,y:a.position?.y??0})),g.filter(a=>!function(a){let b=a.data?.edgeType;return"mcp"===b||"resource"===b}(a)).map(a=>({from:a.source,to:a.target,bidirectional:a.data?.bidirectional===!0}))),m=new Map(f.map(a=>[a.id,a])),o=(a,b,c)=>{let d=m.get(a),f=m.get(b);d&&f&&g.push((0,e.pX)(d,f,c))};for(let a of k.addEdges)o(a.from,a.to,a.bidirectional),j.push({code:a.reason,message:n(a.reason),nodeId:a.to});if(k.addStart){let a=k.addStart.targets.map(a=>m.get(a)).filter(Boolean).reduce((a,b)=>!a||b.position.y<a.position.y?b:a,null),c=(b={x:a?.position.x??250,y:(a?.position.y??150)-150},{id:(0,d.A)(),type:"start",position:b,data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}});for(let a of(f.unshift(c),m.set(c.id,c),k.addStart.targets))o(c.id,a,!1);j.push({code:"auto-added-start",message:`Added a Start node connected to ${k.addStart.targets.length} entry step(s).`,nodeId:c.id})}if(k.addFinish){let a=k.addFinish.sources.map(a=>m.get(a)).filter(Boolean).reduce((a,b)=>!a||b.position.y>a.position.y?b:a,null),b=(c={x:a?.position.x??250,y:(a?.position.y??0)+150},{id:(0,d.A)(),type:"finish",position:c,data:{label:"Finish Node",type:"finish",properties:{}}});for(let a of(f.push(b),m.set(b.id,b),k.addFinish.sources))o(a,b.id,!1);j.push({code:"auto-added-finish",message:`Added a Finish node connected from ${k.addFinish.sources.length} final step(s).`,nodeId:b.id})}return{flow:h,changes:j}}function n(a){switch(a){case"auto-connected":return"Connected a disconnected step into the flow.";case"auto-bidirectional-subflow":return"Wired a parallel subflow with a two-way handoff to its orchestrator.";case"auto-added-start":return"Added a Start node.";case"auto-added-finish":return"Added a Finish node."}}},23310:(a,b,c)=>{c.d(b,{GN:()=>v,UC:()=>x,Xg:()=>w});var d=c(50846),e=c(20433),f=c(87182),g=c(81226),h=c(84671),i=c(5248),j=c(88185),k=c(14265),l=c(1905),m=c(33233),n=c(9312);let o=(0,d.h)("backend/services/flow/generateFlow");function p(a,b,c,d){let e=c?`MULTI-LEVEL FLOWS — you MAY design subflows that are themselves brand-new flows:
|
|
2
|
-
- A subflow node normally references an EXISTING flow via "flow". To instead create a NEW child flow, use ONE of these on the subflow node (not "flow"):
|
|
3
|
-
- "subflowSpec": an inline nested FlowSpec (you author the whole child now), or
|
|
4
|
-
- "generateSubflow": a short natural-language description of the child — FLUJO will generate that child flow for you.
|
|
5
|
-
- Nest only when a self-contained sub-task genuinely deserves its own flow. Nesting is bounded: at most ${d} level(s) deep and ${g.lk} flows total. Keep it minimal.`:`SUBFLOWS: a subflow node's "flow" must reference an EXISTING flow (by name or id). Do NOT use "subflowSpec" or "generateSubflow" — multi-level generation is off for this run.`,f=b?`CAPABILITY ACQUISITION — you are allowed to EXPAND this FLUJO instance:
|
|
6
|
-
- If the task needs a capability none of the configured servers provides (voice, vision, browsing, email, code execution, …), use search_mcp_marketplace to find a server for it, then install_mcp_server to install the best match. Prefer servers that need no API keys (empty requiredEnv); if the best option needs keys, install a keyless alternative or note the requirement in the flow description.
|
|
7
|
-
- After a successful install, reference the returned server name in a process node's "servers" list and enable the tools it reported.
|
|
8
|
-
- Be ambitious: an actual capability (real audio, real browsing, real files) beats a text approximation. Search with several short terms ("voice", "tts", "speech") — the registry matches server NAMES only.`:`CAPABILITY DISCOVERY — you may search but NOT install:
|
|
9
|
-
- If the task needs a capability none of the configured servers provides, you may use search_mcp_marketplace to see what exists. Do NOT reference unconfigured servers in the spec; instead mention the recommended server (its registry name) in the flow "description" so the user can install it.`;return`You design workflows for FLUJO, an MCP-first workflow builder. The user describes what they want; you emit a flow specification as JSON.
|
|
10
|
-
|
|
11
|
-
OUTPUT FORMAT — when you are done (after any tool use), respond with ONLY one JSON object, no prose, no code fences.
|
|
12
|
-
|
|
13
|
-
${j.R}
|
|
14
|
-
|
|
15
|
-
GENERATED-FLOW DEFAULTS (context saving): process nodes you leave without an explicit inputMode/outputMode are compiled with inputMode "latest-message" and outputMode "latest-message" — each step sees only the current task and later steps see only its final response, not its tool calls/results. When a step genuinely needs the whole conversation or later steps need its intermediate work, set "full-history" / "full-conversation" explicitly.
|
|
16
|
-
|
|
17
|
-
${f}
|
|
18
|
-
|
|
19
|
-
${e}
|
|
20
|
-
|
|
21
|
-
${a}`}function q(a){return a.map(a=>`- [${a.severity}] ${a.message}`).join("\n")}function r(a){let b=[{type:"function",function:{name:"search_mcp_marketplace",description:'Search the public MCP server registry. The registry matches the query against server NAMES only (substring), so use short single terms ("voice", "tts", "browser") and try several. Returns name, description, whether FLUJO can install it, and which env vars/keys it requires.',parameters:{type:"object",properties:{query:{type:"string",description:"Short search term matched against server names."}},required:["query"]}}}];return a&&b.push({type:"function",function:{name:"install_mcp_server",description:"Install an MCP server from the registry (by the exact name returned by search) and connect it. Returns the server name to reference in the spec and the tools it provides — or needsEnv when required keys are missing (then pick an alternative or note it for the user). Installing can take a while (package download).",parameters:{type:"object",properties:{name:{type:"string",description:'Exact registry name from search results, e.g. "ai.keenable/web-search".'}},required:["name"]}}}),b}async function s(a,b,c,d){if("search_mcp_marketplace"===a){let a="string"==typeof b.query?b.query:"";try{return await (0,k.e3)(a)}catch(a){return{error:`Registry search failed: ${a instanceof Error?a.message:String(a)}`}}}if("install_mcp_server"===a){if(!c)return{error:"Installing is not allowed in this generation (allowInstall is off)."};let a="string"==typeof b.name?b.name:"",e=await (0,k.aM)(a,void 0,{resolveOnly:!0}),f=await (0,l.Ej)(),g=(0,m.e5)({caller:"generator",settings:f,registryName:a,allowInstall:c});e.plan&&await (0,l.NB)((0,m.UM)(e.plan,"generator",g,!1));let h=await (0,k.aM)(a);return h.plan&&await (0,l.NB)((0,m.UM)(h.plan,"generator",g,h.installed,h.error)),h.installed&&h.serverName&&(d.contextDirty=!0,d.installedServers.push({name:h.serverName,tools:(h.tools??[]).map(a=>a.name),...h.alreadyExisted?{alreadyExisted:!0}:{},...h.plan?.command?{command:h.plan.command}:{},...h.plan?.args?{args:h.plan.args}:{},...h.plan?.verificationStatus?{verificationStatus:h.plan.verificationStatus}:{}})),h}return{error:`Unknown tool: ${a}`}}async function t(a,b,c,d,e,f,g){let h={};for(let a of e){if("function"!==a.type)continue;let b=a.function.name;h[b]=a=>s(b,a,f,g)}for(let i=0;i<=8;i++){let j=e.length>0&&i<8,{completion:k}=await a.createCompletion({model:b,apiKey:c,messages:d,temperature:0,...j?{tools:e,localToolExecutors:h}:{}}),l=k.choices?.[0]?.message,m=l?.tool_calls??[];if(0===m.length)return"string"==typeof l?.content?l.content:"";for(let a of(d.push({role:"assistant",content:l?.content??null,tool_calls:m}),m)){if("function"!==a.type)continue;let b={};try{b=JSON.parse(a.function.arguments||"{}")}catch{}o.info(`Generator tool call: ${a.function.name}(${a.function.arguments})`);let c=await s(a.function.name,b,f,g);d.push({role:"tool",tool_call_id:a.id,content:JSON.stringify(c)})}7===i&&d.push({role:"user",content:"Tool budget exhausted. Emit the COMPLETE flow specification now as a single JSON object using what you have."})}return""}function u(a){let b=a.indexOf("{");if(-1===b)return null;let c=0,d=!1,e=!1;for(let f=b;f<a.length;f++){let g=a[f];if(d){e?e=!1:"\\"===g?e=!0:'"'===g&&(d=!1);continue}if('"'===g)d=!0;else if("{"===g)c++;else if("}"===g&&0==--c)try{return JSON.parse(a.slice(b,f+1))}catch{break}}return null}async function v(a){var b;let c="string"==typeof a?.description?a.description.trim():"";if(!c)return{success:!1,error:"A flow description is required",statusCode:400};if(!a?.modelId||"string"!=typeof a.modelId)return{success:!1,error:"A generator model id is required",statusCode:400};let d=!0===a.allowInstall,j=!0===a.allowSubflows,k=j?"number"!=typeof(b=a.maxDepth)||Number.isNaN(b)?2:Math.max(0,Math.min(g.A_,Math.floor(b))):0,l=await e.modelService.getModel(a.modelId);if(!l)return{success:!1,error:`Generator model not found: ${a.modelId}`,statusCode:404};let m=await e.modelService.resolveAndDecryptApiKey(l.ApiKey);if(!m)return{success:!1,error:"Could not resolve the generator model API key",statusCode:500};let s=await (0,n.jY)(),v=(0,f.getCompletionAdapter)(l),w=r(d),x={installedServers:[],contextDirty:!1},y=Math.min("number"==typeof a.maxRepairs&&a.maxRepairs>=0?a.maxRepairs:1,2),z=1;async function A(a,b){let c,e=[{role:"system",content:p(s.catalog,d,j&&b<k,k)},{role:"user",content:a}];try{c=await t(v,l,m,e,w,d,x)}catch(a){return o.warn("A child subflow generation call failed; leaving the subflow unresolved",a),null}let f=u(c);return f&&"object"==typeof f?f:null}async function B(a,b){if(a&&Array.isArray(a.nodes))for(let c of a.nodes){if(c?.type!=="subflow"||c.flow)continue;if(c.subflowSpec){await B(c.subflowSpec,b+1);continue}let a="string"==typeof c.generateSubflow?c.generateSubflow.trim():"";if(!a)continue;if(b+1>k||z>=g.lk){o.info(`Not expanding generateSubflow (depth ${b+1}, ${z} flows so far): budget/depth reached`);continue}let d=await A(a,b+1);d?(z++,c.subflowSpec=d,delete c.generateSubflow,await B(d,b+1)):delete c.generateSubflow}}let C=[{role:"system",content:p(s.catalog,d,j,k)},{role:"user",content:c}],D=null,E=0;for(let a=0;a<=y;a++){let b;E++,z=1;try{b=await t(v,l,m,C,w,d,x)}catch(a){if(o.error("Generator model call failed",a),D)break;return{success:!1,error:`The generator model call failed: ${a instanceof Error?a.message:String(a)}`,statusCode:502}}let c=u(b);if(!c){if(o.warn(`Attempt ${E}: model output contained no parseable JSON object`),x.contextDirty){try{s=await (0,n.jY)()}catch(a){o.warn("Re-gathering context after install failed; keeping the stale catalog",a)}x.contextDirty=!1}C.push({role:"assistant",content:b},{role:"user",content:"Your reply contained no parseable JSON object. Re-emit the COMPLETE flow specification as a single JSON object and nothing else."});continue}if(j)try{await B(c,0)}catch(a){o.warn("Subflow expansion failed; compiling the root spec as-is",a)}if(x.contextDirty){try{s=await (0,n.jY)()}catch(a){o.warn("Re-gathering context after install failed; validating with the stale catalog",a)}x.contextDirty=!1}let e=c,f=[];try{let a=(0,i.p)(c);a.changes.length>0&&(e=a.spec,f=a.changes,o.info(`Attempt ${E}: auto-repair adjusted the spec (${f.length} change(s))`))}catch(a){o.warn("Auto-repair of the generated spec failed; compiling the spec as-is",a)}let p=f.map(a=>({severity:"warning",code:a.code,message:a.message})),r=(0,g.dM)(e,s.compile,{maxDepth:k,maxFlows:g.lk});if(!r.flow){C.push({role:"assistant",content:b},{role:"user",content:`The specification could not be compiled:
|
|
22
|
-
${q(r.issues)}
|
|
23
|
-
Fix these problems and re-emit the COMPLETE corrected JSON (only the JSON).`});continue}for(let a of r.flows)(0,g.Zn)(a);let A=r.flows.map(a=>({flow:a,validation:(0,h.nC)(a,{models:s.compile.models,servers:s.validatorServers,serverTools:s.compile.serverTools})})),F=(0,n.RB)([...p,...r.issues],{issues:A.flatMap(a=>a.validation.issues),errorCount:0,warningCount:0,isRunnable:!0});if(D={flows:A,rootFlow:r.flow,validation:F},0===F.errorCount)break;o.info(`Attempt ${E}: bundle has ${F.errorCount} error(s)`+(a<y?"; asking the model to repair":"; repair budget exhausted")),a<y&&C.push({role:"assistant",content:b},{role:"user",content:`The flow you specified has these problems:
|
|
24
|
-
${q(F.issues)}
|
|
25
|
-
Fix the errors (warnings are advisory) and re-emit the COMPLETE corrected JSON (only the JSON).`})}return D?(o.info(`Generated draft bundle rooted at "${D.rootFlow.name}" (${D.flows.length} flow(s)) in ${E} attempt(s): ${D.validation.errorCount} error(s), ${D.validation.warningCount} warning(s), ${x.installedServers.length} server(s) installed`),{success:!0,flow:D.rootFlow,validation:D.validation,flows:D.flows,rootFlowId:D.rootFlow.id,attempts:E,installedServers:x.installedServers}):{success:!1,error:"The model did not produce a usable flow specification. Try rephrasing the description or a different generator model.",statusCode:422}}async function w(a){let b="string"==typeof a?.description?a.description.trim():"";if(!b)return{success:!1,error:"A change description is required",statusCode:400};if(!a?.modelId||"string"!=typeof a.modelId)return{success:!1,error:"A generator model id is required",statusCode:400};let c=a?.flow;if(!c||"object"!=typeof c||!Array.isArray(c.nodes)||!Array.isArray(c.edges))return{success:!1,error:"A valid flow to improve is required",statusCode:400};let d=await e.modelService.getModel(a.modelId);if(!d)return{success:!1,error:`Generator model not found: ${a.modelId}`,statusCode:404};let i=await e.modelService.resolveAndDecryptApiKey(d.ApiKey);if(!i)return{success:!1,error:"Could not resolve the generator model API key",statusCode:500};let j=!0===a.allowInstall,k=await (0,n.jY)(),l=(0,f.getCompletionAdapter)(d),m=r(j),s={installedServers:[],contextDirty:!1},v=Math.min("number"==typeof a.maxRepairs&&a.maxRepairs>=0?a.maxRepairs:1,2),w=(0,g.FH)(c),x={};for(let a of c.nodes)a?.id&&a.position&&"number"==typeof a.position.x&&"number"==typeof a.position.y&&(x[a.id]={x:a.position.x,y:a.position.y});let y=a=>({models:a.compile.models,servers:a.compile.servers,serverTools:a.compile.serverTools,flows:(a.compile.flows??[]).filter(a=>a.id!==c.id)}),z=`EXISTING FLOW (modify this — keep unchanged parts intact, and KEEP each node's "key" for any node you do NOT restructure so its canvas position is preserved):
|
|
26
|
-
${JSON.stringify(w)}
|
|
27
|
-
|
|
28
|
-
CHANGE REQUEST:
|
|
29
|
-
${b}
|
|
30
|
-
|
|
31
|
-
Re-emit the COMPLETE flow specification as a single JSON object (only the JSON), including the nodes you did not change.`,A=[{role:"system",content:p(k.catalog,j,!1,0)},{role:"user",content:z}],B=null,C=0;for(let a=0;a<=v;a++){let b;C++;try{b=await t(l,d,i,A,m,j,s)}catch(a){if(o.error("Improver model call failed",a),B)break;return{success:!1,error:`The generator model call failed: ${a instanceof Error?a.message:String(a)}`,statusCode:502}}if(s.contextDirty){try{k=await (0,n.jY)()}catch(a){o.warn("Re-gathering context after install failed; using the stale catalog",a)}s.contextDirty=!1}let e=u(b);if(!e){o.warn(`Improve attempt ${C}: model output contained no parseable JSON object`),A.push({role:"assistant",content:b},{role:"user",content:"Your reply contained no parseable JSON object. Re-emit the COMPLETE flow specification as a single JSON object and nothing else."});continue}let f=(0,g.dM)(e,y(k),{maxDepth:0,maxFlows:1,positions:x});if(!f.flow){A.push({role:"assistant",content:b},{role:"user",content:`The specification could not be compiled:
|
|
32
|
-
${q(f.issues)}
|
|
33
|
-
Fix these problems and re-emit the COMPLETE corrected JSON (only the JSON).`});continue}f.flow.id=c.id,"string"==typeof e.name&&e.name.trim()||(f.flow.name=c.name),(0,g.Zn)(f.flow);let p=(0,h.nC)(f.flow,{models:k.compile.models,servers:k.validatorServers,serverTools:k.compile.serverTools}),r=(0,n.RB)(f.issues,p);if(B={flows:[{flow:f.flow,validation:p}],rootFlow:f.flow,validation:r},0===r.errorCount)break;o.info(`Improve attempt ${C}: flow has ${r.errorCount} error(s)`+(a<v?"; asking the model to repair":"; repair budget exhausted")),a<v&&A.push({role:"assistant",content:b},{role:"user",content:`The flow you specified has these problems:
|
|
34
|
-
${q(r.issues)}
|
|
35
|
-
Fix the errors (warnings are advisory) and re-emit the COMPLETE corrected JSON (only the JSON).`})}return B?(o.info(`Improved draft "${B.rootFlow.name}" in ${C} attempt(s): ${B.validation.errorCount} error(s), ${B.validation.warningCount} warning(s), ${s.installedServers.length} server(s) installed`),{success:!0,flow:B.rootFlow,validation:B.validation,flows:B.flows,rootFlowId:B.rootFlow.id,attempts:C,installedServers:s.installedServers}):{success:!1,error:"The model did not produce a usable flow specification. Try rephrasing the change request or a different generator model.",statusCode:422}}async function x(a){let b=a?.flow;if(!b||"object"!=typeof b||!Array.isArray(b.nodes)||!Array.isArray(b.edges))return{success:!1,error:"A valid flow to repair is required",statusCode:400};if(!a?.modelId||"string"!=typeof a.modelId)return{success:!1,error:"A repair model id is required",statusCode:400};let c=(0,h.nC)(b),d=c.issues.length>0?`
|
|
36
|
-
|
|
37
|
-
Known problems to fix:
|
|
38
|
-
${q(c.issues)}`:"";return w({flow:b,description:`Repair this flow's wiring so it is runnable, WITHOUT changing any node's prompt, model, or servers:
|
|
39
|
-
- add a Start node if one is missing, connected to the first step;
|
|
40
|
-
- add a Finish node if one is missing, connected from the last step;
|
|
41
|
-
- connect any disconnected process/subflow nodes.
|
|
42
|
-
Read node placement as intent: nodes stacked top-to-bottom are sequential steps, and nodes on the same horizontal line are parallel branches under a shared parent above them.${d}`,modelId:a.modelId,...void 0!==a.allowInstall?{allowInstall:a.allowInstall}:{},...void 0!==a.maxRepairs?{maxRepairs:a.maxRepairs}:{}})}},41527:(a,b,c)=>{c.d(b,{S$:()=>e,T9:()=>f,qW:()=>h});let d=/\$\{var:([^}]+)\}/g;function e(a,b){if("string"!=typeof a||0===a.length||!d.test(a))return a;let c=b??{};return a.replace(d,(a,b)=>{let d=b.trim(),e=c[d];return"string"==typeof e?e:(console.warn(`[resolveRunVars] unknown variable "${d}"; substituting empty string`),"")})}function f(a){let b;if("string"!=typeof a||0===a.length)return[];let c=new Set;for(d.lastIndex=0;null!==(b=d.exec(a));){let a=b[1].trim();a&&c.add(a)}return[...c]}let g=/^[A-Za-z_][\w-]*$/;function h(a){return"string"==typeof a&&g.test(a)}},49181:(a,b,c)=>{c.d(b,{A$:()=>g});let d="_-_-_",e=/^(tool|resource):(.+)$/,f=/\$\{((?:tool|resource):[^}]+|_-_-_[^}]+)\}/g;function g(a){let b,c=[];for(f.lastIndex=0;null!==(b=f.exec(a));){let a=function(a){let b=e.exec(a);if(b){let a=b[1],c=function(a){let b=a.indexOf("__");if(b<=0)return null;let c=a.slice(b+2);return c?{server:a.slice(0,b),name:c}:null}(b[2]);return c?{kind:a,server:c.server,name:c.name}:null}if(a.startsWith(d)){let b=a.split(d);if(3===b.length&&b[1]&&b[2])return{kind:"tool",server:b[1],name:b[2]}}return null}(b[1]);a&&c.push({...a,fullMatch:b[0],index:b.index})}return c}},58505:(a,b,c)=>{c.d(b,{Ul:()=>g,g2:()=>f,ng:()=>j,pf:()=>h});let d=/\$\{kv:([^}]+)\}/g,e=["global","flow","folder"];function f(a){let b=(a??"").trim(),c=b.indexOf("/");if(c>0){let a=b.slice(0,c);if(e.includes(a))return{scope:a,key:b.slice(c+1).trim()}}return{scope:"folder",key:b}}function g(a,b){if("string"!=typeof a||0===a.length||!d.test(a))return a;let c=b??{};return a.replace(d,(a,b)=>{let d=b.trim(),e=c[d];return"string"==typeof e?e:(console.warn(`[resolveKvRefs] unknown kv reference "${d}"; substituting empty string`),"")})}function h(a){let b;if("string"!=typeof a||0===a.length)return[];let c=new Set;for(d.lastIndex=0;null!==(b=d.exec(a));){let a=b[1].trim();a&&c.add(a)}return[...c]}let i=/^[A-Za-z_][\w-]*$/;function j(a){return"string"==typeof a&&i.test(a)}},67512:(a,b,c)=>{c.d(b,{C:()=>e,F9:()=>i,PP:()=>h,wM:()=>f});let d=["contains","regex","equals","always"];function e(a){return"string"==typeof a&&d.includes(a)}function f(a){try{return new RegExp(a),!0}catch{return!1}}function g(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>"string"==typeof a?a:a&&"object"==typeof a&&"text"in a&&"string"==typeof a.text?a.text:"").join(""):""}function h(a,b="last-assistant"){if(!Array.isArray(a)||0===a.length)return null;if("last-message"===b)return g(a[a.length-1]?.content);for(let b=a.length-1;b>=0;b--)if(a[b]?.role==="assistant")return g(a[b]?.content);return null}function i(a,b){let c;if(!a)return!1;let d="string"==typeof b?b:"",e="string"==typeof a.value?a.value:String(a.value??"");switch(a.kind){case"contains":c=a.ignoreCase?d.toLowerCase().includes(e.toLowerCase()):d.includes(e);break;case"equals":c=a.ignoreCase?d.toLowerCase()===e.toLowerCase():d===e;break;case"regex":{let b;try{b=new RegExp(e,a.ignoreCase?"i":void 0)}catch(a){return console.warn("[edgeConditions] invalid regex predicate; treating as no-match",e,a),!1}c=b.test(d);break}case"always":c=!0;break;default:return console.warn("[edgeConditions] unknown condition kind; treating as no-match",a.kind),!1}return a.negate?!c:c}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=9427,exports.ids=[9427],exports.modules={19427:(a,b,c)=>{c.d(b,{A:()=>aa});var d,e,f=c(38301),g=c(43249),h=c(2783),i=c(37489),j=c(92869),k=c(55973),l=c(66335),m=c(62383),n=c(10005);function o(a){return a.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}let p=function(a={}){let{ignoreAccents:b=!0,ignoreCase:c=!0,limit:d,matchFrom:e="any",stringify:f,trim:g=!1}=a;return(a,{inputValue:h,getOptionLabel:i})=>{let j=g?h.trim():h;c&&(j=j.toLowerCase()),b&&(j=o(j));let k=j?a.filter(a=>{let d=(f||i)(a);return c&&(d=d.toLowerCase()),b&&(d=o(d)),"start"===e?d.startsWith(j):d.includes(j)}):a;return"number"==typeof d?k.slice(0,d):k}}(),q=a=>null!==a.current&&a.current.parentElement?.contains(document.activeElement),r=[];function s(a,b,c){if(b||null==a)return"";let d=c(a);return"string"==typeof d?d:""}let t=function(a){let{unstable_isActiveElementInListbox:b=q,unstable_classNamePrefix:c="Mui",autoComplete:d=!1,autoHighlight:e=!1,autoSelect:g=!1,blurOnSelect:h=!1,clearOnBlur:i=!a.freeSolo,clearOnEscape:o=!1,componentName:t="useAutocomplete",defaultValue:u=a.multiple?r:null,disableClearable:v=!1,disableCloseOnSelect:w=!1,disabled:x,disabledItemsFocusable:y=!1,disableListWrap:z=!1,filterOptions:A=p,filterSelectedOptions:B=!1,freeSolo:C=!1,getOptionDisabled:D,getOptionKey:E,getOptionLabel:F=a=>a.label??a,groupBy:G,handleHomeEndKeys:H=!a.freeSolo,id:I,includeInputInList:J=!1,inputValue:K,isOptionEqualToValue:L=(a,b)=>a===b,multiple:M=!1,onChange:N,onClose:O,onHighlightChange:P,onInputChange:Q,onOpen:R,open:S,openOnFocus:T=!1,options:U,readOnly:V=!1,selectOnFocus:W=!a.freeSolo,value:X}=a,Y=(0,j.A)(I),Z=F;Z=a=>{let b=F(a);return"string"!=typeof b?String(b):b};let $=f.useRef(!1),_=f.useRef(!0),aa=f.useRef(null),ab=f.useRef(null),[ac,ad]=f.useState(null),[ae,af]=f.useState(-1),ag=e?0:-1,ah=f.useRef(ag),ai=f.useRef(s(u??X,M,Z)).current,[aj,ak]=(0,k.A)({controlled:X,default:u,name:t}),[al,am]=(0,k.A)({controlled:K,default:ai,name:t,state:"inputValue"}),[an,ao]=f.useState(!1),ap=f.useCallback((a,b,c)=>{if(!(M?aj.length<b.length:null!==b)&&!i)return;let d=s(b,M,Z);al!==d&&(am(d),Q&&Q(a,d,c))},[Z,al,M,Q,am,i,aj]),[aq,ar]=(0,k.A)({controlled:S,default:!1,name:t,state:"open"}),[as,at]=f.useState(!0),au=!M&&null!=aj&&al===Z(aj),av=aq&&!V,aw=av?A(U.filter(a=>!(B&&(M?aj:[aj]).some(b=>null!==b&&L(a,b)))),{inputValue:au&&as?"":al,getOptionLabel:Z}):[],ax=(0,l.A)({filteredOptions:aw,value:aj,inputValue:al});f.useEffect(()=>{let a=aj!==ax.value;(!an||a)&&(!C||a)&&ap(null,aj,"reset")},[aj,ap,an,ax.value,C]);let ay=aq&&aw.length>0&&!V,az=(0,m.A)(a=>{-1===a?aa.current.focus():ac.querySelector(`[data-tag-index="${a}"]`).focus()});f.useEffect(()=>{M&&ae>aj.length-1&&(af(-1),az(-1))},[aj,M,ae,az]);let aA=(0,m.A)(({event:a,index:b,reason:d})=>{if(ah.current=b,-1===b?aa.current.removeAttribute("aria-activedescendant"):aa.current.setAttribute("aria-activedescendant",`${Y}-option-${b}`),P&&["mouse","keyboard","touch"].includes(d)&&P(a,-1===b?null:aw[b],d),!ab.current)return;let e=ab.current.querySelector(`[role="option"].${c}-focused`);e&&(e.classList.remove(`${c}-focused`),e.classList.remove(`${c}-focusVisible`));let f=ab.current;if("listbox"!==ab.current.getAttribute("role")&&(f=ab.current.parentElement.querySelector('[role="listbox"]')),!f)return;if(-1===b){f.scrollTop=0;return}let g=ab.current.querySelector(`[data-option-index="${b}"]`);if(g&&(g.classList.add(`${c}-focused`),"keyboard"===d&&g.classList.add(`${c}-focusVisible`),f.scrollHeight>f.clientHeight&&"mouse"!==d&&"touch"!==d)){let a=f.clientHeight+f.scrollTop,b=g.offsetTop+g.offsetHeight;b>a?f.scrollTop=b-f.clientHeight:g.offsetTop-g.offsetHeight*(1.3*!!G)<f.scrollTop&&(f.scrollTop=g.offsetTop-g.offsetHeight*(1.3*!!G))}}),aB=(0,m.A)(({event:a,diff:b,direction:c="next",reason:e})=>{if(!av)return;let f=function(a,b){if(!ab.current||a<0||a>=aw.length)return -1;let c=a;for(;;){let d=ab.current.querySelector(`[data-option-index="${c}"]`),e=!y&&(!d||d.disabled||"true"===d.getAttribute("aria-disabled"));if(d&&d.hasAttribute("tabindex")&&!e)return c;if((c="next"===b?(c+1)%aw.length:(c-1+aw.length)%aw.length)===a)return -1}}((()=>{let a=aw.length-1;if("reset"===b)return ag;if("start"===b)return 0;if("end"===b)return a;let c=ah.current+b;return c<0?-1===c&&J?-1:z&&-1!==ah.current||Math.abs(b)>1?0:a:c>a?c===a+1&&J?-1:z||Math.abs(b)>1?a:0:c})(),c);if(aA({index:f,reason:e,event:a}),d&&"reset"!==b)if(-1===f)aa.current.value=al;else{let a=Z(aw[f]);aa.current.value=a,0===a.toLowerCase().indexOf(al.toLowerCase())&&al.length>0&&aa.current.setSelectionRange(al.length,a.length)}}),aC=f.useCallback(()=>{if(!av)return;let a=(()=>{var a,b;if(-1!==ah.current&&ax.filteredOptions&&ax.filteredOptions.length!==aw.length&&ax.inputValue===al&&(M?aj.length===ax.value.length&&ax.value.every((a,b)=>Z(aj[b])===Z(a)):(a=ax.value,b=aj,(a?Z(a):"")===(b?Z(b):"")))){let a=ax.filteredOptions[ah.current];if(a)return aw.findIndex(b=>Z(b)===Z(a))}return -1})();if(-1!==a){ah.current=a;return}let b=M?aj[0]:aj;if(0===aw.length||null==b)return void aB({diff:"reset"});if(ab.current){if(null!=b){let a=aw[ah.current];if(M&&a&&-1!==aj.findIndex(b=>L(a,b)))return;let c=aw.findIndex(a=>L(a,b));-1===c?aB({diff:"reset"}):aA({index:c});return}if(ah.current>=aw.length-1)return void aA({index:aw.length-1});aA({index:ah.current})}},[aw.length,!M&&aj,B,aB,aA,av,al,M]),aD=(0,m.A)(a=>{(0,n.A)(ab,a),a&&aC()});f.useEffect(()=>{aC()},[aC]);let aE=a=>{!aq&&(ar(!0),at(!0),R&&R(a))},aF=(a,b)=>{aq&&(ar(!1),O&&O(a,b))},aG=(a,b,c,d)=>{if(M){if(aj.length===b.length&&aj.every((a,c)=>a===b[c]))return}else if(aj===b)return;N&&N(a,b,c,d),ak(b)},aH=f.useRef(!1),aI=(a,b,c="selectOption",d="options")=>{let e=c,f=b;if(M){let a=(f=Array.isArray(aj)?aj.slice():[]).findIndex(a=>L(b,a));-1===a?f.push(b):"freeSolo"!==d&&(f.splice(a,1),e="removeOption")}ap(a,f,e),aG(a,f,e,{option:b}),w||a&&(a.ctrlKey||a.metaKey)||aF(a,e),(!0===h||"touch"===h&&aH.current||"mouse"===h&&!aH.current)&&aa.current.blur()},aJ=(a,b)=>{if(!M)return;""===al&&aF(a,"toggleInput");let c=ae;-1===ae?""===al&&"previous"===b&&(c=aj.length-1):((c+="next"===b?1:-1)<0&&(c=0),c===aj.length&&(c=-1)),af(c=function(a,b){if(-1===a)return -1;let c=a;for(;;){if("next"===b&&c===aj.length||"previous"===b&&-1===c)return -1;let a=ac.querySelector(`[data-tag-index="${c}"]`);if(a&&a.hasAttribute("tabindex")&&!a.disabled&&"true"!==a.getAttribute("aria-disabled"))return c;c+="next"===b?1:-1}}(c,b)),az(c)},aK=a=>{$.current=!0,am(""),Q&&Q(a,"","clear"),aG(a,M?[]:null,"clear")},aL=a=>{ao(!0),T&&!$.current&&aE(a)},aM=a=>{if(b(ab))return void aa.current.focus();ao(!1),_.current=!0,$.current=!1,g&&-1!==ah.current&&av?aI(a,aw[ah.current],"blur"):g&&C&&""!==al?aI(a,al,"blur","freeSolo"):i&&ap(a,aj,"blur"),aF(a,"blur")},aN=a=>{let b=a.target.value;al!==b&&(am(b),at(!1),Q&&Q(a,b,"input")),""===b?v||M||aG(a,null,"clear"):aE(a)},aO=a=>{let b=Number(a.currentTarget.getAttribute("data-option-index"));ah.current!==b&&aA({event:a,index:b,reason:"mouse"})},aP=a=>{aA({event:a,index:Number(a.currentTarget.getAttribute("data-option-index")),reason:"touch"}),aH.current=!0},aQ=a=>{let b=Number(a.currentTarget.getAttribute("data-option-index"));aI(a,aw[b],"selectOption"),aH.current=!1},aR=a=>{aq?aF(a,"toggleInput"):aE(a)},aS=a=>{a.currentTarget.contains(a.target)&&a.target.getAttribute("id")!==Y&&a.preventDefault()},aT=a=>{a.currentTarget.contains(a.target)&&(aa.current.focus(),W&&_.current&&aa.current.selectionEnd-aa.current.selectionStart==0&&aa.current.select(),_.current=!1)},aU=a=>{x||""!==al&&aq||aR(a)},aV=C&&al.length>0;aV=aV||(M?aj.length>0:null!==aj);let aW=aw;return G&&(aW=aw.reduce((a,b,c)=>{let d=G(b);return a.length>0&&a[a.length-1].group===d?a[a.length-1].options.push(b):a.push({key:c,index:c,group:d,options:[b]}),a},[])),x&&an&&aM(),{getRootProps:(a={})=>({...a,onKeyDown:b=>{if(a.onKeyDown&&a.onKeyDown(b),!b.defaultMuiPrevented&&(-1===ae||["ArrowLeft","ArrowRight"].includes(b.key)||(af(-1),az(-1)),229!==b.which))switch(b.key){case"Home":av&&H&&(b.preventDefault(),aB({diff:"start",direction:"next",reason:"keyboard",event:b}));break;case"End":av&&H&&(b.preventDefault(),aB({diff:"end",direction:"previous",reason:"keyboard",event:b}));break;case"PageUp":b.preventDefault(),aB({diff:-5,direction:"previous",reason:"keyboard",event:b}),aE(b);break;case"PageDown":b.preventDefault(),aB({diff:5,direction:"next",reason:"keyboard",event:b}),aE(b);break;case"ArrowDown":b.preventDefault(),aB({diff:1,direction:"next",reason:"keyboard",event:b}),aE(b);break;case"ArrowUp":b.preventDefault(),aB({diff:-1,direction:"previous",reason:"keyboard",event:b}),aE(b);break;case"ArrowLeft":aJ(b,"previous");break;case"ArrowRight":aJ(b,"next");break;case"Enter":if(-1!==ah.current&&av){let a=aw[ah.current],c=!!D&&D(a);if(b.preventDefault(),c)return;aI(b,a,"selectOption"),d&&aa.current.setSelectionRange(aa.current.value.length,aa.current.value.length)}else C&&""!==al&&!1===au&&(M&&b.preventDefault(),aI(b,al,"createOption","freeSolo"));break;case"Escape":av?(b.preventDefault(),b.stopPropagation(),aF(b,"escape")):o&&(""!==al||M&&aj.length>0)&&(b.preventDefault(),b.stopPropagation(),aK(b));break;case"Backspace":if(M&&!V&&""===al&&aj.length>0){let a=-1===ae?aj.length-1:ae,c=aj.slice();c.splice(a,1),aG(b,c,"removeOption",{option:aj[a]})}break;case"Delete":if(M&&!V&&""===al&&aj.length>0&&-1!==ae){let a=aj.slice();a.splice(ae,1),aG(b,a,"removeOption",{option:aj[ae]})}}},onMouseDown:aS,onClick:aT}),getInputLabelProps:()=>({id:`${Y}-label`,htmlFor:Y}),getInputProps:()=>({id:Y,value:al,onBlur:aM,onFocus:aL,onChange:aN,onMouseDown:aU,"aria-activedescendant":av?"":null,"aria-autocomplete":d?"both":"list","aria-controls":ay?`${Y}-listbox`:void 0,"aria-expanded":ay,autoComplete:"off",ref:aa,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:x}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:aK}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:aR}),getTagProps:({index:a})=>({key:a,"data-tag-index":a,tabIndex:-1,...!V&&{onDelete:b=>{let c=aj.slice();c.splice(a,1),aG(b,c,"removeOption",{option:aj[a]})}}}),getListboxProps:()=>({role:"listbox",id:`${Y}-listbox`,"aria-labelledby":`${Y}-label`,ref:aD,onMouseDown:a=>{a.preventDefault()}}),getOptionProps:({index:a,option:b})=>{let c=(M?aj:[aj]).some(a=>null!=a&&L(b,a)),d=!!D&&D(b);return{key:E?.(b)??Z(b),tabIndex:-1,role:"option",id:`${Y}-option-${a}`,onMouseMove:aO,onClick:aQ,onTouchStart:aP,"data-option-index":a,"aria-disabled":d,"aria-selected":c}},id:Y,inputValue:al,value:aj,dirty:aV,expanded:av&&ac,popupOpen:av,focused:an||-1!==ae,anchorEl:ac,setAnchorEl:ad,focusedTag:ae,groupedOptions:aW}};var u=c(31605),v=c(18168),w=c(68333),x=c(6636),y=c(6638),z=c(29565),A=c(33105);function B(a){return(0,A.Ay)("MuiListSubheader",a)}(0,z.A)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);var C=c(21124);let D=(0,v.Ay)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,"default"!==c.color&&b[`color${(0,y.A)(c.color)}`],!c.disableGutters&&b.gutters,c.inset&&b.inset,!c.disableSticky&&b.sticky]}})((0,w.A)(({theme:a})=>({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(a.vars||a).palette.text.secondary,fontFamily:a.typography.fontFamily,fontWeight:a.typography.fontWeightMedium,fontSize:a.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(a.vars||a).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:({ownerState:a})=>!a.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:a})=>a.inset,style:{paddingLeft:72}},{props:({ownerState:a})=>!a.disableSticky,style:{position:"sticky",top:0,zIndex:1,backgroundColor:(a.vars||a).palette.background.paper}}]}))),E=f.forwardRef(function(a,b){let c=(0,x.b)({props:a,name:"MuiListSubheader"}),{className:d,color:e="default",component:f="li",disableGutters:i=!1,disableSticky:j=!1,inset:k=!1,...l}=c,m={...c,color:e,component:f,disableGutters:i,disableSticky:j,inset:k},n=(a=>{let{classes:b,color:c,disableGutters:d,inset:e,disableSticky:f}=a,g={root:["root","default"!==c&&`color${(0,y.A)(c)}`,!d&&"gutters",e&&"inset",!f&&"sticky"]};return(0,h.A)(g,B,b)})(m);return(0,C.jsx)(D,{as:f,className:(0,g.A)(n.root,d),ref:b,ownerState:m,...l})});E&&(E.muiSkipListHighlight=!0);var F=c(54573),G=c(44079),H=c(41893),I=c(88679),J=c(13763),K=c(91003),L=c(37659),M=c(88570),N=c(41606);function O(a){return(0,A.Ay)("MuiAutocomplete",a)}let P=(0,z.A)("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var Q=c(20385);let R=(0,v.Ay)("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a,{fullWidth:d,hasClearIcon:e,hasPopupIcon:f,inputFocused:g,size:h}=c;return[{[`& .${P.tag}`]:b.tag},{[`& .${P.tag}`]:b[`tagSize${(0,y.A)(h)}`]},{[`& .${P.inputRoot}`]:b.inputRoot},{[`& .${P.input}`]:b.input},{[`& .${P.input}`]:g&&b.inputFocused},b.root,d&&b.fullWidth,f&&b.hasPopupIcon,e&&b.hasClearIcon]}})({[`&.${P.focused} .${P.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${P.clearIndicator}`]:{visibility:"visible"}},[`& .${P.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${P.inputRoot}`]:{[`.${P.hasPopupIcon}&, .${P.hasClearIcon}&`]:{paddingRight:30},[`.${P.hasPopupIcon}.${P.hasClearIcon}&`]:{paddingRight:56},[`& .${P.input}`]:{width:0,minWidth:30}},[`& .${I.A.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${I.A.root}.${J.A.sizeSmall}`]:{[`& .${I.A.input}`]:{padding:"2px 4px 3px 0"}},[`& .${K.A.root}`]:{padding:9,[`.${P.hasPopupIcon}&, .${P.hasClearIcon}&`]:{paddingRight:39},[`.${P.hasPopupIcon}.${P.hasClearIcon}&`]:{paddingRight:65},[`& .${P.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${P.endAdornment}`]:{right:9}},[`& .${K.A.root}.${J.A.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${P.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${L.A.root}`]:{paddingTop:19,paddingLeft:8,[`.${P.hasPopupIcon}&, .${P.hasClearIcon}&`]:{paddingRight:39},[`.${P.hasPopupIcon}.${P.hasClearIcon}&`]:{paddingRight:65},[`& .${L.A.input}`]:{padding:"7px 4px"},[`& .${P.endAdornment}`]:{right:9}},[`& .${L.A.root}.${J.A.sizeSmall}`]:{paddingBottom:1,[`& .${L.A.input}`]:{padding:"2.5px 4px"}},[`& .${J.A.hiddenLabel}`]:{paddingTop:8},[`& .${L.A.root}.${J.A.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${P.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${L.A.root}.${J.A.hiddenLabel}.${J.A.sizeSmall}`]:{[`& .${P.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${P.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${P.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${P.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${P.inputRoot}`]:{flexWrap:"wrap"}}}]}),S=(0,v.Ay)("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(a,b)=>b.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),T=(0,v.Ay)(G.A,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(a,b)=>b.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),U=(0,v.Ay)(G.A,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.popupIndicator,c.popupOpen&&b.popupIndicatorOpen]}})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),V=(0,v.Ay)(u.A,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[{[`& .${P.option}`]:b.option},b.popper,c.disablePortal&&b.popperDisablePortal]}})((0,w.A)(({theme:a})=>({zIndex:(a.vars||a).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),W=(0,v.Ay)(F.A,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(a,b)=>b.paper})((0,w.A)(({theme:a})=>({...a.typography.body1,overflow:"auto"}))),X=(0,v.Ay)("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(a,b)=>b.loading})((0,w.A)(({theme:a})=>({color:(a.vars||a).palette.text.secondary,padding:"14px 16px"}))),Y=(0,v.Ay)("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(a,b)=>b.noOptions})((0,w.A)(({theme:a})=>({color:(a.vars||a).palette.text.secondary,padding:"14px 16px"}))),Z=(0,v.Ay)("ul",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(a,b)=>b.listbox})((0,w.A)(({theme:a})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${P.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[a.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${P.focused}`]:{backgroundColor:(a.vars||a).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(a.vars||a).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${P.focusVisible}`]:{backgroundColor:(a.vars||a).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,i.X4)(a.palette.primary.main,a.palette.action.selectedOpacity),[`&.${P.focused}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.hoverOpacity}))`:(0,i.X4)(a.palette.primary.main,a.palette.action.selectedOpacity+a.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(a.vars||a).palette.action.selected}},[`&.${P.focusVisible}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.focusOpacity}))`:(0,i.X4)(a.palette.primary.main,a.palette.action.selectedOpacity+a.palette.action.focusOpacity)}}}}))),$=(0,v.Ay)(E,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(a,b)=>b.groupLabel})((0,w.A)(({theme:a})=>({backgroundColor:(a.vars||a).palette.background.paper,top:-8}))),_=(0,v.Ay)("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(a,b)=>b.groupUl})({padding:0,[`& .${P.option}`]:{paddingLeft:24}}),aa=f.forwardRef(function(a,b){let c,i=(0,x.b)({props:a,name:"MuiAutocomplete"}),{autoComplete:j=!1,autoHighlight:k=!1,autoSelect:l=!1,blurOnSelect:m=!1,ChipProps:n,className:o,clearIcon:p=d||(d=(0,C.jsx)(M.A,{fontSize:"small"})),clearOnBlur:q=!i.freeSolo,clearOnEscape:r=!1,clearText:s="Clear",closeText:v="Close",componentsProps:w,defaultValue:z=i.multiple?[]:null,disableClearable:A=!1,disableCloseOnSelect:B=!1,disabled:D=!1,disabledItemsFocusable:E=!1,disableListWrap:G=!1,disablePortal:I=!1,filterOptions:J,filterSelectedOptions:K=!1,forcePopupIcon:L="auto",freeSolo:P=!1,fullWidth:aa=!1,getLimitTagsText:ab=a=>`+${a}`,getOptionDisabled:ac,getOptionKey:ad,getOptionLabel:ae,isOptionEqualToValue:af,groupBy:ag,handleHomeEndKeys:ah=!i.freeSolo,id:ai,includeInputInList:aj=!1,inputValue:ak,limitTags:al=-1,ListboxComponent:am,ListboxProps:an,loading:ao=!1,loadingText:ap="Loading…",multiple:aq=!1,noOptionsText:ar="No options",onChange:as,onClose:at,onHighlightChange:au,onInputChange:av,onOpen:aw,open:ax,openOnFocus:ay=!1,openText:az="Open",options:aA,PaperComponent:aB,PopperComponent:aC,popupIcon:aD=e||(e=(0,C.jsx)(N.A,{})),readOnly:aE=!1,renderGroup:aF,renderInput:aG,renderOption:aH,renderTags:aI,selectOnFocus:aJ=!i.freeSolo,size:aK="medium",slots:aL={},slotProps:aM={},value:aN,...aO}=i,{getRootProps:aP,getInputProps:aQ,getInputLabelProps:aR,getPopupIndicatorProps:aS,getClearProps:aT,getTagProps:aU,getListboxProps:aV,getOptionProps:aW,value:aX,dirty:aY,expanded:aZ,id:a$,popupOpen:a_,focused:a0,focusedTag:a1,anchorEl:a2,setAnchorEl:a3,inputValue:a4,groupedOptions:a5}=t({...i,componentName:"Autocomplete"}),a6=!A&&!D&&aY&&!aE,a7=(!P||!0===L)&&!1!==L,{onMouseDown:a8}=aQ(),{ref:a9,...ba}=aV(),bb=ae||(a=>a.label??a),bc={...i,disablePortal:I,expanded:aZ,focused:a0,fullWidth:aa,getOptionLabel:bb,hasClearIcon:a6,hasPopupIcon:a7,inputFocused:-1===a1,popupOpen:a_,size:aK},bd=(a=>{let{classes:b,disablePortal:c,expanded:d,focused:e,fullWidth:f,hasClearIcon:g,hasPopupIcon:i,inputFocused:j,popupOpen:k,size:l}=a,m={root:["root",d&&"expanded",e&&"focused",f&&"fullWidth",g&&"hasClearIcon",i&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",j&&"inputFocused"],tag:["tag",`tagSize${(0,y.A)(l)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",k&&"popupIndicatorOpen"],popper:["popper",c&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return(0,h.A)(m,O,b)})(bc),be={slots:{paper:aB,popper:aC,...aL},slotProps:{chip:n,listbox:an,...w,...aM}},[bf,bg]=(0,Q.A)("listbox",{elementType:Z,externalForwardedProps:be,ownerState:bc,className:bd.listbox,additionalProps:ba,ref:a9}),[bh,bi]=(0,Q.A)("paper",{elementType:F.A,externalForwardedProps:be,ownerState:bc,className:bd.paper}),[bj,bk]=(0,Q.A)("popper",{elementType:u.A,externalForwardedProps:be,ownerState:bc,className:bd.popper,additionalProps:{disablePortal:I,style:{width:a2?a2.clientWidth:null},role:"presentation",anchorEl:a2,open:a_}});if(aq&&aX.length>0){let a=a=>({className:bd.tag,disabled:D,...aU(a)});c=aI?aI(aX,a,bc):aX.map((b,c)=>{let{key:d,...e}=a({index:c});return(0,C.jsx)(H.A,{label:bb(b),size:aK,...e,...be.slotProps.chip},d)})}if(al>-1&&Array.isArray(c)){let a=c.length-al;!a0&&a>0&&(c=c.splice(0,al)).push((0,C.jsx)("span",{className:bd.tag,children:ab(a)},c.length))}let bl=aF||(a=>(0,C.jsxs)("li",{children:[(0,C.jsx)($,{className:bd.groupLabel,ownerState:bc,component:"div",children:a.group}),(0,C.jsx)(_,{className:bd.groupUl,ownerState:bc,children:a.children})]},a.key)),bm=aH||((a,b)=>{let{key:c,...d}=a;return(0,C.jsx)("li",{...d,children:bb(b)},c)}),bn=(a,b)=>{let c=aW({option:a,index:b});return bm({...c,className:bd.option},a,{selected:c["aria-selected"],index:b,inputValue:a4},bc)},bo=be.slotProps.clearIndicator,bp=be.slotProps.popupIndicator;return(0,C.jsxs)(f.Fragment,{children:[(0,C.jsx)(R,{ref:b,className:(0,g.A)(bd.root,o),ownerState:bc,...aP(aO),children:aG({id:a$,disabled:D,fullWidth:!0,size:"small"===aK?"small":void 0,InputLabelProps:aR(),InputProps:{ref:a3,className:bd.inputRoot,startAdornment:c,onMouseDown:a=>{a.target===a.currentTarget&&a8(a)},...(a6||a7)&&{endAdornment:(0,C.jsxs)(S,{className:bd.endAdornment,ownerState:bc,children:[a6?(0,C.jsx)(T,{...aT(),"aria-label":s,title:s,ownerState:bc,...bo,className:(0,g.A)(bd.clearIndicator,bo?.className),children:p}):null,a7?(0,C.jsx)(U,{...aS(),disabled:D,"aria-label":a_?v:az,title:a_?v:az,ownerState:bc,...bp,className:(0,g.A)(bd.popupIndicator,bp?.className),children:aD}):null]})}},inputProps:{className:bd.input,disabled:D,readOnly:aE,...aQ()}})}),a2?(0,C.jsx)(V,{as:bj,...bk,children:(0,C.jsxs)(W,{as:bh,...bi,children:[ao&&0===a5.length?(0,C.jsx)(X,{className:bd.loading,ownerState:bc,children:ap}):null,0!==a5.length||P||ao?null:(0,C.jsx)(Y,{className:bd.noOptions,ownerState:bc,role:"presentation",onMouseDown:a=>{a.preventDefault()},children:ar}),a5.length>0?(0,C.jsx)(bf,{as:am,...bg,children:a5.map((a,b)=>ag?bl({key:a.key,group:a.group,children:a.options.map((b,c)=>bn(b,a.index+c))}):bn(a,b))}):null]})}):null]})})}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:53,errorRate:1e-4,numBits:1017,numHashes:14,bitArray:[1,0,1,0,e,r,r,e,r,e,r,r,e,r,r,e,r,r,r,r,r,e,r,e,e,r,e,e,r,e,e,r,e,r,e,r,e,r,e,e,r,r,e,e,e,e,e,r,e,r,e,r,e,r,r,r,r,e,e,e,e,e,e,e,r,e,e,r,e,e,e,e,e,e,r,e,r,r,r,e,e,r,e,e,r,e,r,e,e,r,e,e,e,e,e,e,r,e,e,r,r,e,r,e,r,r,e,e,e,r,r,r,r,e,e,e,e,e,r,e,e,e,e,r,r,r,e,e,r,e,e,e,r,e,e,e,r,e,r,r,e,e,r,e,e,e,r,r,r,r,e,e,r,e,r,e,e,e,r,e,r,r,e,e,r,e,e,e,r,r,e,r,r,r,r,e,e,r,r,e,e,r,e,e,r,r,r,r,r,r,e,r,r,r,r,r,r,r,e,r,r,r,r,e,r,r,r,e,r,r,e,e,e,r,e,r,r,e,r,r,e,e,e,e,e,e,e,r,r,e,r,e,e,e,r,e,e,r,r,e,e,e,r,r,e,e,e,r,e,r,r,r,e,e,r,e,e,e,r,r,r,r,r,r,e,e,e,r,r,e,e,r,e,e,e,e,r,e,r,r,e,e,r,r,r,r,r,r,r,r,e,e,r,e,r,e,r,e,r,e,e,r,e,e,e,e,r,r,e,r,e,e,e,r,r,e,e,r,r,e,e,e,e,e,e,e,e,r,r,e,e,r,r,e,e,e,r,r,e,e,r,e,r,r,r,r,e,r,e,r,r,e,r,r,e,r,r,r,e,e,e,r,r,r,e,r,r,e,r,r,e,e,r,e,r,e,e,r,r,r,e,e,r,r,e,r,e,r,e,e,r,r,r,e,r,r,r,r,e,e,r,e,e,e,e,e,r,e,e,e,e,r,r,r,e,e,e,e,e,r,e,e,r,e,e,e,e,e,r,e,e,e,e,e,e,r,r,r,e,e,e,r,e,r,e,r,e,r,e,r,e,e,r,e,e,e,e,r,r,r,e,r,e,r,r,r,r,r,e,e,e,e,r,r,r,r,e,e,e,r,r,r,e,r,e,r,e,e,r,r,r,e,r,e,e,r,r,e,e,r,e,r,e,r,e,r,e,e,r,e,e,e,e,r,r,r,e,e,e,e,r,r,e,e,r,r,r,r,e,e,e,r,e,e,e,r,e,e,r,r,r,e,r,r,e,e,r,e,r,r,r,e,e,e,r,r,e,e,r,e,r,e,e,e,e,r,e,r,e,r,e,r,e,r,e,r,r,r,e,r,e,r,e,e,e,r,r,e,e,e,r,e,e,e,e,e,r,r,e,e,r,e,e,r,e,r,r,e,e,e,e,r,r,e,r,e,r,e,e,e,e,e,r,r,r,r,e,r,e,r,r,e,r,e,e,r,e,r,e,e,e,e,e,r,r,r,r,r,r,r,r,r,r,r,r,e,r,e,r,e,e,r,r,r,e,e,e,e,r,e,e,e,e,e,r,e,r,r,e,e,r,e,e,r,r,e,e,r,r,r,e,e,e,e,e,r,e,e,e,r,e,e,r,r,e,e,r,e,r,e,e,e,e,e,e,e,r,e,e,r,r,e,e,r,r,r,e,r,r,e,r,r,e,e,e,e,r,r,e,e,r,e,r,e,e,e,r,r,r,r,e,r,e,r,r,e,e,e,e,r,r,r,r,e,e,r,e,e,e,r,e,r,e,r,e,e,r,r,r,r,r,r,r,e,e,r,e,e,r,r,r,r,r,r,r,e,e,r,r,e,e,e,e,r,e,e,e,e,r,r,e,r,r,e,e,e,e,r,r,e,e,r,r,r,e,r,e,e,r,r,e,r,r,e,r,r,r,e,r,e,r,e,r,r,e,e,e,r,r,e,r,e,e,e,r,r,e,e,r,r,r,e,r,r,r,e,r,e,r,r,e,e,r,e,r,r,r,r,e,e,r,r,e,e,e,e,r,e,e,e,r,r,r,r,e,e,r,r,r,e,e,e,r,e,e,e,e,e,e,r,e,e,e,r,e,e,e,r,e,e,e,e,e,e,e,e,e,e,e,e,r,e,r,e,r,e,e,e,r,r,r,r,r,e,e,r,r,r,r,r,r,r,e,r,e,e,e,e,e,e,r,r,r,e,e,e,r,e,e,r,r,r,e,r,e,r,r,r,e,r,e,e,e,e,r,r,r,e,e,r,e,r,r,r,e,e,e,r,e,r,r,r,e,e,r,e,e,e,e,r,e,e,e,r,e,r,r]},__routerFilterDynamic:{numItems:8,errorRate:1e-4,numBits:154,numHashes:14,bitArray:[e,e,e,r,r,e,r,r,r,e,r,e,r,r,r,e,e,r,e,r,r,e,e,r,r,e,e,r,e,e,e,e,e,e,r,e,e,r,r,r,e,e,e,e,e,r,r,r,r,e,e,r,r,e,r,r,e,e,r,r,e,e,r,r,r,r,r,r,e,e,e,r,r,e,r,e,e,r,r,r,e,r,r,r,r,e,e,r,e,e,e,e,r,r,r,r,r,r,e,e,e,r,r,e,r,e,e,e,r,e,e,e,e,r,e,r,e,r,e,e,e,e,e,e,e,e,r,e,r,r,r,e,e,e,e,e,r,r,r,r,e,r,r,r,e,e,e,r,e,e,r,r,e,e]},"/_error":["static/chunks/pages/_error-c8f84f7bd11d43d4.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4,14),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1675],{13622:(t,e,a)=>{a.d(e,{A:()=>o});let o=a(12115).createContext({})},14913:(t,e,a)=>{a.d(e,{A:()=>B});var o=a(12115),r=a(2821),n=a(57001),l=a(17419),c=a(48116),i=a(66964),d=a(16625),s=a(81852),p=a(85795),u=a(95195);function v(t){return(0,u.Ay)("MuiToggleButtonGroup",t)}let g=(0,p.A)("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]);var m=a(13622),b=a(89410),h=a(38267),y=a(95155);let f=(0,c.Ay)("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:a}=t;return[{["& .".concat(g.grouped)]:e.grouped},{["& .".concat(g.grouped)]:e["grouped".concat((0,s.A)(a.orientation))]},{["& .".concat(g.firstButton)]:e.firstButton},{["& .".concat(g.lastButton)]:e.lastButton},{["& .".concat(g.middleButton)]:e.middleButton},e.root,"vertical"===a.orientation&&e.vertical,a.fullWidth&&e.fullWidth]}})((0,i.A)(t=>{let{theme:e}=t;return{display:"inline-flex",borderRadius:(e.vars||e).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",["& .".concat(g.grouped)]:{["&.".concat(g.selected," + .").concat(g.grouped,".").concat(g.selected)]:{borderTop:0,marginTop:0}},["& .".concat(g.firstButton,",& .").concat(g.middleButton)]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},["& .".concat(g.lastButton,",& .").concat(g.middleButton)]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},["& .".concat(g.lastButton,".").concat(h.A.disabled,",& .").concat(g.middleButton,".").concat(h.A.disabled)]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{["& .".concat(g.grouped)]:{["&.".concat(g.selected," + .").concat(g.grouped,".").concat(g.selected)]:{borderLeft:0,marginLeft:0}},["& .".concat(g.firstButton,",& .").concat(g.middleButton)]:{borderTopRightRadius:0,borderBottomRightRadius:0},["& .".concat(g.lastButton,",& .").concat(g.middleButton)]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},["& .".concat(g.lastButton,".").concat(h.A.disabled,",& .").concat(g.middleButton,".").concat(h.A.disabled)]:{borderLeft:"1px solid transparent"}}}]}})),B=o.forwardRef(function(t,e){let a=(0,d.b)({props:t,name:"MuiToggleButtonGroup"}),{children:c,className:i,color:p="standard",disabled:u=!1,exclusive:g=!1,fullWidth:h=!1,onChange:B,orientation:A="horizontal",size:x="medium",value:C,...R}=a,O={...a,disabled:u,fullWidth:h,orientation:A,size:x},T=(t=>{let{classes:e,orientation:a,fullWidth:o,disabled:r}=t,l={root:["root",a,o&&"fullWidth"],grouped:["grouped","grouped".concat((0,s.A)(a)),r&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return(0,n.A)(l,v,e)})(O),k=o.useCallback((t,e)=>{let a;if(!B)return;let o=C&&C.indexOf(e);C&&o>=0?(a=C.slice()).splice(o,1):a=C?C.concat(e):[e],B(t,a)},[B,C]),z=o.useCallback((t,e)=>{B&&B(t,C===e?null:e)},[B,C]),L=o.useMemo(()=>({className:T.grouped,onChange:g?z:k,value:C,size:x,fullWidth:h,color:p,disabled:u}),[T.grouped,g,z,k,C,x,h,p,u]),M=(0,l.A)(c),w=M.length;return(0,y.jsx)(f,{role:"group",className:(0,r.A)(T.root,i),ref:e,ownerState:O,...R,children:(0,y.jsx)(m.A.Provider,{value:L,children:M.map((t,e)=>(0,y.jsx)(b.A.Provider,{value:(t=>{let e=0===t,a=t===w-1;return e&&a?"":e?T.firstButton:a?T.lastButton:T.middleButton})(e),children:t},e))})})})},17419:(t,e,a)=>{a.d(e,{A:()=>r});var o=a(12115);function r(t){return o.Children.toArray(t).filter(t=>o.isValidElement(t))}},38267:(t,e,a)=>{a.d(e,{A:()=>l,J:()=>n});var o=a(85795),r=a(95195);function n(t){return(0,r.Ay)("MuiToggleButton",t)}let l=(0,o.A)("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge","fullWidth"])},57883:(t,e,a)=>{a.d(e,{A:()=>f});var o=a(12115),r=a(2821),n=a(37821),l=a(57001),c=a(8532),i=a(95070),d=a(81852),s=a(48116),p=a(66964),u=a(74798),v=a(16625),g=a(38267),m=a(13622),b=a(89410),h=a(95155);let y=(0,s.Ay)(i.A,{name:"MuiToggleButton",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:a}=t;return[e.root,e["size".concat((0,d.A)(a.size))]]}})((0,p.A)(t=>{let{theme:e}=t;return{...e.typography.button,borderRadius:(e.vars||e).shape.borderRadius,padding:11,border:"1px solid ".concat((e.vars||e).palette.divider),color:(e.vars||e).palette.action.active,["&.".concat(g.A.disabled)]:{color:(e.vars||e).palette.action.disabled,border:"1px solid ".concat((e.vars||e).palette.action.disabledBackground)},"&:hover":{textDecoration:"none",backgroundColor:e.vars?"rgba(".concat(e.vars.palette.text.primaryChannel," / ").concat(e.vars.palette.action.hoverOpacity,")"):(0,c.X4)(e.palette.text.primary,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{["&.".concat(g.A.selected)]:{color:(e.vars||e).palette.text.primary,backgroundColor:e.vars?"rgba(".concat(e.vars.palette.text.primaryChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,c.X4)(e.palette.text.primary,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.text.primaryChannel," / calc(").concat(e.vars.palette.action.selectedOpacity," + ").concat(e.vars.palette.action.hoverOpacity,"))"):(0,c.X4)(e.palette.text.primary,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.text.primaryChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,c.X4)(e.palette.text.primary,e.palette.action.selectedOpacity)}}}}},...Object.entries(e.palette).filter((0,u.A)()).map(t=>{let[a]=t;return{props:{color:a},style:{["&.".concat(g.A.selected)]:{color:(e.vars||e).palette[a].main,backgroundColor:e.vars?"rgba(".concat(e.vars.palette[a].mainChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,c.X4)(e.palette[a].main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette[a].mainChannel," / calc(").concat(e.vars.palette.action.selectedOpacity," + ").concat(e.vars.palette.action.hoverOpacity,"))"):(0,c.X4)(e.palette[a].main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette[a].mainChannel," / ").concat(e.vars.palette.action.selectedOpacity,")"):(0,c.X4)(e.palette[a].main,e.palette.action.selectedOpacity)}}}}}}),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:e.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:e.typography.pxToRem(15)}}]}})),f=o.forwardRef(function(t,e){var a;let{value:c,...i}=o.useContext(m.A),s=o.useContext(b.A),p=(0,n.A)({...i,selected:(a=t.value,void 0!==c&&void 0!==a&&(Array.isArray(c)?c.includes(a):a===c))},t),u=(0,v.b)({props:p,name:"MuiToggleButton"}),{children:f,className:B,color:A="standard",disabled:x=!1,disableFocusRipple:C=!1,fullWidth:R=!1,onChange:O,onClick:T,selected:k,size:z="medium",value:L,...M}=u,w={...u,color:A,disabled:x,disableFocusRipple:C,fullWidth:R,size:z},W=(t=>{let{classes:e,fullWidth:a,selected:o,disabled:r,size:n,color:c}=t,i={root:["root",o&&"selected",r&&"disabled",a&&"fullWidth","size".concat((0,d.A)(n)),c]};return(0,l.A)(i,g.J,e)})(w);return(0,h.jsx)(y,{className:(0,r.A)(i.className,W.root,B,s||""),disabled:x,focusRipple:!C,ref:e,onClick:t=>{T&&(T(t,L),t.defaultPrevented)||O&&O(t,L)},onChange:O,value:L,ownerState:w,"aria-pressed":k,...M,children:f})})},89410:(t,e,a)=>{a.d(e,{A:()=>o});let o=a(12115).createContext(void 0)}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1731],{16186:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(36697),o=r(95155);let n=(0,a.A)((0,o.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"}),"RadioButtonUnchecked")},23820:(e,t,r)=>{r.d(t,{Ay:()=>I});var a=r(12115),o=r(2821),n=r(57001),i=r(86251),s=r(48116),l=r(66964),d=r(16625),c=r(43850),p=r(69582),u=r(14028),v=r(85795),m=r(95195);function h(e){return(0,m.Ay)("MuiListItem",e)}(0,v.A)("MuiListItem",["root","container","dense","alignItemsFlexStart","divider","gutters","padding","secondaryAction"]);var g=r(58081);function A(e){return(0,m.Ay)("MuiListItemSecondaryAction",e)}(0,v.A)("MuiListItemSecondaryAction",["root","disableGutters"]);var y=r(95155);let b=(0,s.Ay)("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,r.disableGutters&&t.disableGutters]}})({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",variants:[{props:e=>{let{ownerState:t}=e;return t.disableGutters},style:{right:0}}]}),x=a.forwardRef(function(e,t){let r=(0,d.b)({props:e,name:"MuiListItemSecondaryAction"}),{className:i,...s}=r,l=a.useContext(u.A),c={...r,disableGutters:l.disableGutters},p=(e=>{let{disableGutters:t,classes:r}=e;return(0,n.A)({root:["root",t&&"disableGutters"]},A,r)})(c);return(0,y.jsx)(b,{className:(0,o.A)(p.root,i),ownerState:c,ref:t,...s})});x.muiName="ListItemSecondaryAction";let f=(0,s.Ay)("div",{name:"MuiListItem",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,r.dense&&t.dense,"flex-start"===r.alignItems&&t.alignItemsFlexStart,r.divider&&t.divider,!r.disableGutters&&t.gutters,!r.disablePadding&&t.padding,r.hasSecondaryAction&&t.secondaryAction]}})((0,l.A)(e=>{let{theme:t}=e;return{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",variants:[{props:e=>{let{ownerState:t}=e;return!t.disablePadding},style:{paddingTop:8,paddingBottom:8}},{props:e=>{let{ownerState:t}=e;return!t.disablePadding&&t.dense},style:{paddingTop:4,paddingBottom:4}},{props:e=>{let{ownerState:t}=e;return!t.disablePadding&&!t.disableGutters},style:{paddingLeft:16,paddingRight:16}},{props:e=>{let{ownerState:t}=e;return!t.disablePadding&&!!t.secondaryAction},style:{paddingRight:48}},{props:e=>{let{ownerState:t}=e;return!!t.secondaryAction},style:{["& > .".concat(g.A.root)]:{paddingRight:48}}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:e=>{let{ownerState:t}=e;return t.divider},style:{borderBottom:"1px solid ".concat((t.vars||t).palette.divider),backgroundClip:"padding-box"}},{props:e=>{let{ownerState:t}=e;return t.button},style:{transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}}},{props:e=>{let{ownerState:t}=e;return t.hasSecondaryAction},style:{paddingRight:48}}]}})),C=(0,s.Ay)("li",{name:"MuiListItem",slot:"Container",overridesResolver:(e,t)=>t.container})({position:"relative"}),I=a.forwardRef(function(e,t){let r=(0,d.b)({props:e,name:"MuiListItem"}),{alignItems:s="center",children:l,className:v,component:m,components:g={},componentsProps:A={},ContainerComponent:b="li",ContainerProps:{className:I,...M}={},dense:S=!1,disableGutters:L=!1,disablePadding:j=!1,divider:R=!1,secondaryAction:z,slotProps:k={},slots:w={},...O}=r,V=a.useContext(u.A),G=a.useMemo(()=>({dense:S||V.dense||!1,alignItems:s,disableGutters:L}),[s,V.dense,S,L]),B=a.useRef(null),H=a.Children.toArray(l),N=H.length&&(0,c.A)(H[H.length-1],["ListItemSecondaryAction"]),P={...r,alignItems:s,dense:G.dense,disableGutters:L,disablePadding:j,divider:R,hasSecondaryAction:N},F=(e=>{let{alignItems:t,classes:r,dense:a,disableGutters:o,disablePadding:i,divider:s,hasSecondaryAction:l}=e;return(0,n.A)({root:["root",a&&"dense",!o&&"gutters",!i&&"padding",s&&"divider","flex-start"===t&&"alignItemsFlexStart",l&&"secondaryAction"],container:["container"]},h,r)})(P),D=(0,p.A)(B,t),T=w.root||g.Root||f,X=k.root||A.root||{},_={className:(0,o.A)(F.root,X.className,v),...O},W=m||"li";return N?(W=_.component||m?W:"div","li"===b&&("li"===W?W="div":"li"===_.component&&(_.component="div")),(0,y.jsx)(u.A.Provider,{value:G,children:(0,y.jsxs)(C,{as:b,className:(0,o.A)(F.container,I),ref:D,ownerState:P,...M,children:[(0,y.jsx)(T,{...X,...!(0,i.A)(T)&&{as:W,ownerState:{...P,...X.ownerState}},..._,children:H}),H.pop()]})})):(0,y.jsx)(u.A.Provider,{value:G,children:(0,y.jsxs)(T,{...X,as:W,ref:D,...!(0,i.A)(T)&&{ownerState:{...P,...X.ownerState}},..._,children:[H,z&&(0,y.jsx)(x,{children:z})]})})})},26188:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(36697),o=r(95155);let n=(0,a.A)((0,o.jsx)("path",{d:"M13 13v8h8v-8zM3 21h8v-8H3zM3 3v8h8V3zm13.66-1.31L11 7.34 16.66 13l5.66-5.66z"}),"Widgets")},52277:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(36697),o=r(95155);let n=(0,a.A)((0,o.jsx)("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"}),"ContentCopy")},58081:(e,t,r)=>{r.d(t,{A:()=>i,Y:()=>n});var a=r(85795),o=r(95195);function n(e){return(0,o.Ay)("MuiListItemButton",e)}let i=(0,a.A)("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"])},67891:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(36697),o=r(95155);let n=(0,a.A)((0,o.jsx)("path",{d:"M20 4H4c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2m0 14H4V8h16zm-2-1h-6v-2h6zM7.5 17l-1.41-1.41L8.67 13l-2.59-2.59L7.5 9l4 4z"}),"Terminal")},73707:(e,t,r)=>{r.d(t,{A:()=>y});var a=r(12115),o=r(2821),n=r(57001),i=r(8532),s=r(48116),l=r(66964),d=r(16625),c=r(30424),p=r(95070),u=r(36766),v=r(69582),m=r(14028),h=r(58081),g=r(95155);let A=(0,s.Ay)(p.A,{shouldForwardProp:e=>(0,c.A)(e)||"classes"===e,name:"MuiListItemButton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,r.dense&&t.dense,"flex-start"===r.alignItems&&t.alignItemsFlexStart,r.divider&&t.divider,!r.disableGutters&&t.gutters]}})((0,l.A)(e=>{let{theme:t}=e;return{display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minWidth:0,boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},["&.".concat(h.A.selected)]:{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / ").concat(t.vars.palette.action.selectedOpacity,")"):(0,i.X4)(t.palette.primary.main,t.palette.action.selectedOpacity),["&.".concat(h.A.focusVisible)]:{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.focusOpacity,"))"):(0,i.X4)(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}},["&.".concat(h.A.selected,":hover")]:{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.hoverOpacity,"))"):(0,i.X4)(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / ").concat(t.vars.palette.action.selectedOpacity,")"):(0,i.X4)(t.palette.primary.main,t.palette.action.selectedOpacity)}},["&.".concat(h.A.focusVisible)]:{backgroundColor:(t.vars||t).palette.action.focus},["&.".concat(h.A.disabled)]:{opacity:(t.vars||t).palette.action.disabledOpacity},variants:[{props:e=>{let{ownerState:t}=e;return t.divider},style:{borderBottom:"1px solid ".concat((t.vars||t).palette.divider),backgroundClip:"padding-box"}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:e=>{let{ownerState:t}=e;return!t.disableGutters},style:{paddingLeft:16,paddingRight:16}},{props:e=>{let{ownerState:t}=e;return t.dense},style:{paddingTop:4,paddingBottom:4}}]}})),y=a.forwardRef(function(e,t){let r=(0,d.b)({props:e,name:"MuiListItemButton"}),{alignItems:i="center",autoFocus:s=!1,component:l="div",children:c,dense:p=!1,disableGutters:y=!1,divider:b=!1,focusVisibleClassName:x,selected:f=!1,className:C,...I}=r,M=a.useContext(m.A),S=a.useMemo(()=>({dense:p||M.dense||!1,alignItems:i,disableGutters:y}),[i,M.dense,p,y]),L=a.useRef(null);(0,u.A)(()=>{s&&L.current&&L.current.focus()},[s]);let j={...r,alignItems:i,dense:S.dense,disableGutters:y,divider:b,selected:f},R=(e=>{let{alignItems:t,classes:r,dense:a,disabled:o,disableGutters:i,divider:s,selected:l}=e,d=(0,n.A)({root:["root",a&&"dense",!i&&"gutters",s&&"divider",o&&"disabled","flex-start"===t&&"alignItemsFlexStart",l&&"selected"]},h.Y,r);return{...r,...d}})(j),z=(0,v.A)(L,t);return(0,g.jsx)(m.A.Provider,{value:S,children:(0,g.jsx)(A,{ref:z,href:I.href||I.to,component:(I.href||I.to)&&"div"===l?"button":l,focusVisibleClassName:(0,o.A)(R.focusVisible,x),ownerState:j,className:(0,o.A)(R.root,C),...I,classes:R,children:c})})})},76530:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(36697),o=r(95155);let n=(0,a.A)((0,o.jsx)("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh")},76808:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(36697),o=r(95155);let n=(0,a.A)([(0,o.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,o.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber")},77073:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(36697),o=r(95155);let n=(0,a.A)((0,o.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close")},89296:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(36697),o=r(95155);let n=(0,a.A)((0,o.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m0 12H4V6h5.17l1.41 1.41.59.59H20zm-7.84-6H8v2h4.16l-1.59 1.59L11.99 17 16 13.01 11.99 9l-1.41 1.41z"}),"DriveFileMoveOutlined")}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2318],{8907:(e,o,t)=>{t.d(o,{A:()=>l});var r=t(36697),n=t(95155);let l=(0,r.A)((0,n.jsx)("path",{d:"M5 13.18v4L12 21l7-3.82v-4L12 17zM12 3 1 9l11 6 9-4.91V17h2V9z"}),"School")},11947:(e,o,t)=>{t.d(o,{A:()=>l});var r=t(19868),n=t(89505);function l(e){let{props:o,name:t,defaultTheme:l,themeId:c}=e,s=(0,n.A)(l);return c&&(s=s[c]||s),(0,r.A)({theme:s,name:t,props:o})}},17325:(e,o,t)=>{t.d(o,{A:()=>f});var r=t(12115),n=t(2821),l=t(57001),c=t(48116),s=t(16625),a=t(85795),i=t(95195);function u(e){return(0,i.Ay)("MuiFormGroup",e)}(0,a.A)("MuiFormGroup",["root","row","error"]);var p=t(45918),d=t(75108),v=t(95155);let A=(0,c.Ay)("div",{name:"MuiFormGroup",slot:"Root",overridesResolver:(e,o)=>{let{ownerState:t}=e;return[o.root,t.row&&o.row]}})({display:"flex",flexDirection:"column",flexWrap:"wrap",variants:[{props:{row:!0},style:{flexDirection:"row"}}]}),f=r.forwardRef(function(e,o){let t=(0,s.b)({props:e,name:"MuiFormGroup"}),{className:r,row:c=!1,...a}=t,i=(0,p.A)(),f=(0,d.A)({props:t,muiFormControl:i,states:["error"]}),m={...t,row:c,error:f.error},h=(e=>{let{classes:o,row:t,error:r}=e;return(0,l.A)({root:["root",t&&"row",r&&"error"]},u,o)})(m);return(0,v.jsx)(A,{className:(0,n.A)(h.root,r),ownerState:m,ref:o,...a})})},19868:(e,o,t)=>{t.d(o,{A:()=>n});var r=t(37821);function n(e){let{theme:o,name:t,props:n}=e;return o&&o.components&&o.components[t]&&o.components[t].defaultProps?(0,r.A)(o.components[t].defaultProps,n):n}},21422:(e,o,t)=>{t.d(o,{A:()=>l});var r=t(36697),n=t(95155);let l=(0,r.A)((0,n.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2M9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9zm9 14H6V10h12zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2"}),"LockOutlined")},42063:(e,o,t)=>{t.d(o,{A:()=>l});var r=t(36697),n=t(95155);let l=(0,r.A)((0,n.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"}),"Visibility")},48363:(e,o,t)=>{t.d(o,{A:()=>l});var r=t(36697),n=t(95155);let l=(0,r.A)((0,n.jsx)("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5"}),"Link")},50001:(e,o,t)=>{t.d(o,{A:()=>f});var r=t(12115),n=t(2821),l=t(57001),c=t(30424),s=t(48116),a=t(16625),i=t(25635),u=t(85795),p=t(95195);function d(e){return(0,p.Ay)("MuiDialogContentText",e)}(0,u.A)("MuiDialogContentText",["root"]);var v=t(95155);let A=(0,s.Ay)(i.default,{shouldForwardProp:e=>(0,c.A)(e)||"classes"===e,name:"MuiDialogContentText",slot:"Root",overridesResolver:(e,o)=>o.root})({}),f=r.forwardRef(function(e,o){let t=(0,a.b)({props:e,name:"MuiDialogContentText"}),{children:r,className:c,...s}=t,i=(e=>{let{classes:o}=e,t=(0,l.A)({root:["root"]},d,o);return{...o,...t}})(s);return(0,v.jsx)(A,{component:"p",variant:"body1",color:"textSecondary",ref:o,ownerState:s,className:(0,n.A)(i.root,c),...t,classes:i})})},68212:(e,o,t)=>{t.d(o,{A:()=>l});var r=t(36697),n=t(95155);let l=(0,r.A)((0,n.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z"}),"VisibilityOff")},78831:(e,o,t)=>{t.d(o,{A:()=>r});let r=(0,t(80271).Ay)()},80777:(e,o,t)=>{t.d(o,{A:()=>x});var r=t(12115),n=t(2821),l=t(46779),c=t(95195),s=t(57001),a=t(78831),i=t(11947),u=t(33065),p=t(41934),d=t(13419),v=t(36473),A=t(95155);let f=(0,p.A)(),m=(0,a.A)("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,o)=>o.root});function h(e){return(0,i.A)({props:e,name:"MuiStack",defaultTheme:f})}let y=e=>{let{ownerState:o,theme:t}=e,r={display:"flex",flexDirection:"column",...(0,d.NI)({theme:t},(0,d.kW)({values:o.direction,breakpoints:t.breakpoints.values}),e=>({flexDirection:e}))};if(o.spacing){let e=(0,v.LX)(t),n=Object.keys(t.breakpoints.values).reduce((e,t)=>(("object"==typeof o.spacing&&null!=o.spacing[t]||"object"==typeof o.direction&&null!=o.direction[t])&&(e[t]=!0),e),{}),c=(0,d.kW)({values:o.direction,base:n}),s=(0,d.kW)({values:o.spacing,base:n});"object"==typeof c&&Object.keys(c).forEach((e,o,t)=>{if(!c[e]){let r=o>0?c[t[o-1]]:"column";c[e]=r}}),r=(0,l.A)(r,(0,d.NI)({theme:t},s,(t,r)=>o.useFlexGap?{gap:(0,v._W)(e,t)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{["margin".concat({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[r?c[r]:o.direction])]:(0,v._W)(e,t)}}))}return(0,d.iZ)(t.breakpoints,r)};var M=t(48116),k=t(16625);let x=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{createStyledComponent:o=m,useThemeProps:t=h,componentName:l="MuiStack"}=e,a=o(y);return r.forwardRef(function(e,o){let i=t(e),{component:p="div",direction:d="column",spacing:v=0,divider:f,children:m,className:h,useFlexGap:y=!1,...M}=(0,u.A)(i),k=(0,s.A)({root:["root"]},e=>(0,c.Ay)(l,e),{});return(0,A.jsx)(a,{as:p,ownerState:{direction:d,spacing:v,useFlexGap:y},ref:o,className:(0,n.A)(k.root,h),...M,children:f?function(e,o){let t=r.Children.toArray(e).filter(Boolean);return t.reduce((e,n,l)=>(e.push(n),l<t.length-1&&e.push(r.cloneElement(o,{key:"separator-".concat(l)})),e),[])}(m,f):m})})}({createStyledComponent:(0,M.Ay)("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,o)=>o.root}),useThemeProps:e=>(0,k.b)({props:e,name:"MuiStack"})})},87830:(e,o,t)=>{t.d(o,{A:()=>l});var r=t(36697),n=t(95155);let l=(0,r.A)((0,n.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h2c0-1.66 1.34-3 3-3s3 1.34 3 3v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m0 12H6V10h12zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2"}),"LockOpenOutlined")}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2566],{748:(e,t,r)=>{r.d(t,{kY:()=>s,Ic:()=>l});var o=r(26796),a=r(87021);let s={light:{background:"#FFFFFF",foreground:"#2C3E50",surface:"#F5F6FA",surfaceRaised:"#FFFFFF",paperBackground:"#F5F6FA",textSecondary:"#7F8C8D",textDisabled:"#9CA3AF",border:"#e5e7eb",heading:"#111",text:"#333",secondaryText:"#666",error:{background:"#fef2f2",border:"#fecaca",text:"#dc2626"},domain:{resource:"#009688",resourceSoft:"#4DB6AC",signal:"#7E57C2",startNode:"#795548",codeBackground:"#f5f5f5",http:{get:"#2e7d32",post:"#1565c0",put:"#e65100",patch:"#6a1b9a",delete:"#c62828"},transport:{stdio:{fg:"#1976d2",bg:"#e3f2fd"},websocket:{fg:"#2e7d32",bg:"#e8f5e8"},sse:{fg:"#f57c00",bg:"#fff3e0"},streamable:{fg:"#00796b",bg:"#e0f2f1"},default:{fg:"#757575",bg:"#f5f5f5"}}}},dark:{background:"#0f1319",foreground:"#eef1f5",surface:"#1a212b",surfaceRaised:"#242d3a",paperBackground:"#1a212b",textSecondary:"#b4bdca",textDisabled:"#6b7280",border:"#37404e",heading:"#f5f7fa",text:"#eef1f5",secondaryText:"#b4bdca",error:{background:"#2a1618",border:"#5a2a2e",text:"#ff6b6b"},domain:{resource:"#26a69a",resourceSoft:"#4DB6AC",signal:"#9575CD",startNode:"#a1887f",codeBackground:"#242d3a",http:{get:"#66bb6a",post:"#5b9dff",put:"#ffa726",patch:"#ba68c8",delete:"#ef5350"},transport:{stdio:{fg:"#90caf9",bg:"#1e2a3a"},websocket:{fg:"#a5d6a7",bg:"#1e2e22"},sse:{fg:"#ffcc80",bg:"#33281a"},streamable:{fg:"#80cbc4",bg:"#17322e"},default:{fg:"#b4bdca",bg:"#242d3a"}}}}},n=(0,a.h)("frontend/utils/theme");function l(){let{isDarkMode:e}=(0,o.useTheme)();return n.debug("useThemeUtils called with isDarkMode: ".concat(e)),{getThemeValue:(t,r)=>e?r:t,getThemeColor:t=>{let r=t.split("."),o=s[e?"dark":"light"];for(let e of r)if(!o||"object"!=typeof o||!(e in o))return n.warn("Theme color path not found: ".concat(t)),"";else o=o[e];return o},colors:e?s.dark:s.light,isDarkMode:e}}},26796:(e,t,r)=>{r.r(t),r.d(t,{ThemeProvider:()=>h,useTheme:()=>f});var o=r(95155),a=r(12115),s=r(87021),n=r(7160),l=r(29197),i=r(748),c=r(84563),d=r(29692);let u=(0,s.h)("frontend/contexts/ThemeContext"),p=(0,a.createContext)(void 0),h=e=>{let{children:t}=e,[r,s]=(0,a.useState)(!1),[h,f]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(async()=>{u.debug("Loading theme preference from storage");let e=await (0,d.YM)(d.Zg.THEME,"light");u.info("Theme loaded from storage: ".concat(e));let t="dark"===e;f(t),t?document.documentElement.classList.add("dark-theme"):document.documentElement.classList.remove("dark-theme"),s(!0)})()},[]);let m=(0,a.useMemo)(()=>(function(e){let t="dark"===e?i.kY.dark:i.kY.light,r="dark"===e;return(0,l.A)({palette:{mode:e,primary:{main:r?"#4f93f5":"#007bff",light:r?"#6aa6f7":"#3395ff",dark:r?"#3a7ad4":"#0056b3"},secondary:{main:r?"#a3adba":"#6c757d"},error:{main:r?"#ff6b6b":"#dc2626",light:r?"#5a2a2e":"#fecaca",dark:r?"#2a1618":"#b91c1c"},warning:{main:r?"#e0a23c":"#f59e0b"},info:{main:r?"#56b6d6":"#3b82f6"},success:{main:r?"#3fae72":"#16a34a"},divider:t.border,background:{default:t.background,paper:t.surface},text:{primary:t.foreground,secondary:t.textSecondary,disabled:t.textDisabled}},typography:{fontFamily:"var(--font-geist-sans), Arial, sans-serif",h1:{fontWeight:700},h2:{fontWeight:700},h3:{fontWeight:600},h4:{fontWeight:600},h5:{fontWeight:600},h6:{fontWeight:600}},components:{MuiButton:{styleOverrides:{root:{textTransform:"none",borderRadius:"0.375rem"}}},MuiPaper:{styleOverrides:{root:{borderRadius:"0.5rem",backgroundImage:"none"}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:"0.375rem"}}}},MuiCard:{styleOverrides:{root:{borderRadius:"0.5rem",border:r?"1px solid ".concat(t.border):void 0,boxShadow:r?"0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3)":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"}}},MuiMenu:{styleOverrides:{paper:{backgroundColor:t.surfaceRaised,backgroundImage:"none"}}},MuiPopover:{styleOverrides:{paper:{backgroundColor:t.surfaceRaised,backgroundImage:"none"}}},MuiTooltip:{styleOverrides:{tooltip:r?{backgroundColor:t.surfaceRaised,border:"1px solid ".concat(t.border),color:t.foreground}:void 0}}}})})(h?"dark":"light"),[h]);return u.debug("Rendering ThemeProvider with isDarkMode: ".concat(h)),(0,o.jsx)(p.Provider,{value:{toggleTheme:()=>{f(e=>{let t=!e,r=t?"dark":"light";return u.info("Toggling theme to: ".concat(r)),t?document.documentElement.classList.add("dark-theme"):document.documentElement.classList.remove("dark-theme"),(0,d.VH)(d.Zg.THEME,r),t})},isDarkMode:h},children:(0,o.jsxs)(n.A,{theme:m,children:[(0,o.jsx)(c.Ay,{}),t]})})},f=()=>{let e=(0,a.useContext)(p);if(!e)throw u.error("useTheme hook used outside of ThemeProvider"),Error("useTheme must be used within a ThemeProvider");return u.debug("useTheme hook accessed"),e}},40962:(e,t,r)=>{r.d(t,{A:()=>ef});var o=r(95155),a=r(12115),s=r(87021),n=r(748),l=r(36741),i=r(12857),c=r(48563),d=r(76530),u=r(14915),p=r(4484),h=r(80412),f=r(13548),m=r(20099),x=r(11414),b=r(26188),g=r(52277),y=r(59652),v=r(89296),j=r(97714),k=r(62291),A=r(47529),w=r(94929),S=r(81956),C=r(17897),z=r(70272),O=r(79299),T=r(28548),P=r(67891),F=r(84318),E=r(4543),U=r(8415);let R=e=>{let{transport:t,size:r="small"}=e,{colors:a}=(0,n.Ic)(),s=a.domain.transport,l=(()=>{switch(t){case"stdio":return{label:"STDIO",icon:(0,o.jsx)(P.A,{fontSize:"small"}),color:s.stdio.fg,bgColor:s.stdio.bg};case"websocket":return{label:"WebSocket",icon:(0,o.jsx)(F.A,{fontSize:"small"}),color:s.websocket.fg,bgColor:s.websocket.bg};case"sse":return{label:"SSE",icon:(0,o.jsx)(E.A,{fontSize:"small"}),color:s.sse.fg,bgColor:s.sse.bg};case"streamable":return{label:"HTTP Stream",icon:(0,o.jsx)(U.A,{fontSize:"small"}),color:s.streamable.fg,bgColor:s.streamable.bg};default:return{label:"UNKNOWN",icon:(0,o.jsx)(P.A,{fontSize:"small"}),color:s.default.fg,bgColor:s.default.bg}}})();return(0,o.jsx)(T.A,{icon:l.icon,label:l.label,size:r,sx:{backgroundColor:l.bgColor,color:l.color,fontWeight:500,fontSize:"small"===r?"0.75rem":"0.875rem",height:"small"===r?24:32,"& .MuiChip-icon":{color:l.color}}})};var M=r(2778),I=r(52363),W=r(65036),N=r(75912),D=r(91871),B=r(94049),L=r(25635),H=r(22003),_=r(99944),J=r(22822),q=r(41602),Y=r(23820),$=r(49501),K=r(17681),Q=r(16186),V=r(80411),Z=r(86631);let G=(0,s.h)("frontend/components/mcp/MCPServerManager/ServerUpdateDialog"),X=e=>{let{open:t,onClose:r,serverName:s,rootPath:n,installCommand:i,buildCommand:d,enabled:u,updateInfo:p,onToggle:h,onUpdated:f}=e,[m,x]=(0,a.useState)(null),[b,g]=(0,a.useState)(!1),[y,v]=(0,a.useState)(!1),[k,A]=(0,a.useState)(!1),[S,C]=(0,a.useState)(null),[z,O]=(0,a.useState)({}),[P,F]=(0,a.useState)(""),E=!!(i&&i.trim()),U=!!(d&&d.trim()),R=[{key:"stop",label:"Stop server",active:u},{key:"pull",label:"Pull latest changes",active:!0},{key:"install",label:"Install dependencies (".concat(i,")"),active:E},{key:"build",label:"Build (".concat(d,")"),active:U},{key:"restart",label:"Restart server",active:u}];(0,a.useEffect)(()=>{t&&(g(!1),v(!1),A(!1),C(null),O({}),F(""))},[t,s]),(0,a.useEffect)(()=>{if(t&&p.remoteUrl&&p.localSha&&p.remoteSha){let e=!1;return(0,V.Qz)(p.remoteUrl,p.localSha,p.remoteSha).then(t=>{e||x(t)}),()=>{e=!0}}x(null)},[t,p.remoteUrl,p.localSha,p.remoteSha]);let X=(0,a.useCallback)((e,t)=>{O(r=>({...r,[e]:t}))},[]),ee=(0,a.useCallback)((e,t)=>{F(r=>r+(r?"\n":"")+"--- ".concat(e," ---\n")+(t||"").trim()+"\n")},[]),et=async()=>{v(!0),C(null),G.info("Starting update for server ".concat(s));let e=(e,t)=>{X(e,"error"),C(t),v(!1)};try{u&&(X("stop","running"),await Promise.resolve(h(!1)),X("stop","done")),X("pull","running");let t=await (0,V.Qv)(n);if(!t.success)return void e("pull",t.error||"Failed to pull updates");if(ee("Pull","Updated ".concat((0,V.Fu)(t.oldSha)," -> ").concat((0,V.Fu)(t.newSha))),X("pull","done"),E){X("install","running");let t=await (0,Z.b)(n,i.trim());if(ee("Install",t.output),!t.success)return void e("install",t.message.text);X("install","done")}if(U){X("build","running");let t=await (0,Z.c)(n,d.trim());if(ee("Build",t.output),!t.success)return void e("build",t.message.text);X("build","done")}u&&(X("restart","running"),await Promise.resolve(h(!0)),X("restart","done")),G.info("Update completed for server ".concat(s)),A(!0),v(!1),null==f||f()}catch(e){G.error("Update failed for server ".concat(s),e),C(e.message||"Update failed"),v(!1)}},er=y||k||Object.keys(z).length>0,eo=p.hasLocalChanges&&!b;return(0,o.jsxs)(M.A,{open:t,onClose:y?void 0:r,maxWidth:"sm",fullWidth:!0,onClick:e=>e.stopPropagation(),children:[(0,o.jsxs)(I.A,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,o.jsx)(j.A,{color:"primary"}),"Update ",s]}),(0,o.jsxs)(W.A,{children:[(0,o.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1,flexWrap:"wrap"},children:[(0,o.jsx)(T.A,{size:"small",label:(0,V.Fu)(p.localSha),sx:{fontFamily:"monospace"}}),(0,o.jsx)(L.default,{variant:"body2",color:"text.secondary",children:"→"}),(0,o.jsx)(T.A,{size:"small",color:"primary",label:(0,V.Fu)(p.remoteSha),sx:{fontFamily:"monospace"}}),p.branch&&"HEAD"!==p.branch&&(0,o.jsxs)(L.default,{variant:"body2",color:"text.secondary",children:["on ",(0,o.jsx)("code",{children:p.branch})]}),(null==m?void 0:m.behindBy)!=null&&(0,o.jsxs)(L.default,{variant:"body2",color:"text.secondary",children:["(",m.behindBy," commit",1===m.behindBy?"":"s"," behind)"]})]}),p.repoRoot&&p.repoRoot.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()!==n.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()&&(0,o.jsxs)(L.default,{variant:"body2",color:"text.secondary",sx:{mb:1},children:["This server lives inside a larger repository — the update pulls"," ",(0,o.jsx)("code",{children:p.repoRoot})," as a whole (other servers from the same repository are updated along with it)."]}),m&&m.commits.length>0&&!er&&(0,o.jsx)(B.default,{sx:{mb:2,p:1,borderRadius:1,border:"1px solid",borderColor:"divider",maxHeight:160,overflow:"auto"},children:m.commits.map(e=>(0,o.jsxs)(L.default,{variant:"body2",sx:{fontSize:"0.8rem"},noWrap:!0,title:e.message,children:[(0,o.jsx)("code",{children:e.sha})," ",e.message]},e.sha))}),p.hasLocalChanges&&!er&&(0,o.jsxs)(H.A,{severity:"warning",sx:{mb:2},children:[(0,o.jsxs)(L.default,{variant:"body2",sx:{mb:1},children:["This repository has local changes to tracked files. Updating will ",(0,o.jsx)("strong",{children:"discard"})," them. Untracked files (e.g. a ",(0,o.jsx)("code",{children:".env"})," you created) and all FLUJO settings for this server are kept."]}),(0,o.jsx)(B.default,{component:"ul",sx:{m:0,pl:3,maxHeight:100,overflow:"auto"},children:p.dirtyFiles.map(e=>(0,o.jsx)("li",{children:(0,o.jsx)(L.default,{variant:"body2",component:"span",sx:{fontFamily:"monospace",fontSize:"0.8rem"},children:e})},e))}),(0,o.jsx)(_.A,{sx:{mt:1},control:(0,o.jsx)(J.A,{size:"small",checked:b,onChange:e=>g(e.target.checked)}),label:(0,o.jsx)(L.default,{variant:"body2",children:"Discard my local changes and update"})})]}),(0,o.jsx)(q.A,{dense:!0,disablePadding:!0,children:R.filter(e=>e.active).map(e=>(0,o.jsxs)(Y.Ay,{disableGutters:!0,sx:{py:.25},children:[(0,o.jsx)($.A,{sx:{minWidth:32},children:(e=>{switch(e){case"running":return(0,o.jsx)(w.default,{size:"small",color:"primary"});case"done":return(0,o.jsx)(l.A,{color:"success",fontSize:"small"});case"error":return(0,o.jsx)(c.A,{color:"error",fontSize:"small"});default:return(0,o.jsx)(Q.A,{color:"disabled",fontSize:"small"})}})(z[e.key])}),(0,o.jsx)(K.A,{primary:e.label,primaryTypographyProps:{variant:"body2",noWrap:!0,title:e.label}})]},e.key))}),S&&(0,o.jsxs)(H.A,{severity:"error",sx:{mt:2,whiteSpace:"pre-wrap"},children:[S,u&&(0,o.jsx)(L.default,{variant:"body2",sx:{mt:1},children:"The server was left stopped. Adjust the install/build commands via Edit, then re-enable it."})]}),k&&(0,o.jsxs)(H.A,{severity:"success",sx:{mt:2},children:["Server updated successfully",u?" and restarted":"","."]}),P&&(0,o.jsx)(B.default,{sx:{mt:2,p:1,borderRadius:1,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",fontFamily:"monospace",fontSize:"0.75rem",whiteSpace:"pre-wrap",overflow:"auto",maxHeight:200},children:P})]}),(0,o.jsxs)(N.A,{children:[(0,o.jsx)(D.A,{onClick:r,disabled:y,children:k?"Close":"Cancel"}),!k&&(0,o.jsx)(D.A,{variant:"contained",color:"primary",startIcon:(0,o.jsx)(j.A,{}),onClick:et,disabled:y||eo,children:y?"Updating…":S?"Retry Update":"Update"})]})]})};var ee=r(9562),et=r(41983),er=r(86946);let eo=(0,s.h)("frontend/components/mcp/MCPServerManager/FilesystemRootsModal"),ea=e=>{let{open:t,serverName:r,initialRoots:s,onClose:n,onSaved:l}=e,[i,c]=(0,a.useState)([]),[d,u]=(0,a.useState)(""),[h,f]=(0,a.useState)(!1),[m,x]=(0,a.useState)(null);(0,a.useEffect)(()=>{t&&(c(Array.isArray(s)?[...s]:[]),u(""),x(null))},[t,s]);let b=()=>{let e=d.trim();if(e){if(i.includes(e))return void x("That root is already in the list.");c(t=>[...t,e]),u(""),x(null)}},g=async()=>{f(!0),x(null);try{let e=await C.S.updateServerConfig(r,{roots:i});if(e&&"error"in e&&e.error)return void x("string"==typeof e.error?e.error:"Failed to save roots.");eo.info("Saved ".concat(i.length," filesystem root(s) for ").concat(r)),null==l||l(i),n()}catch(e){eo.warn("Failed to save filesystem roots",e),x(e instanceof Error?e.message:"Failed to save roots.")}finally{f(!1)}};return(0,o.jsxs)(M.A,{open:t,onClose:n,maxWidth:"sm",fullWidth:!0,onClick:e=>e.stopPropagation(),children:[(0,o.jsx)(I.A,{children:"Configure filesystem roots"}),(0,o.jsxs)(W.A,{children:[(0,o.jsxs)(L.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:["Confine the built-in ",(0,o.jsx)("b",{children:"filesystem"})," server to these folders. Leave the list empty for full host access (unless the ",(0,o.jsx)("code",{children:"FLUJO_FS_ROOTS"})," environment variable is set, which always acts as a hard ceiling)."]}),m&&(0,o.jsx)(H.A,{severity:"error",sx:{mb:2},onClose:()=>x(null),children:m}),(0,o.jsxs)(B.default,{sx:{display:"flex",gap:1,mb:1},children:[(0,o.jsx)(ee.A,{fullWidth:!0,size:"small",label:"Add a root folder (absolute path)",value:d,onChange:e=>u(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),b())},placeholder:"e.g. C:\\\\Users\\\\me\\\\project or /home/me/project"}),(0,o.jsx)(D.A,{variant:"outlined",startIcon:(0,o.jsx)(er.A,{}),onClick:b,disabled:!d.trim(),children:"Add"})]}),0===i.length?(0,o.jsx)(L.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"No roots configured — the server has full host access."}):(0,o.jsx)(q.A,{dense:!0,children:i.map((e,t)=>(0,o.jsx)(Y.Ay,{secondaryAction:(0,o.jsx)(et.A,{edge:"end","aria-label":"remove root",onClick:()=>{c(e=>e.filter((e,r)=>r!==t))},children:(0,o.jsx)(p.A,{fontSize:"small"})}),children:(0,o.jsx)(L.default,{variant:"body2",sx:{wordBreak:"break-all"},children:e})},"".concat(e,"-").concat(t)))})]}),(0,o.jsxs)(N.A,{children:[(0,o.jsx)(D.A,{onClick:n,disabled:h,children:"Cancel"}),(0,o.jsx)(D.A,{onClick:g,variant:"contained",disabled:h,children:h?"Saving…":"Save"})]})]})};var es=r(80422),en=r(33567),el=r(29767),ei=r(78470),ec=r(8532),ed=r(84578),eu=r(9957),ep=r(1702);let eh=(0,s.h)("frontend/components/mcp/MCPServerManager/ServerCard"),ef=e=>{let{name:t,status:s,path:P,enabled:F,transport:E,onToggle:U=()=>{},onRetry:_=()=>{},onDelete:q=()=>{},onClick:Y,onEdit:$=()=>{},onAuthenticate:K,pickerMode:Q=!1,error:Z,stderrOutput:G,authorizationUrl:ee,selected:er=!1,onSelect:eo,selectionMode:ef=!1,hasOAuthTokens:em=!1,exposeAsMcpServer:ex=!1,enableMcpApps:eb=!1,updateInfo:eg,installCommand:ey,buildCommand:ev,onUpdated:ej,folder:ek,folders:eA=[],onSetFolder:ew,favorite:eS=!1,onToggleFavorite:eC,builtIn:ez=!1,serverConfig:eO}=e,[eT,eP]=(0,a.useState)(!1),[eF,eE]=(0,a.useState)(null),[eU,eR]=(0,a.useState)(!1),[eM,eI]=(0,a.useState)(!1),[eW,eN]=(0,a.useState)(""),[eD,eB]=(0,a.useState)("success"),[eL,eH]=(0,a.useState)(!1),[e_,eJ]=(0,a.useState)(!1),[eq,eY]=(0,a.useState)(!1),[e$,eK]=(0,a.useState)(null==eO?void 0:eO.roots);(0,a.useEffect)(()=>{eK(null==eO?void 0:eO.roots)},[null==eO?void 0:eO.roots]);let[eQ,eV]=(0,a.useState)(ex),[eZ,eG]=(0,a.useState)(eb),eX=(0,en.A)();(0,a.useEffect)(()=>{eV(ex)},[ex]),(0,a.useEffect)(()=>{eG(eb)},[eb]);let e0="".concat(window.location.origin,"/mcp-proxy/").concat(encodeURIComponent(t)),e1=async e=>{eV(e);let r=await C.S.updateServerConfig(t,{exposeAsMcpServer:e});"success"in r&&r.success?(eN(e?"Server is now exposed to external apps.":"Server is no longer exposed."),eB("success")):(eV(!e),eN("Failed to update exposure setting."),eB("error")),eI(!0)},e2=async e=>{eG(e);let r=await C.S.updateServerConfig(t,{enableMcpApps:e});"success"in r&&r.success?(eN(e?"This server may now render interactive apps in chat (sandboxed).":"Interactive apps disabled for this server."),eB("success")):(eG(!e),eN("Failed to update the MCP Apps setting."),eB("error")),eI(!0)},e5=()=>{navigator.clipboard.writeText(e0),eN("Endpoint URL copied to clipboard."),eB("success"),eI(!0)},e6=()=>{let e=window.location.origin;navigator.clipboard.writeText((0,z.CZ)(t,eO,e)),eN("Server JSON copied to clipboard."),eB("success"),eI(!0)},e7={connected:"success.main",disconnected:"text.secondary",error:"error.main",connecting:"info.main",initialization:"info.main",requires_authentication:"warning.main"}[s];(0,a.useEffect)(()=>{if(("connecting"===s||"initialization"===s)&&F&&!Q){eH(!0);let e=setTimeout(()=>{eh.debug("Polling status for server: ".concat(t)),_()},2e3);return()=>{clearTimeout(e),eH(!1)}}"connecting"!==s&&"initialization"!==s&&eH(!1)},[s,F,t,_]);let[e8,e4]=(0,a.useState)(null);(0,a.useEffect)(()=>()=>{e8&&clearTimeout(e8)},[e8]);let e3=async e=>{e.stopPropagation(),eh.debug("Reset OAuth tokens button clicked for server: ".concat(t)),eJ(!0);try{let e=await fetch("/api/oauth/reset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:t})});if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to reset OAuth tokens")}let r=await e.json();eh.info("OAuth tokens reset successfully for ".concat(t),r),eN("OAuth tokens reset successfully. Server will require re-authentication."),eB("success"),eI(!0),setTimeout(()=>{_()},500)}catch(e){eh.error("Failed to reset OAuth tokens for ".concat(t),e),eN("Failed to reset OAuth tokens: ".concat(e instanceof Error?e.message:"Unknown error")),eB("error"),eI(!0)}finally{eJ(!1)}},{getThemeValue:e9,getThemeColor:te,colors:tt}=(0,n.Ic)(),tr=()=>{eh.debug("Server restart initiated for: ".concat(t)),U(!1),setTimeout(()=>{U(!0),eh.info("Server ".concat(t," restarted"))},1e3)};return(0,o.jsxs)(el.A,{role:Q?"button":void 0,"aria-pressed":Q?er:void 0,sx:{cursor:"pointer",position:"relative",height:Q?"100%":void 0,transition:"box-shadow 0.3s ease, border-color 0.12s ease",border:e=>Q&&er?"2px solid ".concat(e.palette.primary.main):"2px solid transparent","&:hover":{boxShadow:3}},onClick:()=>{eh.debug("Server card clicked: ".concat(t)),Y()},children:[eC&&!ez&&(0,o.jsx)(ei.A,{title:eS?"Remove from favorites":"Add to favorites",arrow:!0,placement:"top",children:(0,o.jsx)(et.A,{size:"small","aria-label":eS?"remove from favorites":"add to favorites",onClick:e=>{e.stopPropagation(),eC()},sx:{position:"absolute",top:4,left:4,zIndex:2,color:eS?eX.palette.warning.main:eX.palette.text.secondary,backgroundColor:(0,ec.X4)(eX.palette.background.paper,.6),"&:hover":{backgroundColor:(0,ec.X4)(eX.palette.background.paper,.9)}},children:eS?(0,o.jsx)(k.A,{fontSize:"small"}):(0,o.jsx)(A.A,{fontSize:"small"})})}),(0,o.jsxs)(ed.A,{sx:{pb:1},children:[(0,o.jsxs)(B.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",mb:1},children:[(0,o.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",flex:1},children:[ef&&eo&&(0,o.jsx)(J.A,{checked:er,onClick:e=>e.stopPropagation(),onChange:e=>eo(e.target.checked),size:"small",sx:{mr:1,p:.5}}),(0,o.jsx)(L.default,{variant:"h6",component:"h3",sx:{flex:1},children:t})]}),(0,o.jsxs)(B.default,{sx:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:.5},children:[(0,o.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(null==eg?void 0:eg.updateAvailable)&&(0,o.jsx)(ei.A,{title:"Update available: ".concat((0,V.Fu)(eg.localSha)," → ").concat((0,V.Fu)(eg.remoteSha),". Click to update."),children:(0,o.jsx)(T.A,{icon:(0,o.jsx)(j.A,{}),label:"Update",color:"warning",size:"small",onClick:e=>{e.stopPropagation(),eh.debug("Update badge clicked for server: ".concat(t)),eR(!0)}})}),ez?(0,o.jsx)(ei.A,{title:"FLUJO's built-in server — can be enabled or disabled below, but not edited or removed.",children:(0,o.jsx)(T.A,{label:"Built-in",color:"primary",size:"small"})}):(0,o.jsx)(R,{transport:E,size:"small"})]}),(0,o.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:["connected"===s&&(0,o.jsx)(l.A,{color:"success",sx:{mr:.5},fontSize:"small"}),"disconnected"===s&&(0,o.jsx)(i.A,{color:"action",sx:{mr:.5},fontSize:"small"}),"error"===s&&(0,o.jsx)(c.A,{color:"error",sx:{mr:.5},fontSize:"small"}),"requires_authentication"===s&&(0,o.jsx)(h.A,{color:"warning",sx:{mr:.5},fontSize:"small"}),("connecting"===s||"initialization"===s)&&(0,o.jsx)(w.default,{size:"small",color:"primary",sx:{mr:.5}}),(0,o.jsx)(L.default,{variant:"body2",color:e7,children:"requires_authentication"===s?"Requires Authentication":s})]})]})]}),(0,o.jsx)(L.default,{variant:"body2",color:"text.secondary",sx:{mb:1,fontSize:"0.875rem"},noWrap:!0,title:ez?void 0:P,children:ez?"FLUJO's own backend API — flow authoring, execution and server management as MCP tools.":P}),ez&&!Q&&(0,o.jsxs)(B.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:[(0,o.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,o.jsx)(x.A,{fontSize:"small",sx:{mr:.5,color:"primary.main"}}),(0,o.jsx)(ei.A,{title:"External MCP clients (Claude Code, Claude Desktop, Cursor, …) can drive FLUJO through this local endpoint.",children:(0,o.jsx)(L.default,{variant:"body2",sx:{fontWeight:500},children:"Exposed to external apps"})})]}),(0,o.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,o.jsx)(L.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e0,children:e0}),(0,o.jsx)(ei.A,{title:"Copy endpoint URL",children:(0,o.jsx)(et.A,{size:"small",onClick:e5,children:(0,o.jsx)(g.A,{fontSize:"small"})})}),(0,o.jsx)(ei.A,{title:"Copy MCP server JSON",children:(0,o.jsx)(et.A,{size:"small",onClick:e6,children:(0,o.jsx)(y.A,{fontSize:"small"})})})]})]}),!ez&&!Q&&(0,o.jsxs)(B.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:[(0,o.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,o.jsx)(x.A,{fontSize:"small",sx:{mr:.5,color:eQ?"primary.main":"text.disabled"}}),(0,o.jsx)(eu.A,{checked:eQ,onChange:e=>e1(e.target.checked),size:"small"}),(0,o.jsx)(ei.A,{title:"Re-expose this server's tools to external MCP clients (Claude Desktop, Cursor, …) at a local URL.",children:(0,o.jsx)(L.default,{variant:"body2",sx:{fontWeight:500},children:"Expose to external apps"})})]}),eQ&&(0,o.jsxs)(B.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,o.jsx)(L.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e0,children:e0}),(0,o.jsx)(ei.A,{title:"Copy endpoint URL",children:(0,o.jsx)(et.A,{size:"small",onClick:e5,children:(0,o.jsx)(g.A,{fontSize:"small"})})}),(0,o.jsx)(ei.A,{title:"Copy MCP server JSON",children:(0,o.jsx)(et.A,{size:"small",onClick:e6,children:(0,o.jsx)(y.A,{fontSize:"small"})})})]})]}),!ez&&!Q&&(0,o.jsx)(B.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:(0,o.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,o.jsx)(b.A,{fontSize:"small",sx:{mr:.5,color:eZ?"primary.main":"text.disabled"}}),(0,o.jsx)(eu.A,{checked:eZ,onChange:e=>e2(e.target.checked),size:"small"}),(0,o.jsx)(ei.A,{title:"Allow this server's tools to render interactive apps (MCP Apps / ui:// resources) in chat. Rendered read-only in a strict sandbox. Only enable for servers you trust.",children:(0,o.jsx)(L.default,{variant:"body2",sx:{fontWeight:500},children:"Render interactive apps"})})]})}),"error"===s&&(0,o.jsxs)(B.default,{sx:{mt:1,mb:1},children:[(0,o.jsxs)(B.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:.5},children:[(0,o.jsx)(L.default,{variant:"body2",fontWeight:"medium",color:"error",children:"Error:"}),(0,o.jsx)(D.A,{size:"small",color:"primary",onClick:e=>{e.stopPropagation(),eh.debug("View full error clicked for server: ".concat(t)),eP(!0)},children:"View Full Error"})]}),(0,o.jsx)(B.default,{sx:{maxHeight:"80px",overflow:"auto",p:1,borderRadius:1,bgcolor:e=>te("error.background"),color:e=>te("error.text"),border:"1px solid",borderColor:e=>te("error.border"),fontSize:"0.75rem",fontWeight:500,whiteSpace:"pre-wrap"},children:Z||"Unknown error"})]}),"requires_authentication"===s&&!Q&&(0,o.jsxs)(B.default,{sx:{mt:1,mb:1},children:[(0,o.jsx)(B.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1},children:(0,o.jsx)(L.default,{variant:"body2",fontWeight:"medium",color:"warning.main",children:"Authentication Required"})}),(0,o.jsxs)(D.A,{variant:"contained",color:"warning",size:"small",startIcon:(0,o.jsx)(f.A,{}),onClick:async e=>{if(e.stopPropagation(),eh.debug("Authenticate button clicked for server: ".concat(t)),K)K();else try{let e=await fetch("/api/oauth/initiate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverName:t})});if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to initiate OAuth")}let{authorizationUrl:o,alreadyAuthorized:a}=await e.json();if(a||!o){eh.info("Server ".concat(t," already authorized, no popup needed")),tr();return}let{openOAuthPopup:s}=await r.e(8198).then(r.bind(r,68198));await s({url:o,windowName:"oauth_".concat(t),onSuccess:e=>{eh.info("OAuth authentication successful for ".concat(t),e),eh.info("Automatically restarting server ".concat(t," after OAuth completion")),tr()},onError:e=>{eh.error("OAuth authentication failed for ".concat(t),e),eN("OAuth authentication failed"),eB("error"),eI(!0)}})}catch(e){eh.error("Failed to start OAuth authentication for ".concat(t),e),eN("Failed to start OAuth authentication"),eB("error"),eI(!0)}},sx:{width:"100%"},children:["Authenticate with ",t]})]})]}),ez&&!Q&&U&&(0,o.jsx)(ep.A,{sx:{justifyContent:"flex-start",px:2,py:1},onClick:e=>e.stopPropagation(),children:(0,o.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,o.jsx)(eu.A,{checked:F,onClick:e=>e.stopPropagation(),onChange:e=>{eh.debug("Built-in server ".concat(t," toggle changed to: ").concat(e.target.checked)),U(e.target.checked)},color:"primary",size:"small"}),(0,o.jsx)(L.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:F?"primary.main":"text.secondary"},children:F?"Enabled":"Disabled"}),"filesystem"===t&&(0,o.jsx)(ei.A,{title:"Configure filesystem roots",children:(0,o.jsxs)(D.A,{size:"small",variant:"text",startIcon:(0,o.jsx)(O.A,{fontSize:"small"}),sx:{ml:1.5,textTransform:"none"},onClick:e=>{e.stopPropagation(),eY(!0)},children:["Configure roots",e$&&e$.length?" (".concat(e$.length,")"):""]})})]})}),"filesystem"===t&&(0,o.jsx)(ea,{open:eq,serverName:t,initialRoots:e$,onClose:()=>eY(!1),onSaved:e=>eK(e)}),!ez&&!Q&&(0,o.jsxs)(ep.A,{sx:{justifyContent:"space-between",px:2,py:1},children:[(0,o.jsxs)(B.default,{sx:{display:"flex",alignItems:"center"},children:[(0,o.jsx)(eu.A,{checked:F,onClick:e=>e.stopPropagation(),onChange:e=>{eh.debug("Server ".concat(t," toggle changed to: ").concat(e.target.checked)),U(e.target.checked)},color:"primary",size:"small"}),(0,o.jsx)(L.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:F?"primary.main":"text.secondary"},children:F?"Enabled":"Disabled"}),F&&(0,o.jsx)(ei.A,{title:"Restart server",children:(0,o.jsx)(et.A,{size:"small",onClick:e=>{e.stopPropagation(),eh.debug("Restart button clicked for server: ".concat(t)),tr()},sx:{ml:1},children:(0,o.jsx)(d.A,{fontSize:"small"})})})]}),(0,o.jsxs)(B.default,{children:[(0,o.jsx)(ei.A,{title:"Retry connection",children:(0,o.jsx)(et.A,{color:"primary",onClick:e=>{e.stopPropagation(),eh.debug("Retry button clicked for server: ".concat(t)),e8&&clearTimeout(e8),eH(!0),_();let r=setTimeout(()=>{"connecting"!==s&&"initialization"!==s&&eH(!1),e4(null)},1e4);e4(r)},disabled:eL,size:"small",children:eL?(0,o.jsx)(w.default,{size:"small",color:"primary"}):(0,o.jsx)(d.A,{})})}),"streamable"===E&&em&&(0,o.jsx)(ei.A,{title:"Reset OAuth tokens",children:(0,o.jsx)(et.A,{color:"warning",onClick:e3,disabled:e_,size:"small",children:e_?(0,o.jsx)(w.default,{size:"small",color:"primary"}):(0,o.jsx)(m.A,{})})}),ew&&(0,o.jsx)(ei.A,{title:ek?"Folder: ".concat(ek):"Move to folder",children:(0,o.jsx)(et.A,{color:ek?"primary":"default",onClick:e=>{e.stopPropagation(),eE(e.currentTarget)},size:"small",children:(0,o.jsx)(v.A,{})})}),(0,o.jsx)(ei.A,{title:"Edit server",children:(0,o.jsx)(et.A,{color:"primary",onClick:e=>{e.stopPropagation(),$()},size:"small",children:(0,o.jsx)(u.A,{})})}),(0,o.jsx)(ei.A,{title:"Delete server",children:(0,o.jsx)(et.A,{color:"error",onClick:e=>{e.stopPropagation(),q()},size:"small",children:(0,o.jsx)(p.A,{})})})]})]}),ew&&(0,o.jsx)(S.A,{anchorEl:eF,open:!!eF,currentFolder:ek,folders:eA,onClose:()=>eE(null),onAssign:e=>ew(e)}),(0,o.jsxs)(M.A,{open:eT,onClose:()=>{eh.debug("Error modal closed for server: ".concat(t)),eP(!1)},maxWidth:"md",fullWidth:!0,onClick:e=>e.stopPropagation(),children:[(0,o.jsxs)(I.A,{component:"div",children:["Error Details for ",t]}),(0,o.jsxs)(W.A,{children:[(0,o.jsx)(B.default,{sx:{p:2,borderRadius:1,bgcolor:e=>te("error.background"),color:e=>te("error.text"),border:"1px solid",borderColor:e=>te("error.border"),fontFamily:"monospace",fontSize:"0.875rem",fontWeight:500,whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px",mb:2},children:Z||"Unknown error"}),G&&(0,o.jsxs)(B.default,{sx:{mt:2},children:[(0,o.jsx)(L.default,{variant:"h6",gutterBottom:!0,children:"Stderr Output:"}),(0,o.jsx)(B.default,{sx:{p:2,borderRadius:1,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",fontFamily:"monospace",fontSize:"0.875rem",whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px"},children:G})]})]}),(0,o.jsxs)(N.A,{children:[(0,o.jsx)(D.A,{onClick:()=>eP(!1),children:"Close"}),(0,o.jsx)(D.A,{onClick:()=>{let e=[Z||"Unknown error",G?"\n\nStderr Output:\n".concat(G):""].join("");navigator.clipboard.writeText(e),eh.debug("Error copied to clipboard for server: ".concat(t)),eN("Error message copied to clipboard"),eB("success"),eI(!0)},color:"primary",children:"Copy to Clipboard"})]})]}),eg&&(0,o.jsx)(X,{open:eU,onClose:()=>eR(!1),serverName:t,rootPath:P,installCommand:ey,buildCommand:ev,enabled:F,updateInfo:eg,onToggle:U,onUpdated:ej}),(0,o.jsx)(es.A,{open:eM,autoHideDuration:3e3,onClose:()=>eI(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,o.jsx)(H.A,{onClose:()=>eI(!1),severity:eD,sx:{width:"100%"},children:eW||"Error message copied to clipboard"})})]})}},62640:(e,t,r)=>{r.d(t,{A:()=>z});var o=r(95155),a=r(12115),s=r(2778),n=r(52363),l=r(65036),i=r(94049),c=r(78470),d=r(41983),u=r(9562),p=r(28548),h=r(22003),f=r(4474),m=r(25635),x=r(41602),b=r(73707),g=r(49501),y=r(17681),v=r(75912),j=r(91871),k=r(80007),A=r(74482),w=r(40171),S=r(36944);let C=(0,r(87021).h)("frontend/components/shared/FolderPickerDialog"),z=e=>{let{open:t,title:r="Choose a folder",selectFiles:z=!1,initialPath:O,onClose:T,onSelect:P}=e,[F,E]=(0,a.useState)(null),[U,R]=(0,a.useState)(""),[M,I]=(0,a.useState)(!1),[W,N]=(0,a.useState)(null),D=(0,a.useCallback)(async e=>{I(!0),N(null);try{let t=e?"?path=".concat(encodeURIComponent(e)):"",r=await fetch("/api/browse".concat(t)),o=await r.json();if(!r.ok||o.error)return void N(o.error||"HTTP ".concat(r.status));E(o),R(o.path)}catch(e){C.warn("Browse failed",e),N("Could not reach the backend to browse folders.")}finally{I(!1)}},[]);(0,a.useEffect)(()=>{t?D(O||void 0):(E(null),N(null))},[t,O,D]);let B=e=>{P(e),T()};return(0,o.jsxs)(s.A,{open:t,onClose:T,maxWidth:"sm",fullWidth:!0,children:[(0,o.jsx)(n.A,{children:r}),(0,o.jsxs)(l.A,{dividers:!0,sx:{display:"flex",flexDirection:"column",gap:1.5},children:[(0,o.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,o.jsx)(c.A,{title:"Up one folder",children:(0,o.jsx)("span",{children:(0,o.jsx)(d.A,{size:"small",disabled:!(null==F?void 0:F.parent)||M,onClick:()=>(null==F?void 0:F.parent)&&void D(F.parent),children:(0,o.jsx)(w.A,{fontSize:"small"})})})}),(0,o.jsx)(c.A,{title:"Home folder",children:(0,o.jsx)("span",{children:(0,o.jsx)(d.A,{size:"small",disabled:M,onClick:()=>void D(),children:(0,o.jsx)(S.A,{fontSize:"small"})})})}),(0,o.jsx)(u.A,{fullWidth:!0,size:"small",value:U,onChange:e=>R(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),D(U))},placeholder:"Type a path and press Enter"})]}),F&&F.drives.length>0&&(0,o.jsx)(i.default,{sx:{display:"flex",gap:.75,flexWrap:"wrap"},children:F.drives.map(e=>(0,o.jsx)(p.A,{label:e,size:"small",variant:F.path.toLowerCase().startsWith(e.toLowerCase())?"filled":"outlined",onClick:()=>void D(e)},e))}),W&&(0,o.jsx)(h.A,{severity:"error",children:W}),(0,o.jsxs)(i.default,{sx:{minHeight:240,maxHeight:"45vh",overflow:"auto",border:1,borderColor:"divider",borderRadius:1},children:[M&&(0,o.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,o.jsx)(f.default,{size:24})}),!M&&F&&0===F.entries.length&&(0,o.jsx)(m.default,{variant:"body2",color:"text.secondary",sx:{p:2},children:"This folder is empty."}),!M&&(0,o.jsx)(x.A,{dense:!0,disablePadding:!0,children:null==F?void 0:F.entries.map(e=>(0,o.jsxs)(b.A,{disabled:!e.isDirectory&&!z,onClick:()=>e.isDirectory?void D(e.path):B(e.path),children:[(0,o.jsx)(g.A,{sx:{minWidth:34},children:e.isDirectory?(0,o.jsx)(k.A,{fontSize:"small",color:"primary"}):(0,o.jsx)(A.A,{fontSize:"small"})}),(0,o.jsx)(y.A,{primary:e.name,primaryTypographyProps:{noWrap:!0}})]},e.path))})]})]}),(0,o.jsxs)(v.A,{children:[(0,o.jsx)(j.A,{onClick:T,children:"Cancel"}),(0,o.jsx)(j.A,{variant:"contained",disabled:!F||M,onClick:()=>F&&B(F.path),children:"Select this folder"})]})]})}},65818:(e,t,r)=>{r.d(t,{mO:()=>s,oO:()=>n});var o=r(38459);let a=["stdio","websocket","sse","streamable"];function s(e,t){switch(t){case"name-asc":case"name-desc":return(0,o.po)(e.name);case"status-connected":case"status-disconnected":{let t=e.status;if("connected"===t)return{key:"status:connected",label:"Connected"};if("error"===t)return{key:"status:error",label:"Error"};if("requires_authentication"===t)return{key:"status:auth",label:"Requires authentication"};return{key:"status:disconnected",label:"Disconnected"}}case"transport":{let t=e.transport||"unknown";return{key:"transport:".concat(t),label:({stdio:"Stdio",websocket:"WebSocket",sse:"SSE",streamable:"Streamable HTTP"})[t]||t}}default:return{key:"all",label:"All servers"}}}function n(e,t){let r=(e,r)=>{switch(t){case"name-asc":return e.name.localeCompare(r.name);case"name-desc":return r.name.localeCompare(e.name);case"status-connected":if("connected"===e.status&&"connected"!==r.status)return -1;if("connected"!==e.status&&"connected"===r.status)return 1;return e.name.localeCompare(r.name);case"status-disconnected":if("disconnected"===e.status&&"disconnected"!==r.status)return -1;if("disconnected"!==e.status&&"disconnected"===r.status)return 1;return e.name.localeCompare(r.name);case"transport":{var o,s;let t=a.indexOf(null!=(o=e.transport)?o:""),n=a.indexOf(null!=(s=r.transport)?s:"");if(t!==n)return t-n;return e.name.localeCompare(r.name)}default:return 0}};return[...e].sort((e,t)=>{let o=Number(!!t.favorite)-Number(!!e.favorite);return 0!==o?o:r(e,t)})}},70272:(e,t,r)=>{function o(e){let t={};if(!e)return t;for(let[r,o]of Object.entries(e))t[r]=o&&"object"==typeof o&&"value"in o?o.value:"string"==typeof o?o:"";return t}function a(e){let t,r=[],o=[];if("string"==typeof e)try{t=JSON.parse(e)}catch(e){return{servers:o,errors:["Invalid JSON: ".concat(e.message)]}}else t=e;if(!t||"object"!=typeof t)return{servers:o,errors:["Expected a JSON object."]};let a=t,s=a.mcpServers&&"object"==typeof a.mcpServers?a.mcpServers:a;if(0===Object.keys(s).length)return{servers:o,errors:['No servers found. Expected an "mcpServers" object.']};for(let[e,t]of Object.entries(s)){var n;if(!t||"object"!=typeof t){r.push('"'.concat(e,'": entry is not an object.'));continue}let a=function(e){let t=(e.transport||e.type||"").toString().toLowerCase().trim();if(!t)return"stdio";switch(t){case"stdio":return"stdio";case"http":case"streamable-http":case"streamable":case"streamablehttp":return"streamable";case"sse":return"sse";case"ws":case"websocket":return"websocket";default:return null}}(t);if(!a){r.push('"'.concat(e,'": unknown transport type "').concat(t.type||t.transport,'".'));continue}let s={};if(t.env&&"object"==typeof t.env)for(let[e,r]of Object.entries(t.env))s[e]="string"==typeof r?r:String(null!=r?r:"");let l={name:e,env:s,disabled:null!=(n=t.disabled)&&n,autoApprove:Array.isArray(t.autoApprove)?t.autoApprove:[],rootPath:"",_buildCommand:"",_installCommand:""};if("stdio"===a){if(!t.command||"string"!=typeof t.command){r.push('"'.concat(e,'": stdio server is missing a "command".'));continue}o.push({...l,transport:"stdio",command:t.command,args:Array.isArray(t.args)?t.args:[]})}else if("websocket"===a){let a=t.url||t.websocketUrl;if(!a){r.push('"'.concat(e,'": websocket server is missing a "url".'));continue}o.push({...l,transport:"websocket",websocketUrl:a})}else{let s=t.url||t.serverUrl;if(!s){r.push('"'.concat(e,'": ').concat(a,' server is missing a "url".'));continue}let n=t.headers&&"object"==typeof t.headers?t.headers:void 0;o.push({...l,transport:a,serverUrl:s,...n?{headers:n}:{}})}}return{servers:o,errors:r}}r.d(t,{_i:()=>s,CZ:()=>l,Kt:()=>n});let s=[{id:"claude",label:"Claude",fileName:"mcp_config.json",export:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t.proxyBaseUrl||"").replace(/\/$/,""),a={};for(let t of e){if(t.exposeAsMcpServer){a[t.name]={type:"http",url:"".concat(r,"/mcp-proxy/").concat(t.name)};continue}let e={},s=o(t.env);switch(t.transport){case"stdio":e.command=t.command,e.args=t.args||[],Object.keys(s).length>0&&(e.env=s);break;case"streamable":e.type="http",e.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(e.headers=o(t.headers)),Object.keys(s).length>0&&(e.env=s);break;case"sse":e.type="sse",e.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(e.headers=o(t.headers)),Object.keys(s).length>0&&(e.env=s);break;case"websocket":e.type="ws",e.url=t.websocketUrl,Object.keys(s).length>0&&(e.env=s);break;default:Object.keys(s).length>0&&(e.env=s)}a[t.name]=e}return{mcpServers:a}},import:a},{id:"cline",label:"Cline",fileName:"cline_mcp_settings.json",export:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t.proxyBaseUrl||"").replace(/\/$/,""),a={};for(let t of e){var s,n;let e={disabled:null!=(s=t.disabled)&&s,autoApprove:null!=(n=t.autoApprove)?n:[],timeout:60};if(t.exposeAsMcpServer){a[t.name]={...e,type:"streamableHttp",url:"".concat(r,"/mcp-proxy/").concat(t.name)};continue}let l=o(t.env),i={...e};switch(t.transport){case"stdio":i.command=t.command,i.args=t.args||[],Object.keys(l).length>0&&(i.env=l);break;case"streamable":i.type="streamableHttp",i.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(i.headers=o(t.headers));break;case"sse":i.type="sse",i.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(i.headers=o(t.headers));break;case"websocket":i.type="ws",i.url=t.websocketUrl;break;default:Object.keys(l).length>0&&(i.env=l)}a[t.name]=i}return{mcpServers:a}},import:function(e){return a(e)}}];function n(e){var t;return null!=(t=s.find(t=>t.id===e))?t:s[0]}function l(e,t,r){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"claude",a=(r||"").replace(/\/$/,"");return JSON.stringify(t?n(o).export([t],{proxyBaseUrl:a}):{mcpServers:{[e]:{type:"http",url:"".concat(a,"/mcp-proxy/").concat(e)}}},null,2)}},80411:(e,t,r)=>{r.d(t,{Fu:()=>i,M8:()=>s,Qv:()=>n,Qz:()=>l});let o=(0,r(87021).h)("frontend/components/mcp/MCPServerManager/utils/serverUpdates"),a=new Map;async function s(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=Date.now(),s={},n=[];for(let o of new Set(e.filter(Boolean))){let e=a.get(o);!t&&e&&r-e.at<6e5?s[o]=e.info:n.push(o)}if(n.length>0)try{let e=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"checkUpdatesBatch",paths:n})}),t=await e.json();if(e.ok&&t.results)for(let[e,o]of Object.entries(t.results))a.set(e,{at:r,info:o}),s[e]=o;else o.warn("Batch update check failed",t.error)}catch(e){o.warn("Batch update check request failed",e)}return s}async function n(e){try{let t=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"pullUpdates",savePath:e})}),r=await t.json();if(!t.ok)return{success:!1,error:r.error||"Failed to pull updates"};return{success:!0,oldSha:r.oldSha,newSha:r.newSha,updated:r.updated}}catch(e){return{success:!1,error:e.message||"Failed to pull updates"}}}async function l(e,t,r){let a=e.match(/github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?\/?$/i);if(!a)return null;try{let e=await fetch("https://api.github.com/repos/".concat(a[1],"/").concat(a[2],"/compare/").concat(t,"...").concat(r));if(!e.ok)return null;let o=await e.json(),s=Array.isArray(o.commits)?o.commits:[];return{behindBy:"number"==typeof o.total_commits?o.total_commits:null,commits:s.slice(-10).reverse().map(e=>{var t;return{sha:(e.sha||"").slice(0,7),message:((null==(t=e.commit)?void 0:t.message)||"").split("\n")[0]}})}}catch(e){return o.debug("GitHub compare preview failed (non-fatal)",e),null}}function i(e){return e?e.slice(0,7):""}},86631:(e,t,r)=>{r.d(t,{b:()=>s,c:()=>n});var o=r(56290);async function a(e,t){try{let r=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!r.ok||!r.body)return null;let a=null;return await (0,o.z)(r,e=>{if("stdout"===e.type||"stderr"===e.type)t(e.data);else if("result"===e.type){var r;a={success:e.success,output:null!=(r=e.commandOutput)?r:""}}}),a}catch(e){return console.error("Error streaming git command:",e),null}}let s=async(e,t,r)=>{if(r){let o=await a({action:"installStream",savePath:e,installCommand:t},r);if(o)return{success:o.success,message:o.success?{type:"success",text:"Dependencies installed successfully. You can now build the server."}:{type:"error",text:"Error installing dependencies. You can still try to build the server."},output:o.output||"No output was returned from the installation process."}}try{let r=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",savePath:e,installCommand:t})}),o=await r.json();if(!r.ok)throw Error(o.error||"Failed to install dependencies");return{success:!0,message:{type:"success",text:"Dependencies installed successfully. You can now build the server."},output:o.commandOutput||"No output was returned from the installation process."}}catch(e){return console.error("Error installing dependencies:",e),{success:!1,message:{type:"error",text:"Error installing dependencies: ".concat(e.message||"Unknown error",". You can still try to build the server.")},output:e instanceof Response?await e.text():(null==e?void 0:e.message)||"Unknown error"}}},n=async(e,t,r)=>{if(r){let o=await a({action:"buildStream",savePath:e,buildCommand:t},r);if(o)return{success:o.success,message:o.success?{type:"success",text:"Server built successfully."}:{type:"error",text:"Error building server."},output:o.output||"No output was returned from the build process."}}try{let r=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"build",savePath:e,buildCommand:t})}),o=await r.json();if(!r.ok)throw Error(o.error||"Failed to build repository");return{success:!0,message:{type:"success",text:"Server built successfully."},output:o.commandOutput||"No output was returned from the build process."}}catch(e){return console.error("Error building server:",e),{success:!1,message:{type:"error",text:"Error building server: ".concat(e.message||"Unknown error",".")},output:e instanceof Response?await e.text():(null==e?void 0:e.message)||"Unknown error"}}}}}]);
|