flujo-ai 3.34.0 → 3.35.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 +324 -317
- package/.next/app-path-routes-manifest.json +19 -18
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +24 -24
- package/.next/routes-manifest.json +9 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/api/approvals/[id]/route.js +1 -1
- package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/approvals/route.js +2 -2
- package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/backup/route.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.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.js +2 -2
- package/.next/server/app/api/env/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/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.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.js +1 -1
- package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route_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.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.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.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.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.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.js +1 -1
- package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/reset/route.js +1 -1
- package/.next/server/app/api/oauth/reset/route_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.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.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.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.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.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.js +1 -1
- package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runs/active/route.js +1 -1
- package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/storage/route.js +1 -1
- package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/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.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/chat/page.js +2 -2
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +2 -2
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +1 -1
- package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/executions.html +1 -1
- package/.next/server/app/executions.rsc +1 -1
- package/.next/server/app/flows/page.js +2 -2
- package/.next/server/app/flows/page.js.nft.json +1 -1
- package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/flows.html +1 -1
- package/.next/server/app/flows.rsc +2 -2
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +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 +2 -2
- package/.next/server/app/models/page.js +1 -1
- 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 +2 -2
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +2 -2
- package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.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.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.js +1 -1
- package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/models/route.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 +1 -1
- package/.next/server/app-paths-manifest.json +19 -18
- package/.next/server/chunks/1227.js +1 -1
- package/.next/server/chunks/1805.js +1 -1
- package/.next/server/chunks/2273.js +2 -2
- package/.next/server/chunks/2372.js +1 -1
- package/.next/server/chunks/2859.js +1 -1
- package/.next/server/chunks/3935.js +4 -0
- package/.next/server/chunks/4265.js +1 -1
- package/.next/server/chunks/4771.js +2 -2
- package/.next/server/chunks/4822.js +1 -1
- package/.next/server/chunks/5096.js +1 -1
- package/.next/server/chunks/5309.js +1 -1
- package/.next/server/chunks/544.js +16 -16
- package/.next/server/chunks/5544.js +1 -1
- package/.next/server/chunks/5703.js +2 -2
- package/.next/server/chunks/6041.js +1 -1
- package/.next/server/chunks/6226.js +1 -1
- package/.next/server/chunks/6747.js +42 -42
- package/.next/server/chunks/701.js +1 -1
- package/.next/server/chunks/7069.js +4 -4
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7628.js +1 -1
- package/.next/server/chunks/7891.js +1 -1
- package/.next/server/chunks/7993.js +1 -1
- package/.next/server/chunks/8284.js +1 -1
- package/.next/server/chunks/8387.js +1 -1
- package/.next/server/chunks/8645.js +1 -1
- package/.next/server/chunks/8739.js +1 -1
- package/.next/server/chunks/9085.js +1 -1
- package/.next/server/chunks/9235.js +1 -1
- package/.next/server/chunks/9285.js +1 -1
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +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/{8650-5294c6ed1173b014.js → 8650-aa22dbf7b37348f0.js} +1 -1
- package/.next/static/chunks/9611-9867e6e8e65172ec.js +1 -0
- package/.next/static/chunks/app/api/approvals/[id]/{route-9ea2990be4b67136.js → route-b9c783850b4c2acf.js} +1 -1
- package/.next/static/chunks/app/api/approvals/{route-9ea2990be4b67136.js → route-b9c783850b4c2acf.js} +1 -1
- package/.next/static/chunks/app/api/backup/{route-9ea2990be4b67136.js → route-b9c783850b4c2acf.js} +1 -1
- package/.next/static/chunks/app/api/browse/{route-9ea2990be4b67136.js → route-b9c783850b4c2acf.js} +1 -1
- package/.next/static/chunks/app/api/bugs/enhance/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/cwd/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/encryption/secure/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/env/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/compile/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/generate/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/generator/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/improve/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/quick-chat/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/repair/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/git/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/init/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/local-models/capability/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/local-models/pull/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/local-models/suggest/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/app-sandbox/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/cancel/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/oauth-capability/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/model/[id]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/model/provider/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/model/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/model/test/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/oauth/callback/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/oauth/initiate/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/oauth/reset/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/build/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/derive-secrets/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/install/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/install/status/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/installed/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/resolve/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/scan-targets/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/search/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/uninstall/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/resend/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/reset/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/feedback/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/callback/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/initiate/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/packages/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/publish/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/settings/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/restore/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/runs/active/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/storage/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/telemetry/daily-active/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/update/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/waves/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[id]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/chat/{page-bc7807593b8b7394.js → page-e37bbc561f40ce60.js} +1 -1
- package/.next/static/chunks/app/flows/{page-87fb466e491fc068.js → page-e52c8943555e38dd.js} +1 -1
- package/.next/static/chunks/app/mcp-flows/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/mcp-proxy/[server]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/models/page-595597042e227970.js +1 -0
- package/.next/static/chunks/app/packages/page-f1a22789a6c0e0b6.js +1 -0
- package/.next/static/chunks/app/settings/{page-2fc3a70bfd25c48b.js → page-f35e939032b0277d.js} +1 -1
- package/.next/static/chunks/app/v1/chat/completions/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/events/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/models/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/{webpack-d5d737ff6a86674f.js → webpack-9d09d53b271f49e2.js} +1 -1
- package/.next/trace +10 -10
- package/.next/types/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.ts +347 -0
- package/.next/types/routes.d.ts +2 -1
- package/.next/types/validator.ts +9 -0
- package/README.md +60 -61
- package/package.json +1 -1
- package/.next/server/chunks/4308.js +0 -4
- package/.next/static/chunks/6733-c9029143901e62e9.js +0 -1
- package/.next/static/chunks/app/api/bugs/enhance/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/cwd/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/encryption/secure/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/env/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/versions/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/compile/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/generate/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/generator/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/improve/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/quick-chat/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/repair/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/git/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/init/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/local-models/capability/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/local-models/pull/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/local-models/suggest/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/app-sandbox/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/cancel/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/oauth-capability/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/model/[id]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/model/provider/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/model/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/model/test/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/oauth/callback/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/oauth/initiate/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/oauth/reset/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/build/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/derive-secrets/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/install/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/install/status/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/installed/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/resolve/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/scan-targets/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/search/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/uninstall/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/resend/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/reset/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/feedback/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/oauth/callback/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/oauth/initiate/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/packages/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/publish/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/settings/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/restore/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/runs/active/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/storage/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/telemetry/daily-active/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/update/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/waves/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[id]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/mcp-flows/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/mcp-proxy/[server]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/models/page-a5e2437356b06db8.js +0 -1
- package/.next/static/chunks/app/packages/page-fba5696f33d9cdfb.js +0 -1
- package/.next/static/chunks/app/v1/chat/completions/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/events/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/models/route-9ea2990be4b67136.js +0 -1
- /package/.next/static/{Zz_Vh59XdtLIPcf-PxCpo → hbjnLG9RCje2AApS9TzP8}/_buildManifest.js +0 -0
- /package/.next/static/{Zz_Vh59XdtLIPcf-PxCpo → hbjnLG9RCje2AApS9TzP8}/_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/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/flow/generate/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/route":{"moduleId":"91959","async":false},"app/api/flow/repair/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/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/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/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/model/[id]/route":{"moduleId":"91959","async":false},"app/api/model/provider/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/model/test/route":{"moduleId":"91959","async":false},"app/api/oauth/callback/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/build/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/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/[id]/runs/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/reset/route":{"moduleId":"91959","async":false},"app/api/registry/auth/resend/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]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/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/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/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/settings/page":{"moduleId":"81017","async":false},"app/mcp/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/env/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/compile/route":"rsc","app/api/flow/generate/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/route":"rsc","app/api/flow/repair/route":"rsc","app/api/init/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/prompts/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/[toolName]/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/route":"rsc","app/api/model/test/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/packages/build/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/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/[id]/runs/route":"rsc","app/api/planned-executions/reconcile/route":"rsc","app/api/planned-executions/route":"rsc","app/api/registry/auth/reset/route":"rsc","app/api/registry/auth/resend/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]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/chat/conversations/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/settings/page":"action-browser","app/mcp/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/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/flow/generate/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/route":{"moduleId":"91959","async":false},"app/api/flow/repair/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/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/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/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/model/[id]/route":{"moduleId":"91959","async":false},"app/api/model/provider/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/model/test/route":{"moduleId":"91959","async":false},"app/api/oauth/callback/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/build/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/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/[id]/runs/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/reset/route":{"moduleId":"91959","async":false},"app/api/registry/auth/resend/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]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/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/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/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/settings/page":{"moduleId":"81017","async":false},"app/mcp/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/env/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/compile/route":"rsc","app/api/flow/generate/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/route":"rsc","app/api/flow/repair/route":"rsc","app/api/init/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/prompts/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/[toolName]/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/route":"rsc","app/api/model/test/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/packages/build/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/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/[id]/runs/route":"rsc","app/api/planned-executions/reconcile/route":"rsc","app/api/planned-executions/route":"rsc","app/api/registry/auth/reset/route":"rsc","app/api/registry/auth/resend/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]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/chat/conversations/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/settings/page":"action-browser","app/mcp/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/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/flow/generate/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/route":{"moduleId":"91959","async":false},"app/api/flow/repair/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/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/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/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/model/[id]/route":{"moduleId":"91959","async":false},"app/api/model/provider/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/model/test/route":{"moduleId":"91959","async":false},"app/api/oauth/callback/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/build/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/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/[id]/runs/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/reset/route":{"moduleId":"91959","async":false},"app/api/registry/auth/resend/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]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/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/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/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/settings/page":{"moduleId":"81017","async":false},"app/mcp/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/env/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/compile/route":"rsc","app/api/flow/generate/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/route":"rsc","app/api/flow/repair/route":"rsc","app/api/init/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/prompts/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/[toolName]/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/route":"rsc","app/api/model/test/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/packages/build/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/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/[id]/runs/route":"rsc","app/api/planned-executions/reconcile/route":"rsc","app/api/planned-executions/route":"rsc","app/api/registry/auth/reset/route":"rsc","app/api/registry/auth/resend/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]/cancel/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/continue/route":"rsc","app/v1/chat/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/chat/conversations/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/settings/page":"action-browser","app/mcp/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/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/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/flow/generate/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/route":{"moduleId":"91959","async":false},"app/api/flow/repair/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/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/read/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/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/model/[id]/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/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/packages/derive-secrets/route":{"moduleId":"91959","async":false},"app/api/oauth/reset/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/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/[id]/runs/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/api/packages/build/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]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/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/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/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/events/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/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/env/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/compile/route":"rsc","app/api/flow/generate/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/route":"rsc","app/api/flow/repair/route":"rsc","app/api/init/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/test/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/model/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/packages/derive-secrets/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/packages/install/route":"rsc","app/api/packages/install/status/route":"rsc","app/api/packages/installed/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/[id]/runs/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/api/packages/build/route":"rsc","app/v1/chat/completions/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/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/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/events/route":"rsc","app/v1/chat/conversations/[conversationId]/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/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/flow/generate/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/route":{"moduleId":"91959","async":false},"app/api/flow/repair/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/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/read/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/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/model/[id]/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/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/packages/derive-secrets/route":{"moduleId":"91959","async":false},"app/api/oauth/reset/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/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/[id]/runs/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/api/packages/build/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]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/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/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/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/events/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/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/env/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/compile/route":"rsc","app/api/flow/generate/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/route":"rsc","app/api/flow/repair/route":"rsc","app/api/init/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/test/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/model/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/packages/derive-secrets/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/packages/install/route":"rsc","app/api/packages/install/status/route":"rsc","app/api/packages/installed/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/[id]/runs/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/api/packages/build/route":"rsc","app/v1/chat/completions/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/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/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/events/route":"rsc","app/v1/chat/conversations/[conversationId]/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/env/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/[versionId]/route":{"moduleId":"91959","async":false},"app/api/flow/[id]/versions/route":{"moduleId":"91959","async":false},"app/api/flow/compile/route":{"moduleId":"91959","async":false},"app/api/flow/generate/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/route":{"moduleId":"91959","async":false},"app/api/flow/repair/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/servers/[name]/prompts/get/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/prompts/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/resources/read/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/[toolName]/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/[name]/tools/route":{"moduleId":"91959","async":false},"app/api/mcp/servers/route":{"moduleId":"91959","async":false},"app/api/mcp/test-connection/route":{"moduleId":"91959","async":false},"app/api/model/[id]/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/oauth/callback/route":{"moduleId":"91959","async":false},"app/api/model/route":{"moduleId":"91959","async":false},"app/api/oauth/initiate/route":{"moduleId":"91959","async":false},"app/api/packages/derive-secrets/route":{"moduleId":"91959","async":false},"app/api/oauth/reset/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/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/[id]/runs/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/api/packages/build/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]/cancel/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/continue/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/[conversationId]/respond/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/debug/step/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/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/events/route":{"moduleId":"91959","async":false},"app/v1/chat/conversations/[conversationId]/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/env/route":"rsc","app/api/flow/[id]/route":"rsc","app/api/flow/[id]/versions/[versionId]/route":"rsc","app/api/flow/[id]/versions/route":"rsc","app/api/flow/compile/route":"rsc","app/api/flow/generate/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/route":"rsc","app/api/flow/repair/route":"rsc","app/api/init/route":"rsc","app/api/mcp-registry/route":"rsc","app/api/mcp/cancel/route":"rsc","app/api/mcp/servers/[name]/prompts/get/route":"rsc","app/api/mcp/servers/[name]/prompts/route":"rsc","app/api/mcp/servers/[name]/resources/route":"rsc","app/api/mcp/servers/[name]/resources/read/route":"rsc","app/api/mcp/servers/[name]/route":"rsc","app/api/mcp/servers/[name]/status/route":"rsc","app/api/mcp/servers/[name]/tools/[toolName]/route":"rsc","app/api/mcp/servers/[name]/tools/route":"rsc","app/api/mcp/servers/route":"rsc","app/api/mcp/test-connection/route":"rsc","app/api/model/[id]/route":"rsc","app/api/model/provider/route":"rsc","app/api/model/test/route":"rsc","app/api/oauth/callback/route":"rsc","app/api/model/route":"rsc","app/api/oauth/initiate/route":"rsc","app/api/packages/derive-secrets/route":"rsc","app/api/oauth/reset/route":"rsc","app/api/packages/install/route":"rsc","app/api/packages/install/status/route":"rsc","app/api/packages/installed/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/[id]/runs/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/api/packages/build/route":"rsc","app/v1/chat/completions/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/conversations/[conversationId]/edit-state/route":"rsc","app/v1/chat/conversations/[conversationId]/inject/route":"rsc","app/v1/chat/conversations/[conversationId]/respond/route":"rsc","app/v1/chat/conversations/[conversationId]/route":"rsc","app/v1/chat/conversations/[conversationId]/debug/step/route":"rsc","app/v1/chat/conversations/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/events/route":"rsc","app/v1/chat/conversations/[conversationId]/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([[8650],{1877:(e,t,r)=>{r.d(t,{Hm:()=>i,xc:()=>o,yo:()=>a});let n=["key","secret","token","password"],o=e=>n.some(t=>e.toLowerCase().includes(t)),i=e=>o(e)||"authorization"===e.trim().toLowerCase(),a=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:()=>f,useStorage:()=>d});var n=r(95155),o=r(12115),i=r(29692),a=r(1877),s=r(87021),l=r(31373);let c=(0,s.h)("frontend/contexts/StorageContext"),u=(0,o.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()=>{}}),d=()=>(0,o.useContext)(u),p=e=>{let{children:t}=e,[r,s]=(0,o.useState)(!1),[d,p]=(0,o.useState)(!1),[f,h]=(0,o.useState)({}),[y,m]=(0,o.useState)({speech:{enabled:!0},update:{checkOnStartup:!1}}),g=(0,o.useCallback)(async()=>{c.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 c.warn("isEncryptionInitialized: Failed to check encryption status:",e),!1}},[]),v=(0,o.useCallback)(async e=>{c.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){c.warn("setKey: Failed to set encryption key:",e)}},[]),w=(0,o.useCallback)(async(e,t)=>{c.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 n=await r.json();if(n.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===n.success}catch(e){return c.warn("changeKey: Failed to change encryption key:",e),!1}},[]),b=(0,o.useCallback)(async e=>{c.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 c.warn("verifyKey: Failed to verify encryption key:",e),!1}},[]),x=(0,o.useCallback)(async()=>{let e={speech:{enabled:!0},update:{checkOnStartup:!1}};try{var t;let r=await fetch("/api/storage?key=".concat(encodeURIComponent(i.Zg.SPEECH_SETTINGS),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(e))));if(!r.ok)return void c.debug("loadSettings: settings read not ok, keeping defaults",{status:r.status});let n=await r.json();c.debug("Loaded settings from storage",{settings:n.value}),m(null!=(t=n.value)?t:e),p(!0)}catch(e){c.warn("loadSettings: failed to load settings:",e)}},[]);(0,o.useEffect)(()=>{let e=()=>{c.info("Encryption unlocked signal received; reloading settings"),x()};return window.addEventListener(l.ZB,e),()=>window.removeEventListener(l.ZB,e)},[x]),(0,o.useEffect)(()=>{(async()=>{c.debug("loadData: Entering method");try{c.info("Calling initialization API to verify storage");let e=await fetch("/api/init");if(e.ok)c.info("Storage initialization completed successfully");else{let t=await e.json();c.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();c.debug("Loaded environment variables",{count:Object.keys(e.variables||{}).length}),h(e.variables||{})}else c.error("loadData: Failed to load environment variables"),h({});await x(),s(!0)}catch(e){c.error("loadData: Error loading data:",e),s(!0)}})()},[g,x]);let E=(0,o.useCallback)(async(e,t)=>{c.debug("encryptValue: Entering method");try{let r=sessionStorage.getItem("encryption_token"),n=sessionStorage.getItem("encryption_key"),o={action:"encrypt",data:e};r?o.token=r:t?o.password=t:n&&(o.password=n);let i=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!i.ok)throw Error("Failed to encrypt value");return(await i.json()).result}catch(e){return c.warn("encryptValue: Failed to encrypt value:",e),null}},[]),C=(0,o.useCallback)(async(e,t)=>(c.debug("decryptValue: Entering method - THIS METHOD IS DEPRECATED"),c.warn("decryptValue: Frontend decryption is deprecated for security reasons"),null),[]),S=(0,o.useCallback)(async()=>{c.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 c.warn("isUserEncryptionEnabled: Failed to check user encryption status:",e),!1}},[]),k=(0,o.useCallback)(async e=>{c.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();c.error("setGlobalEnvVars: Failed to set environment variables:",e.error);return}let r={};for(let[t,n]of Object.entries(e)){let e="object"==typeof n&&null!==n&&"value"in n?n.value:n,o="object"==typeof n&&null!==n&&"metadata"in n?n.metadata:{isSecret:(0,a.xc)(t)};o.isSecret?r[t]={value:"********",metadata:o}:r[t]={value:e,metadata:o}}h(r)}catch(e){c.error("setGlobalEnvVars: Error setting environment variables:",e)}},[g]),j=(0,o.useCallback)(async e=>{c.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();c.error("deleteGlobalEnvVar: Failed to delete environment variable:",e.error);return}h(t=>{let r={...t};return delete r[e],r})}catch(e){c.error("deleteGlobalEnvVar: Error deleting environment variable:",e)}},[]),A=(0,o.useCallback)(async e=>{c.debug("updateSettings: Updating settings",{newSettings:e});try{await (0,i.VH)(i.Zg.SPEECH_SETTINGS,e),m(e)}catch(e){c.error("updateSettings: Error updating settings:",e)}},[]);return(0,n.jsx)(u.Provider,{value:{setKey:v,changeKey:w,verifyKey:b,isEncryptionInitialized:g,globalEnvVars:f,setGlobalEnvVars:k,deleteGlobalEnvVar:j,encryptValue:E,decryptValue:C,isUserEncryptionEnabled:S,isLoading:!r,settings:y,settingsHydrated:d,updateSettings:A},children:t})},f=u},23731:(e,t,r)=>{r.d(t,{uJ:()=>A,Ay:()=>F,Yw:()=>T});var n=r(95155),o=r(12115),i=r(33567),a=r(94049),s=r(4474),l=r(25635),c=r(22003),u=r(78470),d=r(91871),p=r(50430),f=r(26188),h=r(38952),y=r(63186),m=r(62962),g=r(39486),v=r(82446),w=r(9127),b=r(17897),x=r(41080);let E=(0,r(87021).h)("frontend/components/Chat/McpAppFrame"),C={name:"FLUJO",version:"3.34.0"},S=new Set(["https:","http:"]),k=["inline","fullscreen","pip"],j=new Set(["text"]),A=262144;function T(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch(e){return 1/0}}let R=null;async function P(){return R||(R=fetch("/api/mcp/app-sandbox").then(async e=>{if(!e.ok)throw Error("Sandbox endpoint discovery failed (".concat(e.status,")"));return await e.json()}).catch(e=>{throw R=null,e})),function(e,t){let r;if("string"!=typeof e.token||0===e.token.length)throw Error("Sandbox endpoint discovery returned invalid credentials");if(void 0!==e.url){if("string"!=typeof e.url)throw Error("Sandbox endpoint discovery returned an invalid public URL");try{r=new URL(e.url)}catch(e){throw Error("Sandbox endpoint discovery returned an invalid public URL")}if("http:"!==r.protocol&&"https:"!==r.protocol||r.username||r.password)throw Error("Sandbox public URL must be an absolute HTTP(S) URL without credentials");if("https:"===t.protocol&&"https:"!==r.protocol)throw Error("HTTPS FLUJO deployments require an HTTPS MCP Apps sandbox URL")}else{if("http:"!==t.protocol)throw Error("MCP Apps on HTTPS require FLUJO_MCP_APP_SANDBOX_PUBLIC_URL to be configured");if(!Number.isInteger(e.port)||e.port<1||e.port>65535)throw Error("Sandbox endpoint discovery returned an invalid port");(r=new URL("/sandbox.html",t.origin)).port=String(e.port)}if(r.origin===t.origin)throw Error("MCP Apps sandbox must use a distinct origin from FLUJO");return r.searchParams.set("token",e.token),r.href}(await R,window.location)}function M(e,t){let r=[],n=new Set;for(let o of null!=e?e:[]){if(0===o.length||o.length>2048||/[^\x21-\x7e]/.test(o))continue;let e=/^(https|wss):\/\/(\*\.)?([^/:?#]+)(?::(\d{1,5}))?$/i.exec(o);if(!e||!t.includes(e[1].toLowerCase()))continue;let i=e[3].split(".");if(e[3].length>253||i.some(e=>0===e.length||e.length>63||!/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(e)))continue;let a=e[4]?Number(e[4]):void 0;if(void 0!==a&&(!Number.isInteger(a)||a<1||a>65535))continue;let s=o.toLowerCase();if(!n.has(s)&&(n.add(s),r.push(o),r.length>=64))break}return r}function O(e){if(e)try{return JSON.parse(e)}catch(e){return}}async function L(e,t,r,n){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;if(await e.sendToolInput({arguments:function(e){let t=O(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}(t)}),void 0!==n)return void await e.sendToolCancelled({reason:n});let i=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(void 0===e)return!0===t?{content:[],isError:!0}:null;let r=O(e);return r&&"object"==typeof r&&Array.isArray(r.content)?{...r,...!0===t?{isError:!0}:{}}:{content:[{type:"text",text:e}],...!0===t?{isError:!0}:{}}}(r,o);i&&await e.sendToolResult(i)}function _(e,t,r){return t.includes(e)&&r.includes(e)}function I(e,t){let r=e.getBoundingClientRect(),n=Math.max(1,Math.round(r.width||e.clientWidth||1));return t?{width:n,height:Math.max(1,Math.round(r.height||e.clientHeight||1))}:{width:n,maxHeight:6e3}}async function U(e,t,r){try{let n=await b.S.listServerTools(e),o=Array.isArray(n.tools)?n.tools:[],i=r?o.find(e=>(null==e?void 0:e.name)===r):o.find(e=>(0,x.Gt)(null==e?void 0:e._meta)===t);if((null==i?void 0:i.name)&&(null==i?void 0:i.inputSchema)&&(0,x.Gt)(i._meta)===t)return{tool:i}}catch(e){E.debug("Could not resolve the full MCP App tool definition",e)}}let F=e=>{let{serverName:t,uri:r,toolName:R,toolArgs:O,toolResultContent:F,toolUpdateId:z,toolCancelledReason:N,toolIsError:H,onAppMessage:D,onUpdateModelContext:J,onRequestDock:V,onDockable:G,onAvailableDisplayModes:B,hostDisplayMode:K,onRequestDisplayMode:W,onRequestClose:q,onRegisterTeardown:Z,teardownRegistrationKey:$,docked:X=!1,visible:Y=!0}=e,Q=(0,i.A)(),[ee,et]=(0,o.useState)(!1),[er,en]=(0,o.useState)(!1),[eo,ei]=(0,o.useState)(null),[ea,es]=(0,o.useState)(X?"pip":"inline"),[el,ec]=(0,o.useState)([]),eu=null!=K?K:ea,ed=(0,o.useMemo)(()=>X?["pip","fullscreen"]:["inline","fullscreen",...V?["pip"]:[]],[X,V]),ep=(0,o.useRef)(null),ef=(0,o.useRef)(null),eh=(0,o.useRef)(null),ey=(0,o.useRef)(!1),em=(0,o.useRef)(0),eg=(0,o.useRef)(!1),ev=(0,o.useRef)(null),ew=(0,o.useRef)(null),eb=(0,o.useRef)(!1),ex=(0,o.useRef)(!0),eE=(0,o.useRef)([]),eC=(0,o.useRef)(eu),eS=(0,o.useRef)(ed),ek=(0,o.useRef)(Promise.resolve()),ej=(0,o.useRef)(void 0),eA=(0,o.useRef)({args:O,resultContent:F,cancelledReason:N,isError:H,updateId:z});eA.current={args:O,resultContent:F,cancelledReason:N,isError:H,updateId:z};let eT=(0,o.useRef)(D);(0,o.useEffect)(()=>{eT.current=D},[D]);let eR=(0,o.useRef)(J);(0,o.useEffect)(()=>{eR.current=J},[J]);let eP=(0,o.useRef)(V);(0,o.useEffect)(()=>{eP.current=V},[V]);let eM=(0,o.useRef)(G);(0,o.useEffect)(()=>{eM.current=G},[G]);let eO=(0,o.useRef)(B);(0,o.useEffect)(()=>{eO.current=B},[B]);let eL=(0,o.useRef)(W);(0,o.useEffect)(()=>{eL.current=W},[W]);let e_=(0,o.useRef)(q);(0,o.useEffect)(()=>{e_.current=q},[q]);let eI=(0,o.useRef)(X);(0,o.useEffect)(()=>{eI.current=X},[X]),(0,o.useEffect)(()=>{eC.current=eu},[eu]),(0,o.useEffect)(()=>{eS.current=ed},[ed]);let eU=(0,o.useCallback)(()=>{var e;if(ew.current)return ew.current;em.current+=1;let t=eh.current,r=ef.current,n=eg.current;eh.current=null,ef.current=null,eg.current=!1,ey.current=!1,eE.current=[],null==(e=ev.current)||e.disconnect(),ev.current=null;let o=(async()=>{if(t&&n){let e;try{await Promise.race([t.teardownResource({},{timeout:1e3}),new Promise(t=>{e=setTimeout(t,1e3)})])}catch(e){E.debug("MCP App did not acknowledge resource teardown",e)}finally{e&&clearTimeout(e)}}try{await (null==t?void 0:t.close())}catch(e){}null==r||r.remove()})();return ew.current=o,o.finally(()=>{ew.current===o&&(ew.current=null)}),o},[]),eF=(0,o.useCallback)(()=>{!eb.current&&eP.current&&(eb.current=!0,eU().then(()=>{var e;ex.current&&(null==(e=eP.current)||e.call(eP),et(!1))}).finally(()=>{eb.current=!1}))},[eU]),ez=(0,o.useCallback)((e,t,r,n,o)=>{ek.current=ek.current.catch(()=>void 0).then(async()=>{eh.current===e&&eg.current&&await L(e,t,r,n,o)}).catch(e=>{E.warn("MCP App tool delivery failed",e)})},[]),eN=(0,o.useCallback)(async()=>{if(ew.current&&await ew.current,ey.current||!ep.current)return;let e=em.current+1;em.current=e;let n=()=>em.current===e&&ey.current;ey.current=!0,ec([]),en(!0),ei(null);try{var o,i,a;let s,[l,c]=await Promise.all([b.S.readResourceFromApp(t,r),U(t,r,R)]);if(!n())return;if((null==l?void 0:l.httpStatus)===403)throw Error((null==l?void 0:l.error)||"MCP Apps access was disabled for this server");if(!l||!1===l.success)throw Error((null==l?void 0:l.error)||"Failed to read the UI resource.");let u=function(e,t){var r,n,o;let i,a=null==e?void 0:e.contents;if(!Array.isArray(a)||0===a.length)throw Error("Resource has no contents");let s=a.find(e=>e.uri===t&&"string"==typeof e.mimeType&&(0,x.q$)(e.mimeType)&&("string"==typeof e.text||"string"==typeof e.blob));if(!s)throw Error("Resource ".concat(t," did not return MCP App HTML"));try{i="string"==typeof s.text?s.text:function(e){let t=Uint8Array.from(atob(e),e=>e.charCodeAt(0));return new TextDecoder("utf-8",{fatal:!0}).decode(t)}(s.blob)}catch(e){throw Error("Resource ".concat(t," contains invalid base64 UTF-8 HTML"))}if(new TextEncoder().encode(i).length>x.Pt)throw Error("Resource exceeds the ".concat(Math.round(x.Pt/1024)," KiB size cap"));let l=null==(r=null!=(n=s._meta)?n:s.meta)?void 0:r.ui,c=w.c0.safeParse(null==l?void 0:l.csp);if((null==l?void 0:l.csp)!==void 0&&!c.success)throw Error("Resource ".concat(t," declares an invalid CSP policy"));let u=w.Ml.safeParse(null==l?void 0:l.permissions);if((null==l?void 0:l.permissions)!==void 0&&!u.success)throw Error("Resource ".concat(t," declares invalid sandbox permissions"));return{html:i,csp:c.success?{connectDomains:M((o=c.data).connectDomains,["https","wss"]),resourceDomains:M(o.resourceDomains,["https"]),frameDomains:M(o.frameDomains,["https"]),baseUriDomains:M(o.baseUriDomains,["https"])}:void 0,permissions:u.success&&u.data.clipboardWrite?{clipboardWrite:{}}:void 0}}(l.data,r),d=await P();if(!n()||!ep.current)return;let p=document.createElement("iframe");p.title="MCP App: ".concat(r),p.setAttribute("sandbox","allow-scripts allow-same-origin"),p.referrerPolicy="origin";let f=(0,w.Sy)(u.permissions);f&&p.setAttribute("allow",f),p.style.cssText=eI.current?"width:100%;height:100%;border:none;background:#fff;":"width:100%;min-height:120px;height:200px;border:none;border-radius:4px;background:#fff;",ep.current.appendChild(p),ef.current=p;let h=new URL(d);u.csp&&h.searchParams.set("csp",JSON.stringify(u.csp));let y=h.origin,m=new Promise((e,t)=>{let r=setTimeout(()=>{window.removeEventListener("message",n),t(Error("Timed out waiting for the sandbox proxy."))},1e4),n=t=>{var o,i;t.source===p.contentWindow&&t.origin===y&&(null==(o=t.data)?void 0:o.jsonrpc)==="2.0"&&(null==(i=t.data)?void 0:i.method)==="ui/notifications/sandbox-proxy-ready"&&(clearTimeout(r),window.removeEventListener("message",n),e())};window.addEventListener("message",n)});if(p.src=h.href,await m,!n()||ef.current!==p)return;let g=eC.current,v="inline";eC.current=v,s=new w.T1(function(e,t){return{getServerCapabilities:()=>({tools:{},resources:{}}),setNotificationHandler:()=>{},request:async(r,n,o)=>{let{method:i,params:a}=r;if("tools/call"===i){var s;E.info("MCP App tools/call: ".concat(e,"/").concat(null==a?void 0:a.name));let r=await b.S.callToolFromApp(e,a.name,null!=(s=a.arguments)?s:{},void 0,null==o?void 0:o.signal);if((null==r?void 0:r.httpStatus)===403){let e=(null==r?void 0:r.error)||"MCP Apps access was disabled for this server";throw t(e),Error(e)}if(!r||!1===r.success)throw Error((null==r?void 0:r.error)||"Tool call failed: ".concat(null==a?void 0:a.name));return r.data}if("resources/read"===i){let r=await b.S.readResourceFromApp(e,a.uri);if((null==r?void 0:r.httpStatus)===403){let e=(null==r?void 0:r.error)||"MCP Apps access was disabled for this server";throw t(e),Error(e)}if(!r||!1===r.success)throw Error((null==r?void 0:r.error)||"Resource read failed: ".concat(null==a?void 0:a.uri));return r.data}if("resources/list"===i)return{resources:[]};if("resources/templates/list"===i)return{resourceTemplates:[]};throw Error("MCP App requested unsupported method: ".concat(i))}}}(t,t=>{em.current===e&&eh.current===s&&(ei(t),en(!1),eU())}),C,{openLinks:{},serverTools:{},serverResources:{},logging:{},...eT.current?{message:{text:{}}}:{},...eR.current?{updateModelContext:{text:{},structuredContent:{}}}:{},sandbox:{csp:u.csp,permissions:u.permissions}},{hostContext:{...c?{toolInfo:c}:{},theme:"dark"===Q.palette.mode?"dark":"light",platform:"web",displayMode:v,availableDisplayModes:eS.current,containerDimensions:I(ep.current,eI.current),locale:navigator.language,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,userAgent:navigator.userAgent,deviceCapabilities:{touch:navigator.maxTouchPoints>0,hover:null!=(a=null==(o=(i=window).matchMedia)?void 0:o.call(i,"(hover: hover)").matches)&&a}}}),eh.current=s;let O=()=>n()&&eh.current===s;if(s.onopenlink=async e=>{let{url:n}=e;if(!O())return{isError:!0};let o=function(e){try{let t=new URL(e);if(!S.has(t.protocol)||t.username||t.password)return null;return t.href}catch(e){return null}}(n);if(!o)return E.warn("MCP App open-link rejected by URL policy",{serverName:t,uri:r}),{isError:!0};let i=window.open(o,"_blank","noopener,noreferrer");return i?(i.opener=null,{}):{isError:!0}},s.ondownloadfile=async e=>{let{contents:t}=e;if(!O())return{isError:!0};try{for(let e of null!=t?t:[]){let t,n=null==e?void 0:e.resource;if(!n)continue;let o=("string"==typeof n.uri?n.uri.split("/").pop():"")||"download",i="string"==typeof n.mimeType?n.mimeType:"application/octet-stream";if("string"==typeof n.blob){let e=Uint8Array.from(atob(n.blob),e=>e.charCodeAt(0));t=new Blob([e],{type:i})}else{var r;t=new Blob([String(null!=(r=n.text)?r:"")],{type:i})}let a=URL.createObjectURL(t),s=document.createElement("a");s.href=a,s.download=o,document.body.appendChild(s),s.click(),s.remove(),setTimeout(()=>URL.revokeObjectURL(a),4e3)}return{}}catch(e){return E.warn("MCP App download failed",e),{isError:!0}}},s.onloggingmessage=e=>{O()&&E.debug("MCP App log",null==e?void 0:e.data)},s.onmessage=async e=>{if(!O())return{};if(!eT.current)throw Error("This host cannot deliver ui/message in this surface");let t=function(e){if((null==e?void 0:e.role)!=="user")throw Error('This host accepts ui/message only with role "user"');let t=null==e?void 0:e.content,r=Array.isArray(t)?t:t&&"object"==typeof t?[t]:[];if(0===r.length||r.some(e=>(null==e?void 0:e.type)!=="text"||"string"!=typeof e.text))throw Error("This host accepts text-only ui/message content");let n=r.map(e=>e.text).join("\n").trim();if(!n)throw Error("ui/message text must not be empty");return n}(e);if(!await eT.current(t))throw Error("ui/message was not delivered");return{}},s.onupdatemodelcontext=async e=>{if(!O())return{};let n=function(e){if(!e||"object"!=typeof e||Array.isArray(e))return"ui/update-model-context params must be an object";if(void 0!==e.content){if(!Array.isArray(e.content))return"Model context content must be an array";for(let t of e.content)if(!t||"object"!=typeof t||Array.isArray(t)||!j.has(t.type))return"Model context contains a modality this host did not advertise"}return void 0!==e.structuredContent&&(!e.structuredContent||"object"!=typeof e.structuredContent||Array.isArray(e.structuredContent))?"Model structuredContent must be an object":T(e)>A?"Model context exceeds ".concat(A," bytes"):null}(e);if(n)throw Error(n);let o="".concat(t,"::").concat(r);if(!eR.current)throw Error("This host cannot preserve model context in this surface");if(!await eR.current(o,e))throw Error("MCP App model context was not stored");return{}},s.onsizechange=async e=>{var t,r;let{width:n,height:o}=e;if(!O()||eI.current)return;let i=(null==(t=ep.current)?void 0:t.getBoundingClientRect().width)||(null==(r=ep.current)?void 0:r.clientWidth)||0,a=function(e,t){let r={};if(Number.isFinite(e.width)&&e.width>0){let n=Number.isFinite(t)&&t>0?t:6e3;r.width=Math.min(e.width,n,6e3)}return Number.isFinite(e.height)&&e.height>0&&(r.height=Math.min(e.height,6e3)),r}({width:n,height:o},i);void 0!==a.height&&(p.style.height="".concat(a.height,"px")),void 0!==a.width&&(p.style.width="".concat(a.width,"px"),p.style.maxWidth="100%")},s.onrequestdisplaymode=async e=>{let{mode:t}=e;if(!O())return{mode:eC.current};let r=eC.current,n=eE.current;if(!_(t,eS.current,n))return{mode:r};if("pip"===t&&!eI.current&&eP.current)return setTimeout(eF,0),{mode:r};let o=r;return(o=eL.current?await eL.current(t,[...n]):t)===r||_(o,eS.current,n)||(o=r),o!==r&&(eC.current=o,es(o),await s.sendHostContextChange({displayMode:o})),{mode:o}},s.onrequestteardown=()=>{O()&&eU().finally(()=>{e_.current?e_.current():(eC.current="inline",es("inline"),et(!1))})},s.oninitialized=()=>{var e,t,r,n,o,i,a,l,c;if(!O())return;let u=null==(e=s.getAppCapabilities())?void 0:e.availableDisplayModes,d=Array.isArray(u)?[...new Set(u.filter(e=>k.includes(e)))]:[];eE.current=d,ec(d),null==(t=eM.current)||t.call(eM,d.includes("pip")),null==(r=eO.current)||r.call(eO,[...d]),eg.current=!0;let p=function(e,t,r,n){return t?_("pip",r,n)?"fullscreen"===e&&_("fullscreen",r,n)?"fullscreen":"pip":null:"fullscreen"===e&&_("fullscreen",r,n)?"fullscreen":"inline"}(g,eI.current,eS.current,d);if(null===p){ei("This app does not declare support for the canvas (pip) display mode."),en(!1),eU();return}eC.current=p,es(p),p!==v&&s.sendHostContextChange({displayMode:p});let f=ep.current;if(f&&"undefined"!=typeof ResizeObserver){let e=()=>{if(!O()||!eg.current)return;let e=f.getBoundingClientRect();e.width<=0||eI.current&&e.height<=0||s.sendHostContextChange({containerDimensions:I(f,eI.current)})};null==(n=ev.current)||n.disconnect(),ev.current=new ResizeObserver(e),ev.current.observe(f),e()}let h=eA.current;ej.current=null!=(c=h.updateId)?c:"".concat(null!=(o=h.args)?o:"","\0").concat(null!=(i=h.resultContent)?i:"","\0").concat(null!=(a=h.cancelledReason)?a:"","\0").concat(null!=(l=h.isError)?l:""),(void 0!==h.args||void 0!==h.resultContent||void 0!==h.cancelledReason||!0===h.isError)&&ez(s,h.args,h.resultContent,h.cancelledReason,h.isError),en(!1)},await s.connect(function(e,t){let r=new w.hJ(e,t),n={start:async()=>{r.onmessage=(e,t)=>{var r;null==(r=n.onmessage)||r.call(n,"ui/message"!==e.method||!e.params||Array.isArray(e.params.content)||!e.params.content||"object"!=typeof e.params.content?e:{...e,params:{...e.params,content:[e.params.content]}},t)},r.onerror=e=>{var t;return null==(t=n.onerror)?void 0:t.call(n,e)},r.onclose=()=>{var e;return null==(e=n.onclose)?void 0:e.call(n)},await r.start()},send:(e,t)=>r.send(e,t),close:()=>r.close(),setProtocolVersion:e=>{var t;return null==(t=r.setProtocolVersion)?void 0:t.call(r,e)}};return n}(p.contentWindow,p.contentWindow)),!O())return;await s.sendSandboxResourceReady({html:u.html,csp:u.csp,permissions:u.permissions})}catch(e){if(!n())return;E.warn("Failed to mount MCP App ".concat(r," from ").concat(t),e),ei(e instanceof Error?e.message:"Failed to load the app."),en(!1),eU()}},[eF,ez,t,eU,Q.palette.mode,R,r]),eH=(0,o.useCallback)(()=>{let e=!ee;if(!e&&"fullscreen"===eC.current){var t;eC.current="inline",es("inline"),null==(t=eh.current)||t.sendHostContextChange({displayMode:"inline"})}et(e),e&&setTimeout(()=>{eN()},0)},[ee,eN]);if((0,o.useEffect)(()=>{X&&!ey.current&&eN()},[X,eN]),(0,o.useEffect)(()=>{let e=null!=z?z:"".concat(null!=O?O:"","\0").concat(null!=F?F:"","\0").concat(null!=N?N:"","\0").concat(null!=H?H:"");eg.current&&eh.current&&e!==ej.current&&(ej.current=e,eU().then(()=>{ex.current&&(eI.current||ee)&&eN()}))},[ee,eN,eU,O,N,H,F,z]),(0,o.useEffect)(()=>{K&&eg.current&&eh.current&&eC.current!==K&&_(K,eS.current,eE.current)&&(eC.current=K,es(K),eh.current.sendHostContextChange({displayMode:K}))},[K]),(0,o.useEffect)(()=>{var e;eg.current&&eh.current&&(null==(e=eh.current)||e.sendHostContextChange({theme:"dark"===Q.palette.mode?"dark":"light"}))},[Q.palette.mode]),(0,o.useEffect)(()=>{let e=null!=$?$:"".concat(t,"::").concat(r);return null==Z||Z(e,eU),()=>null==Z?void 0:Z(e,null)},[Z,t,eU,$,r]),(0,o.useEffect)(()=>{let e=e=>{var r,n;let o=e.detail;(null==o?void 0:o.serverName)===t&&((null==(r=o.config)?void 0:r.enableMcpApps)===!1||(null==(n=o.config)?void 0:n.disabled)===!0)&&(ei("MCP Apps access was disabled for this server."),en(!1),eU().finally(()=>{var e;eI.current&&(null==(e=e_.current)||e.call(e_))}))};return window.addEventListener("flujo:mcp-server-config-changed",e),()=>{window.removeEventListener("flujo:mcp-server-config-changed",e)}},[t,eU]),(0,o.useEffect)(()=>(ex.current=!0,()=>{ex.current=!1,eU()}),[eU]),X)return(0,n.jsxs)(a.default,{sx:{height:"100%",width:"100%",minHeight:0,display:"flex",visibility:Y?"visible":"hidden",pointerEvents:Y?"auto":"none",flexDirection:"column"},children:[er&&(0,n.jsxs)(a.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2,justifyContent:"center"},children:[(0,n.jsx)(s.default,{size:16,thickness:6}),(0,n.jsx)(l.default,{variant:"body2",color:"text.secondary",children:"Loading the app…"})]}),eo&&(0,n.jsx)(c.A,{severity:"error",sx:{m:1},children:eo}),(0,n.jsx)(a.default,{ref:ep,sx:{flex:1,minHeight:0,width:"100%",display:eo?"none":"block"}})]});let eD=el.includes("inline")&&el.includes("fullscreen")&&ed.includes("fullscreen"),eJ=el.includes("inline")&&el.includes("pip")&&ed.includes("pip")&&!!V;return(0,n.jsxs)(a.default,{sx:{mt:1,border:"1px solid",borderColor:"divider",borderRadius:1,overflow:"hidden",..."fullscreen"===ea?{position:"fixed",inset:16,zIndex:1300,bgcolor:"background.paper",boxShadow:6}:{}},children:[(0,n.jsxs)(a.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.5,bgcolor:"action.hover"},children:[(0,n.jsx)(f.A,{fontSize:"small",color:"primary"}),(0,n.jsxs)(l.default,{variant:"body2",sx:{fontWeight:500},children:["Interactive app from ",t]}),(0,n.jsx)(u.A,{title:"Runs in a separate-origin sandbox (no access to FLUJO's origin, cookies, storage, or DOM). Its tool calls are brokered through this server only.",children:(0,n.jsx)(h.A,{fontSize:"small",color:"action"})}),(0,n.jsx)(a.default,{sx:{flex:1}}),ee&&eJ&&(0,n.jsx)(d.A,{size:"small",onClick:eF,children:"Canvas"}),ee&&(0,n.jsx)(u.A,{title:eD?"fullscreen"===ea?"Exit fullscreen":"Fullscreen":"This app did not declare inline and fullscreen support",children:(0,n.jsx)("span",{children:(0,n.jsx)(d.A,{size:"small",disabled:!eD,onClick:()=>{var e;let t="fullscreen"===ea?"inline":"fullscreen";_(t,ed,el)&&(eC.current=t,es(t),null==(e=eh.current)||e.sendHostContextChange({displayMode:t}))},sx:{minWidth:0},children:"fullscreen"===ea?(0,n.jsx)(v.A,{fontSize:"small"}):(0,n.jsx)(g.A,{fontSize:"small"})})})}),(0,n.jsx)(d.A,{size:"small",onClick:eH,startIcon:ee?(0,n.jsx)(m.A,{}):(0,n.jsx)(y.A,{}),children:ee?"Hide":"Open app"})]}),(0,n.jsx)(p.A,{in:ee,onExited:()=>{eU()},children:(0,n.jsxs)(a.default,{sx:{p:1,height:"fullscreen"===ea?"calc(100vh - 100px)":"auto"},children:[er&&(0,n.jsxs)(a.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2,justifyContent:"center"},children:[(0,n.jsx)(s.default,{size:16,thickness:6}),(0,n.jsx)(l.default,{variant:"body2",color:"text.secondary",children:"Loading the app…"})]}),eo&&(0,n.jsx)(c.A,{severity:"error",sx:{my:1},children:eo}),(0,n.jsx)(a.default,{ref:ep,sx:{width:"100%",height:"fullscreen"===ea?"100%":"auto",display:eo?"none":"block"}})]})})]})}},31373:(e,t,r)=>{r.d(t,{UJ:()=>n,ZB:()=>o,bx:()=>a});let n="flujo:encryption-locked",o="flujo:encryption-unlocked",i=!1;function a(){if(i||"function"!=typeof window.fetch)return;i=!0;let e=window.fetch.bind(window);window.fetch=async function(){for(var t=arguments.length,r=Array(t),o=0;o<t;o++)r[o]=arguments[o];let i=await e(...r);return 423===i.status&&function(){try{sessionStorage.removeItem("encryption_authenticated"),sessionStorage.removeItem("encryption_token")}catch(e){}window.dispatchEvent(new CustomEvent(n))}(),i}}},41080:(e,t,r)=>{r.d(t,{Gt:()=>s,Pt:()=>o,q$:()=>a}),r(81029).hp;let n="ui://",o=2097152;function i(e){return"string"==typeof e&&e.length>n.length&&e.slice(0,n.length).toLowerCase()===n&&!/\s/.test(e)}function a(e){if("string"!=typeof e)return!1;let[t,...r]=e.toLowerCase().split(";");if("text/html"!==t.trim())return!1;let n=!1;for(let e of r){let t=e.indexOf("=");if(t<=0)return!1;let r=e.slice(0,t).trim(),o=e.slice(t+1).trim();if(!r||!o)return!1;if("profile"===r){if(n||"mcp-app"!==o)return!1;n=!0}}return n}function s(e){if(!e||"object"!=typeof e)return;let t=e["ui/resourceUri"];if(i(t))return t;for(let t of[e.ui,e["io.modelcontextprotocol/ui"]])if(t&&"object"==typeof t){let e=t.resourceUri;if(i(e))return e}}}}]);
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8650],{1877:(e,t,r)=>{r.d(t,{Hm:()=>i,xc:()=>o,yo:()=>a});let n=["key","secret","token","password"],o=e=>n.some(t=>e.toLowerCase().includes(t)),i=e=>o(e)||"authorization"===e.trim().toLowerCase(),a=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:()=>f,useStorage:()=>d});var n=r(95155),o=r(12115),i=r(29692),a=r(1877),s=r(87021),l=r(31373);let c=(0,s.h)("frontend/contexts/StorageContext"),u=(0,o.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()=>{}}),d=()=>(0,o.useContext)(u),p=e=>{let{children:t}=e,[r,s]=(0,o.useState)(!1),[d,p]=(0,o.useState)(!1),[f,h]=(0,o.useState)({}),[y,m]=(0,o.useState)({speech:{enabled:!0},update:{checkOnStartup:!1}}),g=(0,o.useCallback)(async()=>{c.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 c.warn("isEncryptionInitialized: Failed to check encryption status:",e),!1}},[]),v=(0,o.useCallback)(async e=>{c.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){c.warn("setKey: Failed to set encryption key:",e)}},[]),w=(0,o.useCallback)(async(e,t)=>{c.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 n=await r.json();if(n.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===n.success}catch(e){return c.warn("changeKey: Failed to change encryption key:",e),!1}},[]),b=(0,o.useCallback)(async e=>{c.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 c.warn("verifyKey: Failed to verify encryption key:",e),!1}},[]),x=(0,o.useCallback)(async()=>{let e={speech:{enabled:!0},update:{checkOnStartup:!1}};try{var t;let r=await fetch("/api/storage?key=".concat(encodeURIComponent(i.Zg.SPEECH_SETTINGS),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(e))));if(!r.ok)return void c.debug("loadSettings: settings read not ok, keeping defaults",{status:r.status});let n=await r.json();c.debug("Loaded settings from storage",{settings:n.value}),m(null!=(t=n.value)?t:e),p(!0)}catch(e){c.warn("loadSettings: failed to load settings:",e)}},[]);(0,o.useEffect)(()=>{let e=()=>{c.info("Encryption unlocked signal received; reloading settings"),x()};return window.addEventListener(l.ZB,e),()=>window.removeEventListener(l.ZB,e)},[x]),(0,o.useEffect)(()=>{(async()=>{c.debug("loadData: Entering method");try{c.info("Calling initialization API to verify storage");let e=await fetch("/api/init");if(e.ok)c.info("Storage initialization completed successfully");else{let t=await e.json();c.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();c.debug("Loaded environment variables",{count:Object.keys(e.variables||{}).length}),h(e.variables||{})}else c.error("loadData: Failed to load environment variables"),h({});await x(),s(!0)}catch(e){c.error("loadData: Error loading data:",e),s(!0)}})()},[g,x]);let E=(0,o.useCallback)(async(e,t)=>{c.debug("encryptValue: Entering method");try{let r=sessionStorage.getItem("encryption_token"),n=sessionStorage.getItem("encryption_key"),o={action:"encrypt",data:e};r?o.token=r:t?o.password=t:n&&(o.password=n);let i=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!i.ok)throw Error("Failed to encrypt value");return(await i.json()).result}catch(e){return c.warn("encryptValue: Failed to encrypt value:",e),null}},[]),C=(0,o.useCallback)(async(e,t)=>(c.debug("decryptValue: Entering method - THIS METHOD IS DEPRECATED"),c.warn("decryptValue: Frontend decryption is deprecated for security reasons"),null),[]),S=(0,o.useCallback)(async()=>{c.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 c.warn("isUserEncryptionEnabled: Failed to check user encryption status:",e),!1}},[]),k=(0,o.useCallback)(async e=>{c.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();c.error("setGlobalEnvVars: Failed to set environment variables:",e.error);return}let r={};for(let[t,n]of Object.entries(e)){let e="object"==typeof n&&null!==n&&"value"in n?n.value:n,o="object"==typeof n&&null!==n&&"metadata"in n?n.metadata:{isSecret:(0,a.xc)(t)};o.isSecret?r[t]={value:"********",metadata:o}:r[t]={value:e,metadata:o}}h(r)}catch(e){c.error("setGlobalEnvVars: Error setting environment variables:",e)}},[g]),j=(0,o.useCallback)(async e=>{c.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();c.error("deleteGlobalEnvVar: Failed to delete environment variable:",e.error);return}h(t=>{let r={...t};return delete r[e],r})}catch(e){c.error("deleteGlobalEnvVar: Error deleting environment variable:",e)}},[]),A=(0,o.useCallback)(async e=>{c.debug("updateSettings: Updating settings",{newSettings:e});try{await (0,i.VH)(i.Zg.SPEECH_SETTINGS,e),m(e)}catch(e){c.error("updateSettings: Error updating settings:",e)}},[]);return(0,n.jsx)(u.Provider,{value:{setKey:v,changeKey:w,verifyKey:b,isEncryptionInitialized:g,globalEnvVars:f,setGlobalEnvVars:k,deleteGlobalEnvVar:j,encryptValue:E,decryptValue:C,isUserEncryptionEnabled:S,isLoading:!r,settings:y,settingsHydrated:d,updateSettings:A},children:t})},f=u},23731:(e,t,r)=>{r.d(t,{uJ:()=>A,Ay:()=>F,Yw:()=>T});var n=r(95155),o=r(12115),i=r(33567),a=r(94049),s=r(4474),l=r(25635),c=r(22003),u=r(78470),d=r(91871),p=r(50430),f=r(26188),h=r(38952),y=r(63186),m=r(62962),g=r(39486),v=r(82446),w=r(9127),b=r(17897),x=r(41080);let E=(0,r(87021).h)("frontend/components/Chat/McpAppFrame"),C={name:"FLUJO",version:"3.35.0"},S=new Set(["https:","http:"]),k=["inline","fullscreen","pip"],j=new Set(["text"]),A=262144;function T(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch(e){return 1/0}}let R=null;async function P(){return R||(R=fetch("/api/mcp/app-sandbox").then(async e=>{if(!e.ok)throw Error("Sandbox endpoint discovery failed (".concat(e.status,")"));return await e.json()}).catch(e=>{throw R=null,e})),function(e,t){let r;if("string"!=typeof e.token||0===e.token.length)throw Error("Sandbox endpoint discovery returned invalid credentials");if(void 0!==e.url){if("string"!=typeof e.url)throw Error("Sandbox endpoint discovery returned an invalid public URL");try{r=new URL(e.url)}catch(e){throw Error("Sandbox endpoint discovery returned an invalid public URL")}if("http:"!==r.protocol&&"https:"!==r.protocol||r.username||r.password)throw Error("Sandbox public URL must be an absolute HTTP(S) URL without credentials");if("https:"===t.protocol&&"https:"!==r.protocol)throw Error("HTTPS FLUJO deployments require an HTTPS MCP Apps sandbox URL")}else{if("http:"!==t.protocol)throw Error("MCP Apps on HTTPS require FLUJO_MCP_APP_SANDBOX_PUBLIC_URL to be configured");if(!Number.isInteger(e.port)||e.port<1||e.port>65535)throw Error("Sandbox endpoint discovery returned an invalid port");(r=new URL("/sandbox.html",t.origin)).port=String(e.port)}if(r.origin===t.origin)throw Error("MCP Apps sandbox must use a distinct origin from FLUJO");return r.searchParams.set("token",e.token),r.href}(await R,window.location)}function M(e,t){let r=[],n=new Set;for(let o of null!=e?e:[]){if(0===o.length||o.length>2048||/[^\x21-\x7e]/.test(o))continue;let e=/^(https|wss):\/\/(\*\.)?([^/:?#]+)(?::(\d{1,5}))?$/i.exec(o);if(!e||!t.includes(e[1].toLowerCase()))continue;let i=e[3].split(".");if(e[3].length>253||i.some(e=>0===e.length||e.length>63||!/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(e)))continue;let a=e[4]?Number(e[4]):void 0;if(void 0!==a&&(!Number.isInteger(a)||a<1||a>65535))continue;let s=o.toLowerCase();if(!n.has(s)&&(n.add(s),r.push(o),r.length>=64))break}return r}function O(e){if(e)try{return JSON.parse(e)}catch(e){return}}async function L(e,t,r,n){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;if(await e.sendToolInput({arguments:function(e){let t=O(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}(t)}),void 0!==n)return void await e.sendToolCancelled({reason:n});let i=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(void 0===e)return!0===t?{content:[],isError:!0}:null;let r=O(e);return r&&"object"==typeof r&&Array.isArray(r.content)?{...r,...!0===t?{isError:!0}:{}}:{content:[{type:"text",text:e}],...!0===t?{isError:!0}:{}}}(r,o);i&&await e.sendToolResult(i)}function _(e,t,r){return t.includes(e)&&r.includes(e)}function I(e,t){let r=e.getBoundingClientRect(),n=Math.max(1,Math.round(r.width||e.clientWidth||1));return t?{width:n,height:Math.max(1,Math.round(r.height||e.clientHeight||1))}:{width:n,maxHeight:6e3}}async function U(e,t,r){try{let n=await b.S.listServerTools(e),o=Array.isArray(n.tools)?n.tools:[],i=r?o.find(e=>(null==e?void 0:e.name)===r):o.find(e=>(0,x.Gt)(null==e?void 0:e._meta)===t);if((null==i?void 0:i.name)&&(null==i?void 0:i.inputSchema)&&(0,x.Gt)(i._meta)===t)return{tool:i}}catch(e){E.debug("Could not resolve the full MCP App tool definition",e)}}let F=e=>{let{serverName:t,uri:r,toolName:R,toolArgs:O,toolResultContent:F,toolUpdateId:z,toolCancelledReason:N,toolIsError:H,onAppMessage:D,onUpdateModelContext:J,onRequestDock:V,onDockable:G,onAvailableDisplayModes:B,hostDisplayMode:K,onRequestDisplayMode:W,onRequestClose:q,onRegisterTeardown:Z,teardownRegistrationKey:$,docked:X=!1,visible:Y=!0}=e,Q=(0,i.A)(),[ee,et]=(0,o.useState)(!1),[er,en]=(0,o.useState)(!1),[eo,ei]=(0,o.useState)(null),[ea,es]=(0,o.useState)(X?"pip":"inline"),[el,ec]=(0,o.useState)([]),eu=null!=K?K:ea,ed=(0,o.useMemo)(()=>X?["pip","fullscreen"]:["inline","fullscreen",...V?["pip"]:[]],[X,V]),ep=(0,o.useRef)(null),ef=(0,o.useRef)(null),eh=(0,o.useRef)(null),ey=(0,o.useRef)(!1),em=(0,o.useRef)(0),eg=(0,o.useRef)(!1),ev=(0,o.useRef)(null),ew=(0,o.useRef)(null),eb=(0,o.useRef)(!1),ex=(0,o.useRef)(!0),eE=(0,o.useRef)([]),eC=(0,o.useRef)(eu),eS=(0,o.useRef)(ed),ek=(0,o.useRef)(Promise.resolve()),ej=(0,o.useRef)(void 0),eA=(0,o.useRef)({args:O,resultContent:F,cancelledReason:N,isError:H,updateId:z});eA.current={args:O,resultContent:F,cancelledReason:N,isError:H,updateId:z};let eT=(0,o.useRef)(D);(0,o.useEffect)(()=>{eT.current=D},[D]);let eR=(0,o.useRef)(J);(0,o.useEffect)(()=>{eR.current=J},[J]);let eP=(0,o.useRef)(V);(0,o.useEffect)(()=>{eP.current=V},[V]);let eM=(0,o.useRef)(G);(0,o.useEffect)(()=>{eM.current=G},[G]);let eO=(0,o.useRef)(B);(0,o.useEffect)(()=>{eO.current=B},[B]);let eL=(0,o.useRef)(W);(0,o.useEffect)(()=>{eL.current=W},[W]);let e_=(0,o.useRef)(q);(0,o.useEffect)(()=>{e_.current=q},[q]);let eI=(0,o.useRef)(X);(0,o.useEffect)(()=>{eI.current=X},[X]),(0,o.useEffect)(()=>{eC.current=eu},[eu]),(0,o.useEffect)(()=>{eS.current=ed},[ed]);let eU=(0,o.useCallback)(()=>{var e;if(ew.current)return ew.current;em.current+=1;let t=eh.current,r=ef.current,n=eg.current;eh.current=null,ef.current=null,eg.current=!1,ey.current=!1,eE.current=[],null==(e=ev.current)||e.disconnect(),ev.current=null;let o=(async()=>{if(t&&n){let e;try{await Promise.race([t.teardownResource({},{timeout:1e3}),new Promise(t=>{e=setTimeout(t,1e3)})])}catch(e){E.debug("MCP App did not acknowledge resource teardown",e)}finally{e&&clearTimeout(e)}}try{await (null==t?void 0:t.close())}catch(e){}null==r||r.remove()})();return ew.current=o,o.finally(()=>{ew.current===o&&(ew.current=null)}),o},[]),eF=(0,o.useCallback)(()=>{!eb.current&&eP.current&&(eb.current=!0,eU().then(()=>{var e;ex.current&&(null==(e=eP.current)||e.call(eP),et(!1))}).finally(()=>{eb.current=!1}))},[eU]),ez=(0,o.useCallback)((e,t,r,n,o)=>{ek.current=ek.current.catch(()=>void 0).then(async()=>{eh.current===e&&eg.current&&await L(e,t,r,n,o)}).catch(e=>{E.warn("MCP App tool delivery failed",e)})},[]),eN=(0,o.useCallback)(async()=>{if(ew.current&&await ew.current,ey.current||!ep.current)return;let e=em.current+1;em.current=e;let n=()=>em.current===e&&ey.current;ey.current=!0,ec([]),en(!0),ei(null);try{var o,i,a;let s,[l,c]=await Promise.all([b.S.readResourceFromApp(t,r),U(t,r,R)]);if(!n())return;if((null==l?void 0:l.httpStatus)===403)throw Error((null==l?void 0:l.error)||"MCP Apps access was disabled for this server");if(!l||!1===l.success)throw Error((null==l?void 0:l.error)||"Failed to read the UI resource.");let u=function(e,t){var r,n,o;let i,a=null==e?void 0:e.contents;if(!Array.isArray(a)||0===a.length)throw Error("Resource has no contents");let s=a.find(e=>e.uri===t&&"string"==typeof e.mimeType&&(0,x.q$)(e.mimeType)&&("string"==typeof e.text||"string"==typeof e.blob));if(!s)throw Error("Resource ".concat(t," did not return MCP App HTML"));try{i="string"==typeof s.text?s.text:function(e){let t=Uint8Array.from(atob(e),e=>e.charCodeAt(0));return new TextDecoder("utf-8",{fatal:!0}).decode(t)}(s.blob)}catch(e){throw Error("Resource ".concat(t," contains invalid base64 UTF-8 HTML"))}if(new TextEncoder().encode(i).length>x.Pt)throw Error("Resource exceeds the ".concat(Math.round(x.Pt/1024)," KiB size cap"));let l=null==(r=null!=(n=s._meta)?n:s.meta)?void 0:r.ui,c=w.c0.safeParse(null==l?void 0:l.csp);if((null==l?void 0:l.csp)!==void 0&&!c.success)throw Error("Resource ".concat(t," declares an invalid CSP policy"));let u=w.Ml.safeParse(null==l?void 0:l.permissions);if((null==l?void 0:l.permissions)!==void 0&&!u.success)throw Error("Resource ".concat(t," declares invalid sandbox permissions"));return{html:i,csp:c.success?{connectDomains:M((o=c.data).connectDomains,["https","wss"]),resourceDomains:M(o.resourceDomains,["https"]),frameDomains:M(o.frameDomains,["https"]),baseUriDomains:M(o.baseUriDomains,["https"])}:void 0,permissions:u.success&&u.data.clipboardWrite?{clipboardWrite:{}}:void 0}}(l.data,r),d=await P();if(!n()||!ep.current)return;let p=document.createElement("iframe");p.title="MCP App: ".concat(r),p.setAttribute("sandbox","allow-scripts allow-same-origin"),p.referrerPolicy="origin";let f=(0,w.Sy)(u.permissions);f&&p.setAttribute("allow",f),p.style.cssText=eI.current?"width:100%;height:100%;border:none;background:#fff;":"width:100%;min-height:120px;height:200px;border:none;border-radius:4px;background:#fff;",ep.current.appendChild(p),ef.current=p;let h=new URL(d);u.csp&&h.searchParams.set("csp",JSON.stringify(u.csp));let y=h.origin,m=new Promise((e,t)=>{let r=setTimeout(()=>{window.removeEventListener("message",n),t(Error("Timed out waiting for the sandbox proxy."))},1e4),n=t=>{var o,i;t.source===p.contentWindow&&t.origin===y&&(null==(o=t.data)?void 0:o.jsonrpc)==="2.0"&&(null==(i=t.data)?void 0:i.method)==="ui/notifications/sandbox-proxy-ready"&&(clearTimeout(r),window.removeEventListener("message",n),e())};window.addEventListener("message",n)});if(p.src=h.href,await m,!n()||ef.current!==p)return;let g=eC.current,v="inline";eC.current=v,s=new w.T1(function(e,t){return{getServerCapabilities:()=>({tools:{},resources:{}}),setNotificationHandler:()=>{},request:async(r,n,o)=>{let{method:i,params:a}=r;if("tools/call"===i){var s;E.info("MCP App tools/call: ".concat(e,"/").concat(null==a?void 0:a.name));let r=await b.S.callToolFromApp(e,a.name,null!=(s=a.arguments)?s:{},void 0,null==o?void 0:o.signal);if((null==r?void 0:r.httpStatus)===403){let e=(null==r?void 0:r.error)||"MCP Apps access was disabled for this server";throw t(e),Error(e)}if(!r||!1===r.success)throw Error((null==r?void 0:r.error)||"Tool call failed: ".concat(null==a?void 0:a.name));return r.data}if("resources/read"===i){let r=await b.S.readResourceFromApp(e,a.uri);if((null==r?void 0:r.httpStatus)===403){let e=(null==r?void 0:r.error)||"MCP Apps access was disabled for this server";throw t(e),Error(e)}if(!r||!1===r.success)throw Error((null==r?void 0:r.error)||"Resource read failed: ".concat(null==a?void 0:a.uri));return r.data}if("resources/list"===i)return{resources:[]};if("resources/templates/list"===i)return{resourceTemplates:[]};throw Error("MCP App requested unsupported method: ".concat(i))}}}(t,t=>{em.current===e&&eh.current===s&&(ei(t),en(!1),eU())}),C,{openLinks:{},serverTools:{},serverResources:{},logging:{},...eT.current?{message:{text:{}}}:{},...eR.current?{updateModelContext:{text:{},structuredContent:{}}}:{},sandbox:{csp:u.csp,permissions:u.permissions}},{hostContext:{...c?{toolInfo:c}:{},theme:"dark"===Q.palette.mode?"dark":"light",platform:"web",displayMode:v,availableDisplayModes:eS.current,containerDimensions:I(ep.current,eI.current),locale:navigator.language,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,userAgent:navigator.userAgent,deviceCapabilities:{touch:navigator.maxTouchPoints>0,hover:null!=(a=null==(o=(i=window).matchMedia)?void 0:o.call(i,"(hover: hover)").matches)&&a}}}),eh.current=s;let O=()=>n()&&eh.current===s;if(s.onopenlink=async e=>{let{url:n}=e;if(!O())return{isError:!0};let o=function(e){try{let t=new URL(e);if(!S.has(t.protocol)||t.username||t.password)return null;return t.href}catch(e){return null}}(n);if(!o)return E.warn("MCP App open-link rejected by URL policy",{serverName:t,uri:r}),{isError:!0};let i=window.open(o,"_blank","noopener,noreferrer");return i?(i.opener=null,{}):{isError:!0}},s.ondownloadfile=async e=>{let{contents:t}=e;if(!O())return{isError:!0};try{for(let e of null!=t?t:[]){let t,n=null==e?void 0:e.resource;if(!n)continue;let o=("string"==typeof n.uri?n.uri.split("/").pop():"")||"download",i="string"==typeof n.mimeType?n.mimeType:"application/octet-stream";if("string"==typeof n.blob){let e=Uint8Array.from(atob(n.blob),e=>e.charCodeAt(0));t=new Blob([e],{type:i})}else{var r;t=new Blob([String(null!=(r=n.text)?r:"")],{type:i})}let a=URL.createObjectURL(t),s=document.createElement("a");s.href=a,s.download=o,document.body.appendChild(s),s.click(),s.remove(),setTimeout(()=>URL.revokeObjectURL(a),4e3)}return{}}catch(e){return E.warn("MCP App download failed",e),{isError:!0}}},s.onloggingmessage=e=>{O()&&E.debug("MCP App log",null==e?void 0:e.data)},s.onmessage=async e=>{if(!O())return{};if(!eT.current)throw Error("This host cannot deliver ui/message in this surface");let t=function(e){if((null==e?void 0:e.role)!=="user")throw Error('This host accepts ui/message only with role "user"');let t=null==e?void 0:e.content,r=Array.isArray(t)?t:t&&"object"==typeof t?[t]:[];if(0===r.length||r.some(e=>(null==e?void 0:e.type)!=="text"||"string"!=typeof e.text))throw Error("This host accepts text-only ui/message content");let n=r.map(e=>e.text).join("\n").trim();if(!n)throw Error("ui/message text must not be empty");return n}(e);if(!await eT.current(t))throw Error("ui/message was not delivered");return{}},s.onupdatemodelcontext=async e=>{if(!O())return{};let n=function(e){if(!e||"object"!=typeof e||Array.isArray(e))return"ui/update-model-context params must be an object";if(void 0!==e.content){if(!Array.isArray(e.content))return"Model context content must be an array";for(let t of e.content)if(!t||"object"!=typeof t||Array.isArray(t)||!j.has(t.type))return"Model context contains a modality this host did not advertise"}return void 0!==e.structuredContent&&(!e.structuredContent||"object"!=typeof e.structuredContent||Array.isArray(e.structuredContent))?"Model structuredContent must be an object":T(e)>A?"Model context exceeds ".concat(A," bytes"):null}(e);if(n)throw Error(n);let o="".concat(t,"::").concat(r);if(!eR.current)throw Error("This host cannot preserve model context in this surface");if(!await eR.current(o,e))throw Error("MCP App model context was not stored");return{}},s.onsizechange=async e=>{var t,r;let{width:n,height:o}=e;if(!O()||eI.current)return;let i=(null==(t=ep.current)?void 0:t.getBoundingClientRect().width)||(null==(r=ep.current)?void 0:r.clientWidth)||0,a=function(e,t){let r={};if(Number.isFinite(e.width)&&e.width>0){let n=Number.isFinite(t)&&t>0?t:6e3;r.width=Math.min(e.width,n,6e3)}return Number.isFinite(e.height)&&e.height>0&&(r.height=Math.min(e.height,6e3)),r}({width:n,height:o},i);void 0!==a.height&&(p.style.height="".concat(a.height,"px")),void 0!==a.width&&(p.style.width="".concat(a.width,"px"),p.style.maxWidth="100%")},s.onrequestdisplaymode=async e=>{let{mode:t}=e;if(!O())return{mode:eC.current};let r=eC.current,n=eE.current;if(!_(t,eS.current,n))return{mode:r};if("pip"===t&&!eI.current&&eP.current)return setTimeout(eF,0),{mode:r};let o=r;return(o=eL.current?await eL.current(t,[...n]):t)===r||_(o,eS.current,n)||(o=r),o!==r&&(eC.current=o,es(o),await s.sendHostContextChange({displayMode:o})),{mode:o}},s.onrequestteardown=()=>{O()&&eU().finally(()=>{e_.current?e_.current():(eC.current="inline",es("inline"),et(!1))})},s.oninitialized=()=>{var e,t,r,n,o,i,a,l,c;if(!O())return;let u=null==(e=s.getAppCapabilities())?void 0:e.availableDisplayModes,d=Array.isArray(u)?[...new Set(u.filter(e=>k.includes(e)))]:[];eE.current=d,ec(d),null==(t=eM.current)||t.call(eM,d.includes("pip")),null==(r=eO.current)||r.call(eO,[...d]),eg.current=!0;let p=function(e,t,r,n){return t?_("pip",r,n)?"fullscreen"===e&&_("fullscreen",r,n)?"fullscreen":"pip":null:"fullscreen"===e&&_("fullscreen",r,n)?"fullscreen":"inline"}(g,eI.current,eS.current,d);if(null===p){ei("This app does not declare support for the canvas (pip) display mode."),en(!1),eU();return}eC.current=p,es(p),p!==v&&s.sendHostContextChange({displayMode:p});let f=ep.current;if(f&&"undefined"!=typeof ResizeObserver){let e=()=>{if(!O()||!eg.current)return;let e=f.getBoundingClientRect();e.width<=0||eI.current&&e.height<=0||s.sendHostContextChange({containerDimensions:I(f,eI.current)})};null==(n=ev.current)||n.disconnect(),ev.current=new ResizeObserver(e),ev.current.observe(f),e()}let h=eA.current;ej.current=null!=(c=h.updateId)?c:"".concat(null!=(o=h.args)?o:"","\0").concat(null!=(i=h.resultContent)?i:"","\0").concat(null!=(a=h.cancelledReason)?a:"","\0").concat(null!=(l=h.isError)?l:""),(void 0!==h.args||void 0!==h.resultContent||void 0!==h.cancelledReason||!0===h.isError)&&ez(s,h.args,h.resultContent,h.cancelledReason,h.isError),en(!1)},await s.connect(function(e,t){let r=new w.hJ(e,t),n={start:async()=>{r.onmessage=(e,t)=>{var r;null==(r=n.onmessage)||r.call(n,"ui/message"!==e.method||!e.params||Array.isArray(e.params.content)||!e.params.content||"object"!=typeof e.params.content?e:{...e,params:{...e.params,content:[e.params.content]}},t)},r.onerror=e=>{var t;return null==(t=n.onerror)?void 0:t.call(n,e)},r.onclose=()=>{var e;return null==(e=n.onclose)?void 0:e.call(n)},await r.start()},send:(e,t)=>r.send(e,t),close:()=>r.close(),setProtocolVersion:e=>{var t;return null==(t=r.setProtocolVersion)?void 0:t.call(r,e)}};return n}(p.contentWindow,p.contentWindow)),!O())return;await s.sendSandboxResourceReady({html:u.html,csp:u.csp,permissions:u.permissions})}catch(e){if(!n())return;E.warn("Failed to mount MCP App ".concat(r," from ").concat(t),e),ei(e instanceof Error?e.message:"Failed to load the app."),en(!1),eU()}},[eF,ez,t,eU,Q.palette.mode,R,r]),eH=(0,o.useCallback)(()=>{let e=!ee;if(!e&&"fullscreen"===eC.current){var t;eC.current="inline",es("inline"),null==(t=eh.current)||t.sendHostContextChange({displayMode:"inline"})}et(e),e&&setTimeout(()=>{eN()},0)},[ee,eN]);if((0,o.useEffect)(()=>{X&&!ey.current&&eN()},[X,eN]),(0,o.useEffect)(()=>{let e=null!=z?z:"".concat(null!=O?O:"","\0").concat(null!=F?F:"","\0").concat(null!=N?N:"","\0").concat(null!=H?H:"");eg.current&&eh.current&&e!==ej.current&&(ej.current=e,eU().then(()=>{ex.current&&(eI.current||ee)&&eN()}))},[ee,eN,eU,O,N,H,F,z]),(0,o.useEffect)(()=>{K&&eg.current&&eh.current&&eC.current!==K&&_(K,eS.current,eE.current)&&(eC.current=K,es(K),eh.current.sendHostContextChange({displayMode:K}))},[K]),(0,o.useEffect)(()=>{var e;eg.current&&eh.current&&(null==(e=eh.current)||e.sendHostContextChange({theme:"dark"===Q.palette.mode?"dark":"light"}))},[Q.palette.mode]),(0,o.useEffect)(()=>{let e=null!=$?$:"".concat(t,"::").concat(r);return null==Z||Z(e,eU),()=>null==Z?void 0:Z(e,null)},[Z,t,eU,$,r]),(0,o.useEffect)(()=>{let e=e=>{var r,n;let o=e.detail;(null==o?void 0:o.serverName)===t&&((null==(r=o.config)?void 0:r.enableMcpApps)===!1||(null==(n=o.config)?void 0:n.disabled)===!0)&&(ei("MCP Apps access was disabled for this server."),en(!1),eU().finally(()=>{var e;eI.current&&(null==(e=e_.current)||e.call(e_))}))};return window.addEventListener("flujo:mcp-server-config-changed",e),()=>{window.removeEventListener("flujo:mcp-server-config-changed",e)}},[t,eU]),(0,o.useEffect)(()=>(ex.current=!0,()=>{ex.current=!1,eU()}),[eU]),X)return(0,n.jsxs)(a.default,{sx:{height:"100%",width:"100%",minHeight:0,display:"flex",visibility:Y?"visible":"hidden",pointerEvents:Y?"auto":"none",flexDirection:"column"},children:[er&&(0,n.jsxs)(a.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2,justifyContent:"center"},children:[(0,n.jsx)(s.default,{size:16,thickness:6}),(0,n.jsx)(l.default,{variant:"body2",color:"text.secondary",children:"Loading the app…"})]}),eo&&(0,n.jsx)(c.A,{severity:"error",sx:{m:1},children:eo}),(0,n.jsx)(a.default,{ref:ep,sx:{flex:1,minHeight:0,width:"100%",display:eo?"none":"block"}})]});let eD=el.includes("inline")&&el.includes("fullscreen")&&ed.includes("fullscreen"),eJ=el.includes("inline")&&el.includes("pip")&&ed.includes("pip")&&!!V;return(0,n.jsxs)(a.default,{sx:{mt:1,border:"1px solid",borderColor:"divider",borderRadius:1,overflow:"hidden",..."fullscreen"===ea?{position:"fixed",inset:16,zIndex:1300,bgcolor:"background.paper",boxShadow:6}:{}},children:[(0,n.jsxs)(a.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.5,bgcolor:"action.hover"},children:[(0,n.jsx)(f.A,{fontSize:"small",color:"primary"}),(0,n.jsxs)(l.default,{variant:"body2",sx:{fontWeight:500},children:["Interactive app from ",t]}),(0,n.jsx)(u.A,{title:"Runs in a separate-origin sandbox (no access to FLUJO's origin, cookies, storage, or DOM). Its tool calls are brokered through this server only.",children:(0,n.jsx)(h.A,{fontSize:"small",color:"action"})}),(0,n.jsx)(a.default,{sx:{flex:1}}),ee&&eJ&&(0,n.jsx)(d.A,{size:"small",onClick:eF,children:"Canvas"}),ee&&(0,n.jsx)(u.A,{title:eD?"fullscreen"===ea?"Exit fullscreen":"Fullscreen":"This app did not declare inline and fullscreen support",children:(0,n.jsx)("span",{children:(0,n.jsx)(d.A,{size:"small",disabled:!eD,onClick:()=>{var e;let t="fullscreen"===ea?"inline":"fullscreen";_(t,ed,el)&&(eC.current=t,es(t),null==(e=eh.current)||e.sendHostContextChange({displayMode:t}))},sx:{minWidth:0},children:"fullscreen"===ea?(0,n.jsx)(v.A,{fontSize:"small"}):(0,n.jsx)(g.A,{fontSize:"small"})})})}),(0,n.jsx)(d.A,{size:"small",onClick:eH,startIcon:ee?(0,n.jsx)(m.A,{}):(0,n.jsx)(y.A,{}),children:ee?"Hide":"Open app"})]}),(0,n.jsx)(p.A,{in:ee,onExited:()=>{eU()},children:(0,n.jsxs)(a.default,{sx:{p:1,height:"fullscreen"===ea?"calc(100vh - 100px)":"auto"},children:[er&&(0,n.jsxs)(a.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2,justifyContent:"center"},children:[(0,n.jsx)(s.default,{size:16,thickness:6}),(0,n.jsx)(l.default,{variant:"body2",color:"text.secondary",children:"Loading the app…"})]}),eo&&(0,n.jsx)(c.A,{severity:"error",sx:{my:1},children:eo}),(0,n.jsx)(a.default,{ref:ep,sx:{width:"100%",height:"fullscreen"===ea?"100%":"auto",display:eo?"none":"block"}})]})})]})}},31373:(e,t,r)=>{r.d(t,{UJ:()=>n,ZB:()=>o,bx:()=>a});let n="flujo:encryption-locked",o="flujo:encryption-unlocked",i=!1;function a(){if(i||"function"!=typeof window.fetch)return;i=!0;let e=window.fetch.bind(window);window.fetch=async function(){for(var t=arguments.length,r=Array(t),o=0;o<t;o++)r[o]=arguments[o];let i=await e(...r);return 423===i.status&&function(){try{sessionStorage.removeItem("encryption_authenticated"),sessionStorage.removeItem("encryption_token")}catch(e){}window.dispatchEvent(new CustomEvent(n))}(),i}}},41080:(e,t,r)=>{r.d(t,{Gt:()=>s,Pt:()=>o,q$:()=>a}),r(81029).hp;let n="ui://",o=2097152;function i(e){return"string"==typeof e&&e.length>n.length&&e.slice(0,n.length).toLowerCase()===n&&!/\s/.test(e)}function a(e){if("string"!=typeof e)return!1;let[t,...r]=e.toLowerCase().split(";");if("text/html"!==t.trim())return!1;let n=!1;for(let e of r){let t=e.indexOf("=");if(t<=0)return!1;let r=e.slice(0,t).trim(),o=e.slice(t+1).trim();if(!r||!o)return!1;if("profile"===r){if(n||"mcp-app"!==o)return!1;n=!0}}return n}function s(e){if(!e||"object"!=typeof e)return;let t=e["ui/resourceUri"];if(i(t))return t;for(let t of[e.ui,e["io.modelcontextprotocol/ui"]])if(t&&"object"==typeof t){let e=t.resourceUri;if(i(e))return e}}}}]);
|