flujo-ai 3.22.0 → 3.24.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 +171 -168
- package/.next/app-path-routes-manifest.json +13 -13
- package/.next/build-manifest.json +7 -7
- package/.next/prerender-manifest.json +12 -12
- package/.next/react-loadable-manifest.json +6 -6
- package/.next/routes-manifest.json +19 -1
- package/.next/server/app/_not-found/page.js +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 -1
- package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/approvals/route.js +1 -1
- package/.next/server/app/api/approvals/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/backup/route.js +1 -1
- package/.next/server/app/api/backup/route.js.nft.json +1 -1
- package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/browse/route.js +1 -1
- package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/bugs/enhance/route.js +1 -1
- package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
- package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/route.js +1 -1
- package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/encryption/secure/route.js +1 -1
- package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
- package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/env/route.js +1 -1
- package/.next/server/app/api/env/route_client-reference-manifest.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 +1 -1
- 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.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 +5 -5
- 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 +1 -1
- 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_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_client-reference-manifest.js +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.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.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.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/route.js +1 -1
- package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/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 +1 -1
- package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
- package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update/route.js +1 -1
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/waves/route.js +1 -1
- package/.next/server/app/api/waves/route.js.nft.json +1 -1
- package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +10 -10
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +2 -2
- package/.next/server/app/docs/page.js +8 -2
- 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_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 +7 -7
- 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 +1 -1
- 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 +1 -1
- package/.next/server/app/page_client-reference-manifest.js +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 +3 -3
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/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/waves/page.js +1 -1
- package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
- package/.next/server/app/waves.html +1 -1
- package/.next/server/app/waves.rsc +1 -1
- package/.next/server/app-paths-manifest.json +13 -13
- package/.next/server/chunks/1083.js +1 -1
- package/.next/server/chunks/1197.js +1 -1
- package/.next/server/chunks/1226.js +1 -1
- package/.next/server/chunks/1373.js +1 -1
- package/.next/server/chunks/2823.js +6 -0
- package/.next/server/chunks/2859.js +1 -1
- package/.next/server/chunks/289.js +1 -1
- package/.next/server/chunks/{1556.js → 2998.js} +1 -1
- package/.next/server/chunks/3291.js +1 -0
- package/.next/server/chunks/3774.js +1 -1
- package/.next/server/chunks/3823.js +7 -6
- package/.next/server/chunks/3984.js +4 -4
- package/.next/server/chunks/4239.js +1 -1
- package/.next/server/chunks/4545.js +17 -0
- package/.next/server/chunks/4561.js +7 -6
- package/.next/server/chunks/4637.js +8 -2
- package/.next/server/chunks/4671.js +1 -1
- package/.next/server/chunks/472.js +1 -1
- package/.next/server/chunks/4771.js +3 -3
- package/.next/server/chunks/5708.js +7 -1
- package/.next/server/chunks/5734.js +4 -4
- package/.next/server/chunks/6996.js +3 -3
- package/.next/server/chunks/701.js +1 -1
- package/.next/server/chunks/7362.js +11 -11
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7723.js +1 -0
- package/.next/server/chunks/7769.js +6 -0
- package/.next/server/chunks/7821.js +1 -1
- package/.next/server/chunks/8652.js +1 -1
- package/.next/server/chunks/8739.js +1 -1
- package/.next/server/chunks/9509.js +2 -2
- package/.next/server/edge-instrumentation.js +2 -0
- package/.next/server/edge-instrumentation.js.map +1 -0
- package/.next/server/edge-runtime-webpack.js +2 -0
- package/.next/server/edge-runtime-webpack.js.map +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +33 -2
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/server/src/middleware.js +14 -0
- package/.next/server/src/middleware.js.map +1 -0
- package/.next/static/chunks/3454-a8db9caba457e5fa.js +1 -0
- package/.next/static/chunks/3730-149f2f058529f75f.js +1 -0
- package/.next/static/chunks/4749-f8796d16ff604d54.js +1 -0
- package/.next/static/chunks/6016.8201fa15ab6aa90e.js +1 -0
- package/.next/static/chunks/{6730-c330b55cd0fe4f47.js → 6257-ee5d8d88050d7705.js} +1 -1
- package/.next/static/chunks/{7583.7cb88044a5212b29.js → 7583.7af90b94e3c263f2.js} +1 -1
- package/.next/static/chunks/812-624e93f4c0f671c7.js +1 -0
- package/.next/static/chunks/{9181-8d8ecd3f641b7209.js → 8611-f6d51119761d52ff.js} +3 -3
- package/.next/static/chunks/{9164-3d34bf7eab100ac7.js → 9164-d9f1abba780231e0.js} +1 -1
- package/.next/static/chunks/app/chat/page-6a5b5f9ea2542fb3.js +1 -0
- package/.next/static/chunks/app/docs/page-935b0386917b91bb.js +1 -0
- package/.next/static/chunks/app/executions/page-d72027b0179e8fa2.js +1 -0
- package/.next/static/chunks/app/flows/page-fbce5abe34500f28.js +1 -0
- package/.next/static/chunks/app/mcp/{page-770a870b3d40766b.js → page-8666173926cabf31.js} +1 -1
- package/.next/static/chunks/app/models/{page-5a13ea6ff5ac1b9c.js → page-18dbd8e01cf87e98.js} +1 -1
- package/.next/static/chunks/{main-be8e823624954fab.js → main-9bda5041078d2b6a.js} +1 -1
- package/.next/static/chunks/{webpack-dded92b3d7b33173.js → webpack-f4a471ab560eb19e.js} +1 -1
- package/.next/trace +8 -9
- package/README.md +1 -1
- package/next.config.mjs +139 -119
- package/package.json +1 -1
- package/.next/server/chunks/264.js +0 -17
- package/.next/server/chunks/7214.js +0 -6
- package/.next/server/chunks/7463.js +0 -6
- package/.next/server/chunks/8357.js +0 -1
- package/.next/static/chunks/5545-2ab6e5d749e103cd.js +0 -1
- package/.next/static/chunks/6016.a157e5bde2faa652.js +0 -1
- package/.next/static/chunks/6920-a83ad5c0d5a54cf3.js +0 -1
- package/.next/static/chunks/812-181496bc32cd0cd3.js +0 -1
- package/.next/static/chunks/app/chat/page-3a3efba25b59a747.js +0 -1
- package/.next/static/chunks/app/docs/page-84a92c3d5d8d5e13.js +0 -1
- package/.next/static/chunks/app/executions/page-445afbf37819e3ce.js +0 -1
- package/.next/static/chunks/app/flows/page-74ebca19957cc6db.js +0 -1
- /package/.next/static/{MMmWHUQ3UAJBdRB7G1zGj → eUM7C1boixGI469h5wtIk}/_buildManifest.js +0 -0
- /package/.next/static/{MMmWHUQ3UAJBdRB7G1zGj → eUM7C1boixGI469h5wtIk}/_ssgManifest.js +0 -0
|
@@ -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:()=>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
|
+
"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.LAST_PICKED_FLOW_ID="last_picked_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}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[812],{17897:(e,r,t)=>{t.d(r,{S:()=>n});var o=t(56290);let a=(0,t(87021).h)("frontend/services/mcp/index");class s{async loadServerConfigs(){try{let e=await fetch("/api/mcp/servers"),r=await e.json();if(!e.ok||r&&r.error){let e=r&&r.error||"Failed to load server configs";return a.warn("Failed to load server configs:",e),{error:e}}return r}catch(e){return a.warn("Failed to load server configs:",e),{error:"Failed to load server configs"}}}async listServerTools(e){try{let r=this.toolsCache.get(e),t=Date.now();if(r&&t-r.timestamp<this.CACHE_TTL)return a.debug("Using cached tools for server ".concat(e)),{tools:r.tools};let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/tools")),s=await o.json();if(s.error)return a.warn("Error listing tools for server ".concat(e,":"),s.error),{tools:[],error:s.error};let n=Array.isArray(s.tools)?s.tools:[];return this.toolsCache.set(e,{tools:n,timestamp:t}),{tools:n}}catch(r){return a.warn("Failed to list tools for server ".concat(e,":"),r),{tools:[],error:"Failed to list tools: ".concat(r instanceof Error?r.message:"Unknown error")}}}clearToolsCache(e){e?(this.toolsCache.delete(e),a.debug("Cleared tools cache for server ".concat(e))):(this.toolsCache.clear(),a.debug("Cleared all tools cache"))}async listServerResources(e){try{let r=this.resourcesCache.get(e),t=Date.now();if(r&&t-r.timestamp<this.CACHE_TTL)return a.debug("Using cached resources for server ".concat(e)),r.data;let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/resources")),s=await o.json(),n={resources:Array.isArray(s.resources)?s.resources:[],resourceTemplates:Array.isArray(s.resourceTemplates)?s.resourceTemplates:[],error:s.error};return n.error||this.resourcesCache.set(e,{data:n,timestamp:t}),n}catch(r){return a.warn("Failed to list resources for server ".concat(e,":"),r),{resources:[],resourceTemplates:[],error:"Failed to list resources: ".concat(r instanceof Error?r.message:"Unknown error")}}}async readResource(e,r){try{let t=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/resources/read?uri=").concat(encodeURIComponent(r)));return await t.json()}catch(t){return a.warn("Failed to read resource ".concat(r," on server ").concat(e,":"),t),{success:!1,error:"Failed to read resource"}}}async listServerPrompts(e){try{let r=this.promptsCache.get(e),t=Date.now();if(r&&t-r.timestamp<this.CACHE_TTL)return a.debug("Using cached prompts for server ".concat(e)),{prompts:r.prompts};let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/prompts")),s=await o.json();if(s.error)return a.warn("Error listing prompts for server ".concat(e,":"),s.error),{prompts:[],error:s.error};let n=Array.isArray(s.prompts)?s.prompts:[];return this.promptsCache.set(e,{prompts:n,timestamp:t}),{prompts:n}}catch(r){return a.warn("Failed to list prompts for server ".concat(e,":"),r),{prompts:[],error:"Failed to list prompts: ".concat(r instanceof Error?r.message:"Unknown error")}}}async getPrompt(e,r,t){try{let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/prompts/get"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:r,arguments:t})});return await o.json()}catch(t){return a.warn("Failed to get prompt ".concat(r," on server ").concat(e,":"),t),{success:!1,error:"Failed to get prompt"}}}clearCapabilitiesCache(e){e?(this.resourcesCache.delete(e),this.promptsCache.delete(e)):(this.resourcesCache.clear(),this.promptsCache.clear())}async callTool(e,r,t,o){try{let a=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/tools/").concat(encodeURIComponent(r)),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({args:t,timeout:o})});return await a.json()}catch(t){return a.warn("Failed to call tool ".concat(r," on server ").concat(e,":"),t),{error:"Failed to call tool"}}}async updateServerConfig(e,r){try{let t=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e)),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}),o=await t.json();if(t.ok)return a.info("Successfully updated server config for ".concat(e)),{success:!0,data:o};if(void 0!==r.disabled)return a.info("Config update for ".concat(e," treated as success for toggle operation")),{success:!0,data:{...r,name:e},_originalError:o.error};return a.warn("Failed to update server config for ".concat(e,":"),o.error),{success:!1,error:o.error}}catch(r){return a.warn("Failed to update server config for ".concat(e,":"),r),{error:"Failed to update server config"}}}async testConnection(e,r){try{let t=await fetch("/api/mcp/test-connection",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,storedName:r})});return await t.json()}catch(r){return a.warn("Failed to test connection for ".concat(e.name,":"),r),{success:!1,error:"Failed to reach the FLUJO backend to run the connection test: ".concat(r instanceof Error?r.message:"Unknown error")}}}async testConnectionStreaming(e,r,t){try{let s=await fetch("/api/mcp/test-connection/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,storedName:t})});if(!s.ok||!s.body)return a.warn("Streaming test-connection unavailable (status ".concat(s.status,"); falling back")),this.testConnection(e,t);let n=null;if(await (0,o.z)(s,e=>{r(e),"result"===e.type&&(n={success:e.success,error:e.error,requiresAuthentication:e.requiresAuthentication,data:e.data})}),n)return n;return a.warn("Streaming test-connection ended without a result event"),{success:!1,error:"The connection test stream ended unexpectedly without a result."}}catch(r){return a.warn("Streaming test connection failed for ".concat(e.name,"; falling back to non-streaming:"),r),this.testConnection(e,t)}}async getServerStatus(e){try{let r=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/status"),{headers:{Accept:"application/json"}}),t=await r.json();if(t.error)return a.warn("Error getting status for server ".concat(e,":"),t.error),{status:"error",message:t.error};return t}catch(r){return a.warn("Failed to get status for server ".concat(e,":"),r),{status:"error",message:"Failed to get server status: ".concat(r instanceof Error?r.message:"Unknown error")}}}async deleteServerConfig(e){try{let r=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e)),{method:"DELETE"});return await r.json()}catch(r){return a.warn("Failed to delete server config for ".concat(e,":"),r),{error:"Failed to delete server config"}}}async retryServer(e){return a.debug("Retrying server status for: ".concat(e)),this.getServerStatus(e)}async restartServer(e){a.debug("Restarting server: ".concat(e));try{let r=await this.updateServerConfig(e,{disabled:!0});if(r.error)return a.warn("Failed to disable server ".concat(e," during restart:"),r.error),{error:"Failed to restart server: ".concat(r.error)};await new Promise(e=>setTimeout(e,1e3));let t=await this.updateServerConfig(e,{disabled:!1});if(t.error)return a.warn("Failed to enable server ".concat(e," during restart:"),t.error),{error:"Failed to restart server: ".concat(t.error)};return a.info("Successfully restarted server ".concat(e)),{success:!0}}catch(r){return a.warn("Failed to restart server ".concat(e,":"),r),{error:"Failed to restart server: ".concat(r instanceof Error?r.message:"Unknown error")}}}constructor(){this.toolsCache=new Map,this.resourcesCache=new Map,this.promptsCache=new Map,this.CACHE_TTL=6e4}}let n=new s},22573:(e,r,t)=>{t.d(r,{A:()=>p});var o=t(95155);t(12115);var a=t(33567),s=t(94049),n=t(41983),c=t(25635),i=t(28548),l=t(50430),d=t(63186),u=t(91665);let p=e=>{let{label:r,count:t,expanded:p,onToggle:m,showFolderIcon:h=!1,children:f}=e,y=(0,a.A)();return(0,o.jsxs)(s.default,{sx:{mb:1.5},children:[(0,o.jsxs)(s.default,{role:"button",tabIndex:0,"aria-expanded":p,onClick:m,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),m())},sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.75,borderRadius:1,cursor:"pointer",userSelect:"none",backgroundColor:y.palette.background.default,border:"1px solid ".concat(y.palette.divider),"&:hover":{backgroundColor:y.palette.action.hover}},children:[(0,o.jsx)(n.A,{size:"small","aria-label":p?"Collapse section":"Expand section",onClick:e=>{e.stopPropagation(),m()},sx:{transition:"transform 0.2s",transform:p?"rotate(0deg)":"rotate(-90deg)"},children:(0,o.jsx)(d.A,{fontSize:"small"})}),h&&(0,o.jsx)(u.A,{fontSize:"small",sx:{color:"text.secondary"}}),(0,o.jsx)(c.default,{variant:"subtitle2",sx:{fontWeight:600},children:r}),(0,o.jsx)(i.A,{label:t,size:"small",sx:{height:20,fontSize:"0.7rem"}})]}),(0,o.jsx)(l.A,{in:p,unmountOnExit:!0,children:(0,o.jsx)(s.default,{sx:{pt:1.5},children:f})})]})}},38459:(e,r,t)=>{function o(e,r){let t=[],o=new Map;for(let a of e){let{key:e,label:s}=r(a),n=o.get(e);n||(n={key:e,label:s,items:[]},o.set(e,n),t.push(n)),n.items.push(a)}return t}function a(e){let r=(null!=e?e:"").trim().charAt(0).toUpperCase();return r>="A"&&r<="Z"?{key:"letter:".concat(r),label:r}:{key:"letter:#",label:"#"}}function s(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Ungrouped",o=new Map,a=[];for(let t of e){var s;let e=null==(s=r(t))?void 0:s.trim();if(e){let r=o.get(e);r?r.push(t):o.set(e,[t])}else a.push(t)}let n=Array.from(o.keys()).sort((e,r)=>e.localeCompare(r)).map(e=>({key:"folder:".concat(e),label:e,items:o.get(e)}));return a.length>0&&n.push({key:"folder:__ungrouped__",label:t,items:a}),n}function n(e,r){let t=new Set;for(let a of e){var o;let e=null==(o=r(a))?void 0:o.trim();e&&t.add(e)}return Array.from(t).sort((e,r)=>e.localeCompare(r))}t.d(r,{Az:()=>o,Je:()=>s,po:()=>a,yF:()=>n})},43076:(e,r,t)=>{t.d(r,{N:()=>c,X:()=>n});let o=(0,t(87021).h)("frontend/services/model");class a{async fetchWithErrorHandling(e,r){try{o.debug("Making API request",{url:e,method:(null==r?void 0:r.method)||"GET"});let t=await fetch(e,r),a=null;try{if(204!==t.status){let r=t.headers.get("content-type");if(r&&r.includes("application/json"))a=await t.json();else{let s=await t.text();o.warn("Received non-JSON response",{url:e,contentType:r,text:s.substring(0,200)}),a=s}}}catch(r){throw o.error("Failed to parse response",{url:e,status:t.status,contentType:t.headers.get("content-type"),parseError:r}),Error("Invalid response format")}if(!t.ok){let s;throw s="object"==typeof a&&null!==a?a.error||a.message||a.errorMessage||JSON.stringify(a):a||"HTTP error! status: ".concat(t.status),o.error("Request failed",{url:e,method:(null==r?void 0:r.method)||"GET",status:t.status,error:s,data:a}),Error(s)}return o.debug("API request successful",{url:e,method:(null==r?void 0:r.method)||"GET",status:t.status}),a}catch(t){if(t instanceof TypeError&&"Failed to fetch"===t.message)throw o.error("Network error",{url:e,method:(null==r?void 0:r.method)||"GET",error:t}),Error("Unable to connect to the server. Please check your internet connection.");if(t instanceof Error)throw t;throw o.error("API request failed",{url:e,method:(null==r?void 0:r.method)||"GET",error:t}),Error("Failed to complete request")}}async tryLoadModels(){try{let e=await this.fetchWithErrorHandling("/api/model");return Array.isArray(e)?e:null}catch(e){return o.error("Failed to load models",e),null}}async loadModels(){var e;return null!=(e=await this.tryLoadModels())?e:[]}async getModel(e){try{return await this.fetchWithErrorHandling("/api/model/".concat(encodeURIComponent(e)))}catch(r){return o.error("Failed to get model",{id:e,error:r}),null}}async addModel(e){try{if(!e.provider)return{success:!1,error:"Provider is required"};o.debug("Attempting to add model",{displayName:e.displayName,provider:e.provider});let r=await this.fetchWithErrorHandling("/api/model",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return o.debug("Model added successfully",{modelId:r.id,displayName:r.displayName}),{success:!0,model:r}}catch(t){o.error("Failed to add model",{displayName:e.displayName,provider:e.provider,error:t instanceof Error?t.message:t});let r=t instanceof Error?t.message:"Failed to add model";if(r.includes("display name already exists"))return{success:!1,error:'The display name "'.concat(e.displayName,'" is already in use. Please choose a different name.')};if(r.includes("technical name already exists"))return{success:!1,error:'A model with the name "'.concat(e.name,'" already exists. Please choose a different name.')};return{success:!1,error:r}}}async updateModel(e){try{if(!e.id)return{success:!1,error:"Model ID is required"};o.debug("Attempting to update model",{modelId:e.id,displayName:e.displayName});let r=await this.fetchWithErrorHandling("/api/model/".concat(encodeURIComponent(e.id)),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return o.debug("Model updated successfully",{modelId:e.id,displayName:e.displayName}),{success:!0,model:r}}catch(t){o.error("Failed to update model",{modelId:e.id,displayName:e.displayName,error:t instanceof Error?t.message:t});let r=t instanceof Error?t.message:"Failed to update model";return r.includes("display name")&&r.includes("already exists"),{success:!1,error:r}}}async deleteModel(e){try{if(!e)return{success:!1,error:"Model ID is required"};let r=await this.getModel(e);if(!r)return{success:!1,error:"Model not found"};return o.debug("Attempting to delete model",{modelId:e,displayName:r.displayName}),await this.fetchWithErrorHandling("/api/model/".concat(encodeURIComponent(e)),{method:"DELETE"}),o.debug("Model deleted successfully",{modelId:e,displayName:r.displayName}),{success:!0}}catch(a){let r;try{let t=await this.getModel(e);r=null==t?void 0:t.displayName}catch(e){}o.error("Failed to delete model",{modelId:e,displayName:r,error:a instanceof Error?a.message:a});let t=a instanceof Error?a.message:"Failed to delete model";if(t.includes("not found"))return{success:!1,error:"The model no longer exists or has already been deleted"};return{success:!1,error:t}}}async updateModelApiKey(e,r){try{let t=await this.getModel(e);if(!t)return{success:!1,error:"Model not found"};return await this.updateModel({...t,ApiKey:r})}catch(r){return o.error("Failed to update model API key",{modelId:e,error:r}),{success:!1,error:r instanceof Error?r.message:"Failed to update API key"}}}async testModel(e){return o.debug("Testing model",{modelId:e.modelId,name:e.name}),await this.fetchWithErrorHandling("/api/model/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async fetchProviderModels(e,r,t,a){try{var s;o.debug("Fetching provider models",{baseUrl:e,modelId:r,searchTerm:t?'"'.concat(t,'"'):"none",apiKey:a?"provided":"not provided"});let n=await this.fetchWithErrorHandling("/api/model/provider",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:e,modelId:r,searchTerm:t,apiKey:a})});return o.debug("Provider models fetched successfully",{baseUrl:e,modelCount:(null==(s=n.models)?void 0:s.length)||0,searchTerm:t?'"'.concat(t,'"'):"none"}),n.models||[]}catch(r){return o.error("Failed to fetch provider models",{baseUrl:e,searchTerm:t,error:r}),[]}}}let s=null,n=()=>(s||(s=new a),s),c=new Proxy({},{get(e,r){let t=n(),o=t[r];return"function"==typeof o?o.bind(t):o}})},56290:(e,r,t)=>{t.d(r,{z:()=>o});async function o(e,r){if(!e.body||"function"!=typeof e.body.getReader)throw Error("Response has no readable body to stream");let t=e.body.getReader(),o=new TextDecoder,a=function(){let e="",r=(e,r)=>{let t=e.trim();if(t)try{r.push(JSON.parse(t))}catch(e){}};return{push(t){let o;e+=t;let a=[];for(;(o=e.indexOf("\n"))>=0;)r(e.slice(0,o),a),e=e.slice(o+1);return a},flush(){let t=[];return r(e,t),e="",t}}}();try{for(;;){let{value:e,done:s}=await t.read();if(s)break;for(let t of a.push(o.decode(e,{stream:!0})))r(t)}let e=o.decode();if(e)for(let t of a.push(e))r(t);for(let e of a.flush())r(e)}finally{try{t.releaseLock()}catch(e){}}}},81956:(e,r,t)=>{t.d(r,{A:()=>b});var o=t(95155),a=t(12115),s=t(36314),n=t(86973),c=t(49501),i=t(17681),l=t(21067),d=t(2778),u=t(52363),p=t(65036),m=t(9562),h=t(75912),f=t(91871),y=t(9693),g=t(91665),w=t(7517),v=t(8190);let b=e=>{let{anchorEl:r,open:t,currentFolder:b,folders:C,onClose:E,onAssign:x}=e,[A,S]=(0,a.useState)(!1),[j,F]=(0,a.useState)(""),k=e=>{x(e),E()},T=()=>{let e=j.trim();e&&(S(!1),k(e))};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(s.A,{anchorEl:r,open:t,onClose:E,children:[C.length>0&&C.map(e=>(0,o.jsxs)(n.A,{onClick:()=>k(e),selected:e===b,children:[(0,o.jsx)(c.A,{children:e===b?(0,o.jsx)(y.A,{fontSize:"small"}):(0,o.jsx)(g.A,{fontSize:"small"})}),(0,o.jsx)(i.A,{primary:e})]},e)),C.length>0&&(0,o.jsx)(l.A,{}),(0,o.jsxs)(n.A,{onClick:()=>{F(""),S(!0)},children:[(0,o.jsx)(c.A,{children:(0,o.jsx)(w.A,{fontSize:"small"})}),(0,o.jsx)(i.A,{primary:"New folder…"})]}),b&&(0,o.jsxs)(n.A,{onClick:()=>k(void 0),children:[(0,o.jsx)(c.A,{children:(0,o.jsx)(v.A,{fontSize:"small"})}),(0,o.jsx)(i.A,{primary:"Remove from folder"})]})]}),(0,o.jsxs)(d.A,{open:A,onClose:()=>S(!1),maxWidth:"xs",fullWidth:!0,children:[(0,o.jsx)(u.A,{children:"New folder"}),(0,o.jsx)(p.A,{children:(0,o.jsx)(m.A,{autoFocus:!0,margin:"dense",label:"Folder name",fullWidth:!0,value:j,onChange:e=>F(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),T())}})}),(0,o.jsxs)(h.A,{children:[(0,o.jsx)(f.A,{onClick:()=>S(!1),children:"Cancel"}),(0,o.jsx)(f.A,{variant:"contained",disabled:!j.trim(),onClick:T,children:"Create"})]})]})]})}},87021:(e,r,t)=>{t.d(r,{h:()=>i});let o={LOG_LEVEL:3},a={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},s="number"==typeof o.LOG_LEVEL?o.LOG_LEVEL:a.ERROR;function n(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(r>6)return String(e);if(!(e instanceof Error))return e;let t={name:e.name,message:e.message};for(let o of Object.getOwnPropertyNames(e)){if("name"===o||"message"===o)continue;let a=e[o];"function"!=typeof a&&("stack"===o?t.stack=a:"cause"===o?t.cause=n(a,r+1):"errors"===o&&Array.isArray(a)?t.errors=a.map(e=>n(e,r+1)):t[o]=a)}return t}function c(e,r,t,o,c){if(e>=("number"==typeof c?c:s)){if("function"==typeof o)try{o=o()}catch(e){o="[lazy log data threw]"}let s=new Date().toISOString(),c="[".concat(s,"] [").concat(r,"]"),i="".concat(c," ").concat(t);if(void 0!==o)if(o instanceof Error||"object"==typeof o)try{let e=o instanceof Error?n(o):o,r=JSON.stringify(e,(e,r)=>r instanceof Error?n(r):r,2);i+=":\n".concat(r)}catch(e){i+=": [Object cannot be stringified]"}else i+=": ".concat(o);switch(e){case a.VERBOSE:console.debug("[VERBOSE] ".concat(i));break;case a.DEBUG:console.debug(i);break;case a.INFO:console.info(i);break;case a.WARN:console.warn(i);break;case a.ERROR:console.error(i);break;default:console.log(i)}}}function i(e,r){let t,o=((t=e.replace(/^src\//,"")).startsWith("/")&&(t=t.substring(1)),t);return{verbose:(e,t)=>{c(a.VERBOSE,o,e,t,r)},debug:(e,t)=>{c(a.DEBUG,o,e,t,r)},info:(e,t)=>{c(a.INFO,o,e,t,r)},warn:(e,t)=>{c(a.WARN,o,e,t,r)},error:(e,t)=>{c(a.ERROR,o,e,t,r)}}}},94929:(e,r,t)=>{t.d(r,{default:()=>n});var o=t(95155);t(12115);var a=t(94049),s=t(4474);let n=e=>{let{size:r="medium",color:t="primary",className:n="",sx:c={}}=e,i="white"===t?{color:"#fff",...c}:c;return(0,o.jsxs)(a.default,{component:"span",sx:{display:"inline-block",lineHeight:0,...i},className:n,role:"status",children:[(0,o.jsx)(s.default,{size:{small:16,medium:24,large:36}[r],color:"white"===t?"inherit":t,"aria-hidden":"true"}),(0,o.jsx)(a.default,{component:"span",sx:{position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:0},children:"Loading..."})]})}},97104:(e,r,t)=>{t.d(r,{Xk:()=>a});var o=t(12115);function a(e,r){let[t,a]=(0,o.useState)(()=>(function(e,r){try{let t=window.localStorage.getItem(e);if(null===t)return r;return JSON.parse(t)}catch(e){return r}})(e,r));return[t,(0,o.useCallback)(r=>{a(t=>{let o="function"==typeof r?r(t):r;try{window.localStorage.setItem(e,JSON.stringify(o))}catch(e){}return o})},[e])]}}}]);
|