flujo-ai 3.19.0 → 3.21.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 +218 -183
- package/.next/app-path-routes-manifest.json +6 -1
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +6 -6
- package/.next/react-loadable-manifest.json +8 -8
- package/.next/routes-manifest.json +16 -0
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/api/approvals/[id]/route.js +1 -0
- package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/approvals/route.js +2 -0
- package/.next/server/app/api/approvals/route.js.nft.json +1 -0
- package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -0
- 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.js +1 -1
- package/.next/server/app/api/browse/route.js.nft.json +1 -1
- package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/route.js +1 -1
- package/.next/server/app/api/cwd/route.js.nft.json +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 +1 -1
- package/.next/server/app/api/env/route.js.nft.json +1 -1
- 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/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 +1 -1
- 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/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/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 +1 -1
- 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.js.nft.json +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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/planned-executions/[id]/route.js +1 -1
- 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 +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route.js +1 -1
- 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.js +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +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 -0
- package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -0
- package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -0
- 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/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 -0
- package/.next/server/app/api/runs/active/route.js.nft.json +1 -0
- package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/storage/route.js +1 -1
- package/.next/server/app/api/storage/route.js.nft.json +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/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 -9
- 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 +2 -2
- package/.next/server/app/docs/page.js +12 -2
- 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 +2 -2
- package/.next/server/app/executions/page.js +3 -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 +2 -2
- 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 +2 -2
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/mcp/page.js +5 -5
- 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 +2 -2
- 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/page.js +2 -2
- 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 +1 -1
- 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 +2 -2
- 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 +2 -2
- 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 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -0
- 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/models/route.js +1 -1
- 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-paths-manifest.json +6 -1
- package/.next/server/chunks/1083.js +1 -1
- package/.next/server/chunks/1152.js +1 -1
- package/.next/server/chunks/1197.js +2 -2
- package/.next/server/chunks/1226.js +1 -0
- package/.next/server/chunks/1373.js +1 -1
- package/.next/server/chunks/1377.js +1 -0
- package/.next/server/chunks/1659.js +1 -0
- package/.next/server/chunks/1690.js +1 -0
- package/.next/server/chunks/1746.js +1 -1
- package/.next/server/chunks/2859.js +3 -3
- package/.next/server/chunks/289.js +1 -0
- package/.next/server/chunks/{1912.js → 3280.js} +3 -3
- package/.next/server/chunks/3774.js +6 -0
- package/.next/server/chunks/{4028.js → 3802.js} +1 -1
- package/.next/server/chunks/3823.js +40 -0
- package/.next/server/chunks/{3511.js → 3928.js} +1 -1
- package/.next/server/chunks/3984.js +4 -4
- package/.next/server/chunks/4043.js +6 -0
- package/.next/server/chunks/4045.js +1 -0
- package/.next/server/chunks/4265.js +1 -1
- package/.next/server/chunks/4322.js +1 -0
- package/.next/server/chunks/4436.js +1 -0
- package/.next/server/chunks/4456.js +1 -1
- package/.next/server/chunks/4561.js +64 -0
- package/.next/server/chunks/4637.js +16 -6
- package/.next/server/chunks/4671.js +1 -0
- package/.next/server/chunks/5662.js +1 -1
- package/.next/server/chunks/5708.js +11 -1
- package/.next/server/chunks/5734.js +8 -8
- package/.next/server/chunks/6537.js +1 -0
- package/.next/server/chunks/6772.js +1 -1
- package/.next/server/chunks/6793.js +1 -0
- package/.next/server/chunks/6901.js +3 -3
- package/.next/server/chunks/6908.js +12 -0
- package/.next/server/chunks/6996.js +3 -3
- package/.next/server/chunks/701.js +1 -1
- package/.next/server/chunks/7032.js +1 -0
- package/.next/server/chunks/7214.js +4 -4
- package/.next/server/chunks/724.js +4 -4
- package/.next/server/chunks/7362.js +12 -12
- package/.next/server/chunks/7463.js +6 -0
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7821.js +1 -1
- package/.next/server/chunks/7959.js +1 -0
- package/.next/server/chunks/8298.js +1 -0
- package/.next/server/chunks/8652.js +42 -0
- package/.next/server/chunks/8739.js +2 -2
- package/.next/server/chunks/9201.js +17 -0
- package/.next/server/chunks/9285.js +1 -0
- package/.next/server/chunks/9343.js +1 -1
- package/.next/server/chunks/{6088.js → 9432.js} +2 -2
- package/.next/server/chunks/9509.js +2 -2
- package/.next/server/chunks/9957.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/PgkIffa5DdoRlsKKJyFOk/_buildManifest.js +1 -0
- package/.next/static/chunks/1423-19dafbb953c4992d.js +8 -0
- package/.next/static/chunks/{1892-a0f5ec7152540dc3.js → 1892-5c1e38d89e0a5a9c.js} +1 -1
- package/.next/static/chunks/{3272-ab88dd195ea61b65.js → 3272-fd8d59523f61da96.js} +1 -1
- package/.next/static/chunks/4031-ac736d3645071bb6.js +1 -0
- package/.next/static/chunks/4058-0d7bba578ece1784.js +1 -0
- package/.next/static/chunks/4480-7fb4d36c17264491.js +1 -0
- package/.next/static/chunks/4742-8501334dffd3b129.js +1 -0
- package/.next/static/chunks/{5501-7d6e38c7c8cc3c5a.js → 5501-c400aaeaf57e6297.js} +1 -1
- package/.next/static/chunks/557-dbc9903702465976.js +1 -0
- package/.next/static/chunks/5619-7ed132269b34f9b6.js +1 -0
- package/.next/static/chunks/6731-c230e88cf0032609.js +1 -0
- package/.next/static/chunks/{7583.5355a64005f2b265.js → 7583.7cb88044a5212b29.js} +1 -1
- package/.next/static/chunks/{8187.57929e3f925fe538.js → 8187.204e85fb197ddeb1.js} +1 -1
- package/.next/static/chunks/{1634-d4019c4a5cac2ed0.js → 9114-f8e481157e7d8d16.js} +1 -1
- package/.next/static/chunks/{9164-14dc5889cb7478c0.js → 9164-3d34bf7eab100ac7.js} +1 -1
- package/.next/static/chunks/app/api/approvals/[id]/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/approvals/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/backup/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/browse/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/cwd/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/encryption/secure/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/env/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/flow/compile/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/flow/generate/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/flow/improve/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/flow/quick-chat/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/flow/repair/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/flow/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/git/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/init/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/local-models/capability/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/local-models/pull/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/local-models/suggest/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/cancel/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/model/[id]/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/model/provider/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/model/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/model/test/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/oauth/callback/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/oauth/initiate/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/oauth/reset/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/restore/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/runs/active/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/storage/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/update/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[id]/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/chat/page-1367f696bc0ade9b.js +1 -0
- package/.next/static/chunks/app/docs/page-10b73b5b2c608484.js +1 -0
- package/.next/static/chunks/app/executions/page-98e51554d7b1df19.js +1 -0
- package/.next/static/chunks/app/flows/page-edee8e5c15219bc6.js +1 -0
- package/.next/static/chunks/app/mcp/page-3cae88bf0236503e.js +1 -0
- package/.next/static/chunks/app/mcp-flows/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/mcp-proxy/[server]/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/models/page-d2dc022339075a6a.js +1 -0
- package/.next/static/chunks/app/v1/chat/completions/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/app/v1/models/route-0343078cf7f19a65.js +1 -0
- package/.next/static/chunks/{webpack-3e8560996ac8c1e0.js → webpack-fd64460ba6699c85.js} +1 -1
- package/.next/trace +8 -7
- package/.next/types/app/api/approvals/[id]/route.ts +347 -0
- package/.next/types/app/api/approvals/route.ts +347 -0
- package/.next/types/app/api/planned-executions/reconcile/route.ts +347 -0
- package/.next/types/app/api/runs/active/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/[conversationId]/resources/route.ts +347 -0
- package/.next/types/routes.d.ts +6 -1
- package/.next/types/validator.ts +45 -0
- package/README.md +1 -1
- package/package.json +1 -1
- package/.next/server/chunks/1991.js +0 -1
- package/.next/server/chunks/2194.js +0 -1
- package/.next/server/chunks/2350.js +0 -1
- package/.next/server/chunks/264.js +0 -17
- package/.next/server/chunks/3310.js +0 -42
- package/.next/server/chunks/3574.js +0 -6
- package/.next/server/chunks/3648.js +0 -1
- package/.next/server/chunks/3953.js +0 -1
- package/.next/server/chunks/4239.js +0 -1
- package/.next/server/chunks/4372.js +0 -1
- package/.next/server/chunks/4681.js +0 -1
- package/.next/server/chunks/5148.js +0 -1
- package/.next/server/chunks/6136.js +0 -12
- package/.next/server/chunks/6465.js +0 -1
- package/.next/server/chunks/7403.js +0 -38
- package/.next/server/chunks/7635.js +0 -6
- package/.next/server/chunks/7865.js +0 -9
- package/.next/static/chunks/1711-ccf5eba61d618a1a.js +0 -1
- package/.next/static/chunks/3625-74c77250d64d1cd3.js +0 -1
- package/.next/static/chunks/5134-e21bd33daaf14ecf.js +0 -1
- package/.next/static/chunks/5619-82fc5c3133837739.js +0 -1
- package/.next/static/chunks/6013-cb423bc438256acb.js +0 -1
- package/.next/static/chunks/7829-b843e80f32a83256.js +0 -1
- package/.next/static/chunks/924-64f908860caf1a35.js +0 -1
- package/.next/static/chunks/9747-ffb8be5e59700c27.js +0 -8
- package/.next/static/chunks/app/api/backup/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/browse/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/cwd/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/encryption/secure/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/env/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/flow/compile/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/flow/generate/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/flow/improve/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/flow/quick-chat/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/flow/repair/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/flow/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/git/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/init/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/local-models/capability/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/local-models/pull/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/local-models/suggest/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/cancel/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/model/[id]/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/model/provider/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/model/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/model/test/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/oauth/callback/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/oauth/initiate/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/oauth/reset/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/restore/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/storage/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/update/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[id]/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/chat/page-1d764d1de5ad5d2f.js +0 -1
- package/.next/static/chunks/app/docs/page-d670c1ec8af5cb54.js +0 -1
- package/.next/static/chunks/app/executions/page-109274291811d467.js +0 -1
- package/.next/static/chunks/app/flows/page-df8eda0e83934fb2.js +0 -1
- package/.next/static/chunks/app/mcp/page-9a612d0be5a3336d.js +0 -1
- package/.next/static/chunks/app/mcp-flows/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/mcp-proxy/[server]/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/models/page-616950f93a1e0027.js +0 -1
- package/.next/static/chunks/app/v1/chat/completions/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/route-ff084c1cc278df77.js +0 -1
- package/.next/static/chunks/app/v1/models/route-ff084c1cc278df77.js +0 -1
- package/.next/static/itJEX_uJ7hJ7oF-igwwK9/_buildManifest.js +0 -1
- /package/.next/static/{itJEX_uJ7hJ7oF-igwwK9 → PgkIffa5DdoRlsKKJyFOk}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5619],{9352:(e,t,r)=>{r.d(t,{Ic:()=>n,kY:()=>o});var a=r(26796);let s=(0,r(87021).h)("frontend/utils/theme"),o={light:{background:"#FFFFFF",foreground:"#2C3E50",paperBackground:"#F5F6FA",textSecondary:"#7F8C8D",border:"#e5e7eb",heading:"#111",text:"#333",secondaryText:"#666",error:{background:"#fef2f2",border:"#fecaca",text:"#dc2626"}},dark:{background:"#1a1a1a",foreground:"#f0f0f0",paperBackground:"#2a2a2a",textSecondary:"#aaaaaa",border:"#3a3a3a",heading:"#f8f8f8",text:"#f0f0f0",secondaryText:"#aaa",error:{background:"#3a2222",border:"#5a3333",text:"#f87171"}}};function n(){let{isDarkMode:e}=(0,a.useTheme)();return s.debug("useThemeUtils called with isDarkMode: ".concat(e)),{getThemeValue:(t,r)=>e?r:t,getThemeColor:t=>{let r=t.split("."),a=o[e?"dark":"light"];for(let e of r)if(!a||"object"!=typeof a||!(e in a))return s.warn("Theme color path not found: ".concat(t)),"";else a=a[e];return a},colors:e?o.dark:o.light,isDarkMode:e}}},26796:(e,t,r)=>{r.r(t),r.d(t,{ThemeProvider:()=>h,useTheme:()=>m});var a=r(95155),s=r(12115),o=r(87021),n=r(7160),l=r(29197),i=r(9352),c=r(84563),d=r(29692);let u=(0,o.h)("frontend/contexts/ThemeContext"),p=(0,s.createContext)(void 0),h=e=>{let{children:t}=e,[r,o]=(0,s.useState)(!1),[h,m]=(0,s.useState)(!1);(0,s.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;m(t),t?document.documentElement.classList.add("dark-theme"):document.documentElement.classList.remove("dark-theme"),o(!0)})()},[]);let f=(0,s.useMemo)(()=>(function(e){let t="dark"===e?i.kY.dark:i.kY.light;return(0,l.A)({palette:{mode:e,primary:{main:"#007bff"},secondary:{main:"#6c757d"},error:{main:"dark"===e?"#f87171":"#dc2626",light:"dark"===e?"#5a3333":"#fecaca",dark:"dark"===e?"#3a2222":"#b91c1c"},warning:{main:"#f59e0b"},info:{main:"#3b82f6"},success:{main:"dark"===e?"#4ade80":"#16a34a"},background:{default:t.background,paper:t.paperBackground},text:{primary:t.foreground,secondary:t.textSecondary}},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"}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:"0.375rem"}}}},MuiCard:{styleOverrides:{root:{borderRadius:"0.5rem",boxShadow:"dark"===e?"0 4px 6px -1px rgba(0, 0, 0, 0.2), 0 2px 4px -1px rgba(0, 0, 0, 0.1)":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"}}}}})})(h?"dark":"light"),[h]);return u.debug("Rendering ThemeProvider with isDarkMode: ".concat(h)),(0,a.jsx)(p.Provider,{value:{toggleTheme:()=>{m(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,a.jsxs)(n.A,{theme:f,children:[(0,a.jsx)(c.Ay,{}),t]})})},m=()=>{let e=(0,s.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}},62640:(e,t,r)=>{r.d(t,{A:()=>O});var a=r(95155),s=r(12115),o=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),m=r(4474),f=r(25635),x=r(41602),b=r(73707),g=r(49501),y=r(17681),v=r(75912),j=r(91871),k=r(80007),w=r(74482),A=r(40171),S=r(36944);let C=(0,r(87021).h)("frontend/components/shared/FolderPickerDialog"),O=e=>{let{open:t,title:r="Choose a folder",selectFiles:O=!1,initialPath:z,onClose:T,onSelect:P}=e,[E,U]=(0,s.useState)(null),[F,R]=(0,s.useState)(""),[W,I]=(0,s.useState)(!1),[M,N]=(0,s.useState)(null),D=(0,s.useCallback)(async e=>{I(!0),N(null);try{let t=e?"?path=".concat(encodeURIComponent(e)):"",r=await fetch("/api/browse".concat(t)),a=await r.json();if(!r.ok||a.error)return void N(a.error||"HTTP ".concat(r.status));U(a),R(a.path)}catch(e){C.warn("Browse failed",e),N("Could not reach the backend to browse folders.")}finally{I(!1)}},[]);(0,s.useEffect)(()=>{t?D(z||void 0):(U(null),N(null))},[t,z,D]);let B=e=>{P(e),T()};return(0,a.jsxs)(o.A,{open:t,onClose:T,maxWidth:"sm",fullWidth:!0,children:[(0,a.jsx)(n.A,{children:r}),(0,a.jsxs)(l.A,{dividers:!0,sx:{display:"flex",flexDirection:"column",gap:1.5},children:[(0,a.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,a.jsx)(c.A,{title:"Up one folder",children:(0,a.jsx)("span",{children:(0,a.jsx)(d.A,{size:"small",disabled:!(null==E?void 0:E.parent)||W,onClick:()=>(null==E?void 0:E.parent)&&void D(E.parent),children:(0,a.jsx)(A.A,{fontSize:"small"})})})}),(0,a.jsx)(c.A,{title:"Home folder",children:(0,a.jsx)("span",{children:(0,a.jsx)(d.A,{size:"small",disabled:W,onClick:()=>void D(),children:(0,a.jsx)(S.A,{fontSize:"small"})})})}),(0,a.jsx)(u.A,{fullWidth:!0,size:"small",value:F,onChange:e=>R(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),D(F))},placeholder:"Type a path and press Enter"})]}),E&&E.drives.length>0&&(0,a.jsx)(i.default,{sx:{display:"flex",gap:.75,flexWrap:"wrap"},children:E.drives.map(e=>(0,a.jsx)(p.A,{label:e,size:"small",variant:E.path.toLowerCase().startsWith(e.toLowerCase())?"filled":"outlined",onClick:()=>void D(e)},e))}),M&&(0,a.jsx)(h.A,{severity:"error",children:M}),(0,a.jsxs)(i.default,{sx:{minHeight:240,maxHeight:"45vh",overflow:"auto",border:1,borderColor:"divider",borderRadius:1},children:[W&&(0,a.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,a.jsx)(m.default,{size:24})}),!W&&E&&0===E.entries.length&&(0,a.jsx)(f.default,{variant:"body2",color:"text.secondary",sx:{p:2},children:"This folder is empty."}),!W&&(0,a.jsx)(x.A,{dense:!0,disablePadding:!0,children:null==E?void 0:E.entries.map(e=>(0,a.jsxs)(b.A,{disabled:!e.isDirectory&&!O,onClick:()=>e.isDirectory?void D(e.path):B(e.path),children:[(0,a.jsx)(g.A,{sx:{minWidth:34},children:e.isDirectory?(0,a.jsx)(k.A,{fontSize:"small",color:"primary"}):(0,a.jsx)(w.A,{fontSize:"small"})}),(0,a.jsx)(y.A,{primary:e.name,primaryTypographyProps:{noWrap:!0}})]},e.path))})]})]}),(0,a.jsxs)(v.A,{children:[(0,a.jsx)(j.A,{onClick:T,children:"Cancel"}),(0,a.jsx)(j.A,{variant:"contained",disabled:!E||W,onClick:()=>E&&B(E.path),children:"Select this folder"})]})]})}},65818:(e,t,r)=>{r.d(t,{mO:()=>o,rI:()=>n});var a=r(38459);let s=["stdio","websocket","sse","streamable"];function o(e,t){switch(t){case"name-asc":case"name-desc":return(0,a.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){return[...e].sort((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 a,o;let t=s.indexOf(null!=(a=e.transport)?a:""),n=s.indexOf(null!=(o=r.transport)?o:"");if(t!==n)return t-n;return e.name.localeCompare(r.name)}default:return 0}})}},70272:(e,t,r)=>{function a(e){let t={};if(!e)return t;for(let[r,a]of Object.entries(e))t[r]=a&&"object"==typeof a&&"value"in a?a.value:"string"==typeof a?a:"";return t}function s(e){let t,r=[],a=[];if("string"==typeof e)try{t=JSON.parse(e)}catch(e){return{servers:a,errors:["Invalid JSON: ".concat(e.message)]}}else t=e;if(!t||"object"!=typeof t)return{servers:a,errors:["Expected a JSON object."]};let s=t,o=s.mcpServers&&"object"==typeof s.mcpServers?s.mcpServers:s;if(0===Object.keys(o).length)return{servers:a,errors:['No servers found. Expected an "mcpServers" object.']};for(let[e,t]of Object.entries(o)){var n;if(!t||"object"!=typeof t){r.push('"'.concat(e,'": entry is not an object.'));continue}let s=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(!s){r.push('"'.concat(e,'": unknown transport type "').concat(t.type||t.transport,'".'));continue}let o={};if(t.env&&"object"==typeof t.env)for(let[e,r]of Object.entries(t.env))o[e]="string"==typeof r?r:String(null!=r?r:"");let l={name:e,env:o,disabled:null!=(n=t.disabled)&&n,autoApprove:Array.isArray(t.autoApprove)?t.autoApprove:[],rootPath:"",_buildCommand:"",_installCommand:""};if("stdio"===s){if(!t.command||"string"!=typeof t.command){r.push('"'.concat(e,'": stdio server is missing a "command".'));continue}a.push({...l,transport:"stdio",command:t.command,args:Array.isArray(t.args)?t.args:[]})}else if("websocket"===s){let s=t.url||t.websocketUrl;if(!s){r.push('"'.concat(e,'": websocket server is missing a "url".'));continue}a.push({...l,transport:"websocket",websocketUrl:s})}else{let o=t.url||t.serverUrl;if(!o){r.push('"'.concat(e,'": ').concat(s,' server is missing a "url".'));continue}let n=t.headers&&"object"==typeof t.headers?t.headers:void 0;a.push({...l,transport:s,serverUrl:o,...n?{headers:n}:{}})}}return{servers:a,errors:r}}r.d(t,{_i:()=>o,CZ:()=>l,Kt:()=>n});let o=[{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(/\/$/,""),s={};for(let t of e){if(t.exposeAsMcpServer){s[t.name]={type:"http",url:"".concat(r,"/mcp-proxy/").concat(t.name)};continue}let e={},o=a(t.env);switch(t.transport){case"stdio":e.command=t.command,e.args=t.args||[],Object.keys(o).length>0&&(e.env=o);break;case"streamable":e.type="http",e.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(e.headers=a(t.headers)),Object.keys(o).length>0&&(e.env=o);break;case"sse":e.type="sse",e.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(e.headers=a(t.headers)),Object.keys(o).length>0&&(e.env=o);break;case"websocket":e.type="ws",e.url=t.websocketUrl,Object.keys(o).length>0&&(e.env=o);break;default:Object.keys(o).length>0&&(e.env=o)}s[t.name]=e}return{mcpServers:s}},import:s},{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(/\/$/,""),s={};for(let t of e){var o,n;let e={disabled:null!=(o=t.disabled)&&o,autoApprove:null!=(n=t.autoApprove)?n:[],timeout:60};if(t.exposeAsMcpServer){s[t.name]={...e,type:"streamableHttp",url:"".concat(r,"/mcp-proxy/").concat(t.name)};continue}let l=a(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=a(t.headers));break;case"sse":i.type="sse",i.url=t.serverUrl,t.headers&&Object.keys(t.headers).length>0&&(i.headers=a(t.headers));break;case"websocket":i.type="ws",i.url=t.websocketUrl;break;default:Object.keys(l).length>0&&(i.env=l)}s[t.name]=i}return{mcpServers:s}},import:function(e){return s(e)}}];function n(e){var t;return null!=(t=o.find(t=>t.id===e))?t:o[0]}function l(e,t,r){let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"claude",s=(r||"").replace(/\/$/,"");return JSON.stringify(t?n(a).export([t],{proxyBaseUrl:s}):{mcpServers:{[e]:{type:"http",url:"".concat(s,"/mcp-proxy/").concat(e)}}},null,2)}},80411:(e,t,r)=>{r.d(t,{Fu:()=>i,M8:()=>o,Qv:()=>n,Qz:()=>l});let a=(0,r(87021).h)("frontend/components/mcp/MCPServerManager/utils/serverUpdates"),s=new Map;async function o(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=Date.now(),o={},n=[];for(let a of new Set(e.filter(Boolean))){let e=s.get(a);!t&&e&&r-e.at<6e5?o[a]=e.info:n.push(a)}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,a]of Object.entries(t.results))s.set(e,{at:r,info:a}),o[e]=a;else a.warn("Batch update check failed",t.error)}catch(e){a.warn("Batch update check request failed",e)}return o}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 s=e.match(/github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?\/?$/i);if(!s)return null;try{let e=await fetch("https://api.github.com/repos/".concat(s[1],"/").concat(s[2],"/compare/").concat(t,"...").concat(r));if(!e.ok)return null;let a=await e.json(),o=Array.isArray(a.commits)?a.commits:[];return{behindBy:"number"==typeof a.total_commits?a.total_commits:null,commits:o.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 a.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:()=>o,c:()=>n});var a=r(56290);async function s(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 s=null;return await (0,a.z)(r,e=>{if("stdout"===e.type||"stderr"===e.type)t(e.data);else if("result"===e.type){var r;s={success:e.success,output:null!=(r=e.commandOutput)?r:""}}}),s}catch(e){return console.error("Error streaming git command:",e),null}}let o=async(e,t,r)=>{if(r){let a=await s({action:"installStream",savePath:e,installCommand:t},r);if(a)return{success:a.success,message:a.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:a.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})}),a=await r.json();if(!r.ok)throw Error(a.error||"Failed to install dependencies");return{success:!0,message:{type:"success",text:"Dependencies installed successfully. You can now build the server."},output:a.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 a=await s({action:"buildStream",savePath:e,buildCommand:t},r);if(a)return{success:a.success,message:a.success?{type:"success",text:"Server built successfully."}:{type:"error",text:"Error building server."},output:a.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})}),a=await r.json();if(!r.ok)throw Error(a.error||"Failed to build repository");return{success:!0,message:{type:"success",text:"Server built successfully."},output:a.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"}}}},95906:(e,t,r)=>{r.d(t,{A:()=>en});var a=r(95155),s=r(12115),o=r(87021),n=r(9352),l=r(36741),i=r(12857),c=r(48563),d=r(76530),u=r(14915),p=r(4484),h=r(80412),m=r(13548),f=r(20099),x=r(11414),b=r(26188),g=r(52277),y=r(59652),v=r(89296),j=r(97714),k=r(94929),w=r(81956),A=r(17897),S=r(70272),C=r(28548),O=r(67891),z=r(84318),T=r(4543),P=r(8415);let E=e=>{let{transport:t,size:r="small"}=e,s=(()=>{switch(t){case"stdio":return{label:"STDIO",icon:(0,a.jsx)(O.A,{fontSize:"small"}),color:"#1976d2",bgColor:"#e3f2fd"};case"websocket":return{label:"WebSocket",icon:(0,a.jsx)(z.A,{fontSize:"small"}),color:"#2e7d32",bgColor:"#e8f5e8"};case"sse":return{label:"SSE",icon:(0,a.jsx)(T.A,{fontSize:"small"}),color:"#f57c00",bgColor:"#fff3e0"};case"streamable":return{label:"HTTP Stream",icon:(0,a.jsx)(P.A,{fontSize:"small"}),color:"#00796b",bgColor:"#e0f2f1"};default:return{label:"UNKNOWN",icon:(0,a.jsx)(O.A,{fontSize:"small"}),color:"#757575",bgColor:"#f5f5f5"}}})();return(0,a.jsx)(C.A,{icon:s.icon,label:s.label,size:r,sx:{backgroundColor:s.bgColor,color:s.color,fontWeight:500,fontSize:"small"===r?"0.75rem":"0.875rem",height:"small"===r?24:32,"& .MuiChip-icon":{color:s.color}}})};var U=r(2778),F=r(52363),R=r(65036),W=r(75912),I=r(91871),M=r(94049),N=r(25635),D=r(22003),B=r(99944),H=r(22822),J=r(41602),L=r(23820),_=r(49501),q=r(17681),Y=r(16186),$=r(80411),Q=r(86631);let V=(0,o.h)("frontend/components/mcp/MCPServerManager/ServerUpdateDialog"),Z=e=>{let{open:t,onClose:r,serverName:o,rootPath:n,installCommand:i,buildCommand:d,enabled:u,updateInfo:p,onToggle:h,onUpdated:m}=e,[f,x]=(0,s.useState)(null),[b,g]=(0,s.useState)(!1),[y,v]=(0,s.useState)(!1),[w,A]=(0,s.useState)(!1),[S,O]=(0,s.useState)(null),[z,T]=(0,s.useState)({}),[P,E]=(0,s.useState)(""),Z=!!(i&&i.trim()),K=!!(d&&d.trim()),G=[{key:"stop",label:"Stop server",active:u},{key:"pull",label:"Pull latest changes",active:!0},{key:"install",label:"Install dependencies (".concat(i,")"),active:Z},{key:"build",label:"Build (".concat(d,")"),active:K},{key:"restart",label:"Restart server",active:u}];(0,s.useEffect)(()=>{t&&(g(!1),v(!1),A(!1),O(null),T({}),E(""))},[t,o]),(0,s.useEffect)(()=>{if(t&&p.remoteUrl&&p.localSha&&p.remoteSha){let e=!1;return(0,$.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,s.useCallback)((e,t)=>{T(r=>({...r,[e]:t}))},[]),ee=(0,s.useCallback)((e,t)=>{E(r=>r+(r?"\n":"")+"--- ".concat(e," ---\n")+(t||"").trim()+"\n")},[]),et=async()=>{v(!0),O(null),V.info("Starting update for server ".concat(o));let e=(e,t)=>{X(e,"error"),O(t),v(!1)};try{u&&(X("stop","running"),await Promise.resolve(h(!1)),X("stop","done")),X("pull","running");let t=await (0,$.Qv)(n);if(!t.success)return void e("pull",t.error||"Failed to pull updates");if(ee("Pull","Updated ".concat((0,$.Fu)(t.oldSha)," -> ").concat((0,$.Fu)(t.newSha))),X("pull","done"),Z){X("install","running");let t=await (0,Q.b)(n,i.trim());if(ee("Install",t.output),!t.success)return void e("install",t.message.text);X("install","done")}if(K){X("build","running");let t=await (0,Q.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")),V.info("Update completed for server ".concat(o)),A(!0),v(!1),null==m||m()}catch(e){V.error("Update failed for server ".concat(o),e),O(e.message||"Update failed"),v(!1)}},er=y||w||Object.keys(z).length>0,ea=p.hasLocalChanges&&!b;return(0,a.jsxs)(U.A,{open:t,onClose:y?void 0:r,maxWidth:"sm",fullWidth:!0,onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(F.A,{component:"div",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,a.jsx)(j.A,{color:"primary"}),"Update ",o]}),(0,a.jsxs)(R.A,{children:[(0,a.jsxs)(M.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1,flexWrap:"wrap"},children:[(0,a.jsx)(C.A,{size:"small",label:(0,$.Fu)(p.localSha),sx:{fontFamily:"monospace"}}),(0,a.jsx)(N.default,{variant:"body2",color:"text.secondary",children:"→"}),(0,a.jsx)(C.A,{size:"small",color:"primary",label:(0,$.Fu)(p.remoteSha),sx:{fontFamily:"monospace"}}),p.branch&&"HEAD"!==p.branch&&(0,a.jsxs)(N.default,{variant:"body2",color:"text.secondary",children:["on ",(0,a.jsx)("code",{children:p.branch})]}),(null==f?void 0:f.behindBy)!=null&&(0,a.jsxs)(N.default,{variant:"body2",color:"text.secondary",children:["(",f.behindBy," commit",1===f.behindBy?"":"s"," behind)"]})]}),p.repoRoot&&p.repoRoot.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()!==n.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()&&(0,a.jsxs)(N.default,{variant:"body2",color:"text.secondary",sx:{mb:1},children:["This server lives inside a larger repository — the update pulls"," ",(0,a.jsx)("code",{children:p.repoRoot})," as a whole (other servers from the same repository are updated along with it)."]}),f&&f.commits.length>0&&!er&&(0,a.jsx)(M.default,{sx:{mb:2,p:1,borderRadius:1,border:"1px solid",borderColor:"divider",maxHeight:160,overflow:"auto"},children:f.commits.map(e=>(0,a.jsxs)(N.default,{variant:"body2",sx:{fontSize:"0.8rem"},noWrap:!0,title:e.message,children:[(0,a.jsx)("code",{children:e.sha})," ",e.message]},e.sha))}),p.hasLocalChanges&&!er&&(0,a.jsxs)(D.A,{severity:"warning",sx:{mb:2},children:[(0,a.jsxs)(N.default,{variant:"body2",sx:{mb:1},children:["This repository has local changes to tracked files. Updating will ",(0,a.jsx)("strong",{children:"discard"})," them. Untracked files (e.g. a ",(0,a.jsx)("code",{children:".env"})," you created) and all FLUJO settings for this server are kept."]}),(0,a.jsx)(M.default,{component:"ul",sx:{m:0,pl:3,maxHeight:100,overflow:"auto"},children:p.dirtyFiles.map(e=>(0,a.jsx)("li",{children:(0,a.jsx)(N.default,{variant:"body2",component:"span",sx:{fontFamily:"monospace",fontSize:"0.8rem"},children:e})},e))}),(0,a.jsx)(B.A,{sx:{mt:1},control:(0,a.jsx)(H.A,{size:"small",checked:b,onChange:e=>g(e.target.checked)}),label:(0,a.jsx)(N.default,{variant:"body2",children:"Discard my local changes and update"})})]}),(0,a.jsx)(J.A,{dense:!0,disablePadding:!0,children:G.filter(e=>e.active).map(e=>(0,a.jsxs)(L.Ay,{disableGutters:!0,sx:{py:.25},children:[(0,a.jsx)(_.A,{sx:{minWidth:32},children:(e=>{switch(e){case"running":return(0,a.jsx)(k.default,{size:"small",color:"primary"});case"done":return(0,a.jsx)(l.A,{color:"success",fontSize:"small"});case"error":return(0,a.jsx)(c.A,{color:"error",fontSize:"small"});default:return(0,a.jsx)(Y.A,{color:"disabled",fontSize:"small"})}})(z[e.key])}),(0,a.jsx)(q.A,{primary:e.label,primaryTypographyProps:{variant:"body2",noWrap:!0,title:e.label}})]},e.key))}),S&&(0,a.jsxs)(D.A,{severity:"error",sx:{mt:2,whiteSpace:"pre-wrap"},children:[S,u&&(0,a.jsx)(N.default,{variant:"body2",sx:{mt:1},children:"The server was left stopped. Adjust the install/build commands via Edit, then re-enable it."})]}),w&&(0,a.jsxs)(D.A,{severity:"success",sx:{mt:2},children:["Server updated successfully",u?" and restarted":"","."]}),P&&(0,a.jsx)(M.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,a.jsxs)(W.A,{children:[(0,a.jsx)(I.A,{onClick:r,disabled:y,children:w?"Close":"Cancel"}),!w&&(0,a.jsx)(I.A,{variant:"contained",color:"primary",startIcon:(0,a.jsx)(j.A,{}),onClick:et,disabled:y||ea,children:y?"Updating…":S?"Retry Update":"Update"})]})]})};var K=r(80422),G=r(33567),X=r(29767),ee=r(84578),et=r(78470),er=r(41983),ea=r(9957),es=r(1702);let eo=(0,o.h)("frontend/components/mcp/MCPServerManager/ServerCard"),en=e=>{let{name:t,status:o,path:O,enabled:z,transport:T,onToggle:P=()=>{},onRetry:B=()=>{},onDelete:J=()=>{},onClick:L,onEdit:_=()=>{},onAuthenticate:q,pickerMode:Y=!1,error:Q,stderrOutput:V,authorizationUrl:en,selected:el=!1,onSelect:ei,selectionMode:ec=!1,hasOAuthTokens:ed=!1,exposeAsMcpServer:eu=!1,enableMcpApps:ep=!1,updateInfo:eh,installCommand:em,buildCommand:ef,onUpdated:ex,folder:eb,folders:eg=[],onSetFolder:ey,builtIn:ev=!1,serverConfig:ej}=e,[ek,ew]=(0,s.useState)(!1),[eA,eS]=(0,s.useState)(null),[eC,eO]=(0,s.useState)(!1),[ez,eT]=(0,s.useState)(!1),[eP,eE]=(0,s.useState)(""),[eU,eF]=(0,s.useState)("success"),[eR,eW]=(0,s.useState)(!1),[eI,eM]=(0,s.useState)(!1),[eN,eD]=(0,s.useState)(eu),[eB,eH]=(0,s.useState)(ep);(0,G.A)(),(0,s.useEffect)(()=>{eD(eu)},[eu]),(0,s.useEffect)(()=>{eH(ep)},[ep]);let eJ="".concat(window.location.origin,"/mcp-proxy/").concat(encodeURIComponent(t)),eL=async e=>{eD(e);let r=await A.S.updateServerConfig(t,{exposeAsMcpServer:e});"success"in r&&r.success?(eE(e?"Server is now exposed to external apps.":"Server is no longer exposed."),eF("success")):(eD(!e),eE("Failed to update exposure setting."),eF("error")),eT(!0)},e_=async e=>{eH(e);let r=await A.S.updateServerConfig(t,{enableMcpApps:e});"success"in r&&r.success?(eE(e?"This server may now render interactive apps in chat (sandboxed).":"Interactive apps disabled for this server."),eF("success")):(eH(!e),eE("Failed to update the MCP Apps setting."),eF("error")),eT(!0)},eq=()=>{navigator.clipboard.writeText(eJ),eE("Endpoint URL copied to clipboard."),eF("success"),eT(!0)},eY=()=>{let e=window.location.origin;navigator.clipboard.writeText((0,S.CZ)(t,ej,e)),eE("Server JSON copied to clipboard."),eF("success"),eT(!0)},e$={connected:"success.main",disconnected:"text.secondary",error:"error.main",connecting:"info.main",initialization:"info.main",requires_authentication:"warning.main"}[o];(0,s.useEffect)(()=>{if(("connecting"===o||"initialization"===o)&&z&&!Y){eW(!0);let e=setTimeout(()=>{eo.debug("Polling status for server: ".concat(t)),B()},2e3);return()=>{clearTimeout(e),eW(!1)}}"connecting"!==o&&"initialization"!==o&&eW(!1)},[o,z,t,B]);let[eQ,eV]=(0,s.useState)(null);(0,s.useEffect)(()=>()=>{eQ&&clearTimeout(eQ)},[eQ]);let eZ=async e=>{e.stopPropagation(),eo.debug("Reset OAuth tokens button clicked for server: ".concat(t)),eM(!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();eo.info("OAuth tokens reset successfully for ".concat(t),r),eE("OAuth tokens reset successfully. Server will require re-authentication."),eF("success"),eT(!0),setTimeout(()=>{B()},500)}catch(e){eo.error("Failed to reset OAuth tokens for ".concat(t),e),eE("Failed to reset OAuth tokens: ".concat(e instanceof Error?e.message:"Unknown error")),eF("error"),eT(!0)}finally{eM(!1)}},{getThemeValue:eK,getThemeColor:eG,colors:eX}=(0,n.Ic)(),e0=()=>{eo.debug("Server restart initiated for: ".concat(t)),P(!1),setTimeout(()=>{P(!0),eo.info("Server ".concat(t," restarted"))},1e3)};return(0,a.jsxs)(X.A,{role:Y?"button":void 0,"aria-pressed":Y?el:void 0,sx:{cursor:"pointer",height:Y?"100%":void 0,transition:"box-shadow 0.3s ease, border-color 0.12s ease",border:e=>Y&&el?"2px solid ".concat(e.palette.primary.main):"2px solid transparent","&:hover":{boxShadow:3}},onClick:()=>{eo.debug("Server card clicked: ".concat(t)),L()},children:[(0,a.jsxs)(ee.A,{sx:{pb:1},children:[(0,a.jsxs)(M.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",mb:1},children:[(0,a.jsxs)(M.default,{sx:{display:"flex",alignItems:"center",flex:1},children:[ec&&ei&&(0,a.jsx)(H.A,{checked:el,onClick:e=>e.stopPropagation(),onChange:e=>ei(e.target.checked),size:"small",sx:{mr:1,p:.5}}),(0,a.jsx)(N.default,{variant:"h6",component:"h3",sx:{flex:1},children:t})]}),(0,a.jsxs)(M.default,{sx:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:.5},children:[(0,a.jsxs)(M.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(null==eh?void 0:eh.updateAvailable)&&(0,a.jsx)(et.A,{title:"Update available: ".concat((0,$.Fu)(eh.localSha)," → ").concat((0,$.Fu)(eh.remoteSha),". Click to update."),children:(0,a.jsx)(C.A,{icon:(0,a.jsx)(j.A,{}),label:"Update",color:"warning",size:"small",onClick:e=>{e.stopPropagation(),eo.debug("Update badge clicked for server: ".concat(t)),eO(!0)}})}),ev?(0,a.jsx)(et.A,{title:"FLUJO's built-in server — always available, cannot be edited or removed.",children:(0,a.jsx)(C.A,{label:"Built-in",color:"primary",size:"small"})}):(0,a.jsx)(E,{transport:T,size:"small"})]}),(0,a.jsxs)(M.default,{sx:{display:"flex",alignItems:"center"},children:["connected"===o&&(0,a.jsx)(l.A,{color:"success",sx:{mr:.5},fontSize:"small"}),"disconnected"===o&&(0,a.jsx)(i.A,{color:"action",sx:{mr:.5},fontSize:"small"}),"error"===o&&(0,a.jsx)(c.A,{color:"error",sx:{mr:.5},fontSize:"small"}),"requires_authentication"===o&&(0,a.jsx)(h.A,{color:"warning",sx:{mr:.5},fontSize:"small"}),("connecting"===o||"initialization"===o)&&(0,a.jsx)(k.default,{size:"small",color:"primary",sx:{mr:.5}}),(0,a.jsx)(N.default,{variant:"body2",color:e$,children:"requires_authentication"===o?"Requires Authentication":o})]})]})]}),(0,a.jsx)(N.default,{variant:"body2",color:"text.secondary",sx:{mb:1,fontSize:"0.875rem"},noWrap:!0,title:ev?void 0:O,children:ev?"FLUJO's own backend API — flow authoring, execution and server management as MCP tools.":O}),ev&&!Y&&(0,a.jsxs)(M.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(M.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(x.A,{fontSize:"small",sx:{mr:.5,color:"primary.main"}}),(0,a.jsx)(et.A,{title:"External MCP clients (Claude Code, Claude Desktop, Cursor, …) can drive FLUJO through this local endpoint.",children:(0,a.jsx)(N.default,{variant:"body2",sx:{fontWeight:500},children:"Exposed to external apps"})})]}),(0,a.jsxs)(M.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,a.jsx)(N.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:eJ,children:eJ}),(0,a.jsx)(et.A,{title:"Copy endpoint URL",children:(0,a.jsx)(er.A,{size:"small",onClick:eq,children:(0,a.jsx)(g.A,{fontSize:"small"})})}),(0,a.jsx)(et.A,{title:"Copy MCP server JSON",children:(0,a.jsx)(er.A,{size:"small",onClick:eY,children:(0,a.jsx)(y.A,{fontSize:"small"})})})]})]}),!ev&&!Y&&(0,a.jsxs)(M.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(M.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(x.A,{fontSize:"small",sx:{mr:.5,color:eN?"primary.main":"text.disabled"}}),(0,a.jsx)(ea.A,{checked:eN,onChange:e=>eL(e.target.checked),size:"small"}),(0,a.jsx)(et.A,{title:"Re-expose this server's tools to external MCP clients (Claude Desktop, Cursor, …) at a local URL.",children:(0,a.jsx)(N.default,{variant:"body2",sx:{fontWeight:500},children:"Expose to external apps"})})]}),eN&&(0,a.jsxs)(M.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,a.jsx)(N.default,{variant:"caption",sx:{flex:1,fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:eJ,children:eJ}),(0,a.jsx)(et.A,{title:"Copy endpoint URL",children:(0,a.jsx)(er.A,{size:"small",onClick:eq,children:(0,a.jsx)(g.A,{fontSize:"small"})})}),(0,a.jsx)(et.A,{title:"Copy MCP server JSON",children:(0,a.jsx)(er.A,{size:"small",onClick:eY,children:(0,a.jsx)(y.A,{fontSize:"small"})})})]})]}),!ev&&!Y&&(0,a.jsx)(M.default,{sx:{mt:1,mb:1,p:1,borderRadius:1,border:"1px solid",borderColor:"divider"},onClick:e=>e.stopPropagation(),children:(0,a.jsxs)(M.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(b.A,{fontSize:"small",sx:{mr:.5,color:eB?"primary.main":"text.disabled"}}),(0,a.jsx)(ea.A,{checked:eB,onChange:e=>e_(e.target.checked),size:"small"}),(0,a.jsx)(et.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,a.jsx)(N.default,{variant:"body2",sx:{fontWeight:500},children:"Render interactive apps"})})]})}),"error"===o&&(0,a.jsxs)(M.default,{sx:{mt:1,mb:1},children:[(0,a.jsxs)(M.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:.5},children:[(0,a.jsx)(N.default,{variant:"body2",fontWeight:"medium",color:"error",children:"Error:"}),(0,a.jsx)(I.A,{size:"small",color:"primary",onClick:e=>{e.stopPropagation(),eo.debug("View full error clicked for server: ".concat(t)),ew(!0)},children:"View Full Error"})]}),(0,a.jsx)(M.default,{sx:{maxHeight:"80px",overflow:"auto",p:1,borderRadius:1,bgcolor:e=>eG("error.background"),color:e=>eG("error.text"),border:"1px solid",borderColor:e=>eG("error.border"),fontSize:"0.75rem",fontWeight:500,whiteSpace:"pre-wrap"},children:Q||"Unknown error"})]}),"requires_authentication"===o&&!Y&&(0,a.jsxs)(M.default,{sx:{mt:1,mb:1},children:[(0,a.jsx)(M.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1},children:(0,a.jsx)(N.default,{variant:"body2",fontWeight:"medium",color:"warning.main",children:"Authentication Required"})}),(0,a.jsxs)(I.A,{variant:"contained",color:"warning",size:"small",startIcon:(0,a.jsx)(m.A,{}),onClick:async e=>{if(e.stopPropagation(),eo.debug("Authenticate button clicked for server: ".concat(t)),q)q();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:a,alreadyAuthorized:s}=await e.json();if(s||!a){eo.info("Server ".concat(t," already authorized, no popup needed")),e0();return}let{openOAuthPopup:o}=await r.e(8198).then(r.bind(r,68198));await o({url:a,windowName:"oauth_".concat(t),onSuccess:e=>{eo.info("OAuth authentication successful for ".concat(t),e),eo.info("Automatically restarting server ".concat(t," after OAuth completion")),e0()},onError:e=>{eo.error("OAuth authentication failed for ".concat(t),e),eE("OAuth authentication failed"),eF("error"),eT(!0)}})}catch(e){eo.error("Failed to start OAuth authentication for ".concat(t),e),eE("Failed to start OAuth authentication"),eF("error"),eT(!0)}},sx:{width:"100%"},children:["Authenticate with ",t]})]})]}),!ev&&!Y&&(0,a.jsxs)(es.A,{sx:{justifyContent:"space-between",px:2,py:1},children:[(0,a.jsxs)(M.default,{sx:{display:"flex",alignItems:"center"},children:[(0,a.jsx)(ea.A,{checked:z,onClick:e=>e.stopPropagation(),onChange:e=>{eo.debug("Server ".concat(t," toggle changed to: ").concat(e.target.checked)),P(e.target.checked)},color:"primary",size:"small"}),(0,a.jsx)(N.default,{variant:"body2",sx:{ml:.5,fontWeight:500,color:z?"primary.main":"text.secondary"},children:z?"Enabled":"Disabled"}),z&&(0,a.jsx)(et.A,{title:"Restart server",children:(0,a.jsx)(er.A,{size:"small",onClick:e=>{e.stopPropagation(),eo.debug("Restart button clicked for server: ".concat(t)),e0()},sx:{ml:1},children:(0,a.jsx)(d.A,{fontSize:"small"})})})]}),(0,a.jsxs)(M.default,{children:[(0,a.jsx)(et.A,{title:"Retry connection",children:(0,a.jsx)(er.A,{color:"primary",onClick:e=>{e.stopPropagation(),eo.debug("Retry button clicked for server: ".concat(t)),eQ&&clearTimeout(eQ),eW(!0),B();let r=setTimeout(()=>{"connecting"!==o&&"initialization"!==o&&eW(!1),eV(null)},1e4);eV(r)},disabled:eR,size:"small",children:eR?(0,a.jsx)(k.default,{size:"small",color:"primary"}):(0,a.jsx)(d.A,{})})}),"streamable"===T&&ed&&(0,a.jsx)(et.A,{title:"Reset OAuth tokens",children:(0,a.jsx)(er.A,{color:"warning",onClick:eZ,disabled:eI,size:"small",children:eI?(0,a.jsx)(k.default,{size:"small",color:"primary"}):(0,a.jsx)(f.A,{})})}),ey&&(0,a.jsx)(et.A,{title:eb?"Folder: ".concat(eb):"Move to folder",children:(0,a.jsx)(er.A,{color:eb?"primary":"default",onClick:e=>{e.stopPropagation(),eS(e.currentTarget)},size:"small",children:(0,a.jsx)(v.A,{})})}),(0,a.jsx)(et.A,{title:"Edit server",children:(0,a.jsx)(er.A,{color:"primary",onClick:e=>{e.stopPropagation(),_()},size:"small",children:(0,a.jsx)(u.A,{})})}),(0,a.jsx)(et.A,{title:"Delete server",children:(0,a.jsx)(er.A,{color:"error",onClick:e=>{e.stopPropagation(),J()},size:"small",children:(0,a.jsx)(p.A,{})})})]})]}),ey&&(0,a.jsx)(w.A,{anchorEl:eA,open:!!eA,currentFolder:eb,folders:eg,onClose:()=>eS(null),onAssign:e=>ey(e)}),(0,a.jsxs)(U.A,{open:ek,onClose:()=>{eo.debug("Error modal closed for server: ".concat(t)),ew(!1)},maxWidth:"md",fullWidth:!0,onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(F.A,{component:"div",children:["Error Details for ",t]}),(0,a.jsxs)(R.A,{children:[(0,a.jsx)(M.default,{sx:{p:2,borderRadius:1,bgcolor:e=>eG("error.background"),color:e=>eG("error.text"),border:"1px solid",borderColor:e=>eG("error.border"),fontFamily:"monospace",fontSize:"0.875rem",fontWeight:500,whiteSpace:"pre-wrap",overflow:"auto",maxHeight:"300px",mb:2},children:Q||"Unknown error"}),V&&(0,a.jsxs)(M.default,{sx:{mt:2},children:[(0,a.jsx)(N.default,{variant:"h6",gutterBottom:!0,children:"Stderr Output:"}),(0,a.jsx)(M.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:V})]})]}),(0,a.jsxs)(W.A,{children:[(0,a.jsx)(I.A,{onClick:()=>ew(!1),children:"Close"}),(0,a.jsx)(I.A,{onClick:()=>{let e=[Q||"Unknown error",V?"\n\nStderr Output:\n".concat(V):""].join("");navigator.clipboard.writeText(e),eo.debug("Error copied to clipboard for server: ".concat(t)),eE("Error message copied to clipboard"),eF("success"),eT(!0)},color:"primary",children:"Copy to Clipboard"})]})]}),eh&&(0,a.jsx)(Z,{open:eC,onClose:()=>eO(!1),serverName:t,rootPath:O,installCommand:em,buildCommand:ef,enabled:z,updateInfo:eh,onToggle:P,onUpdated:ex}),(0,a.jsx)(K.A,{open:ez,autoHideDuration:3e3,onClose:()=>eT(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,a.jsx)(D.A,{onClose:()=>eT(!1),severity:eU,sx:{width:"100%"},children:eP||"Error message copied to clipboard"})})]})}},97104:(e,t,r)=>{r.d(t,{Xk:()=>s});var a=r(12115);function s(e,t){let[r,s]=(0,a.useState)(()=>(function(e,t){try{let r=window.localStorage.getItem(e);if(null===r)return t;return JSON.parse(r)}catch(e){return t}})(e,t));return[r,(0,a.useCallback)(t=>{s(r=>{let a="function"==typeof t?t(r):t;try{window.localStorage.setItem(e,JSON.stringify(a))}catch(e){}return a})},[e])]}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6731],{4543:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)([(0,o.jsx)("circle",{cx:"20",cy:"12",r:"2"},"0"),(0,o.jsx)("circle",{cx:"4",cy:"12",r:"2"},"1"),(0,o.jsx)("circle",{cx:"12",cy:"20",r:"2"},"2"),(0,o.jsx)("path",{d:"M10.05 8.59 6.03 4.55h-.01l-.31-.32-1.42 1.41 4.02 4.05.01-.01.31.32zm3.893.027 4.405-4.392L19.76 5.64l-4.405 4.393zM10.01 15.36l-1.42-1.41-4.03 4.01-.32.33 1.41 1.41 4.03-4.02zm9.75 2.94-3.99-4.01-.36-.35L14 15.35l3.99 4.01.35.35z"},"3"),(0,o.jsx)("circle",{cx:"12",cy:"4",r:"2"},"4")],"Stream")},8415:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"M4.5 11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5zm2.5-.5h1.5V15H10v-4.5h1.5V9H7zm5.5 0H14V15h1.5v-4.5H17V9h-4.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5m0 2.5h-2v-1h2z"}),"Http")},11414:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.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 2m-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39"}),"Public")},12857:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12z"}),"Cancel")},13548:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"M11 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8z"}),"Login")},16186:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.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")},20099:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"M16.91 14.09 17 14l2 2 4-4.04L21 10h-8.17zM3.98 6.81C2.2 7.85 1 9.79 1 12c0 3.31 2.69 6 6 6 2.21 0 4.15-1.2 5.18-2.99l7.59 7.59 1.41-1.41L2.81 2.81 1.39 4.22zm5.93 5.93C9.58 14.03 8.4 15 7 15c-1.65 0-3-1.35-3-3 0-1.4.97-2.58 2.26-2.91z"}),"KeyOff")},36944:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"}),"Home")},40171:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward")},48563:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.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 2m1 15h-2v-2h2zm0-4h-2V7h2z"}),"Error")},59652:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"M4 7v2c0 .55-.45 1-1 1H2v4h1c.55 0 1 .45 1 1v2c0 1.65 1.35 3 3 3h3v-2H7c-.55 0-1-.45-1-1v-2c0-1.3-.84-2.42-2-2.83v-.34C5.16 11.42 6 10.3 6 9V7c0-.55.45-1 1-1h3V4H7C5.35 4 4 5.35 4 7m17 3c-.55 0-1-.45-1-1V7c0-1.65-1.35-3-3-3h-3v2h3c.55 0 1 .45 1 1v2c0 1.3.84 2.42 2 2.83v.34c-1.16.41-2 1.52-2 2.83v2c0 .55-.45 1-1 1h-3v2h3c1.65 0 3-1.35 3-3v-2c0-.55.45-1 1-1h1v-4z"}),"DataObject")},74482:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zM6 20V4h7v5h5v11z"}),"InsertDriveFileOutlined")},79299:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"M20 6h-8l-2-2H4c-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-2m0 12H4V8h16z"}),"FolderOpen")},80007:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"M10 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"}),"Folder")},80412:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.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-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1z"}),"Lock")},80422:(e,t,n)=>{n.d(t,{A:()=>R});var r=n(12115),o=n(57001),a=n(47079),l=n(57421),c=n(11065);let i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{autoHideDuration:t=null,disableWindowBlurListener:n=!1,onClose:o,open:i,resumeHideDuration:s}=e,u=(0,a.A)();r.useEffect(()=>{if(i)return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)};function e(e){e.defaultPrevented||"Escape"!==e.key||null==o||o(e,"escapeKeyDown")}},[i,o]);let h=(0,l.A)((e,t)=>{null==o||o(e,t)}),d=(0,l.A)(e=>{o&&null!=e&&u.start(e,()=>{h(null,"timeout")})});r.useEffect(()=>(i&&d(t),u.clear),[i,t,d,u]);let v=u.clear,p=r.useCallback(()=>{null!=t&&d(null!=s?s:.5*t)},[t,s,d]);return r.useEffect(()=>{if(!n&&i)return window.addEventListener("focus",p),window.addEventListener("blur",v),()=>{window.removeEventListener("focus",p),window.removeEventListener("blur",v)}},[n,i,p,v]),{getRootProps:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n={...(0,c.A)(e),...(0,c.A)(t)};return{role:"presentation",...t,...n,onBlur:e=>{let t=n.onBlur;null==t||t(e),p()},onFocus:e=>{let t=n.onFocus;null==t||t(e),v()},onMouseEnter:e=>{let t=n.onMouseEnter;null==t||t(e),v()},onMouseLeave:e=>{let t=n.onMouseLeave;null==t||t(e),p()}}},onClickAway:e=>{null==o||o(e,"clickaway")}}};var s=n(30365),u=n(12699),h=n(12549);function d(e){return e.substring(2).toLowerCase()}function v(e){let{children:t,disableReactTree:n=!1,mouseEvent:o="onClick",onClickAway:a,touchEvent:c="onTouchEnd"}=e,i=r.useRef(!1),v=r.useRef(null),p=r.useRef(!1),m=r.useRef(!1);r.useEffect(()=>(setTimeout(()=>{p.current=!0},0),()=>{p.current=!1}),[]);let A=(0,s.A)((0,h.A)(t),v),f=(0,l.A)(e=>{let t=m.current;m.current=!1;let r=(0,u.A)(v.current);if(!(!p.current||!v.current||"clientX"in e&&(r.documentElement.clientWidth<e.clientX||r.documentElement.clientHeight<e.clientY))){if(i.current){i.current=!1;return}(e.composedPath?e.composedPath().includes(v.current):!r.documentElement.contains(e.target)||v.current.contains(e.target))||!n&&t||a(e)}}),g=e=>n=>{m.current=!0;let r=t.props[e];r&&r(n)},x={ref:A};return!1!==c&&(x[c]=g(c)),r.useEffect(()=>{if(!1!==c){let e=d(c),t=(0,u.A)(v.current),n=()=>{i.current=!0};return t.addEventListener(e,f),t.addEventListener("touchmove",n),()=>{t.removeEventListener(e,f),t.removeEventListener("touchmove",n)}}},[f,c]),!1!==o&&(x[o]=g(o)),r.useEffect(()=>{if(!1!==o){let e=d(o),t=(0,u.A)(v.current);return t.addEventListener(e,f),()=>{t.removeEventListener(e,f)}}},[f,o]),r.cloneElement(t,x)}var p=n(48116),m=n(33567),A=n(66964),f=n(16625),g=n(81852),x=n(22379),y=n(2821),k=n(8532),C=n(2300),L=n(85795),b=n(95195);function w(e){return(0,b.Ay)("MuiSnackbarContent",e)}(0,L.A)("MuiSnackbarContent",["root","message","action"]);var z=n(95155);let E=(0,p.Ay)(C.A,{name:"MuiSnackbarContent",slot:"Root",overridesResolver:(e,t)=>t.root})((0,A.A)(e=>{let{theme:t}=e,n="light"===t.palette.mode?.8:.98,r=(0,k.tL)(t.palette.background.default,n);return{...t.typography.body2,color:t.vars?t.vars.palette.SnackbarContent.color:t.palette.getContrastText(r),backgroundColor:t.vars?t.vars.palette.SnackbarContent.bg:r,display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",borderRadius:(t.vars||t).shape.borderRadius,flexGrow:1,[t.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),j=(0,p.Ay)("div",{name:"MuiSnackbarContent",slot:"Message",overridesResolver:(e,t)=>t.message})({padding:"8px 0"}),M=(0,p.Ay)("div",{name:"MuiSnackbarContent",slot:"Action",overridesResolver:(e,t)=>t.action})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),S=r.forwardRef(function(e,t){let n=(0,f.b)({props:e,name:"MuiSnackbarContent"}),{action:r,className:a,message:l,role:c="alert",...i}=n,s=(e=>{let{classes:t}=e;return(0,o.A)({root:["root"],action:["action"],message:["message"]},w,t)})(n);return(0,z.jsxs)(E,{role:c,square:!0,elevation:6,className:(0,y.A)(s.root,a),ownerState:n,ref:t,...i,children:[(0,z.jsx)(j,{className:s.message,ownerState:n,children:l}),r?(0,z.jsx)(M,{className:s.action,ownerState:n,children:r}):null]})});function H(e){return(0,b.Ay)("MuiSnackbar",e)}(0,L.A)("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]);var V=n(77765);let O=(0,p.Ay)("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t["anchorOrigin".concat((0,g.A)(n.anchorOrigin.vertical)).concat((0,g.A)(n.anchorOrigin.horizontal))]]}})((0,A.A)(e=>{let{theme:t}=e;return{zIndex:(t.vars||t).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:e=>{let{ownerState:t}=e;return"top"===t.anchorOrigin.vertical},style:{top:8,[t.breakpoints.up("sm")]:{top:24}}},{props:e=>{let{ownerState:t}=e;return"top"!==t.anchorOrigin.vertical},style:{bottom:8,[t.breakpoints.up("sm")]:{bottom:24}}},{props:e=>{let{ownerState:t}=e;return"left"===t.anchorOrigin.horizontal},style:{justifyContent:"flex-start",[t.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:e=>{let{ownerState:t}=e;return"right"===t.anchorOrigin.horizontal},style:{justifyContent:"flex-end",[t.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:e=>{let{ownerState:t}=e;return"center"===t.anchorOrigin.horizontal},style:{[t.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}})),R=r.forwardRef(function(e,t){let n=(0,f.b)({props:e,name:"MuiSnackbar"}),a=(0,m.A)(),l={enter:a.transitions.duration.enteringScreen,exit:a.transitions.duration.leavingScreen},{action:c,anchorOrigin:{vertical:s,horizontal:u}={vertical:"bottom",horizontal:"left"},autoHideDuration:h=null,children:d,className:p,ClickAwayListenerProps:A,ContentProps:y,disableWindowBlurListener:k=!1,message:C,onBlur:L,onClose:b,onFocus:w,onMouseEnter:E,onMouseLeave:j,open:M,resumeHideDuration:R,slots:P={},slotProps:T={},TransitionComponent:F,transitionDuration:B=l,TransitionProps:{onEnter:I,onExited:N,...W}={},..._}=n,D={...n,anchorOrigin:{vertical:s,horizontal:u},autoHideDuration:h,disableWindowBlurListener:k,TransitionComponent:F,transitionDuration:B},U=(e=>{let{classes:t,anchorOrigin:n}=e,r={root:["root","anchorOrigin".concat((0,g.A)(n.vertical)).concat((0,g.A)(n.horizontal))]};return(0,o.A)(r,H,t)})(D),{getRootProps:X,onClickAway:G}=i({...D}),[K,q]=r.useState(!0),Y={slots:{transition:F,...P},slotProps:{content:y,clickAwayListener:A,transition:W,...T}},[J,Q]=(0,V.A)("root",{ref:t,className:[U.root,p],elementType:O,getSlotProps:X,externalForwardedProps:{...Y,..._},ownerState:D}),[Z,{ownerState:$,...ee}]=(0,V.A)("clickAwayListener",{elementType:v,externalForwardedProps:Y,getSlotProps:e=>({onClickAway:function(){for(var t,n=arguments.length,r=Array(n),o=0;o<n;o++)r[o]=arguments[o];null==(t=e.onClickAway)||t.call(e,...r),G(...r)}}),ownerState:D}),[et,en]=(0,V.A)("content",{elementType:S,shouldForwardComponentProp:!0,externalForwardedProps:Y,additionalProps:{message:C,action:c},ownerState:D}),[er,eo]=(0,V.A)("transition",{elementType:x.A,externalForwardedProps:Y,getSlotProps:e=>({onEnter:function(){for(var t,n=arguments.length,r=Array(n),o=0;o<n;o++)r[o]=arguments[o];null==(t=e.onEnter)||t.call(e,...r),((e,t)=>{q(!1),I&&I(e,t)})(...r)},onExited:function(){for(var t,n=arguments.length,r=Array(n),o=0;o<n;o++)r[o]=arguments[o];null==(t=e.onExited)||t.call(e,...r),(e=>{q(!0),N&&N(e)})(...r)}}),additionalProps:{appear:!0,in:M,timeout:B,direction:"top"===s?"down":"up"},ownerState:D});return!M&&K?null:(0,z.jsx)(Z,{...ee,...P.clickAwayListener&&{ownerState:$},children:(0,z.jsx)(J,{...Q,children:(0,z.jsx)(er,{...eo,children:d||(0,z.jsx)(et,{...en})})})})})},84318:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"m1 9 2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9m8 8 3 3 3-3c-1.65-1.66-4.34-1.66-6 0m-4-4 2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13"}),"Wifi")},97714:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36697),o=n(95155);let a=(0,r.A)((0,o.jsx)("path",{d:"m12 16.5 4-4h-3v-9h-2v9H8zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2"}),"SystemUpdateAlt")}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7583],{2226:(e,t,r)=>{r.d(t,{Dp:()=>c,Dg:()=>u}),r(12115);var o=r(33065),a=r(95695),n=r(50361),s=r(46892),i=r(95155);let d=function(e){return(0,i.jsx)(a.A,{...e,defaultTheme:n.A,themeId:s.A})};function c(e){return function(t){return(0,i.jsx)(d,{styles:"function"==typeof e?r=>e({theme:r,...t}):e})}}function u(){return o.A}},9352:(e,t,r)=>{r.d(t,{Ic:()=>s,kY:()=>n});var o=r(26796);let a=(0,r(87021).h)("frontend/utils/theme"),n={light:{background:"#FFFFFF",foreground:"#2C3E50",paperBackground:"#F5F6FA",textSecondary:"#7F8C8D",border:"#e5e7eb",heading:"#111",text:"#333",secondaryText:"#666",error:{background:"#fef2f2",border:"#fecaca",text:"#dc2626"}},dark:{background:"#1a1a1a",foreground:"#f0f0f0",paperBackground:"#2a2a2a",textSecondary:"#aaaaaa",border:"#3a3a3a",heading:"#f8f8f8",text:"#f0f0f0",secondaryText:"#aaa",error:{background:"#3a2222",border:"#5a3333",text:"#f87171"}}};function s(){let{isDarkMode:e}=(0,o.useTheme)();return a.debug("useThemeUtils called with isDarkMode: ".concat(e)),{getThemeValue:(t,r)=>e?r:t,getThemeColor:t=>{let r=t.split("."),o=n[e?"dark":"light"];for(let e of r)if(!o||"object"!=typeof o||!(e in o))return a.warn("Theme color path not found: ".concat(t)),"";else o=o[e];return o},colors:e?n.dark:n.light,isDarkMode:e}}},26796:(e,t,r)=>{r.r(t),r.d(t,{ThemeProvider:()=>h,useTheme:()=>
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7583],{2226:(e,t,r)=>{r.d(t,{Dp:()=>c,Dg:()=>u}),r(12115);var o=r(33065),a=r(95695),n=r(50361),s=r(46892),i=r(95155);let d=function(e){return(0,i.jsx)(a.A,{...e,defaultTheme:n.A,themeId:s.A})};function c(e){return function(t){return(0,i.jsx)(d,{styles:"function"==typeof e?r=>e({theme:r,...t}):e})}}function u(){return o.A}},9352:(e,t,r)=>{r.d(t,{Ic:()=>s,kY:()=>n});var o=r(26796);let a=(0,r(87021).h)("frontend/utils/theme"),n={light:{background:"#FFFFFF",foreground:"#2C3E50",paperBackground:"#F5F6FA",textSecondary:"#7F8C8D",border:"#e5e7eb",heading:"#111",text:"#333",secondaryText:"#666",error:{background:"#fef2f2",border:"#fecaca",text:"#dc2626"}},dark:{background:"#1a1a1a",foreground:"#f0f0f0",paperBackground:"#2a2a2a",textSecondary:"#aaaaaa",border:"#3a3a3a",heading:"#f8f8f8",text:"#f0f0f0",secondaryText:"#aaa",error:{background:"#3a2222",border:"#5a3333",text:"#f87171"}}};function s(){let{isDarkMode:e}=(0,o.useTheme)();return a.debug("useThemeUtils called with isDarkMode: ".concat(e)),{getThemeValue:(t,r)=>e?r:t,getThemeColor:t=>{let r=t.split("."),o=n[e?"dark":"light"];for(let e of r)if(!o||"object"!=typeof o||!(e in o))return a.warn("Theme color path not found: ".concat(t)),"";else o=o[e];return o},colors:e?n.dark:n.light,isDarkMode:e}}},26796:(e,t,r)=>{r.r(t),r.d(t,{ThemeProvider:()=>h,useTheme:()=>g});var o=r(95155),a=r(12115),n=r(87021),s=r(7160),i=r(29197),d=r(9352),c=r(84563),u=r(29692);let l=(0,n.h)("frontend/contexts/ThemeContext"),f=(0,a.createContext)(void 0),h=e=>{let{children:t}=e,[r,n]=(0,a.useState)(!1),[h,g]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(async()=>{l.debug("Loading theme preference from storage");let e=await (0,u.YM)(u.Zg.THEME,"light");l.info("Theme loaded from storage: ".concat(e));let t="dark"===e;g(t),t?document.documentElement.classList.add("dark-theme"):document.documentElement.classList.remove("dark-theme"),n(!0)})()},[]);let m=(0,a.useMemo)(()=>(function(e){let t="dark"===e?d.kY.dark:d.kY.light;return(0,i.A)({palette:{mode:e,primary:{main:"#007bff"},secondary:{main:"#6c757d"},error:{main:"dark"===e?"#f87171":"#dc2626",light:"dark"===e?"#5a3333":"#fecaca",dark:"dark"===e?"#3a2222":"#b91c1c"},warning:{main:"#f59e0b"},info:{main:"#3b82f6"},success:{main:"dark"===e?"#4ade80":"#16a34a"},background:{default:t.background,paper:t.paperBackground},text:{primary:t.foreground,secondary:t.textSecondary}},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"}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:"0.375rem"}}}},MuiCard:{styleOverrides:{root:{borderRadius:"0.5rem",boxShadow:"dark"===e?"0 4px 6px -1px rgba(0, 0, 0, 0.2), 0 2px 4px -1px rgba(0, 0, 0, 0.1)":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"}}}}})})(h?"dark":"light"),[h]);return l.debug("Rendering ThemeProvider with isDarkMode: ".concat(h)),(0,o.jsx)(f.Provider,{value:{toggleTheme:()=>{g(e=>{let t=!e,r=t?"dark":"light";return l.info("Toggling theme to: ".concat(r)),t?document.documentElement.classList.add("dark-theme"):document.documentElement.classList.remove("dark-theme"),(0,u.VH)(u.Zg.THEME,r),t})},isDarkMode:h},children:(0,o.jsxs)(s.A,{theme:m,children:[(0,o.jsx)(c.Ay,{}),t]})})},g=()=>{let e=(0,a.useContext)(f);if(!e)throw l.error("useTheme hook used outside of ThemeProvider"),Error("useTheme must be used within a ThemeProvider");return l.debug("useTheme hook accessed"),e}},27156:(e,t,r)=>{r.d(t,{Z:()=>o});var o=function(e){return e.MODELS="models",e.FLOWS="flows",e.CHAT_HISTORY="history",e.THEME="theme",e.ENCRYPTION_KEY="encryption_key",e.MCP_SERVERS="mcp_servers",e.GLOBAL_ENV_VARS="global_env_vars",e.CURRENT_CONVERSATION_ID="current_conversation_id",e.SELECTED_FLOW_ID="selected_flow_id",e.SPEECH_SETTINGS="speech_settings",e.SPOTLIGHT_SERVERS="spotlight_servers",e.PLANNED_EXECUTIONS="planned_executions",e.MCP_AUTO_INSTALL_SETTINGS="mcp_auto_install_settings",e.MCP_QUALITY_SETTINGS="mcp_quality_settings",e.RUN_RESOURCE_SETTINGS="run_resource_settings",e.KV_STORE_SETTINGS="kv_store_settings",e.PENDING_APPROVALS="pending_approvals",e}({})},29692:(e,t,r)=>{r.d(t,{Zg:()=>o.Z,YM:()=>d,VH:()=>i,Mj:()=>s});var o=r(27156),a=r(12115);let n=(0,r(87021).h)("utils/storage/frontend.ts");function s(e,t){n.verbose("useLocalStorage: Entering method");let[r,o]=(0,a.useState)(t),[s,i]=(0,a.useState)(!0),d=(0,a.useRef)(r);return(0,a.useEffect)(()=>{d.current=r},[r]),(0,a.useEffect)(()=>{(async()=>{n.verbose("loadValue: Entering method");try{let r=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t)))),a=await r.json();r.ok&&o(a.value)}catch(t){n.warn('Error reading storage key "'.concat(e,'":'),t)}finally{i(!1)}})()},[e]),[r,(0,a.useCallback)(async t=>{n.verbose("setValue: Entering method");try{let r=t instanceof Function?t(d.current):t;if(o(r),!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:r})})).ok)throw Error("Failed to save value")}catch(t){n.warn('Error setting storage key "'.concat(e,'":'),t)}},[e]),s]}let i=async(e,t)=>{n.verbose("saveItem: Entering method");try{if(!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:t})})).ok)throw Error("Failed to save item")}catch(e){throw n.error("Error saving to storage:",e),e}},d=async(e,t)=>{n.verbose("loadItem: Entering method");try{let r=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t))));if(!r.ok)throw Error("Failed to load item");return(await r.json()).value}catch(e){return n.error("Error loading from storage:",e),t}}},44102:(e,t,r)=>{r.d(t,{A:()=>n}),r(12115);var o=r(10225),a=r(95155);function n(e){let{styles:t,defaultTheme:r={}}=e,n="function"==typeof t?e=>t(null==e||0===Object.keys(e).length?r:e):t;return(0,a.jsx)(o.mL,{styles:n})}},46320:(e,t,r)=>{r.d(t,{A:()=>i,I:()=>s});var o=r(12115),a=r(95155);let n=o.createContext(),s=()=>{let e=o.useContext(n);return null!=e&&e},i=function(e){let{value:t,...r}=e;return(0,a.jsx)(n.Provider,{value:null==t||t,...r})}},89255:(e,t,r)=>{r.d(t,{A:()=>a});var o=r(12115);let a="undefined"!=typeof window?o.useLayoutEffect:o.useEffect},95695:(e,t,r)=>{r.d(t,{A:()=>d}),r(12115);var o=r(54211),a=r(44102),n=r(89505),s=r(95155);function i(e){let t=(0,o.tT)(e);return e!==t&&t.styles?(t.styles.match(/^@layer\s+[^{]*$/)||(t.styles="@layer global{".concat(t.styles,"}")),t):e}let d=function(e){let{styles:t,themeId:r,defaultTheme:o={}}=e,d=(0,n.A)(o),c=r&&d[r]||d,u="function"==typeof t?t(c):t;return c.modularCssLayers&&(u=Array.isArray(u)?u.map(e=>"function"==typeof e?i(e(c)):i(e)):i(u)),(0,s.jsx)(a.A,{styles:u})}},99347:(e,t,r)=>{r.d(t,{A:()=>i});var o,a=r(12115);let n=0,s={...o||(o=r.t(a,2))}.useId;function i(e){if(void 0!==s){let t=s();return null!=e?e:t}let[t,r]=a.useState(e),o=e||t;return a.useEffect(()=>{null==t&&(n+=1,r("mui-".concat(n)))},[t]),o}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8187],{9352:(e,t,r)=>{r.d(t,{Ic:()=>i,kY:()=>n});var o=r(26796);let a=(0,r(87021).h)("frontend/utils/theme"),n={light:{background:"#FFFFFF",foreground:"#2C3E50",paperBackground:"#F5F6FA",textSecondary:"#7F8C8D",border:"#e5e7eb",heading:"#111",text:"#333",secondaryText:"#666",error:{background:"#fef2f2",border:"#fecaca",text:"#dc2626"}},dark:{background:"#1a1a1a",foreground:"#f0f0f0",paperBackground:"#2a2a2a",textSecondary:"#aaaaaa",border:"#3a3a3a",heading:"#f8f8f8",text:"#f0f0f0",secondaryText:"#aaa",error:{background:"#3a2222",border:"#5a3333",text:"#f87171"}}};function i(){let{isDarkMode:e}=(0,o.useTheme)();return a.debug("useThemeUtils called with isDarkMode: ".concat(e)),{getThemeValue:(t,r)=>e?r:t,getThemeColor:t=>{let r=t.split("."),o=n[e?"dark":"light"];for(let e of r)if(!o||"object"!=typeof o||!(e in o))return a.warn("Theme color path not found: ".concat(t)),"";else o=o[e];return o},colors:e?n.dark:n.light,isDarkMode:e}}},26796:(e,t,r)=>{r.r(t),r.d(t,{ThemeProvider:()=>m,useTheme:()=>f});var o=r(95155),a=r(12115),n=r(87021),i=r(7160),s=r(29197),d=r(9352),c=r(84563),l=r(29692);let u=(0,n.h)("frontend/contexts/ThemeContext"),h=(0,a.createContext)(void 0),m=e=>{let{children:t}=e,[r,n]=(0,a.useState)(!1),[m,f]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(async()=>{u.debug("Loading theme preference from storage");let e=await (0,l.YM)(l.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"),n(!0)})()},[]);let g=(0,a.useMemo)(()=>(function(e){let t="dark"===e?d.kY.dark:d.kY.light;return(0,s.A)({palette:{mode:e,primary:{main:"#007bff"},secondary:{main:"#6c757d"},error:{main:"dark"===e?"#f87171":"#dc2626",light:"dark"===e?"#5a3333":"#fecaca",dark:"dark"===e?"#3a2222":"#b91c1c"},warning:{main:"#f59e0b"},info:{main:"#3b82f6"},success:{main:"dark"===e?"#4ade80":"#16a34a"},background:{default:t.background,paper:t.paperBackground},text:{primary:t.foreground,secondary:t.textSecondary}},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"}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:"0.375rem"}}}},MuiCard:{styleOverrides:{root:{borderRadius:"0.5rem",boxShadow:"dark"===e?"0 4px 6px -1px rgba(0, 0, 0, 0.2), 0 2px 4px -1px rgba(0, 0, 0, 0.1)":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"}}}}})})(m?"dark":"light"),[m]);return u.debug("Rendering ThemeProvider with isDarkMode: ".concat(m)),(0,o.jsx)(h.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,l.VH)(l.Zg.THEME,r),t})},isDarkMode:m},children:(0,o.jsxs)(i.A,{theme:g,children:[(0,o.jsx)(c.Ay,{}),t]})})},f=()=>{let e=(0,a.useContext)(h);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}},27156:(e,t,r)=>{r.d(t,{Z:()=>o});var o=function(e){return e.MODELS="models",e.FLOWS="flows",e.CHAT_HISTORY="history",e.THEME="theme",e.ENCRYPTION_KEY="encryption_key",e.MCP_SERVERS="mcp_servers",e.GLOBAL_ENV_VARS="global_env_vars",e.CURRENT_CONVERSATION_ID="current_conversation_id",e.SELECTED_FLOW_ID="selected_flow_id",e.SPEECH_SETTINGS="speech_settings",e.SPOTLIGHT_SERVERS="spotlight_servers",e.PLANNED_EXECUTIONS="planned_executions",e.MCP_AUTO_INSTALL_SETTINGS="mcp_auto_install_settings",e.MCP_QUALITY_SETTINGS="mcp_quality_settings",e}({})},29692:(e,t,r)=>{r.d(t,{Zg:()=>o.Z,YM:()=>d,VH:()=>s,Mj:()=>i});var o=r(27156),a=r(12115);let n=(0,r(87021).h)("utils/storage/frontend.ts");function i(e,t){n.verbose("useLocalStorage: Entering method");let[r,o]=(0,a.useState)(t),[i,s]=(0,a.useState)(!0),d=(0,a.useRef)(r);return(0,a.useEffect)(()=>{d.current=r},[r]),(0,a.useEffect)(()=>{(async()=>{n.verbose("loadValue: Entering method");try{let r=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t)))),a=await r.json();r.ok&&o(a.value)}catch(t){n.warn('Error reading storage key "'.concat(e,'":'),t)}finally{s(!1)}})()},[e]),[r,(0,a.useCallback)(async t=>{n.verbose("setValue: Entering method");try{let r=t instanceof Function?t(d.current):t;if(o(r),!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:r})})).ok)throw Error("Failed to save value")}catch(t){n.warn('Error setting storage key "'.concat(e,'":'),t)}},[e]),i]}let s=async(e,t)=>{n.verbose("saveItem: Entering method");try{if(!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:t})})).ok)throw Error("Failed to save item")}catch(e){throw n.error("Error saving to storage:",e),e}},d=async(e,t)=>{n.verbose("loadItem: Entering method");try{let r=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t))));if(!r.ok)throw Error("Failed to load item");return(await r.json()).value}catch(e){return n.error("Error loading from storage:",e),t}}},48187:(e,t,r)=>{r.r(t),r.d(t,{default:()=>
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8187],{9352:(e,t,r)=>{r.d(t,{Ic:()=>i,kY:()=>n});var o=r(26796);let a=(0,r(87021).h)("frontend/utils/theme"),n={light:{background:"#FFFFFF",foreground:"#2C3E50",paperBackground:"#F5F6FA",textSecondary:"#7F8C8D",border:"#e5e7eb",heading:"#111",text:"#333",secondaryText:"#666",error:{background:"#fef2f2",border:"#fecaca",text:"#dc2626"}},dark:{background:"#1a1a1a",foreground:"#f0f0f0",paperBackground:"#2a2a2a",textSecondary:"#aaaaaa",border:"#3a3a3a",heading:"#f8f8f8",text:"#f0f0f0",secondaryText:"#aaa",error:{background:"#3a2222",border:"#5a3333",text:"#f87171"}}};function i(){let{isDarkMode:e}=(0,o.useTheme)();return a.debug("useThemeUtils called with isDarkMode: ".concat(e)),{getThemeValue:(t,r)=>e?r:t,getThemeColor:t=>{let r=t.split("."),o=n[e?"dark":"light"];for(let e of r)if(!o||"object"!=typeof o||!(e in o))return a.warn("Theme color path not found: ".concat(t)),"";else o=o[e];return o},colors:e?n.dark:n.light,isDarkMode:e}}},26796:(e,t,r)=>{r.r(t),r.d(t,{ThemeProvider:()=>m,useTheme:()=>f});var o=r(95155),a=r(12115),n=r(87021),i=r(7160),s=r(29197),d=r(9352),c=r(84563),l=r(29692);let u=(0,n.h)("frontend/contexts/ThemeContext"),h=(0,a.createContext)(void 0),m=e=>{let{children:t}=e,[r,n]=(0,a.useState)(!1),[m,f]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(async()=>{u.debug("Loading theme preference from storage");let e=await (0,l.YM)(l.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"),n(!0)})()},[]);let g=(0,a.useMemo)(()=>(function(e){let t="dark"===e?d.kY.dark:d.kY.light;return(0,s.A)({palette:{mode:e,primary:{main:"#007bff"},secondary:{main:"#6c757d"},error:{main:"dark"===e?"#f87171":"#dc2626",light:"dark"===e?"#5a3333":"#fecaca",dark:"dark"===e?"#3a2222":"#b91c1c"},warning:{main:"#f59e0b"},info:{main:"#3b82f6"},success:{main:"dark"===e?"#4ade80":"#16a34a"},background:{default:t.background,paper:t.paperBackground},text:{primary:t.foreground,secondary:t.textSecondary}},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"}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:"0.375rem"}}}},MuiCard:{styleOverrides:{root:{borderRadius:"0.5rem",boxShadow:"dark"===e?"0 4px 6px -1px rgba(0, 0, 0, 0.2), 0 2px 4px -1px rgba(0, 0, 0, 0.1)":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"}}}}})})(m?"dark":"light"),[m]);return u.debug("Rendering ThemeProvider with isDarkMode: ".concat(m)),(0,o.jsx)(h.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,l.VH)(l.Zg.THEME,r),t})},isDarkMode:m},children:(0,o.jsxs)(i.A,{theme:g,children:[(0,o.jsx)(c.Ay,{}),t]})})},f=()=>{let e=(0,a.useContext)(h);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}},27156:(e,t,r)=>{r.d(t,{Z:()=>o});var o=function(e){return e.MODELS="models",e.FLOWS="flows",e.CHAT_HISTORY="history",e.THEME="theme",e.ENCRYPTION_KEY="encryption_key",e.MCP_SERVERS="mcp_servers",e.GLOBAL_ENV_VARS="global_env_vars",e.CURRENT_CONVERSATION_ID="current_conversation_id",e.SELECTED_FLOW_ID="selected_flow_id",e.SPEECH_SETTINGS="speech_settings",e.SPOTLIGHT_SERVERS="spotlight_servers",e.PLANNED_EXECUTIONS="planned_executions",e.MCP_AUTO_INSTALL_SETTINGS="mcp_auto_install_settings",e.MCP_QUALITY_SETTINGS="mcp_quality_settings",e.RUN_RESOURCE_SETTINGS="run_resource_settings",e.KV_STORE_SETTINGS="kv_store_settings",e.PENDING_APPROVALS="pending_approvals",e}({})},29692:(e,t,r)=>{r.d(t,{Zg:()=>o.Z,YM:()=>d,VH:()=>s,Mj:()=>i});var o=r(27156),a=r(12115);let n=(0,r(87021).h)("utils/storage/frontend.ts");function i(e,t){n.verbose("useLocalStorage: Entering method");let[r,o]=(0,a.useState)(t),[i,s]=(0,a.useState)(!0),d=(0,a.useRef)(r);return(0,a.useEffect)(()=>{d.current=r},[r]),(0,a.useEffect)(()=>{(async()=>{n.verbose("loadValue: Entering method");try{let r=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t)))),a=await r.json();r.ok&&o(a.value)}catch(t){n.warn('Error reading storage key "'.concat(e,'":'),t)}finally{s(!1)}})()},[e]),[r,(0,a.useCallback)(async t=>{n.verbose("setValue: Entering method");try{let r=t instanceof Function?t(d.current):t;if(o(r),!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:r})})).ok)throw Error("Failed to save value")}catch(t){n.warn('Error setting storage key "'.concat(e,'":'),t)}},[e]),i]}let s=async(e,t)=>{n.verbose("saveItem: Entering method");try{if(!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:t})})).ok)throw Error("Failed to save item")}catch(e){throw n.error("Error saving to storage:",e),e}},d=async(e,t)=>{n.verbose("loadItem: Entering method");try{let r=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t))));if(!r.ok)throw Error("Failed to load item");return(await r.json()).value}catch(e){return n.error("Error loading from storage:",e),t}}},48187:(e,t,r)=>{r.r(t),r.d(t,{default:()=>y});var o=r(95155),a=r(33567),n=r(63417),i=r(30354),s=r(25635),d=r(94049),c=r(41983),l=r(26796),u=r(87021),h=r(35620),m=r(36525),f=r(52619),g=r.n(f),p=r(20063),E=r(60530);let k=(0,u.h)("frontend/components/Navigation"),x=[{name:"Models",path:"/models",tour:"nav-models"},{name:"MCP",path:"/mcp",tour:"nav-mcp"},{name:"Flows",path:"/flows",tour:"nav-flows"},{name:"Executions",path:"/executions",tour:"nav-executions"},{name:"Chat",path:"/chat",tour:"nav-chat"},{name:"Docs",path:"/docs",tour:"nav-docs"},{name:"Settings",path:"/settings",tour:"nav-settings"}];function y(){let{toggleTheme:e,isDarkMode:t}=(0,l.useTheme)();(0,a.A)();let r=(0,p.usePathname)(),u=(0,p.useRouter)();k.debug("Rendering Navigation component with pathname: ".concat(r));let f=e=>t=>{t.defaultPrevented||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||0!==t.button||(0,E.L_)(()=>u.push(e))&&t.preventDefault()};return(0,o.jsx)(n.A,{position:"sticky",color:"default",elevation:1,children:(0,o.jsxs)(i.A,{children:[(0,o.jsx)(s.default,{variant:"h6",component:g(),href:"/",onClick:f("/"),sx:{color:"text.primary",textDecoration:"none",flexGrow:0,mr:4,fontWeight:600},children:"FLUJO"}),(0,o.jsx)(d.default,{sx:{flexGrow:1,display:"flex",gap:2},children:x.map(e=>(0,o.jsx)(s.default,{component:g(),href:e.path,"data-tour":e.tour,onClick:f(e.path),sx:{color:r===e.path?"primary.main":"text.primary",textDecoration:"none",fontWeight:r===e.path?600:400,"&:hover":{color:"primary.main"}},children:e.name},e.path))}),(0,o.jsx)(c.A,{onClick:()=>{k.debug("Theme toggle clicked, current mode: ".concat(t?"dark":"light")),e()},color:"inherit",children:t?(0,o.jsx)(m.A,{}):(0,o.jsx)(h.A,{})})]})})}},60530:(e,t,r)=>{r.d(t,{L_:()=>i,QO:()=>a,bH:()=>n});let o=null;function a(e){o=e}function n(e){o===e&&(o=null)}function i(e){return!!o&&(o(e),!0)}}}]);
|