flujo-ai 3.40.0 → 3.41.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 +400 -384
- package/.next/app-path-routes-manifest.json +53 -53
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +33 -33
- package/.next/react-loadable-manifest.json +9 -9
- 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 +3 -3
- package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/assist/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/generator/route_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/authoring/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/automation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/flows/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/resources/read/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/servers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/feedback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/packages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/setup/ai-cli/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/statistics/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/telemetry/daily-active/route.js +1 -1
- package/.next/server/app/api/telemetry/daily-active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/automation/triggers/page.js +1 -1
- package/.next/server/app/automation/triggers/page.js.nft.json +1 -1
- package/.next/server/app/automation/triggers/page_client-reference-manifest.js +1 -1
- package/.next/server/app/automation/triggers.html +1 -1
- package/.next/server/app/automation/triggers.rsc +4 -4
- package/.next/server/app/automation/waves/page_client-reference-manifest.js +1 -1
- package/.next/server/app/automation/waves.html +1 -1
- package/.next/server/app/automation/waves.rsc +4 -4
- package/.next/server/app/chat/page.js +2 -2
- 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 +4 -4
- package/.next/server/app/docs/page.js +3 -3
- 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 +4 -4
- package/.next/server/app/executions/page.js +1 -1
- 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 +4 -4
- package/.next/server/app/flows/page.js +5 -3
- package/.next/server/app/flows/page.js.nft.json +1 -1
- package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/flows.html +1 -1
- package/.next/server/app/flows.rsc +4 -4
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/mcp/page.js +73 -44
- 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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp.html +1 -1
- package/.next/server/app/mcp.rsc +4 -4
- package/.next/server/app/models/page.js +7 -7
- package/.next/server/app/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages/page.js +1 -1
- package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages.html +1 -1
- package/.next/server/app/packages.rsc +4 -4
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +2 -2
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +4 -4
- package/.next/server/app/statistics/page.js +2 -2
- package/.next/server/app/statistics/page_client-reference-manifest.js +1 -1
- package/.next/server/app/statistics.html +1 -1
- package/.next/server/app/statistics.rsc +4 -4
- package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/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_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/models/route_client-reference-manifest.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 +4 -4
- package/.next/server/app-paths-manifest.json +53 -53
- package/.next/server/chunks/1227.js +1 -1
- package/.next/server/chunks/1403.js +2 -2
- package/.next/server/chunks/1539.js +1 -1
- package/.next/server/chunks/2069.js +1 -1
- package/.next/server/chunks/2372.js +1 -1
- package/.next/server/chunks/2828.js +2 -2
- package/.next/server/chunks/3422.js +1 -0
- package/.next/server/chunks/3945.js +3 -3
- package/.next/server/chunks/519.js +2 -2
- package/.next/server/chunks/5444.js +2 -2
- package/.next/server/chunks/5750.js +1 -1
- package/.next/server/chunks/5918.js +10 -10
- package/.next/server/chunks/6226.js +2 -2
- package/.next/server/chunks/9088.js +2 -2
- package/.next/server/chunks/9490.js +5 -0
- package/.next/server/chunks/9543.js +3 -3
- package/.next/server/chunks/9624.js +8 -8
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{1161-19176c3e7c655121.js → 1161-563a8028f59f00de.js} +1 -1
- package/.next/static/chunks/1521-9ad145dcb8e3abfc.js +1 -0
- package/.next/static/chunks/1576.06797b29a19fa26c.js +1 -0
- package/.next/static/chunks/{4386-e9621d3c94969a68.js → 2005-f9d38c39f10c321f.js} +1 -1
- package/.next/static/chunks/2493-da85c47ef972c066.js +1 -0
- package/.next/static/chunks/361.c88d43436e974006.js +1 -0
- package/.next/static/chunks/3731-c18f48522b159d7f.js +1 -0
- package/.next/static/chunks/3781.5086bce03aa281f7.js +1 -0
- package/.next/static/chunks/3969-15a32253b112652c.js +1 -0
- package/.next/static/chunks/4167.2ce97ca450815df1.js +1 -0
- package/.next/static/chunks/4814-52b7254ab573a455.js +1 -0
- package/.next/static/chunks/4965.d401547984d71b7a.js +1 -0
- package/.next/static/chunks/5148-9174ba300221fd1b.js +1 -0
- package/.next/static/chunks/5417-fb7d3760cc288ab1.js +1 -0
- package/.next/static/chunks/5967-34735763d1b03ccc.js +1 -0
- package/.next/static/chunks/7260-743e4b0cc4211dcb.js +1 -0
- package/.next/static/chunks/7711-7323dabe7dc02311.js +1 -0
- package/.next/static/chunks/8124-f99060fe1dfc119e.js +1 -0
- package/.next/static/chunks/8135-7fe07a34a8c49967.js +1 -0
- package/.next/static/chunks/8529.6187e01de8e9a692.js +1 -0
- package/.next/static/chunks/9136-e9ee57cc581ddd50.js +1 -0
- package/.next/static/chunks/9140.9180b569c4b26168.js +1 -0
- package/.next/static/chunks/9195-6a18a5867bb76c64.js +1 -0
- package/.next/static/chunks/app/automation/triggers/{page-594a6294c58344bf.js → page-34b9a8a2e6f28c2f.js} +1 -1
- package/.next/static/chunks/app/automation/waves/{page-ce2fef4996cad8e6.js → page-fd4929ea308183b2.js} +1 -1
- package/.next/static/chunks/app/chat/page-fb8a33db7628ecd0.js +1 -0
- package/.next/static/chunks/app/docs/page-3e21583b1cd5d7ca.js +1 -0
- package/.next/static/chunks/app/executions/{page-fcc848de86714386.js → page-56ecca56c17c05d7.js} +1 -1
- package/.next/static/chunks/app/flows/page-8c1a656197b15894.js +1 -0
- package/.next/static/chunks/app/layout-6e2756704ddc9f39.js +1 -0
- package/.next/static/chunks/app/mcp/page-4c4390354fdd94c8.js +1 -0
- package/.next/static/chunks/app/models/error-ea477f0ad52f4dcb.js +1 -0
- package/.next/static/chunks/app/models/page-e237ac64a0f62c3d.js +1 -0
- package/.next/static/chunks/app/packages/page-8680e4bea6b7ea45.js +1 -0
- package/.next/static/chunks/app/page-6dca06b6b7667181.js +1 -0
- package/.next/static/chunks/app/settings/page-a5f7fedcbf9e3a7f.js +1 -0
- package/.next/static/chunks/app/statistics/page-f9f9627d1c1ff963.js +1 -0
- package/.next/static/chunks/app/waves/{page-5b53af3eb9409414.js → page-7529febc48eb473d.js} +1 -1
- package/.next/static/chunks/{webpack-9fbd3587b9ef4dca.js → webpack-f3df493faa0bd612.js} +1 -1
- package/.next/static/css/{400b1b927c3ffaf6.css → 9f9b7f1374ac2d01.css} +1 -1
- package/.next/trace +11 -11
- package/README.md +1 -1
- package/mcp-servers/bash/package.json +1 -1
- package/mcp-servers/browser/package.json +1 -1
- package/mcp-servers/filesystem/package.json +1 -1
- package/mcp-servers/flujo/package.json +1 -1
- package/package.json +5 -5
- package/.next/server/chunks/7508.js +0 -5
- package/.next/server/chunks/8598.js +0 -1
- package/.next/static/chunks/1521-1c98c9a56726e053.js +0 -1
- package/.next/static/chunks/1576.bc6ae6c9e6d939d8.js +0 -1
- package/.next/static/chunks/2005.300528b5119c2d38.js +0 -1
- package/.next/static/chunks/2499-92cd97ce4993999f.js +0 -1
- package/.next/static/chunks/361.51d642c530c84295.js +0 -1
- package/.next/static/chunks/3731-64070760ae44448f.js +0 -1
- package/.next/static/chunks/4814-31eb5f3b10c651c1.js +0 -1
- package/.next/static/chunks/4965.39e24b54c3c6ca58.js +0 -1
- package/.next/static/chunks/5967-59fde8c214c9ca9f.js +0 -1
- package/.next/static/chunks/6417.70056fe81ca21682.js +0 -1
- package/.next/static/chunks/7711-4b017720ec49c96d.js +0 -1
- package/.next/static/chunks/8124-94140ee1dd8ed87c.js +0 -1
- package/.next/static/chunks/8135-5b975b9014f8920b.js +0 -1
- package/.next/static/chunks/8529.b5a43e728bb5bb8a.js +0 -1
- package/.next/static/chunks/9001-4c27a608feddb878.js +0 -1
- package/.next/static/chunks/9136-9c415453ec02519c.js +0 -1
- package/.next/static/chunks/9140.6502327a2c098d33.js +0 -1
- package/.next/static/chunks/9195-3c9c4300e7505d9e.js +0 -1
- package/.next/static/chunks/9524-b9d2c7e4426edd07.js +0 -1
- package/.next/static/chunks/app/chat/page-203cb7bf21638ada.js +0 -1
- package/.next/static/chunks/app/docs/page-c466a58caf5e3336.js +0 -1
- package/.next/static/chunks/app/flows/page-172c759ca81ba02f.js +0 -1
- package/.next/static/chunks/app/layout-a6ca531683a518a7.js +0 -1
- package/.next/static/chunks/app/mcp/page-0a96e6b30e45b1e6.js +0 -1
- package/.next/static/chunks/app/models/error-1964203c5c6e7d0e.js +0 -1
- package/.next/static/chunks/app/models/page-ad1cbea6d3324966.js +0 -1
- package/.next/static/chunks/app/packages/page-dda48425be9fc137.js +0 -1
- package/.next/static/chunks/app/page-04189aa1b1318c2d.js +0 -1
- package/.next/static/chunks/app/settings/page-906c229c87011ead.js +0 -1
- package/.next/static/chunks/app/statistics/page-9b13a95549f438c0.js +0 -1
- /package/.next/static/{b1aMk0634gkkiunttd1SQ → utOrEUSzguWncIosxgCeR}/_buildManifest.js +0 -0
- /package/.next/static/{b1aMk0634gkkiunttd1SQ → utOrEUSzguWncIosxgCeR}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{"4003ce37366709f5add0c98a6e32e47a1006fd7c7d":{"workers":{"app/api/approvals/[id]/route":{"moduleId":"91959","async":false},"app/api/approvals/route":{"moduleId":"91959","async":false},"app/api/backup/route":{"moduleId":"91959","async":false},"app/api/bugs/enhance/route":{"moduleId":"91959","async":false},"app/api/encryption/secure/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/convert-process-to-subflow/route":{"moduleId":"91959","async":false},"app/api/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/assist/route":{"moduleId":"91959","async":false},"app/api/flow/generate/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/flow/generator/route":{"moduleId":"91959","async":false},"app/api/flow/improve/route":{"moduleId":"91959","async":false},"app/api/flow/prompt-renderer/route":{"moduleId":"91959","async":false},"app/api/flow/quick-chat/route":{"moduleId":"91959","async":false},"app/api/flow/repair/route":{"moduleId":"91959","async":false},"app/api/flow/route":{"moduleId":"91959","async":false},"app/api/init/route":{"moduleId":"91959","async":false},"app/api/mcp-registry/route":{"moduleId":"91959","async":false},"app/api/mcp/cancel/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/authoring/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/automation/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/flows/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/state/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/status/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/model/provider/route":{"moduleId":"91959","async":false},"app/api/model/test/route":{"moduleId":"91959","async":false},"app/api/model/[id]/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"91959","async":false},"app/api/oauth/reset/route":{"moduleId":"91959","async":false},"app/api/packages/derive-secrets/route":{"moduleId":"91959","async":false},"app/api/packages/install/route":{"moduleId":"91959","async":false},"app/api/packages/install/status/route":{"moduleId":"91959","async":false},"app/api/packages/installed/route":{"moduleId":"91959","async":false},"app/api/packages/scan-targets/route":{"moduleId":"91959","async":false},"app/api/packages/resolve/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/packages/uninstall/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/run/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/runs/route":{"moduleId":"91959","async":false},"app/api/packages/build/route":{"moduleId":"91959","async":false},"app/api/planned-executions/reconcile/route":{"moduleId":"91959","async":false},"app/api/planned-executions/route":{"moduleId":"91959","async":false},"app/api/registry/auth/resend/route":{"moduleId":"91959","async":false},"app/api/registry/auth/reset/route":{"moduleId":"91959","async":false},"app/api/registry/auth/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/registry/packages/route":{"moduleId":"91959","async":false},"app/api/registry/publish/route":{"moduleId":"91959","async":false},"app/api/registry/settings/route":{"moduleId":"91959","async":false},"app/api/restore/route":{"moduleId":"91959","async":false},"app/api/runs/active/route":{"moduleId":"91959","async":false},"app/api/waves/route":{"moduleId":"91959","async":false},"app/api/webhooks/[id]/route":{"moduleId":"91959","async":false},"app/v1/chat/completions/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/breakpoints/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/edit-state/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/inject/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/revert/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/models/route":{"moduleId":"91959","async":false},"app/api/mcp/oauth-capability/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/stream/route":{"moduleId":"91959","async":false},"app/mcp-flows/route":{"moduleId":"91959","async":false},"app/mcp-proxy/[server]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/events/route":{"moduleId":"91959","async":false},"app/v1/chat/events/route":{"moduleId":"91959","async":false},"app/models/page":{"moduleId":"91959","async":false},"app/mcp/page":{"moduleId":"81017","async":false},"app/settings/page":{"moduleId":"81017","async":false}},"layer":{"app/api/approvals/[id]/route":"rsc","app/api/approvals/route":"rsc","app/api/backup/route":"rsc","app/api/bugs/enhance/route":"rsc","app/api/encryption/secure/route":"rsc","app/api/flow/[id]/convert-process-to-subflow/route":"rsc","app/api/env/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/assist/route":"rsc","app/api/flow/generate/route":"rsc","app/api/flow/compile/route":"rsc","app/api/flow/generator/route":"rsc","app/api/flow/improve/route":"rsc","app/api/flow/prompt-renderer/route":"rsc","app/api/flow/quick-chat/route":"rsc","app/api/flow/repair/route":"rsc","app/api/flow/route":"rsc","app/api/init/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/flujo/authoring/route":"rsc","app/api/mcp/flujo/automation/route":"rsc","app/api/mcp/flujo/flows/route":"rsc","app/api/mcp/flujo/resources/read/route":"rsc","app/api/mcp/flujo/resources/route":"rsc","app/api/mcp/flujo/servers/route":"rsc","app/api/mcp/flujo/tools/route":"rsc","app/api/mcp/flujo/state/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/test/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/packages/derive-secrets/route":"rsc","app/api/packages/install/route":"rsc","app/api/packages/install/status/route":"rsc","app/api/packages/installed/route":"rsc","app/api/packages/scan-targets/route":"rsc","app/api/packages/resolve/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/packages/uninstall/route":"rsc","app/api/planned-executions/[id]/route":"rsc","app/api/planned-executions/[id]/run/route":"rsc","app/api/planned-executions/[id]/runs/route":"rsc","app/api/packages/build/route":"rsc","app/api/planned-executions/reconcile/route":"rsc","app/api/planned-executions/route":"rsc","app/api/registry/auth/resend/route":"rsc","app/api/registry/auth/reset/route":"rsc","app/api/registry/auth/route":"rsc","app/api/registry/oauth/callback/route":"rsc","app/api/registry/oauth/initiate/route":"rsc","app/api/registry/packages/route":"rsc","app/api/registry/publish/route":"rsc","app/api/registry/settings/route":"rsc","app/api/restore/route":"rsc","app/api/runs/active/route":"rsc","app/api/waves/route":"rsc","app/api/webhooks/[id]/route":"rsc","app/v1/chat/completions/route":"rsc","app/v1/chat/conversations/[conversationId]/breakpoints/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/conversations/[conversationId]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/revert/route":"rsc","app/v1/chat/conversations/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/models/route":"rsc","app/api/mcp/oauth-capability/route":"rsc","app/api/mcp/test-connection/stream/route":"rsc","app/mcp-flows/route":"rsc","app/mcp-proxy/[server]/route":"rsc","app/v1/chat/conversations/[conversationId]/events/route":"rsc","app/v1/chat/events/route":"rsc","app/models/page":"rsc","app/mcp/page":"action-browser","app/settings/page":"action-browser"},"filename":"../C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\backend\\utils\\resolveGlobalVars.ts","exportedName":"resolveNonSecretGlobalVars"},"605caa1e030009a4bc7e820854ff481d3e0295325d":{"workers":{"app/api/approvals/[id]/route":{"moduleId":"91959","async":false},"app/api/approvals/route":{"moduleId":"91959","async":false},"app/api/backup/route":{"moduleId":"91959","async":false},"app/api/bugs/enhance/route":{"moduleId":"91959","async":false},"app/api/encryption/secure/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/convert-process-to-subflow/route":{"moduleId":"91959","async":false},"app/api/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/assist/route":{"moduleId":"91959","async":false},"app/api/flow/generate/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/flow/generator/route":{"moduleId":"91959","async":false},"app/api/flow/improve/route":{"moduleId":"91959","async":false},"app/api/flow/prompt-renderer/route":{"moduleId":"91959","async":false},"app/api/flow/quick-chat/route":{"moduleId":"91959","async":false},"app/api/flow/repair/route":{"moduleId":"91959","async":false},"app/api/flow/route":{"moduleId":"91959","async":false},"app/api/init/route":{"moduleId":"91959","async":false},"app/api/mcp-registry/route":{"moduleId":"91959","async":false},"app/api/mcp/cancel/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/authoring/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/automation/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/flows/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/state/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/status/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/model/provider/route":{"moduleId":"91959","async":false},"app/api/model/test/route":{"moduleId":"91959","async":false},"app/api/model/[id]/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"91959","async":false},"app/api/oauth/reset/route":{"moduleId":"91959","async":false},"app/api/packages/derive-secrets/route":{"moduleId":"91959","async":false},"app/api/packages/install/route":{"moduleId":"91959","async":false},"app/api/packages/install/status/route":{"moduleId":"91959","async":false},"app/api/packages/installed/route":{"moduleId":"91959","async":false},"app/api/packages/scan-targets/route":{"moduleId":"91959","async":false},"app/api/packages/resolve/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/packages/uninstall/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/run/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/runs/route":{"moduleId":"91959","async":false},"app/api/packages/build/route":{"moduleId":"91959","async":false},"app/api/planned-executions/reconcile/route":{"moduleId":"91959","async":false},"app/api/planned-executions/route":{"moduleId":"91959","async":false},"app/api/registry/auth/resend/route":{"moduleId":"91959","async":false},"app/api/registry/auth/reset/route":{"moduleId":"91959","async":false},"app/api/registry/auth/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/registry/packages/route":{"moduleId":"91959","async":false},"app/api/registry/publish/route":{"moduleId":"91959","async":false},"app/api/registry/settings/route":{"moduleId":"91959","async":false},"app/api/restore/route":{"moduleId":"91959","async":false},"app/api/runs/active/route":{"moduleId":"91959","async":false},"app/api/waves/route":{"moduleId":"91959","async":false},"app/api/webhooks/[id]/route":{"moduleId":"91959","async":false},"app/v1/chat/completions/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/breakpoints/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/edit-state/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/inject/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/revert/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/models/route":{"moduleId":"91959","async":false},"app/api/mcp/oauth-capability/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/stream/route":{"moduleId":"91959","async":false},"app/mcp-flows/route":{"moduleId":"91959","async":false},"app/mcp-proxy/[server]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/events/route":{"moduleId":"91959","async":false},"app/v1/chat/events/route":{"moduleId":"91959","async":false},"app/models/page":{"moduleId":"91959","async":false},"app/mcp/page":{"moduleId":"81017","async":false},"app/settings/page":{"moduleId":"81017","async":false}},"layer":{"app/api/approvals/[id]/route":"rsc","app/api/approvals/route":"rsc","app/api/backup/route":"rsc","app/api/bugs/enhance/route":"rsc","app/api/encryption/secure/route":"rsc","app/api/flow/[id]/convert-process-to-subflow/route":"rsc","app/api/env/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/assist/route":"rsc","app/api/flow/generate/route":"rsc","app/api/flow/compile/route":"rsc","app/api/flow/generator/route":"rsc","app/api/flow/improve/route":"rsc","app/api/flow/prompt-renderer/route":"rsc","app/api/flow/quick-chat/route":"rsc","app/api/flow/repair/route":"rsc","app/api/flow/route":"rsc","app/api/init/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/flujo/authoring/route":"rsc","app/api/mcp/flujo/automation/route":"rsc","app/api/mcp/flujo/flows/route":"rsc","app/api/mcp/flujo/resources/read/route":"rsc","app/api/mcp/flujo/resources/route":"rsc","app/api/mcp/flujo/servers/route":"rsc","app/api/mcp/flujo/tools/route":"rsc","app/api/mcp/flujo/state/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/test/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/packages/derive-secrets/route":"rsc","app/api/packages/install/route":"rsc","app/api/packages/install/status/route":"rsc","app/api/packages/installed/route":"rsc","app/api/packages/scan-targets/route":"rsc","app/api/packages/resolve/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/packages/uninstall/route":"rsc","app/api/planned-executions/[id]/route":"rsc","app/api/planned-executions/[id]/run/route":"rsc","app/api/planned-executions/[id]/runs/route":"rsc","app/api/packages/build/route":"rsc","app/api/planned-executions/reconcile/route":"rsc","app/api/planned-executions/route":"rsc","app/api/registry/auth/resend/route":"rsc","app/api/registry/auth/reset/route":"rsc","app/api/registry/auth/route":"rsc","app/api/registry/oauth/callback/route":"rsc","app/api/registry/oauth/initiate/route":"rsc","app/api/registry/packages/route":"rsc","app/api/registry/publish/route":"rsc","app/api/registry/settings/route":"rsc","app/api/restore/route":"rsc","app/api/runs/active/route":"rsc","app/api/waves/route":"rsc","app/api/webhooks/[id]/route":"rsc","app/v1/chat/completions/route":"rsc","app/v1/chat/conversations/[conversationId]/breakpoints/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/conversations/[conversationId]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/revert/route":"rsc","app/v1/chat/conversations/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/models/route":"rsc","app/api/mcp/oauth-capability/route":"rsc","app/api/mcp/test-connection/stream/route":"rsc","app/mcp-flows/route":"rsc","app/mcp-proxy/[server]/route":"rsc","app/v1/chat/conversations/[conversationId]/events/route":"rsc","app/v1/chat/events/route":"rsc","app/models/page":"rsc","app/mcp/page":"action-browser","app/settings/page":"action-browser"},"filename":"../C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\backend\\utils\\resolveGlobalVars.ts","exportedName":"resolveGlobalVars"},"6061ed6d99a98b5d9f5d2d15065caab0a27d6a8987":{"workers":{"app/api/approvals/[id]/route":{"moduleId":"91959","async":false},"app/api/approvals/route":{"moduleId":"91959","async":false},"app/api/backup/route":{"moduleId":"91959","async":false},"app/api/bugs/enhance/route":{"moduleId":"91959","async":false},"app/api/encryption/secure/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/convert-process-to-subflow/route":{"moduleId":"91959","async":false},"app/api/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/assist/route":{"moduleId":"91959","async":false},"app/api/flow/generate/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/flow/generator/route":{"moduleId":"91959","async":false},"app/api/flow/improve/route":{"moduleId":"91959","async":false},"app/api/flow/prompt-renderer/route":{"moduleId":"91959","async":false},"app/api/flow/quick-chat/route":{"moduleId":"91959","async":false},"app/api/flow/repair/route":{"moduleId":"91959","async":false},"app/api/flow/route":{"moduleId":"91959","async":false},"app/api/init/route":{"moduleId":"91959","async":false},"app/api/mcp-registry/route":{"moduleId":"91959","async":false},"app/api/mcp/cancel/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/authoring/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/automation/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/flows/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/state/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/status/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/model/provider/route":{"moduleId":"91959","async":false},"app/api/model/test/route":{"moduleId":"91959","async":false},"app/api/model/[id]/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"91959","async":false},"app/api/oauth/reset/route":{"moduleId":"91959","async":false},"app/api/packages/derive-secrets/route":{"moduleId":"91959","async":false},"app/api/packages/install/route":{"moduleId":"91959","async":false},"app/api/packages/install/status/route":{"moduleId":"91959","async":false},"app/api/packages/installed/route":{"moduleId":"91959","async":false},"app/api/packages/scan-targets/route":{"moduleId":"91959","async":false},"app/api/packages/resolve/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/packages/uninstall/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/run/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/runs/route":{"moduleId":"91959","async":false},"app/api/packages/build/route":{"moduleId":"91959","async":false},"app/api/planned-executions/reconcile/route":{"moduleId":"91959","async":false},"app/api/planned-executions/route":{"moduleId":"91959","async":false},"app/api/registry/auth/resend/route":{"moduleId":"91959","async":false},"app/api/registry/auth/reset/route":{"moduleId":"91959","async":false},"app/api/registry/auth/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/registry/packages/route":{"moduleId":"91959","async":false},"app/api/registry/publish/route":{"moduleId":"91959","async":false},"app/api/registry/settings/route":{"moduleId":"91959","async":false},"app/api/restore/route":{"moduleId":"91959","async":false},"app/api/runs/active/route":{"moduleId":"91959","async":false},"app/api/waves/route":{"moduleId":"91959","async":false},"app/api/webhooks/[id]/route":{"moduleId":"91959","async":false},"app/v1/chat/completions/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/breakpoints/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/edit-state/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/inject/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/revert/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/models/route":{"moduleId":"91959","async":false},"app/api/mcp/oauth-capability/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/stream/route":{"moduleId":"91959","async":false},"app/mcp-flows/route":{"moduleId":"91959","async":false},"app/mcp-proxy/[server]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/events/route":{"moduleId":"91959","async":false},"app/v1/chat/events/route":{"moduleId":"91959","async":false},"app/models/page":{"moduleId":"91959","async":false},"app/mcp/page":{"moduleId":"81017","async":false},"app/settings/page":{"moduleId":"81017","async":false}},"layer":{"app/api/approvals/[id]/route":"rsc","app/api/approvals/route":"rsc","app/api/backup/route":"rsc","app/api/bugs/enhance/route":"rsc","app/api/encryption/secure/route":"rsc","app/api/flow/[id]/convert-process-to-subflow/route":"rsc","app/api/env/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/assist/route":"rsc","app/api/flow/generate/route":"rsc","app/api/flow/compile/route":"rsc","app/api/flow/generator/route":"rsc","app/api/flow/improve/route":"rsc","app/api/flow/prompt-renderer/route":"rsc","app/api/flow/quick-chat/route":"rsc","app/api/flow/repair/route":"rsc","app/api/flow/route":"rsc","app/api/init/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/flujo/authoring/route":"rsc","app/api/mcp/flujo/automation/route":"rsc","app/api/mcp/flujo/flows/route":"rsc","app/api/mcp/flujo/resources/read/route":"rsc","app/api/mcp/flujo/resources/route":"rsc","app/api/mcp/flujo/servers/route":"rsc","app/api/mcp/flujo/tools/route":"rsc","app/api/mcp/flujo/state/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/test/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/packages/derive-secrets/route":"rsc","app/api/packages/install/route":"rsc","app/api/packages/install/status/route":"rsc","app/api/packages/installed/route":"rsc","app/api/packages/scan-targets/route":"rsc","app/api/packages/resolve/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/packages/uninstall/route":"rsc","app/api/planned-executions/[id]/route":"rsc","app/api/planned-executions/[id]/run/route":"rsc","app/api/planned-executions/[id]/runs/route":"rsc","app/api/packages/build/route":"rsc","app/api/planned-executions/reconcile/route":"rsc","app/api/planned-executions/route":"rsc","app/api/registry/auth/resend/route":"rsc","app/api/registry/auth/reset/route":"rsc","app/api/registry/auth/route":"rsc","app/api/registry/oauth/callback/route":"rsc","app/api/registry/oauth/initiate/route":"rsc","app/api/registry/packages/route":"rsc","app/api/registry/publish/route":"rsc","app/api/registry/settings/route":"rsc","app/api/restore/route":"rsc","app/api/runs/active/route":"rsc","app/api/waves/route":"rsc","app/api/webhooks/[id]/route":"rsc","app/v1/chat/completions/route":"rsc","app/v1/chat/conversations/[conversationId]/breakpoints/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/conversations/[conversationId]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/revert/route":"rsc","app/v1/chat/conversations/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/models/route":"rsc","app/api/mcp/oauth-capability/route":"rsc","app/api/mcp/test-connection/stream/route":"rsc","app/mcp-flows/route":"rsc","app/mcp-proxy/[server]/route":"rsc","app/v1/chat/conversations/[conversationId]/events/route":"rsc","app/v1/chat/events/route":"rsc","app/models/page":"rsc","app/mcp/page":"action-browser","app/settings/page":"action-browser"},"filename":"../C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\backend\\utils\\resolveGlobalVars.ts","exportedName":"resolveAndDecryptApiKey"}},"edge":{},"encryptionKey":"VdE9c1sIalXQuPGJWNUKWkO72EvzBDr46ha1orwzXsI="}
|
|
1
|
+
{"node":{"4003ce37366709f5add0c98a6e32e47a1006fd7c7d":{"workers":{"app/api/approvals/[id]/route":{"moduleId":"91959","async":false},"app/api/bugs/enhance/route":{"moduleId":"91959","async":false},"app/api/backup/route":{"moduleId":"91959","async":false},"app/api/approvals/route":{"moduleId":"91959","async":false},"app/api/encryption/secure/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/convert-process-to-subflow/route":{"moduleId":"91959","async":false},"app/api/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/assist/route":{"moduleId":"91959","async":false},"app/api/flow/generator/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/improve/route":{"moduleId":"91959","async":false},"app/api/flow/prompt-renderer/route":{"moduleId":"91959","async":false},"app/api/flow/repair/route":{"moduleId":"91959","async":false},"app/api/init/route":{"moduleId":"91959","async":false},"app/api/flow/quick-chat/route":{"moduleId":"91959","async":false},"app/api/flow/route":{"moduleId":"91959","async":false},"app/api/flow/generate/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/authoring/route":{"moduleId":"91959","async":false},"app/api/mcp-registry/route":{"moduleId":"91959","async":false},"app/api/mcp/cancel/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/automation/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/flows/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/state/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/status/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"91959","async":false},"app/api/model/[id]/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/model/test/route":{"moduleId":"91959","async":false},"app/api/model/provider/route":{"moduleId":"91959","async":false},"app/api/oauth/reset/route":{"moduleId":"91959","async":false},"app/api/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/packages/install/route":{"moduleId":"91959","async":false},"app/api/packages/install/status/route":{"moduleId":"91959","async":false},"app/api/packages/derive-secrets/route":{"moduleId":"91959","async":false},"app/api/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/packages/resolve/route":{"moduleId":"91959","async":false},"app/api/packages/scan-targets/route":{"moduleId":"91959","async":false},"app/api/packages/uninstall/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/run/route":{"moduleId":"91959","async":false},"app/api/planned-executions/route":{"moduleId":"91959","async":false},"app/api/packages/build/route":{"moduleId":"91959","async":false},"app/api/planned-executions/reconcile/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/runs/route":{"moduleId":"91959","async":false},"app/api/registry/auth/resend/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/registry/auth/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/packages/installed/route":{"moduleId":"91959","async":false},"app/api/registry/auth/reset/route":{"moduleId":"91959","async":false},"app/api/registry/settings/route":{"moduleId":"91959","async":false},"app/api/registry/publish/route":{"moduleId":"91959","async":false},"app/api/runs/active/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/restore/route":{"moduleId":"91959","async":false},"app/api/registry/packages/route":{"moduleId":"91959","async":false},"app/api/waves/route":{"moduleId":"91959","async":false},"app/api/webhooks/[id]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/breakpoints/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/route":{"moduleId":"91959","async":false},"app/v1/chat/completions/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/edit-state/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/inject/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/models/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/revert/route":{"moduleId":"91959","async":false},"app/api/mcp/oauth-capability/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/stream/route":{"moduleId":"91959","async":false},"app/mcp-flows/route":{"moduleId":"91959","async":false},"app/mcp-proxy/[server]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/events/route":{"moduleId":"91959","async":false},"app/v1/chat/events/route":{"moduleId":"91959","async":false},"app/models/page":{"moduleId":"91959","async":false},"app/mcp/page":{"moduleId":"81017","async":false},"app/settings/page":{"moduleId":"81017","async":false}},"layer":{"app/api/approvals/[id]/route":"rsc","app/api/bugs/enhance/route":"rsc","app/api/backup/route":"rsc","app/api/approvals/route":"rsc","app/api/encryption/secure/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/convert-process-to-subflow/route":"rsc","app/api/env/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/assist/route":"rsc","app/api/flow/generator/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/improve/route":"rsc","app/api/flow/prompt-renderer/route":"rsc","app/api/flow/repair/route":"rsc","app/api/init/route":"rsc","app/api/flow/quick-chat/route":"rsc","app/api/flow/route":"rsc","app/api/flow/generate/route":"rsc","app/api/flow/compile/route":"rsc","app/api/mcp/flujo/authoring/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/flujo/automation/route":"rsc","app/api/mcp/flujo/flows/route":"rsc","app/api/mcp/flujo/servers/route":"rsc","app/api/mcp/flujo/state/route":"rsc","app/api/mcp/flujo/tools/route":"rsc","app/api/mcp/flujo/resources/read/route":"rsc","app/api/mcp/flujo/resources/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/route":"rsc","app/api/model/test/route":"rsc","app/api/model/provider/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/packages/install/route":"rsc","app/api/packages/install/status/route":"rsc","app/api/packages/derive-secrets/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/packages/resolve/route":"rsc","app/api/packages/scan-targets/route":"rsc","app/api/packages/uninstall/route":"rsc","app/api/planned-executions/[id]/route":"rsc","app/api/planned-executions/[id]/run/route":"rsc","app/api/planned-executions/route":"rsc","app/api/packages/build/route":"rsc","app/api/planned-executions/reconcile/route":"rsc","app/api/planned-executions/[id]/runs/route":"rsc","app/api/registry/auth/resend/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/registry/auth/route":"rsc","app/api/registry/oauth/initiate/route":"rsc","app/api/packages/installed/route":"rsc","app/api/registry/auth/reset/route":"rsc","app/api/registry/settings/route":"rsc","app/api/registry/publish/route":"rsc","app/api/runs/active/route":"rsc","app/api/registry/oauth/callback/route":"rsc","app/api/restore/route":"rsc","app/api/registry/packages/route":"rsc","app/api/waves/route":"rsc","app/api/webhooks/[id]/route":"rsc","app/v1/chat/conversations/[conversationId]/breakpoints/route":"rsc","app/v1/chat/conversations/[conversationId]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/completions/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/models/route":"rsc","app/v1/chat/conversations/[conversationId]/revert/route":"rsc","app/api/mcp/oauth-capability/route":"rsc","app/api/mcp/test-connection/stream/route":"rsc","app/mcp-flows/route":"rsc","app/mcp-proxy/[server]/route":"rsc","app/v1/chat/conversations/[conversationId]/events/route":"rsc","app/v1/chat/events/route":"rsc","app/models/page":"rsc","app/mcp/page":"action-browser","app/settings/page":"action-browser"},"filename":"../C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\backend\\utils\\resolveGlobalVars.ts","exportedName":"resolveNonSecretGlobalVars"},"605caa1e030009a4bc7e820854ff481d3e0295325d":{"workers":{"app/api/approvals/[id]/route":{"moduleId":"91959","async":false},"app/api/bugs/enhance/route":{"moduleId":"91959","async":false},"app/api/backup/route":{"moduleId":"91959","async":false},"app/api/approvals/route":{"moduleId":"91959","async":false},"app/api/encryption/secure/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/convert-process-to-subflow/route":{"moduleId":"91959","async":false},"app/api/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/assist/route":{"moduleId":"91959","async":false},"app/api/flow/generator/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/improve/route":{"moduleId":"91959","async":false},"app/api/flow/prompt-renderer/route":{"moduleId":"91959","async":false},"app/api/flow/repair/route":{"moduleId":"91959","async":false},"app/api/init/route":{"moduleId":"91959","async":false},"app/api/flow/quick-chat/route":{"moduleId":"91959","async":false},"app/api/flow/route":{"moduleId":"91959","async":false},"app/api/flow/generate/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/authoring/route":{"moduleId":"91959","async":false},"app/api/mcp-registry/route":{"moduleId":"91959","async":false},"app/api/mcp/cancel/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/automation/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/flows/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/state/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/status/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"91959","async":false},"app/api/model/[id]/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/model/test/route":{"moduleId":"91959","async":false},"app/api/model/provider/route":{"moduleId":"91959","async":false},"app/api/oauth/reset/route":{"moduleId":"91959","async":false},"app/api/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/packages/install/route":{"moduleId":"91959","async":false},"app/api/packages/install/status/route":{"moduleId":"91959","async":false},"app/api/packages/derive-secrets/route":{"moduleId":"91959","async":false},"app/api/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/packages/resolve/route":{"moduleId":"91959","async":false},"app/api/packages/scan-targets/route":{"moduleId":"91959","async":false},"app/api/packages/uninstall/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/run/route":{"moduleId":"91959","async":false},"app/api/planned-executions/route":{"moduleId":"91959","async":false},"app/api/packages/build/route":{"moduleId":"91959","async":false},"app/api/planned-executions/reconcile/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/runs/route":{"moduleId":"91959","async":false},"app/api/registry/auth/resend/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/registry/auth/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/packages/installed/route":{"moduleId":"91959","async":false},"app/api/registry/auth/reset/route":{"moduleId":"91959","async":false},"app/api/registry/settings/route":{"moduleId":"91959","async":false},"app/api/registry/publish/route":{"moduleId":"91959","async":false},"app/api/runs/active/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/restore/route":{"moduleId":"91959","async":false},"app/api/registry/packages/route":{"moduleId":"91959","async":false},"app/api/waves/route":{"moduleId":"91959","async":false},"app/api/webhooks/[id]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/breakpoints/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/route":{"moduleId":"91959","async":false},"app/v1/chat/completions/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/edit-state/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/inject/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/models/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/revert/route":{"moduleId":"91959","async":false},"app/api/mcp/oauth-capability/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/stream/route":{"moduleId":"91959","async":false},"app/mcp-flows/route":{"moduleId":"91959","async":false},"app/mcp-proxy/[server]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/events/route":{"moduleId":"91959","async":false},"app/v1/chat/events/route":{"moduleId":"91959","async":false},"app/models/page":{"moduleId":"91959","async":false},"app/mcp/page":{"moduleId":"81017","async":false},"app/settings/page":{"moduleId":"81017","async":false}},"layer":{"app/api/approvals/[id]/route":"rsc","app/api/bugs/enhance/route":"rsc","app/api/backup/route":"rsc","app/api/approvals/route":"rsc","app/api/encryption/secure/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/convert-process-to-subflow/route":"rsc","app/api/env/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/assist/route":"rsc","app/api/flow/generator/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/improve/route":"rsc","app/api/flow/prompt-renderer/route":"rsc","app/api/flow/repair/route":"rsc","app/api/init/route":"rsc","app/api/flow/quick-chat/route":"rsc","app/api/flow/route":"rsc","app/api/flow/generate/route":"rsc","app/api/flow/compile/route":"rsc","app/api/mcp/flujo/authoring/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/flujo/automation/route":"rsc","app/api/mcp/flujo/flows/route":"rsc","app/api/mcp/flujo/servers/route":"rsc","app/api/mcp/flujo/state/route":"rsc","app/api/mcp/flujo/tools/route":"rsc","app/api/mcp/flujo/resources/read/route":"rsc","app/api/mcp/flujo/resources/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/route":"rsc","app/api/model/test/route":"rsc","app/api/model/provider/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/packages/install/route":"rsc","app/api/packages/install/status/route":"rsc","app/api/packages/derive-secrets/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/packages/resolve/route":"rsc","app/api/packages/scan-targets/route":"rsc","app/api/packages/uninstall/route":"rsc","app/api/planned-executions/[id]/route":"rsc","app/api/planned-executions/[id]/run/route":"rsc","app/api/planned-executions/route":"rsc","app/api/packages/build/route":"rsc","app/api/planned-executions/reconcile/route":"rsc","app/api/planned-executions/[id]/runs/route":"rsc","app/api/registry/auth/resend/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/registry/auth/route":"rsc","app/api/registry/oauth/initiate/route":"rsc","app/api/packages/installed/route":"rsc","app/api/registry/auth/reset/route":"rsc","app/api/registry/settings/route":"rsc","app/api/registry/publish/route":"rsc","app/api/runs/active/route":"rsc","app/api/registry/oauth/callback/route":"rsc","app/api/restore/route":"rsc","app/api/registry/packages/route":"rsc","app/api/waves/route":"rsc","app/api/webhooks/[id]/route":"rsc","app/v1/chat/conversations/[conversationId]/breakpoints/route":"rsc","app/v1/chat/conversations/[conversationId]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/completions/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/models/route":"rsc","app/v1/chat/conversations/[conversationId]/revert/route":"rsc","app/api/mcp/oauth-capability/route":"rsc","app/api/mcp/test-connection/stream/route":"rsc","app/mcp-flows/route":"rsc","app/mcp-proxy/[server]/route":"rsc","app/v1/chat/conversations/[conversationId]/events/route":"rsc","app/v1/chat/events/route":"rsc","app/models/page":"rsc","app/mcp/page":"action-browser","app/settings/page":"action-browser"},"filename":"../C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\backend\\utils\\resolveGlobalVars.ts","exportedName":"resolveGlobalVars"},"6061ed6d99a98b5d9f5d2d15065caab0a27d6a8987":{"workers":{"app/api/approvals/[id]/route":{"moduleId":"91959","async":false},"app/api/bugs/enhance/route":{"moduleId":"91959","async":false},"app/api/backup/route":{"moduleId":"91959","async":false},"app/api/approvals/route":{"moduleId":"91959","async":false},"app/api/encryption/secure/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/convert-process-to-subflow/route":{"moduleId":"91959","async":false},"app/api/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/assist/route":{"moduleId":"91959","async":false},"app/api/flow/generator/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/improve/route":{"moduleId":"91959","async":false},"app/api/flow/prompt-renderer/route":{"moduleId":"91959","async":false},"app/api/flow/repair/route":{"moduleId":"91959","async":false},"app/api/init/route":{"moduleId":"91959","async":false},"app/api/flow/quick-chat/route":{"moduleId":"91959","async":false},"app/api/flow/route":{"moduleId":"91959","async":false},"app/api/flow/generate/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/authoring/route":{"moduleId":"91959","async":false},"app/api/mcp-registry/route":{"moduleId":"91959","async":false},"app/api/mcp/cancel/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/automation/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/flows/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/state/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/flujo/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/status/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/read/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"91959","async":false},"app/api/model/[id]/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/model/test/route":{"moduleId":"91959","async":false},"app/api/model/provider/route":{"moduleId":"91959","async":false},"app/api/oauth/reset/route":{"moduleId":"91959","async":false},"app/api/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/packages/install/route":{"moduleId":"91959","async":false},"app/api/packages/install/status/route":{"moduleId":"91959","async":false},"app/api/packages/derive-secrets/route":{"moduleId":"91959","async":false},"app/api/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/packages/resolve/route":{"moduleId":"91959","async":false},"app/api/packages/scan-targets/route":{"moduleId":"91959","async":false},"app/api/packages/uninstall/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/run/route":{"moduleId":"91959","async":false},"app/api/planned-executions/route":{"moduleId":"91959","async":false},"app/api/packages/build/route":{"moduleId":"91959","async":false},"app/api/planned-executions/reconcile/route":{"moduleId":"91959","async":false},"app/api/planned-executions/[id]/runs/route":{"moduleId":"91959","async":false},"app/api/registry/auth/resend/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/registry/auth/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/packages/installed/route":{"moduleId":"91959","async":false},"app/api/registry/auth/reset/route":{"moduleId":"91959","async":false},"app/api/registry/settings/route":{"moduleId":"91959","async":false},"app/api/registry/publish/route":{"moduleId":"91959","async":false},"app/api/runs/active/route":{"moduleId":"91959","async":false},"app/api/registry/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/restore/route":{"moduleId":"91959","async":false},"app/api/registry/packages/route":{"moduleId":"91959","async":false},"app/api/waves/route":{"moduleId":"91959","async":false},"app/api/webhooks/[id]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/breakpoints/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/route":{"moduleId":"91959","async":false},"app/v1/chat/completions/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/edit-state/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/inject/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/models/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/revert/route":{"moduleId":"91959","async":false},"app/api/mcp/oauth-capability/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/stream/route":{"moduleId":"91959","async":false},"app/mcp-flows/route":{"moduleId":"91959","async":false},"app/mcp-proxy/[server]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/events/route":{"moduleId":"91959","async":false},"app/v1/chat/events/route":{"moduleId":"91959","async":false},"app/models/page":{"moduleId":"91959","async":false},"app/mcp/page":{"moduleId":"81017","async":false},"app/settings/page":{"moduleId":"81017","async":false}},"layer":{"app/api/approvals/[id]/route":"rsc","app/api/bugs/enhance/route":"rsc","app/api/backup/route":"rsc","app/api/approvals/route":"rsc","app/api/encryption/secure/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/convert-process-to-subflow/route":"rsc","app/api/env/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/assist/route":"rsc","app/api/flow/generator/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/improve/route":"rsc","app/api/flow/prompt-renderer/route":"rsc","app/api/flow/repair/route":"rsc","app/api/init/route":"rsc","app/api/flow/quick-chat/route":"rsc","app/api/flow/route":"rsc","app/api/flow/generate/route":"rsc","app/api/flow/compile/route":"rsc","app/api/mcp/flujo/authoring/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/flujo/automation/route":"rsc","app/api/mcp/flujo/flows/route":"rsc","app/api/mcp/flujo/servers/route":"rsc","app/api/mcp/flujo/state/route":"rsc","app/api/mcp/flujo/tools/route":"rsc","app/api/mcp/flujo/resources/read/route":"rsc","app/api/mcp/flujo/resources/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/route":"rsc","app/api/model/test/route":"rsc","app/api/model/provider/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/packages/install/route":"rsc","app/api/packages/install/status/route":"rsc","app/api/packages/derive-secrets/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/packages/resolve/route":"rsc","app/api/packages/scan-targets/route":"rsc","app/api/packages/uninstall/route":"rsc","app/api/planned-executions/[id]/route":"rsc","app/api/planned-executions/[id]/run/route":"rsc","app/api/planned-executions/route":"rsc","app/api/packages/build/route":"rsc","app/api/planned-executions/reconcile/route":"rsc","app/api/planned-executions/[id]/runs/route":"rsc","app/api/registry/auth/resend/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/registry/auth/route":"rsc","app/api/registry/oauth/initiate/route":"rsc","app/api/packages/installed/route":"rsc","app/api/registry/auth/reset/route":"rsc","app/api/registry/settings/route":"rsc","app/api/registry/publish/route":"rsc","app/api/runs/active/route":"rsc","app/api/registry/oauth/callback/route":"rsc","app/api/restore/route":"rsc","app/api/registry/packages/route":"rsc","app/api/waves/route":"rsc","app/api/webhooks/[id]/route":"rsc","app/v1/chat/conversations/[conversationId]/breakpoints/route":"rsc","app/v1/chat/conversations/[conversationId]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/completions/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/models/route":"rsc","app/v1/chat/conversations/[conversationId]/revert/route":"rsc","app/api/mcp/oauth-capability/route":"rsc","app/api/mcp/test-connection/stream/route":"rsc","app/mcp-flows/route":"rsc","app/mcp-proxy/[server]/route":"rsc","app/v1/chat/conversations/[conversationId]/events/route":"rsc","app/v1/chat/events/route":"rsc","app/models/page":"rsc","app/mcp/page":"action-browser","app/settings/page":"action-browser"},"filename":"../C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\backend\\utils\\resolveGlobalVars.ts","exportedName":"resolveAndDecryptApiKey"}},"edge":{},"encryptionKey":"VdE9c1sIalXQuPGJWNUKWkO72EvzBDr46ha1orwzXsI="}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1161],{1877:(e,t,r)=>{r.d(t,{Hm:()=>n,xc:()=>a,yo:()=>s});let o=["key","secret","token","password"],a=e=>o.some(t=>e.toLowerCase().includes(t)),n=e=>a(e)||"authorization"===e.trim().toLowerCase(),s=e=>{if(!e)return e;if(e.includes("_-_-_")){let t=e.split("_-_-_");return 3===t.length?t[2]:e}let t=/^mcp_(.+)_[0-9a-z]+$/.exec(e);if(t&&t[1])return t[1];let r=e.indexOf("__");return r>0&&r+2<e.length?e.slice(r+2):e}},9164:(e,t,r)=>{r.r(t),r.d(t,{StorageProvider:()=>p,default:()=>h,useStorage:()=>u});var o=r(95155),a=r(12115),n=r(29692),s=r(1877),i=r(73288),c=r(31373);let l=(0,i.h)("frontend/contexts/StorageContext"),d=(0,a.createContext)({setKey:async()=>{},changeKey:async()=>!1,verifyKey:async()=>!1,isEncryptionInitialized:async()=>!1,globalEnvVars:{},setGlobalEnvVars:async()=>{},deleteGlobalEnvVar:async()=>{},encryptValue:async()=>null,decryptValue:async()=>null,isUserEncryptionEnabled:async()=>!1,isLoading:!0,settings:{speech:{enabled:!0},update:{checkOnStartup:!1}},settingsHydrated:!1,updateSettings:async()=>{}}),u=()=>(0,a.useContext)(d),p=e=>{let{children:t}=e,[r,i]=(0,a.useState)(!1),[u,p]=(0,a.useState)(!1),[h,y]=(0,a.useState)({}),[f,m]=(0,a.useState)({speech:{enabled:!0},update:{checkOnStartup:!1}}),g=(0,a.useCallback)(async()=>{l.debug("isEncryptionInitialized: Entering method");try{let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check_initialized"})});if(!e.ok)throw Error("Failed to check encryption status");let t=await e.json();return!0===t.initialized}catch(e){return l.warn("isEncryptionInitialized: Failed to check encryption status:",e),!1}},[]),E=(0,a.useCallback)(async e=>{l.debug("setKey: Entering method");try{if(!(await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize",password:e})})).ok)throw Error("Failed to set encryption key")}catch(e){l.warn("setKey: Failed to set encryption key:",e)}},[]),w=(0,a.useCallback)(async(e,t)=>{l.debug("changeKey: Entering method");try{let r=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"change_password",oldPassword:e,newPassword:t})});if(!r.ok)throw Error("Failed to change encryption key");let o=await r.json();if(o.success&&sessionStorage.getItem("encryption_token")){let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"authenticate",password:t})});if(e.ok){let t=await e.json();t.success&&t.token&&(sessionStorage.setItem("encryption_token",t.token),sessionStorage.setItem("encryption_authenticated","true"),sessionStorage.removeItem("encryption_key"))}}return!0===o.success}catch(e){return l.warn("changeKey: Failed to change encryption key:",e),!1}},[]),v=(0,a.useCallback)(async e=>{l.debug("verifyKey: Entering method");try{let t=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"verify_password",password:e})});if(!t.ok)throw Error("Failed to verify encryption key");let r=await t.json();return r.valid&&r.token&&(sessionStorage.setItem("encryption_token",r.token),sessionStorage.setItem("encryption_authenticated","true"),sessionStorage.removeItem("encryption_key")),!0===r.valid}catch(e){return l.warn("verifyKey: Failed to verify encryption key:",e),!1}},[]),S=(0,a.useCallback)(async()=>{let e={speech:{enabled:!0},update:{checkOnStartup:!1}};try{var t;let r=await fetch("/api/storage?key=".concat(encodeURIComponent(n.Zg.SPEECH_SETTINGS),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(e))));if(!r.ok)return void l.debug("loadSettings: settings read not ok, keeping defaults",{status:r.status});let o=await r.json();l.debug("Loaded settings from storage",{settings:o.value}),m(null!=(t=o.value)?t:e),p(!0)}catch(e){l.warn("loadSettings: failed to load settings:",e)}},[]);(0,a.useEffect)(()=>{let e=()=>{l.info("Encryption unlocked signal received; reloading settings"),S()};return window.addEventListener(c.ZB,e),()=>window.removeEventListener(c.ZB,e)},[S]),(0,a.useEffect)(()=>{(async()=>{l.debug("loadData: Entering method");try{l.info("Calling initialization API to verify storage");let e=await fetch("/api/init");if(e.ok)l.info("Storage initialization completed successfully");else{let t=await e.json();l.warn("Storage initialization warning:",t.error)}await g()||await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize_default"})});let t=await fetch("/api/env?includeSecrets=false");if(t.ok){let e=await t.json();l.debug("Loaded environment variables",{count:Object.keys(e.variables||{}).length}),y(e.variables||{})}else l.error("loadData: Failed to load environment variables"),y({});await S(),i(!0)}catch(e){l.error("loadData: Error loading data:",e),i(!0)}})()},[g,S]);let b=(0,a.useCallback)(async(e,t)=>{l.debug("encryptValue: Entering method");try{let r=sessionStorage.getItem("encryption_token"),o=sessionStorage.getItem("encryption_key"),a={action:"encrypt",data:e};r?a.token=r:t?a.password=t:o&&(a.password=o);let n=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!n.ok)throw Error("Failed to encrypt value");return(await n.json()).result}catch(e){return l.warn("encryptValue: Failed to encrypt value:",e),null}},[]),C=(0,a.useCallback)(async(e,t)=>(l.debug("decryptValue: Entering method - THIS METHOD IS DEPRECATED"),l.warn("decryptValue: Frontend decryption is deprecated for security reasons"),null),[]),_=(0,a.useCallback)(async()=>{l.debug("isUserEncryptionEnabled: Entering method");try{let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check_user_encryption"})});if(!e.ok)throw Error("Failed to check user encryption status");let t=await e.json();return!0===t.userEncryption}catch(e){return l.warn("isUserEncryptionEnabled: Failed to check user encryption status:",e),!1}},[]),T=(0,a.useCallback)(async e=>{l.debug("setGlobalEnvVars: Entering method");try{await g()||await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize_default"})});let t=await fetch("/api/env",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"setAll",variables:e})});if(!t.ok){let e=await t.json();l.error("setGlobalEnvVars: Failed to set environment variables:",e.error);return}let r={};for(let[t,o]of Object.entries(e)){let e="object"==typeof o&&null!==o&&"value"in o?o.value:o,a="object"==typeof o&&null!==o&&"metadata"in o?o.metadata:{isSecret:(0,s.xc)(t)};a.isSecret?r[t]={value:"********",metadata:a}:r[t]={value:e,metadata:a}}y(r)}catch(e){l.error("setGlobalEnvVars: Error setting environment variables:",e)}},[g]),I=(0,a.useCallback)(async e=>{l.debug("deleteGlobalEnvVar: Deleting environment variable: ".concat(e));try{let t=await fetch("/api/env",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",key:e})});if(!t.ok){let e=await t.json();l.error("deleteGlobalEnvVar: Failed to delete environment variable:",e.error);return}y(t=>{let r={...t};return delete r[e],r})}catch(e){l.error("deleteGlobalEnvVar: Error deleting environment variable:",e)}},[]),O=(0,a.useCallback)(async e=>{l.debug("updateSettings: Updating settings",{newSettings:e});try{await (0,n.VH)(n.Zg.SPEECH_SETTINGS,e),m(e)}catch(e){l.error("updateSettings: Error updating settings:",e)}},[]);return(0,o.jsx)(d.Provider,{value:{setKey:E,changeKey:w,verifyKey:v,isEncryptionInitialized:g,globalEnvVars:h,setGlobalEnvVars:T,deleteGlobalEnvVar:I,encryptValue:b,decryptValue:C,isUserEncryptionEnabled:_,isLoading:!r,settings:f,settingsHydrated:u,updateSettings:O},children:t})},h=d},17897:(e,t,r)=>{r.d(t,{S:()=>s});var o=r(56290);let a=(0,r(73288).h)("frontend/services/mcp/index");class n{async loadServerConfigs(){try{let e=await fetch("/api/mcp/servers"),t=await e.json();if(!e.ok||t&&t.error){let e=t&&t.error||"Failed to load server configs";return a.warn("Failed to load server configs:",e),{error:e}}return t}catch(e){return a.warn("Failed to load server configs:",e),{error:"Failed to load server configs"}}}async listServerTools(e){try{let t=this.toolsCache.get(e),r=Date.now();if(t&&r-t.timestamp<this.CACHE_TTL)return a.debug("Using cached tools for server ".concat(e)),{tools:t.tools};let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/tools")),n=await o.json();if(n.error)return a.warn("Error listing tools for server ".concat(e,":"),n.error),{tools:[],error:n.error};let s=Array.isArray(n.tools)?n.tools:[];return this.toolsCache.set(e,{tools:s,timestamp:r}),{tools:s}}catch(t){return a.warn("Failed to list tools for server ".concat(e,":"),t),{tools:[],error:"Failed to list tools: ".concat(t instanceof Error?t.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 t=this.resourcesCache.get(e),r=Date.now();if(t&&r-t.timestamp<this.CACHE_TTL)return a.debug("Using cached resources for server ".concat(e)),t.data;let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/resources")),n=await o.json(),s={resources:Array.isArray(n.resources)?n.resources:[],resourceTemplates:Array.isArray(n.resourceTemplates)?n.resourceTemplates:[],error:n.error};return s.error||this.resourcesCache.set(e,{data:s,timestamp:r}),s}catch(t){return a.warn("Failed to list resources for server ".concat(e,":"),t),{resources:[],resourceTemplates:[],error:"Failed to list resources: ".concat(t instanceof Error?t.message:"Unknown error")}}}async readResource(e,t){try{let r=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/resources/read?uri=").concat(encodeURIComponent(t)));return await r.json()}catch(r){return a.warn("Failed to read resource ".concat(t," on server ").concat(e,":"),r),{success:!1,error:"Failed to read resource"}}}async listServerPrompts(e){try{let t=this.promptsCache.get(e),r=Date.now();if(t&&r-t.timestamp<this.CACHE_TTL)return a.debug("Using cached prompts for server ".concat(e)),{prompts:t.prompts};let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/prompts")),n=await o.json();if(n.error)return a.warn("Error listing prompts for server ".concat(e,":"),n.error),{prompts:[],error:n.error};let s=Array.isArray(n.prompts)?n.prompts:[];return this.promptsCache.set(e,{prompts:s,timestamp:r}),{prompts:s}}catch(t){return a.warn("Failed to list prompts for server ".concat(e,":"),t),{prompts:[],error:"Failed to list prompts: ".concat(t instanceof Error?t.message:"Unknown error")}}}async getPrompt(e,t,r){try{let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/prompts/get"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,arguments:r})});return await o.json()}catch(r){return a.warn("Failed to get prompt ".concat(t," on server ").concat(e,":"),r),{success:!1,error:"Failed to get prompt"}}}clearCapabilitiesCache(e){e?(this.resourcesCache.delete(e),this.promptsCache.delete(e)):(this.resourcesCache.clear(),this.promptsCache.clear())}checkResourceListVersion(e,t){var r;let o=null!=(r=this.resourceListVersions.get(e))?r:-1;return t>o&&(this.resourceListVersions.set(e,t),this.resourcesCache.delete(e),a.debug("checkResourceListVersion: cache invalidated for ".concat(e," (").concat(o," -> ").concat(t,")")),!0)}async callTool(e,t,r,o){try{let a=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/tools/").concat(encodeURIComponent(t)),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({args:r,timeout:o})});return await a.json()}catch(r){return a.warn("Failed to call tool ".concat(t," on server ").concat(e,":"),r),{error:"Failed to call tool"}}}async readResourceFromApp(e,t){try{let r=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/resources/read?uri=").concat(encodeURIComponent(t),"&source=app"));return{...await r.json(),httpStatus:r.status}}catch(r){return a.warn("MCP App failed to read resource ".concat(t," on server ").concat(e,":"),r),{success:!1,error:"Failed to read MCP App resource"}}}async callToolFromApp(e,t,r,o,n,s){try{let a=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/tools/").concat(encodeURIComponent(t)),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({args:r,timeout:o,source:"app",ownerScope:s}),...n?{signal:n}:{}});return{...await a.json(),httpStatus:a.status}}catch(r){return a.warn("Failed to call MCP App tool ".concat(t," on server ").concat(e,":"),r),{success:!1,error:"Failed to call MCP App tool"}}}async updateServerConfig(e,t){try{let r=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e)),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),o=await r.json();if(r.ok)return a.info("Successfully updated server config for ".concat(e)),window.dispatchEvent(new CustomEvent("flujo:mcp-server-config-changed",{detail:{serverName:e,config:{...o,...t}}})),{success:!0,data:o};if(void 0!==t.disabled){a.info("Config update for ".concat(e," treated as success for toggle operation"));let r={...t,name:e};return window.dispatchEvent(new CustomEvent("flujo:mcp-server-config-changed",{detail:{serverName:e,config:r}})),{success:!0,data:r,_originalError:o.error}}return a.warn("Failed to update server config for ".concat(e,":"),o.error),{success:!1,error:o.error}}catch(t){return a.warn("Failed to update server config for ".concat(e,":"),t),{error:"Failed to update server config"}}}async testConnection(e,t){try{let r=await fetch("/api/mcp/test-connection",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,storedName:t})});return await r.json()}catch(t){return a.warn("Failed to test connection for ".concat(e.name,":"),t),{success:!1,error:"Failed to reach the FLUJO backend to run the connection test: ".concat(t instanceof Error?t.message:"Unknown error")}}}async testConnectionStreaming(e,t,r){try{let n=await fetch("/api/mcp/test-connection/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,storedName:r})});if(!n.ok||!n.body)return a.warn("Streaming test-connection unavailable (status ".concat(n.status,"); falling back")),this.testConnection(e,r);let s=null;if(await (0,o.z)(n,e=>{t(e),"result"===e.type&&(s={success:e.success,error:e.error,requiresAuthentication:e.requiresAuthentication,oauthCapable:e.oauthCapable,data:e.data})}),s)return s;return a.warn("Streaming test-connection ended without a result event"),{success:!1,error:"The connection test stream ended unexpectedly without a result."}}catch(t){return a.warn("Streaming test connection failed for ".concat(e.name,"; falling back to non-streaming:"),t),this.testConnection(e,r)}}async probeOAuthCapability(e){try{let t=await fetch("/api/mcp/oauth-capability",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverUrl:e})});if(!t.ok)return{oauthCapable:!1};return await t.json()}catch(t){return a.warn("Failed to probe OAuth capability for ".concat(e,":"),t),{oauthCapable:!1}}}async getServerStatus(e){try{let t=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/status"),{headers:{Accept:"application/json"}}),r=await t.json();if(r.error)return a.warn("Error getting status for server ".concat(e,":"),r.error),{status:"error",message:r.error};return r}catch(t){return a.warn("Failed to get status for server ".concat(e,":"),t),{status:"error",message:"Failed to get server status: ".concat(t instanceof Error?t.message:"Unknown error")}}}async deleteServerConfig(e){try{let t=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e)),{method:"DELETE"});return await t.json()}catch(t){return a.warn("Failed to delete server config for ".concat(e,":"),t),{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 t=await this.updateServerConfig(e,{disabled:!0});if(t.error)return a.warn("Failed to disable server ".concat(e," during restart:"),t.error),{error:"Failed to restart server: ".concat(t.error)};await new Promise(e=>setTimeout(e,1e3));let r=await this.updateServerConfig(e,{disabled:!1});if(r.error)return a.warn("Failed to enable server ".concat(e," during restart:"),r.error),{error:"Failed to restart server: ".concat(r.error)};return a.info("Successfully restarted server ".concat(e)),{success:!0}}catch(t){return a.warn("Failed to restart server ".concat(e,":"),t),{error:"Failed to restart server: ".concat(t instanceof Error?t.message:"Unknown error")}}}constructor(){this.toolsCache=new Map,this.resourcesCache=new Map,this.promptsCache=new Map,this.CACHE_TTL=6e4,this.resourceListVersions=new Map}}let s=new n},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.THEME_STYLE="theme_style",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.MCP_INTERNAL_OVERRIDES="mcp_internal_overrides",e.MCP_INTERNAL_SERVERS_MIGRATION_V1="mcp_internal_servers_migration_v1",e.MCP_INTERNAL_CAPABILITIES_MIGRATION_V2="mcp_internal_capabilities_migration_v2",e.MCP_INTERNAL_BROWSER_MIGRATION_V3="mcp_internal_browser_migration_v3",e.MCP_SHIPPED_SERVERS_MIGRATION_V4="mcp_shipped_servers_migration_v4",e.PACKAGE_INSTALLS="package_installs",e.EXPERIMENTAL_SETTINGS="experimental_settings",e.REGISTRY_ACCOUNT="registry_account",e.REGISTRY_SETTINGS="registry_settings",e.TELEMETRY_STATE="telemetry_state",e}({})},29692:(e,t,r)=>{r.d(t,{Zg:()=>o.Z,YM:()=>c,VH:()=>i,Mj:()=>s});var o=r(27156),a=r(12115);let n=(0,r(73288).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),c=(0,a.useRef)(r);return(0,a.useEffect)(()=>{c.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(c.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}},c=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}}},31373:(e,t,r)=>{r.d(t,{UJ:()=>o,ZB:()=>a,bx:()=>s});let o="flujo:encryption-locked",a="flujo:encryption-unlocked",n=!1;function s(){if(n||"function"!=typeof window.fetch)return;n=!0;let e=window.fetch.bind(window);window.fetch=async function(){for(var t=arguments.length,r=Array(t),a=0;a<t;a++)r[a]=arguments[a];let n=await e(...r);return 423===n.status&&function(){try{sessionStorage.removeItem("encryption_authenticated"),sessionStorage.removeItem("encryption_token")}catch(e){}window.dispatchEvent(new CustomEvent(o))}(),n}}},43076:(e,t,r)=>{r.d(t,{N:()=>i,X:()=>s});let o=(0,r(73288).h)("frontend/services/model");class a{async fetchWithErrorHandling(e,t){try{o.debug("Making API request",{url:e,method:(null==t?void 0:t.method)||"GET"});let r=await fetch(e,t),a=null;try{if(204!==r.status){let t=r.headers.get("content-type");if(t&&t.includes("application/json"))a=await r.json();else{let n=await r.text();o.warn("Received non-JSON response",{url:e,contentType:t,text:n.substring(0,200)}),a=n}}}catch(t){throw o.error("Failed to parse response",{url:e,status:r.status,contentType:r.headers.get("content-type"),parseError:t}),Error("Invalid response format")}if(!r.ok){let n;throw n="object"==typeof a&&null!==a?a.error||a.message||a.errorMessage||JSON.stringify(a):a||"HTTP error! status: ".concat(r.status),o.error("Request failed",{url:e,method:(null==t?void 0:t.method)||"GET",status:r.status,error:n,data:a}),Error(n)}return o.debug("API request successful",{url:e,method:(null==t?void 0:t.method)||"GET",status:r.status}),a}catch(r){if(r instanceof TypeError&&"Failed to fetch"===r.message)throw o.error("Network error",{url:e,method:(null==t?void 0:t.method)||"GET",error:r}),Error("Unable to connect to the server. Please check your internet connection.");if(r instanceof Error)throw r;throw o.error("API request failed",{url:e,method:(null==t?void 0:t.method)||"GET",error:r}),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(t){return o.error("Failed to get model",{id:e,error:t}),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 t=await this.fetchWithErrorHandling("/api/model",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return o.debug("Model added successfully",{modelId:t.id,displayName:t.displayName}),{success:!0,model:t}}catch(r){o.error("Failed to add model",{displayName:e.displayName,provider:e.provider,error:r instanceof Error?r.message:r});let t=r instanceof Error?r.message:"Failed to add model";if(t.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(t.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:t}}}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 t=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:t}}catch(r){o.error("Failed to update model",{modelId:e.id,displayName:e.displayName,error:r instanceof Error?r.message:r});let t=r instanceof Error?r.message:"Failed to update model";return t.includes("display name")&&t.includes("already exists"),{success:!1,error:t}}}async deleteModel(e){try{if(!e)return{success:!1,error:"Model ID is required"};let t=await this.getModel(e);if(!t)return{success:!1,error:"Model not found"};return o.debug("Attempting to delete model",{modelId:e,displayName:t.displayName}),await this.fetchWithErrorHandling("/api/model/".concat(encodeURIComponent(e)),{method:"DELETE"}),o.debug("Model deleted successfully",{modelId:e,displayName:t.displayName}),{success:!0}}catch(a){let t;try{let r=await this.getModel(e);t=null==r?void 0:r.displayName}catch(e){}o.error("Failed to delete model",{modelId:e,displayName:t,error:a instanceof Error?a.message:a});let r=a instanceof Error?a.message:"Failed to delete model";if(r.includes("not found"))return{success:!1,error:"The model no longer exists or has already been deleted"};return{success:!1,error:r}}}async updateModelApiKey(e,t){try{let r=await this.getModel(e);if(!r)return{success:!1,error:"Model not found"};return await this.updateModel({...r,ApiKey:t})}catch(t){return o.error("Failed to update model API key",{modelId:e,error:t}),{success:!1,error:t instanceof Error?t.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,t,r,a){try{var n;o.debug("Fetching provider models",{baseUrl:e,modelId:t,searchTerm:r?'"'.concat(r,'"'):"none",apiKey:a?"provided":"not provided"});let s=await this.fetchWithErrorHandling("/api/model/provider",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:e,modelId:t,searchTerm:r,apiKey:a})});return o.debug("Provider models fetched successfully",{baseUrl:e,modelCount:(null==(n=s.models)?void 0:n.length)||0,searchTerm:r?'"'.concat(r,'"'):"none"}),s.models||[]}catch(t){return o.error("Failed to fetch provider models",{baseUrl:e,searchTerm:r,error:t}),[]}}}let n=null,s=()=>(n||(n=new a),n),i=new Proxy({},{get(e,t){let r=s(),o=r[t];return"function"==typeof o?o.bind(r):o}})},53228:(e,t,r)=>{r.d(t,{G:()=>o});let o={LOG_LEVEL:3,INCLUDE_TOOL_CALLS_IN_RESPONSE:!0,ENABLE_EXECUTION_TRACKER:!1,ENABLE_REVERT_TO_HERE:!1}},56290:(e,t,r)=>{r.d(t,{z:()=>o});async function o(e,t){if(!e.body||"function"!=typeof e.body.getReader)throw Error("Response has no readable body to stream");let r=e.body.getReader(),o=new TextDecoder,a=function(){let e="",t=(e,t)=>{let r=e.trim();if(r)try{t.push(JSON.parse(r))}catch(e){}};return{push(r){let o;e+=r;let a=[];for(;(o=e.indexOf("\n"))>=0;)t(e.slice(0,o),a),e=e.slice(o+1);return a},flush(){let r=[];return t(e,r),e="",r}}}();try{for(;;){let{value:e,done:n}=await r.read();if(n)break;for(let r of a.push(o.decode(e,{stream:!0})))t(r)}let e=o.decode();if(e)for(let r of a.push(e))t(r);for(let e of a.flush())t(e)}finally{try{r.releaseLock()}catch(e){}}}},73288:(e,t,r)=>{r.d(t,{h:()=>c});var o=r(53228);let a={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},n="number"==typeof o.G.LOG_LEVEL?o.G.LOG_LEVEL:a.ERROR;function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t>6)return String(e);if(!(e instanceof Error))return e;let r={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?r.stack=a:"cause"===o?r.cause=s(a,t+1):"errors"===o&&Array.isArray(a)?r.errors=a.map(e=>s(e,t+1)):r[o]=a)}return r}function i(e,t,r,o,i){if(e>=("number"==typeof i?i:n)){if("function"==typeof o)try{o=o()}catch(e){o="[lazy log data threw]"}let n=new Date().toISOString(),i="[".concat(n,"] [").concat(t,"]"),c="".concat(i," ").concat(r);if(void 0!==o)if(o instanceof Error||"object"==typeof o)try{let e=o instanceof Error?s(o):o,t=JSON.stringify(e,(e,t)=>t instanceof Error?s(t):t,2);c+=":\n".concat(t)}catch(e){c+=": [Object cannot be stringified]"}else c+=": ".concat(o);switch(e){case a.VERBOSE:console.debug("[VERBOSE] ".concat(c));break;case a.DEBUG:console.debug(c);break;case a.INFO:console.info(c);break;case a.WARN:console.warn(c);break;case a.ERROR:console.error(c);break;default:console.log(c)}}}function c(e,t){let r,o=((r=e.replace(/^src\//,"")).startsWith("/")&&(r=r.substring(1)),r);return{verbose:(e,r)=>{i(a.VERBOSE,o,e,r,t)},debug:(e,r)=>{i(a.DEBUG,o,e,r,t)},info:(e,r)=>{i(a.INFO,o,e,r,t)},warn:(e,r)=>{i(a.WARN,o,e,r,t)},error:(e,r)=>{i(a.ERROR,o,e,r,t)}}}},94929:(e,t,r)=>{r.d(t,{default:()=>s});var o=r(95155);r(12115);var a=r(94049),n=r(4474);let s=e=>{let{size:t="medium",color:r="primary",className:s="",sx:i={}}=e,c="white"===r?{color:"#fff",...i}:i;return(0,o.jsxs)(a.default,{component:"span",sx:{display:"inline-block",lineHeight:0,...c},className:s,role:"status",children:[(0,o.jsx)(n.default,{size:{small:16,medium:24,large:36}[t],color:"white"===r?"inherit":r,"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..."})]})}}}]);
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1161],{1877:(e,t,r)=>{r.d(t,{Hm:()=>n,xc:()=>a,yo:()=>s});let o=["key","secret","token","password"],a=e=>o.some(t=>e.toLowerCase().includes(t)),n=e=>a(e)||"authorization"===e.trim().toLowerCase(),s=e=>{if(!e)return e;if(e.includes("_-_-_")){let t=e.split("_-_-_");return 3===t.length?t[2]:e}let t=/^mcp_(.+)_[0-9a-z]+$/.exec(e);if(t&&t[1])return t[1];let r=e.indexOf("__");return r>0&&r+2<e.length?e.slice(r+2):e}},9164:(e,t,r)=>{r.r(t),r.d(t,{StorageProvider:()=>p,default:()=>h,useStorage:()=>u});var o=r(95155),a=r(12115),n=r(29692),s=r(1877),i=r(73288),c=r(31373);let l=(0,i.h)("frontend/contexts/StorageContext"),d=(0,a.createContext)({setKey:async()=>{},changeKey:async()=>!1,verifyKey:async()=>!1,isEncryptionInitialized:async()=>!1,globalEnvVars:{},setGlobalEnvVars:async()=>{},deleteGlobalEnvVar:async()=>{},encryptValue:async()=>null,decryptValue:async()=>null,isUserEncryptionEnabled:async()=>!1,isLoading:!0,settings:{speech:{enabled:!0},update:{checkOnStartup:!1}},settingsHydrated:!1,updateSettings:async()=>{}}),u=()=>(0,a.useContext)(d),p=e=>{let{children:t}=e,[r,i]=(0,a.useState)(!1),[u,p]=(0,a.useState)(!1),[h,y]=(0,a.useState)({}),[m,f]=(0,a.useState)({speech:{enabled:!0},update:{checkOnStartup:!1}}),g=(0,a.useCallback)(async()=>{l.debug("isEncryptionInitialized: Entering method");try{let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check_initialized"})});if(!e.ok)throw Error("Failed to check encryption status");let t=await e.json();return!0===t.initialized}catch(e){return l.warn("isEncryptionInitialized: Failed to check encryption status:",e),!1}},[]),w=(0,a.useCallback)(async e=>{l.debug("setKey: Entering method");try{if(!(await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize",password:e})})).ok)throw Error("Failed to set encryption key")}catch(e){l.warn("setKey: Failed to set encryption key:",e)}},[]),v=(0,a.useCallback)(async(e,t)=>{l.debug("changeKey: Entering method");try{let r=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"change_password",oldPassword:e,newPassword:t})});if(!r.ok)throw Error("Failed to change encryption key");let o=await r.json();if(o.success&&sessionStorage.getItem("encryption_token")){let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"authenticate",password:t})});if(e.ok){let t=await e.json();t.success&&t.token&&(sessionStorage.setItem("encryption_token",t.token),sessionStorage.setItem("encryption_authenticated","true"),sessionStorage.removeItem("encryption_key"))}}return!0===o.success}catch(e){return l.warn("changeKey: Failed to change encryption key:",e),!1}},[]),E=(0,a.useCallback)(async e=>{l.debug("verifyKey: Entering method");try{let t=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"verify_password",password:e})});if(!t.ok)throw Error("Failed to verify encryption key");let r=await t.json();return r.valid&&r.token&&(sessionStorage.setItem("encryption_token",r.token),sessionStorage.setItem("encryption_authenticated","true"),sessionStorage.removeItem("encryption_key")),!0===r.valid}catch(e){return l.warn("verifyKey: Failed to verify encryption key:",e),!1}},[]),S=(0,a.useCallback)(async()=>{let e={speech:{enabled:!0},update:{checkOnStartup:!1}};try{var t;let r=await fetch("/api/storage?key=".concat(encodeURIComponent(n.Zg.SPEECH_SETTINGS),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(e))));if(!r.ok)return void l.debug("loadSettings: settings read not ok, keeping defaults",{status:r.status});let o=await r.json();l.debug("Loaded settings from storage",{settings:o.value}),f(null!=(t=o.value)?t:e),p(!0)}catch(e){l.warn("loadSettings: failed to load settings:",e)}},[]);(0,a.useEffect)(()=>{let e=()=>{l.info("Encryption unlocked signal received; reloading settings"),S()};return window.addEventListener(c.ZB,e),()=>window.removeEventListener(c.ZB,e)},[S]),(0,a.useEffect)(()=>{(async()=>{l.debug("loadData: Entering method");try{l.info("Calling initialization API to verify storage");let e=await fetch("/api/init");if(e.ok)l.info("Storage initialization completed successfully");else{let t=await e.json();l.warn("Storage initialization warning:",t.error)}await g()||await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize_default"})});let t=await fetch("/api/env?includeSecrets=false");if(t.ok){let e=await t.json();l.debug("Loaded environment variables",{count:Object.keys(e.variables||{}).length}),y(e.variables||{})}else l.error("loadData: Failed to load environment variables"),y({});await S(),i(!0)}catch(e){l.error("loadData: Error loading data:",e),i(!0)}})()},[g,S]);let b=(0,a.useCallback)(async(e,t)=>{l.debug("encryptValue: Entering method");try{let r=sessionStorage.getItem("encryption_token"),o=sessionStorage.getItem("encryption_key"),a={action:"encrypt",data:e};r?a.token=r:t?a.password=t:o&&(a.password=o);let n=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!n.ok)throw Error("Failed to encrypt value");return(await n.json()).result}catch(e){return l.warn("encryptValue: Failed to encrypt value:",e),null}},[]),C=(0,a.useCallback)(async(e,t)=>(l.debug("decryptValue: Entering method - THIS METHOD IS DEPRECATED"),l.warn("decryptValue: Frontend decryption is deprecated for security reasons"),null),[]),_=(0,a.useCallback)(async()=>{l.debug("isUserEncryptionEnabled: Entering method");try{let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check_user_encryption"})});if(!e.ok)throw Error("Failed to check user encryption status");let t=await e.json();return!0===t.userEncryption}catch(e){return l.warn("isUserEncryptionEnabled: Failed to check user encryption status:",e),!1}},[]),T=(0,a.useCallback)(async e=>{l.debug("setGlobalEnvVars: Entering method");try{await g()||await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize_default"})});let t=await fetch("/api/env",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"setAll",variables:e})});if(!t.ok){let e=await t.json();l.error("setGlobalEnvVars: Failed to set environment variables:",e.error);return}let r={};for(let[t,o]of Object.entries(e)){let e="object"==typeof o&&null!==o&&"value"in o?o.value:o,a="object"==typeof o&&null!==o&&"metadata"in o?o.metadata:{isSecret:(0,s.xc)(t)};a.isSecret?r[t]={value:"********",metadata:a}:r[t]={value:e,metadata:a}}y(r)}catch(e){l.error("setGlobalEnvVars: Error setting environment variables:",e)}},[g]),I=(0,a.useCallback)(async e=>{l.debug("deleteGlobalEnvVar: Deleting environment variable: ".concat(e));try{let t=await fetch("/api/env",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",key:e})});if(!t.ok){let e=await t.json();l.error("deleteGlobalEnvVar: Failed to delete environment variable:",e.error);return}y(t=>{let r={...t};return delete r[e],r})}catch(e){l.error("deleteGlobalEnvVar: Error deleting environment variable:",e)}},[]),k=(0,a.useCallback)(async e=>{l.debug("updateSettings: Updating settings",{newSettings:e});try{await (0,n.VH)(n.Zg.SPEECH_SETTINGS,e),f(e)}catch(e){l.error("updateSettings: Error updating settings:",e)}},[]);return(0,o.jsx)(d.Provider,{value:{setKey:w,changeKey:v,verifyKey:E,isEncryptionInitialized:g,globalEnvVars:h,setGlobalEnvVars:T,deleteGlobalEnvVar:I,encryptValue:b,decryptValue:C,isUserEncryptionEnabled:_,isLoading:!r,settings:m,settingsHydrated:u,updateSettings:k},children:t})},h=d},17897:(e,t,r)=>{r.d(t,{S:()=>s});var o=r(56290);let a=(0,r(73288).h)("frontend/services/mcp/index");class n{async loadServerConfigs(){try{let e=await fetch("/api/mcp/servers"),t=await e.json();if(!e.ok||t&&t.error){let e=t&&t.error||"Failed to load server configs";return a.warn("Failed to load server configs:",e),{error:e}}return t}catch(e){return a.warn("Failed to load server configs:",e),{error:"Failed to load server configs"}}}async listServerTools(e){try{let t=this.toolsCache.get(e),r=Date.now();if(t&&r-t.timestamp<this.CACHE_TTL)return a.debug("Using cached tools for server ".concat(e)),{tools:t.tools};let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/tools")),n=await o.json();if(n.error)return a.warn("Error listing tools for server ".concat(e,":"),n.error),{tools:[],error:n.error};let s=Array.isArray(n.tools)?n.tools:[];return this.toolsCache.set(e,{tools:s,timestamp:r}),{tools:s}}catch(t){return a.warn("Failed to list tools for server ".concat(e,":"),t),{tools:[],error:"Failed to list tools: ".concat(t instanceof Error?t.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 t=this.resourcesCache.get(e),r=Date.now();if(t&&r-t.timestamp<this.CACHE_TTL)return a.debug("Using cached resources for server ".concat(e)),t.data;let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/resources")),n=await o.json(),s={resources:Array.isArray(n.resources)?n.resources:[],resourceTemplates:Array.isArray(n.resourceTemplates)?n.resourceTemplates:[],error:n.error};return s.error||this.resourcesCache.set(e,{data:s,timestamp:r}),s}catch(t){return a.warn("Failed to list resources for server ".concat(e,":"),t),{resources:[],resourceTemplates:[],error:"Failed to list resources: ".concat(t instanceof Error?t.message:"Unknown error")}}}async readResource(e,t){try{let r=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/resources/read?uri=").concat(encodeURIComponent(t)));return await r.json()}catch(r){return a.warn("Failed to read resource ".concat(t," on server ").concat(e,":"),r),{success:!1,error:"Failed to read resource"}}}async listServerPrompts(e){try{let t=this.promptsCache.get(e),r=Date.now();if(t&&r-t.timestamp<this.CACHE_TTL)return a.debug("Using cached prompts for server ".concat(e)),{prompts:t.prompts};let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/prompts")),n=await o.json();if(n.error)return a.warn("Error listing prompts for server ".concat(e,":"),n.error),{prompts:[],error:n.error};let s=Array.isArray(n.prompts)?n.prompts:[];return this.promptsCache.set(e,{prompts:s,timestamp:r}),{prompts:s}}catch(t){return a.warn("Failed to list prompts for server ".concat(e,":"),t),{prompts:[],error:"Failed to list prompts: ".concat(t instanceof Error?t.message:"Unknown error")}}}async getPrompt(e,t,r){try{let o=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/prompts/get"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,arguments:r})});return await o.json()}catch(r){return a.warn("Failed to get prompt ".concat(t," on server ").concat(e,":"),r),{success:!1,error:"Failed to get prompt"}}}clearCapabilitiesCache(e){e?(this.resourcesCache.delete(e),this.promptsCache.delete(e)):(this.resourcesCache.clear(),this.promptsCache.clear())}checkResourceListVersion(e,t){var r;let o=null!=(r=this.resourceListVersions.get(e))?r:-1;return t>o&&(this.resourceListVersions.set(e,t),this.resourcesCache.delete(e),a.debug("checkResourceListVersion: cache invalidated for ".concat(e," (").concat(o," -> ").concat(t,")")),!0)}async callTool(e,t,r,o){try{let a=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/tools/").concat(encodeURIComponent(t)),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({args:r,timeout:o})});return await a.json()}catch(r){return a.warn("Failed to call tool ".concat(t," on server ").concat(e,":"),r),{error:"Failed to call tool"}}}async readResourceFromApp(e,t){try{let r=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/resources/read?uri=").concat(encodeURIComponent(t),"&source=app"));return{...await r.json(),httpStatus:r.status}}catch(r){return a.warn("MCP App failed to read resource ".concat(t," on server ").concat(e,":"),r),{success:!1,error:"Failed to read MCP App resource"}}}async callToolFromApp(e,t,r,o,n,s){try{let a=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/tools/").concat(encodeURIComponent(t)),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({args:r,timeout:o,source:"app",ownerScope:s}),...n?{signal:n}:{}});return{...await a.json(),httpStatus:a.status}}catch(r){return a.warn("Failed to call MCP App tool ".concat(t," on server ").concat(e,":"),r),{success:!1,error:"Failed to call MCP App tool"}}}async updateServerConfig(e,t){try{let r=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e)),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),o=await r.json();if(r.ok)return a.info("Successfully updated server config for ".concat(e)),window.dispatchEvent(new CustomEvent("flujo:mcp-server-config-changed",{detail:{serverName:e,config:{...o,...t}}})),{success:!0,data:o};if(void 0!==t.disabled){a.info("Config update for ".concat(e," treated as success for toggle operation"));let r={...t,name:e};return window.dispatchEvent(new CustomEvent("flujo:mcp-server-config-changed",{detail:{serverName:e,config:r}})),{success:!0,data:r,_originalError:o.error}}return a.warn("Failed to update server config for ".concat(e,":"),o.error),{success:!1,error:o.error}}catch(t){return a.warn("Failed to update server config for ".concat(e,":"),t),{error:"Failed to update server config"}}}async testConnection(e,t){try{let r=await fetch("/api/mcp/test-connection",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,storedName:t})});return await r.json()}catch(t){return a.warn("Failed to test connection for ".concat(e.name,":"),t),{success:!1,error:"Failed to reach the FLUJO backend to run the connection test: ".concat(t instanceof Error?t.message:"Unknown error")}}}async testConnectionStreaming(e,t,r){try{let n=await fetch("/api/mcp/test-connection/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,storedName:r})});if(!n.ok||!n.body)return a.warn("Streaming test-connection unavailable (status ".concat(n.status,"); falling back")),this.testConnection(e,r);let s=null;if(await (0,o.z)(n,e=>{t(e),"result"===e.type&&(s={success:e.success,error:e.error,requiresAuthentication:e.requiresAuthentication,oauthCapable:e.oauthCapable,data:e.data})}),s)return s;return a.warn("Streaming test-connection ended without a result event"),{success:!1,error:"The connection test stream ended unexpectedly without a result."}}catch(t){return a.warn("Streaming test connection failed for ".concat(e.name,"; falling back to non-streaming:"),t),this.testConnection(e,r)}}async probeOAuthCapability(e){try{let t=await fetch("/api/mcp/oauth-capability",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverUrl:e})});if(!t.ok)return{oauthCapable:!1};return await t.json()}catch(t){return a.warn("Failed to probe OAuth capability for ".concat(e,":"),t),{oauthCapable:!1}}}async getServerStatus(e){try{let t=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e),"/status"),{headers:{Accept:"application/json"}}),r=await t.json();if(r.error)return a.warn("Error getting status for server ".concat(e,":"),r.error),{status:"error",message:r.error};return r}catch(t){return a.warn("Failed to get status for server ".concat(e,":"),t),{status:"error",message:"Failed to get server status: ".concat(t instanceof Error?t.message:"Unknown error")}}}async deleteServerConfig(e){try{let t=await fetch("/api/mcp/servers/".concat(encodeURIComponent(e)),{method:"DELETE"});return await t.json()}catch(t){return a.warn("Failed to delete server config for ".concat(e,":"),t),{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 t=await this.updateServerConfig(e,{disabled:!0});if(t.error)return a.warn("Failed to disable server ".concat(e," during restart:"),t.error),{error:"Failed to restart server: ".concat(t.error)};await new Promise(e=>setTimeout(e,1e3));let r=await this.updateServerConfig(e,{disabled:!1});if(r.error)return a.warn("Failed to enable server ".concat(e," during restart:"),r.error),{error:"Failed to restart server: ".concat(r.error)};return a.info("Successfully restarted server ".concat(e)),{success:!0}}catch(t){return a.warn("Failed to restart server ".concat(e,":"),t),{error:"Failed to restart server: ".concat(t instanceof Error?t.message:"Unknown error")}}}constructor(){this.toolsCache=new Map,this.resourcesCache=new Map,this.promptsCache=new Map,this.CACHE_TTL=6e4,this.resourceListVersions=new Map}}let s=new n},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.THEME_STYLE="theme_style",e.LIVING_WORLD_ENABLED="living_world_enabled",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.MCP_INTERNAL_OVERRIDES="mcp_internal_overrides",e.MCP_INTERNAL_SERVERS_MIGRATION_V1="mcp_internal_servers_migration_v1",e.MCP_INTERNAL_CAPABILITIES_MIGRATION_V2="mcp_internal_capabilities_migration_v2",e.MCP_INTERNAL_BROWSER_MIGRATION_V3="mcp_internal_browser_migration_v3",e.MCP_SHIPPED_SERVERS_MIGRATION_V4="mcp_shipped_servers_migration_v4",e.PACKAGE_INSTALLS="package_installs",e.EXPERIMENTAL_SETTINGS="experimental_settings",e.REGISTRY_ACCOUNT="registry_account",e.REGISTRY_SETTINGS="registry_settings",e.TELEMETRY_STATE="telemetry_state",e}({})},29692:(e,t,r)=>{r.d(t,{Zg:()=>o.Z,YM:()=>c,VH:()=>i,Mj:()=>s});var o=r(27156),a=r(12115);let n=(0,r(73288).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),c=(0,a.useRef)(r);return(0,a.useEffect)(()=>{c.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(c.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}},c=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}}},31373:(e,t,r)=>{r.d(t,{UJ:()=>o,ZB:()=>a,bx:()=>s});let o="flujo:encryption-locked",a="flujo:encryption-unlocked",n=!1;function s(){if(n||"function"!=typeof window.fetch)return;n=!0;let e=window.fetch.bind(window);window.fetch=async function(){for(var t=arguments.length,r=Array(t),a=0;a<t;a++)r[a]=arguments[a];let n=await e(...r);return 423===n.status&&function(){try{sessionStorage.removeItem("encryption_authenticated"),sessionStorage.removeItem("encryption_token")}catch(e){}window.dispatchEvent(new CustomEvent(o))}(),n}}},43076:(e,t,r)=>{r.d(t,{N:()=>i,X:()=>s});let o=(0,r(73288).h)("frontend/services/model");class a{async fetchWithErrorHandling(e,t){try{o.debug("Making API request",{url:e,method:(null==t?void 0:t.method)||"GET"});let r=await fetch(e,t),a=null;try{if(204!==r.status){let t=r.headers.get("content-type");if(t&&t.includes("application/json"))a=await r.json();else{let n=await r.text();o.warn("Received non-JSON response",{url:e,contentType:t,text:n.substring(0,200)}),a=n}}}catch(t){throw o.error("Failed to parse response",{url:e,status:r.status,contentType:r.headers.get("content-type"),parseError:t}),Error("Invalid response format")}if(!r.ok){let n;throw n="object"==typeof a&&null!==a?a.error||a.message||a.errorMessage||JSON.stringify(a):a||"HTTP error! status: ".concat(r.status),o.error("Request failed",{url:e,method:(null==t?void 0:t.method)||"GET",status:r.status,error:n,data:a}),Error(n)}return o.debug("API request successful",{url:e,method:(null==t?void 0:t.method)||"GET",status:r.status}),a}catch(r){if(r instanceof TypeError&&"Failed to fetch"===r.message)throw o.error("Network error",{url:e,method:(null==t?void 0:t.method)||"GET",error:r}),Error("Unable to connect to the server. Please check your internet connection.");if(r instanceof Error)throw r;throw o.error("API request failed",{url:e,method:(null==t?void 0:t.method)||"GET",error:r}),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(t){return o.error("Failed to get model",{id:e,error:t}),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 t=await this.fetchWithErrorHandling("/api/model",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return o.debug("Model added successfully",{modelId:t.id,displayName:t.displayName}),{success:!0,model:t}}catch(r){o.error("Failed to add model",{displayName:e.displayName,provider:e.provider,error:r instanceof Error?r.message:r});let t=r instanceof Error?r.message:"Failed to add model";if(t.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(t.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:t}}}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 t=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:t}}catch(r){o.error("Failed to update model",{modelId:e.id,displayName:e.displayName,error:r instanceof Error?r.message:r});let t=r instanceof Error?r.message:"Failed to update model";return t.includes("display name")&&t.includes("already exists"),{success:!1,error:t}}}async deleteModel(e){try{if(!e)return{success:!1,error:"Model ID is required"};let t=await this.getModel(e);if(!t)return{success:!1,error:"Model not found"};return o.debug("Attempting to delete model",{modelId:e,displayName:t.displayName}),await this.fetchWithErrorHandling("/api/model/".concat(encodeURIComponent(e)),{method:"DELETE"}),o.debug("Model deleted successfully",{modelId:e,displayName:t.displayName}),{success:!0}}catch(a){let t;try{let r=await this.getModel(e);t=null==r?void 0:r.displayName}catch(e){}o.error("Failed to delete model",{modelId:e,displayName:t,error:a instanceof Error?a.message:a});let r=a instanceof Error?a.message:"Failed to delete model";if(r.includes("not found"))return{success:!1,error:"The model no longer exists or has already been deleted"};return{success:!1,error:r}}}async updateModelApiKey(e,t){try{let r=await this.getModel(e);if(!r)return{success:!1,error:"Model not found"};return await this.updateModel({...r,ApiKey:t})}catch(t){return o.error("Failed to update model API key",{modelId:e,error:t}),{success:!1,error:t instanceof Error?t.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,t,r,a){try{var n;o.debug("Fetching provider models",{baseUrl:e,modelId:t,searchTerm:r?'"'.concat(r,'"'):"none",apiKey:a?"provided":"not provided"});let s=await this.fetchWithErrorHandling("/api/model/provider",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:e,modelId:t,searchTerm:r,apiKey:a})});return o.debug("Provider models fetched successfully",{baseUrl:e,modelCount:(null==(n=s.models)?void 0:n.length)||0,searchTerm:r?'"'.concat(r,'"'):"none"}),s.models||[]}catch(t){return o.error("Failed to fetch provider models",{baseUrl:e,searchTerm:r,error:t}),[]}}}let n=null,s=()=>(n||(n=new a),n),i=new Proxy({},{get(e,t){let r=s(),o=r[t];return"function"==typeof o?o.bind(r):o}})},56290:(e,t,r)=>{r.d(t,{z:()=>o});async function o(e,t){if(!e.body||"function"!=typeof e.body.getReader)throw Error("Response has no readable body to stream");let r=e.body.getReader(),o=new TextDecoder,a=function(){let e="",t=(e,t)=>{let r=e.trim();if(r)try{t.push(JSON.parse(r))}catch(e){}};return{push(r){let o;e+=r;let a=[];for(;(o=e.indexOf("\n"))>=0;)t(e.slice(0,o),a),e=e.slice(o+1);return a},flush(){let r=[];return t(e,r),e="",r}}}();try{for(;;){let{value:e,done:n}=await r.read();if(n)break;for(let r of a.push(o.decode(e,{stream:!0})))t(r)}let e=o.decode();if(e)for(let r of a.push(e))t(r);for(let e of a.flush())t(e)}finally{try{r.releaseLock()}catch(e){}}}},94929:(e,t,r)=>{r.d(t,{default:()=>s});var o=r(95155);r(12115);var a=r(94049),n=r(4474);let s=e=>{let{size:t="medium",color:r="primary",className:s="",sx:i={}}=e,c="white"===r?{color:"#fff",...i}:i;return(0,o.jsxs)(a.default,{component:"span",sx:{display:"inline-block",lineHeight:0,...c},className:s,role:"status",children:[(0,o.jsx)(n.default,{size:{small:16,medium:24,large:36}[t],color:"white"===r?"inherit":r,"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..."})]})}}}]);
|