flujo-ai 3.30.0 → 3.33.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 +359 -317
- package/.next/app-path-routes-manifest.json +15 -11
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +21 -21
- package/.next/react-loadable-manifest.json +28 -13
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/api/approvals/[id]/route.js +1 -1
- package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/approvals/route.js +2 -2
- package/.next/server/app/api/approvals/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/backup/route.js +1 -1
- package/.next/server/app/api/backup/route.js.nft.json +1 -1
- package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/browse/route.js +1 -1
- package/.next/server/app/api/browse/route.js.nft.json +1 -1
- package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/bugs/enhance/route.js +3 -3
- package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
- package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/route.js +1 -1
- package/.next/server/app/api/cwd/route.js.nft.json +1 -1
- package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/encryption/secure/route.js +1 -1
- package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
- package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/env/route.js +2 -2
- package/.next/server/app/api/env/route.js.nft.json +1 -1
- package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/route.js +1 -1
- package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/generate/route.js +1 -1
- package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/generator/route.js +7 -0
- package/.next/server/app/api/flow/generator/route.js.nft.json +1 -0
- package/.next/server/app/api/flow/generator/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/flow/improve/route.js +1 -1
- package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
- package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/repair/route.js +1 -1
- package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/route.js +1 -1
- package/.next/server/app/api/flow/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/route.js +1 -1
- package/.next/server/app/api/git/route.js.nft.json +1 -1
- package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/init/route.js +1 -1
- package/.next/server/app/api/init/route.js.nft.json +1 -1
- package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/app-sandbox/route.js +1 -1
- package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +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 +2 -2
- package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/route.js +1 -1
- package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp-registry/route.js +2 -2
- package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/[id]/route.js +1 -1
- package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/provider/route.js +2 -2
- package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
- package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/route.js +1 -1
- package/.next/server/app/api/model/route.js.nft.json +1 -1
- package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/test/route.js +2 -2
- package/.next/server/app/api/model/test/route.js.nft.json +1 -1
- package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/callback/route.js +2 -2
- package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/initiate/route.js +2 -2
- package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/reset/route.js +2 -2
- package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/build/route.js +1 -1
- package/.next/server/app/api/packages/build/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/packages/install/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/packages/install/status/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/resolve/route.js +1 -1
- package/.next/server/app/api/packages/resolve/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/packages/scan-targets/route.js.nft.json +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.js.nft.json +1 -1
- package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/uninstall/route.js +1 -1
- package/.next/server/app/api/packages/uninstall/route.js.nft.json +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 +2 -2
- package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -2
- package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -2
- package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/route.js +1 -1
- package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/resend/route.js +1 -1
- package/.next/server/app/api/registry/auth/resend/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/registry/auth/reset/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/registry/auth/route.js.nft.json +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 -0
- package/.next/server/app/api/registry/feedback/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/feedback/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/registry/oauth/callback/route.js +1 -1
- package/.next/server/app/api/registry/oauth/callback/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/registry/oauth/initiate/route.js.nft.json +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.js +1 -0
- package/.next/server/app/api/registry/packages/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/packages/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/registry/publish/route.js +1 -1
- package/.next/server/app/api/registry/publish/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/settings/route.js +1 -1
- package/.next/server/app/api/registry/settings/route.js.nft.json +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.js.nft.json +1 -1
- package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runs/active/route.js +2 -2
- package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
- package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/storage/route.js +1 -1
- package/.next/server/app/api/storage/route.js.nft.json +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 -0
- package/.next/server/app/api/telemetry/daily-active/route.js.nft.json +1 -0
- package/.next/server/app/api/telemetry/daily-active/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/update/route.js +1 -1
- package/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/waves/route.js +1 -1
- package/.next/server/app/api/waves/route.js.nft.json +1 -1
- package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +58 -10
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +3 -3
- package/.next/server/app/docs/page.js +4 -5
- package/.next/server/app/docs/page.js.nft.json +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +3 -3
- package/.next/server/app/executions/page.js +3 -2
- package/.next/server/app/executions/page.js.nft.json +1 -1
- package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/executions.html +1 -1
- package/.next/server/app/executions.rsc +3 -3
- package/.next/server/app/flows/page.js +3 -3
- package/.next/server/app/flows/page.js.nft.json +1 -1
- package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/flows.html +1 -1
- package/.next/server/app/flows.rsc +3 -3
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/mcp/page.js +56 -5
- package/.next/server/app/mcp/page.js.nft.json +1 -1
- package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-flows/route.js +1 -1
- package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
- package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
- package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp.html +1 -1
- package/.next/server/app/mcp.rsc +3 -3
- package/.next/server/app/models/page.js +2 -2
- package/.next/server/app/models/page.js.nft.json +1 -1
- package/.next/server/app/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages/page.js +2 -2
- package/.next/server/app/packages/page.js.nft.json +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 +3 -3
- package/.next/server/app/page.js +3 -3
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +2 -2
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +3 -3
- package/.next/server/app/v1/chat/completions/route.js +1 -1
- package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +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/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/events/route.js +3 -3
- package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/models/route.js +2 -2
- package/.next/server/app/v1/models/route.js.nft.json +1 -1
- package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/waves/page.js +3 -3
- package/.next/server/app/waves/page.js.nft.json +1 -1
- package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
- package/.next/server/app/waves.html +1 -1
- package/.next/server/app/waves.rsc +3 -3
- package/.next/server/app-paths-manifest.json +15 -11
- package/.next/server/chunks/1114.js +1 -1
- package/.next/server/chunks/1226.js +1 -1
- package/.next/server/chunks/1227.js +1 -0
- package/.next/server/chunks/1314.js +1 -1
- package/.next/server/chunks/1439.js +1 -0
- package/.next/server/chunks/1578.js +1 -1
- package/.next/server/chunks/1634.js +1 -1
- package/.next/server/chunks/166.js +5 -5
- package/.next/server/chunks/1664.js +2 -0
- package/.next/server/chunks/180.js +12 -0
- package/.next/server/chunks/227.js +1 -5
- package/.next/server/chunks/2273.js +2 -2
- package/.next/server/chunks/2372.js +2 -0
- package/.next/server/chunks/2859.js +1 -1
- package/.next/server/chunks/2985.js +1 -0
- package/.next/server/chunks/3128.js +4 -4
- package/.next/server/chunks/3653.js +2 -0
- package/.next/server/chunks/3855.js +1 -0
- package/.next/server/chunks/4013.js +1 -0
- package/.next/server/chunks/4308.js +4 -0
- package/.next/server/chunks/{4685.js → 4466.js} +1 -1
- package/.next/server/chunks/4551.js +1 -1
- package/.next/server/chunks/4663.js +1 -0
- package/.next/server/chunks/4822.js +1 -0
- package/.next/server/chunks/5040.js +4 -9
- package/.next/server/chunks/5067.js +1 -1
- package/.next/server/chunks/544.js +38 -37
- package/.next/server/chunks/5463.js +1 -1
- package/.next/server/chunks/5544.js +5 -5
- package/.next/server/chunks/5703.js +2 -0
- package/.next/server/chunks/5708.js +2 -3
- package/.next/server/chunks/6034.js +1 -1
- package/.next/server/chunks/6226.js +1 -1
- package/.next/server/chunks/{3570.js → 6747.js} +287 -253
- package/.next/server/chunks/6967.js +82 -0
- package/.next/server/chunks/701.js +1 -1
- package/.next/server/chunks/{5548.js → 7058.js} +2 -2
- package/.next/server/chunks/{4566.js → 7069.js} +3 -3
- package/.next/server/chunks/{2388.js → 7104.js} +1 -1
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7519.js +1 -0
- package/.next/server/chunks/7628.js +1 -0
- package/.next/server/chunks/{3030.js → 7674.js} +1 -1
- package/.next/server/chunks/7821.js +1 -1
- package/.next/server/chunks/{2866.js → 7891.js} +2 -2
- package/.next/server/chunks/793.js +3 -3
- package/.next/server/chunks/7965.js +39 -0
- package/.next/server/chunks/{6404.js → 7993.js} +2 -2
- package/.next/server/chunks/8187.js +78 -0
- package/.next/server/chunks/8387.js +1 -1
- package/.next/server/chunks/87.js +1 -0
- package/.next/server/chunks/8739.js +1 -2
- package/.next/server/chunks/{3912.js → 9085.js} +2 -2
- package/.next/server/chunks/9235.js +8 -0
- package/.next/server/chunks/94.js +1 -1
- package/.next/server/chunks/9724.js +3 -3
- package/.next/server/chunks/9983.js +1 -1
- package/.next/server/functions-config-manifest.json +3 -3
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/1675-773454288de4309d.js +1 -0
- package/.next/static/chunks/{3189-fa8ec6d719d5e72b.js → 2005-f9d38c39f10c321f.js} +1 -1
- package/.next/static/chunks/2318-13ef0d3048e97834.js +1 -0
- package/.next/static/chunks/289-98f50bfcf833d661.js +1 -0
- package/.next/static/chunks/3089.df88f3b16898aad7.js +1 -0
- package/.next/static/chunks/361.bb75b03b740930cd.js +1 -0
- package/.next/static/chunks/3772-20197853c04a6993.js +1 -0
- package/.next/static/chunks/422-61b173ba64cf0c94.js +1 -0
- package/.next/static/chunks/4555-c9070f8c79bccfad.js +39 -0
- package/.next/static/chunks/4929-150b03595474c9d8.js +1 -0
- package/.next/static/chunks/5733-1419095a28c1ddc3.js +1 -0
- package/.next/static/chunks/639-90ed75d402dc872b.js +1 -0
- package/.next/static/chunks/{3452-a639f121f2953f50.js → 6428-951188daa6f74b86.js} +3 -3
- package/.next/static/chunks/6430-8c6dac4a758119f2.js +1 -0
- package/.next/static/chunks/6539-118a0084e0bfae34.js +1 -0
- package/.next/static/chunks/6733-c9029143901e62e9.js +1 -0
- package/.next/static/chunks/7264-91d1fa99abcd91ad.js +1 -0
- package/.next/static/chunks/7328-c8a51bb8c7470d77.js +1 -0
- package/.next/static/chunks/7391-5a0abd837ba241f5.js +1 -0
- package/.next/static/chunks/8124-4a80e3201b8e51b0.js +1 -0
- package/.next/static/chunks/{2969.eb9ff8cd2a5034b0.js → 8345.bc5534ec13abc9ee.js} +1 -1
- package/.next/static/chunks/8404-bfa9203e4296f3fb.js +1 -0
- package/.next/static/chunks/{8405.73e8be2c8e5b55c5.js → 8405.a425f94b6b13d2be.js} +1 -1
- package/.next/static/chunks/8551-a28272acfda62ac9.js +1 -0
- package/.next/static/chunks/8650-41c2afc0eba37fb8.js +1 -0
- package/.next/static/chunks/{9164-840f056a0e11d979.js → 9164-de1d167d87614a6d.js} +1 -1
- package/.next/static/chunks/9203-786f457ecf60b49c.js +1 -0
- package/.next/static/chunks/9345-11d6e48d892b1862.js +8 -0
- package/.next/static/chunks/95-b9691d3cb15556dc.js +1 -0
- package/.next/static/chunks/9562-f8371be653010627.js +1 -0
- package/.next/static/chunks/981-dd289e60d81da0d1.js +1 -0
- package/.next/static/chunks/9951-566fc6b05c12209e.js +1 -0
- package/.next/static/chunks/app/api/approvals/[id]/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/approvals/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/backup/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/browse/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/bugs/enhance/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/cwd/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/encryption/secure/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/env/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/flow/compile/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/flow/generate/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/flow/generator/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/flow/improve/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/flow/quick-chat/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/flow/repair/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/flow/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/git/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/init/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/local-models/capability/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/local-models/pull/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/local-models/suggest/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/app-sandbox/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/cancel/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/oauth-capability/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/model/[id]/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/model/provider/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/model/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/model/test/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/oauth/callback/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/oauth/initiate/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/oauth/reset/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/packages/build/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/packages/derive-secrets/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/packages/install/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/packages/install/status/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/packages/installed/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/packages/resolve/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/packages/scan-targets/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/packages/search/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/packages/uninstall/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/resend/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/reset/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/registry/feedback/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/callback/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/initiate/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/registry/packages/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/registry/publish/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/registry/settings/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/restore/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/runs/active/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/storage/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/telemetry/daily-active/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/update/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/waves/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[id]/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/chat/page-1d100e5d974c919e.js +1 -0
- package/.next/static/chunks/app/docs/page-3b9ce48854b2147d.js +1 -0
- package/.next/static/chunks/app/executions/page-10ec7d58c7fbdd6f.js +1 -0
- package/.next/static/chunks/app/flows/page-9a78a2915268b2f8.js +1 -0
- package/.next/static/chunks/app/layout-38b88f3b057f4852.js +1 -0
- package/.next/static/chunks/app/mcp/{page-6041156fc67ef361.js → page-56b43b2f8752e9a5.js} +1 -1
- package/.next/static/chunks/app/mcp-flows/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/mcp-proxy/[server]/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/models/page-808c0568ebc5e2c7.js +1 -0
- package/.next/static/chunks/app/packages/page-af6ec89522915206.js +1 -0
- package/.next/static/chunks/app/page-30bf4293efa47a47.js +1 -0
- package/.next/static/chunks/app/settings/page-59ae1b658838f0bc.js +1 -0
- package/.next/static/chunks/app/v1/chat/completions/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/chat/events/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/v1/models/route-9ea2990be4b67136.js +1 -0
- package/.next/static/chunks/app/waves/{page-3cf4b47b12662196.js → page-dc99a16141dd902b.js} +1 -1
- package/.next/static/chunks/webpack-dccb4f149ebdedcc.js +1 -0
- package/.next/static/jfb1GsjSGMjBmwfa3kM26/_buildManifest.js +1 -0
- package/.next/trace +10 -10
- package/.next/types/app/api/flow/generator/route.ts +347 -0
- package/.next/types/app/api/registry/feedback/route.ts +347 -0
- package/.next/types/app/api/registry/packages/route.ts +347 -0
- package/.next/types/app/api/telemetry/daily-active/route.ts +347 -0
- package/.next/types/routes.d.ts +5 -1
- package/.next/types/validator.ts +36 -0
- package/README.md +46 -7
- package/next.config.mjs +2 -2
- package/package.json +4 -3
- package/.next/server/chunks/2180.js +0 -1
- package/.next/server/chunks/237.js +0 -1
- package/.next/server/chunks/3392.js +0 -82
- package/.next/server/chunks/4961.js +0 -2
- package/.next/server/chunks/510.js +0 -1
- package/.next/server/chunks/5150.js +0 -1
- package/.next/server/chunks/5561.js +0 -1
- package/.next/server/chunks/5705.js +0 -1
- package/.next/server/chunks/5829.js +0 -1
- package/.next/server/chunks/694.js +0 -3
- package/.next/server/chunks/7579.js +0 -83
- package/.next/server/chunks/7724.js +0 -1
- package/.next/server/chunks/8034.js +0 -1
- package/.next/server/chunks/8037.js +0 -1
- package/.next/server/chunks/8192.js +0 -12
- package/.next/server/chunks/826.js +0 -2
- package/.next/server/chunks/8366.js +0 -90
- package/.next/server/chunks/848.js +0 -39
- package/.next/server/chunks/8615.js +0 -1
- package/.next/server/chunks/9313.js +0 -1
- package/.next/server/chunks/9537.js +0 -39
- package/.next/server/chunks/9576.js +0 -2
- package/.next/server/chunks/9632.js +0 -1
- package/.next/server/chunks/9671.js +0 -1
- package/.next/server/chunks/9857.js +0 -1
- package/.next/static/A9jP2ydtYbqx-IayWP2Sg/_buildManifest.js +0 -1
- package/.next/static/chunks/1496-d478bce7d7c85080.js +0 -1
- package/.next/static/chunks/1572-b663a83bba28a0a1.js +0 -8
- package/.next/static/chunks/1641-e5ff8f112da0a335.js +0 -1
- package/.next/static/chunks/1988-bd73f26184e930c1.js +0 -1
- package/.next/static/chunks/2266-d812473724cc6643.js +0 -1
- package/.next/static/chunks/3089.a0856f8093b90939.js +0 -1
- package/.next/static/chunks/3560-5bdceef09b50e1c3.js +0 -1
- package/.next/static/chunks/3672-cd86ace43288da79.js +0 -1
- package/.next/static/chunks/3711-0050bb4d345c2c9c.js +0 -1
- package/.next/static/chunks/4147-20897d83b3cd3978.js +0 -39
- package/.next/static/chunks/435-17c79f3b9f8dd38d.js +0 -1
- package/.next/static/chunks/469-1f043fe082d9f475.js +0 -1
- package/.next/static/chunks/4740-62814d07b2b7f760.js +0 -1
- package/.next/static/chunks/5441-cb0c31de8bce65c3.js +0 -1
- package/.next/static/chunks/7111-44538f8a64241b74.js +0 -1
- package/.next/static/chunks/812-dfe7ba07ddb7a565.js +0 -1
- package/.next/static/chunks/8401-0f39d91810180a88.js +0 -1
- package/.next/static/chunks/8404-14ef0345dc401ac5.js +0 -1
- package/.next/static/chunks/8678-c6c6be2672f337f6.js +0 -1
- package/.next/static/chunks/8834-faf121e257b517d5.js +0 -1
- package/.next/static/chunks/8855-f802599c4af81cca.js +0 -1
- package/.next/static/chunks/9562-5494feecd8c6f7a3.js +0 -1
- package/.next/static/chunks/app/api/approvals/[id]/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/approvals/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/backup/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/browse/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/bugs/enhance/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/cwd/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/encryption/secure/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/env/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/versions/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/flow/compile/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/flow/generate/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/flow/improve/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/flow/quick-chat/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/flow/repair/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/flow/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/git/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/init/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/local-models/capability/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/local-models/pull/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/local-models/suggest/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/app-sandbox/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/cancel/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/oauth-capability/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/model/[id]/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/model/provider/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/model/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/model/test/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/oauth/callback/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/oauth/initiate/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/oauth/reset/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/packages/build/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/packages/derive-secrets/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/packages/install/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/packages/install/status/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/packages/installed/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/packages/resolve/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/packages/scan-targets/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/packages/search/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/packages/uninstall/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/resend/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/reset/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/registry/oauth/callback/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/registry/oauth/initiate/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/registry/publish/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/registry/settings/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/restore/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/runs/active/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/storage/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/update/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/waves/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[id]/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/chat/page-558edb21321a32d0.js +0 -1
- package/.next/static/chunks/app/docs/page-fc30f613607b8a26.js +0 -1
- package/.next/static/chunks/app/executions/page-e71689c7256af1e8.js +0 -1
- package/.next/static/chunks/app/flows/page-e90e8d7b4c1bd1c8.js +0 -1
- package/.next/static/chunks/app/layout-038b35b382eef11d.js +0 -1
- package/.next/static/chunks/app/mcp-flows/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/mcp-proxy/[server]/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/models/page-d16f2721e7a93b43.js +0 -1
- package/.next/static/chunks/app/packages/page-c6b0e7aa95bc1064.js +0 -1
- package/.next/static/chunks/app/page-5c7fccd019942d46.js +0 -1
- package/.next/static/chunks/app/settings/page-fb336bb049bab72a.js +0 -1
- package/.next/static/chunks/app/v1/chat/completions/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/chat/events/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/app/v1/models/route-1a4c9e7a416ccbcf.js +0 -1
- package/.next/static/chunks/webpack-2d8e0c13c0b865fe.js +0 -1
- /package/.next/static/{A9jP2ydtYbqx-IayWP2Sg → jfb1GsjSGMjBmwfa3kM26}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=4663,exports.ids=[4663],exports.modules={15059:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56M12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96M4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56m2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8M12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96M14.34 14H9.66c-.09-.66-.16-1.32-.16-2s.07-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2m.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2z"}),"Language")},25750:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m12 16.5 4-4h-3v-9h-2v9H8zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2"}),"SystemUpdateAlt")},29320:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39"}),"Public")},30717:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"}),"Folder")},30873:(a,b,c)=>{c.d(b,{A:()=>I});var d=c(38301),e=c(2783),f=c(74846),g=c(62383),h=c(69979);let i=function(a={}){let{autoHideDuration:b=null,disableWindowBlurListener:c=!1,onClose:e,open:i,resumeHideDuration:j}=a,k=(0,f.A)();d.useEffect(()=>{if(i)return document.addEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)};function a(a){a.defaultPrevented||"Escape"!==a.key||e?.(a,"escapeKeyDown")}},[i,e]);let l=(0,g.A)((a,b)=>{e?.(a,b)}),m=(0,g.A)(a=>{e&&null!=a&&k.start(a,()=>{l(null,"timeout")})});d.useEffect(()=>(i&&m(b),k.clear),[i,b,m,k]);let n=k.clear,o=d.useCallback(()=>{null!=b&&m(null!=j?j:.5*b)},[b,j,m]);return d.useEffect(()=>{if(!c&&i)return window.addEventListener("focus",o),window.addEventListener("blur",n),()=>{window.removeEventListener("focus",o),window.removeEventListener("blur",n)}},[c,i,o,n]),{getRootProps:(b={})=>{let c={...(0,h.A)(a),...(0,h.A)(b)};return{role:"presentation",...b,...c,onBlur:a=>{let b=c.onBlur;b?.(a),o()},onFocus:a=>{let b=c.onFocus;b?.(a),n()},onMouseEnter:a=>{let b=c.onMouseEnter;b?.(a),n()},onMouseLeave:a=>{let b=c.onMouseLeave;b?.(a),o()}}},onClickAway:a=>{e?.(a,"clickaway")}}};var j=c(67943),k=c(46757),l=c(51939);function m(a){return a.substring(2).toLowerCase()}function n(a){let{children:b,disableReactTree:c=!1,mouseEvent:e="onClick",onClickAway:f,touchEvent:h="onTouchEnd"}=a,i=d.useRef(!1),n=d.useRef(null),o=d.useRef(!1),p=d.useRef(!1);d.useEffect(()=>(setTimeout(()=>{o.current=!0},0),()=>{o.current=!1}),[]);let q=(0,j.A)((0,l.A)(b),n),r=(0,g.A)(a=>{let b=p.current;p.current=!1;let d=(0,k.A)(n.current);if(!(!o.current||!n.current||"clientX"in a&&(d.documentElement.clientWidth<a.clientX||d.documentElement.clientHeight<a.clientY))){if(i.current){i.current=!1;return}(a.composedPath?a.composedPath().includes(n.current):!d.documentElement.contains(a.target)||n.current.contains(a.target))||!c&&b||f(a)}}),s=a=>c=>{p.current=!0;let d=b.props[a];d&&d(c)},t={ref:q};return!1!==h&&(t[h]=s(h)),d.useEffect(()=>{if(!1!==h){let a=m(h),b=(0,k.A)(n.current),c=()=>{i.current=!0};return b.addEventListener(a,r),b.addEventListener("touchmove",c),()=>{b.removeEventListener(a,r),b.removeEventListener("touchmove",c)}}},[r,h]),!1!==e&&(t[e]=s(e)),d.useEffect(()=>{if(!1!==e){let a=m(e),b=(0,k.A)(n.current);return b.addEventListener(a,r),()=>{b.removeEventListener(a,r)}}},[r,e]),d.cloneElement(b,t)}var o=c(18168),p=c(60839),q=c(68333),r=c(6636),s=c(6638),t=c(4927),u=c(43249),v=c(37489),w=c(54573),x=c(29565),y=c(33105);function z(a){return(0,y.Ay)("MuiSnackbarContent",a)}(0,x.A)("MuiSnackbarContent",["root","message","action"]);var A=c(21124);let B=(0,o.Ay)(w.A,{name:"MuiSnackbarContent",slot:"Root",overridesResolver:(a,b)=>b.root})((0,q.A)(({theme:a})=>{let b="light"===a.palette.mode?.8:.98,c=(0,v.tL)(a.palette.background.default,b);return{...a.typography.body2,color:a.vars?a.vars.palette.SnackbarContent.color:a.palette.getContrastText(c),backgroundColor:a.vars?a.vars.palette.SnackbarContent.bg:c,display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",borderRadius:(a.vars||a).shape.borderRadius,flexGrow:1,[a.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),C=(0,o.Ay)("div",{name:"MuiSnackbarContent",slot:"Message",overridesResolver:(a,b)=>b.message})({padding:"8px 0"}),D=(0,o.Ay)("div",{name:"MuiSnackbarContent",slot:"Action",overridesResolver:(a,b)=>b.action})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),E=d.forwardRef(function(a,b){let c=(0,r.b)({props:a,name:"MuiSnackbarContent"}),{action:d,className:f,message:g,role:h="alert",...i}=c,j=(a=>{let{classes:b}=a;return(0,e.A)({root:["root"],action:["action"],message:["message"]},z,b)})(c);return(0,A.jsxs)(B,{role:h,square:!0,elevation:6,className:(0,u.A)(j.root,f),ownerState:c,ref:b,...i,children:[(0,A.jsx)(C,{className:j.message,ownerState:c,children:g}),d?(0,A.jsx)(D,{className:j.action,ownerState:c,children:d}):null]})});function F(a){return(0,y.Ay)("MuiSnackbar",a)}(0,x.A)("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]);var G=c(20385);let H=(0,o.Ay)("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[`anchorOrigin${(0,s.A)(c.anchorOrigin.vertical)}${(0,s.A)(c.anchorOrigin.horizontal)}`]]}})((0,q.A)(({theme:a})=>({zIndex:(a.vars||a).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:a})=>"top"===a.anchorOrigin.vertical,style:{top:8,[a.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:a})=>"top"!==a.anchorOrigin.vertical,style:{bottom:8,[a.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:a})=>"left"===a.anchorOrigin.horizontal,style:{justifyContent:"flex-start",[a.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:a})=>"right"===a.anchorOrigin.horizontal,style:{justifyContent:"flex-end",[a.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:a})=>"center"===a.anchorOrigin.horizontal,style:{[a.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),I=d.forwardRef(function(a,b){let c=(0,r.b)({props:a,name:"MuiSnackbar"}),f=(0,p.A)(),g={enter:f.transitions.duration.enteringScreen,exit:f.transitions.duration.leavingScreen},{action:h,anchorOrigin:{vertical:j,horizontal:k}={vertical:"bottom",horizontal:"left"},autoHideDuration:l=null,children:m,className:o,ClickAwayListenerProps:q,ContentProps:u,disableWindowBlurListener:v=!1,message:w,onBlur:x,onClose:y,onFocus:z,onMouseEnter:B,onMouseLeave:C,open:D,resumeHideDuration:I,slots:J={},slotProps:K={},TransitionComponent:L,transitionDuration:M=g,TransitionProps:{onEnter:N,onExited:O,...P}={},...Q}=c,R={...c,anchorOrigin:{vertical:j,horizontal:k},autoHideDuration:l,disableWindowBlurListener:v,TransitionComponent:L,transitionDuration:M},S=(a=>{let{classes:b,anchorOrigin:c}=a,d={root:["root",`anchorOrigin${(0,s.A)(c.vertical)}${(0,s.A)(c.horizontal)}`]};return(0,e.A)(d,F,b)})(R),{getRootProps:T,onClickAway:U}=i({...R}),[V,W]=d.useState(!0),X={slots:{transition:L,...J},slotProps:{content:u,clickAwayListener:q,transition:P,...K}},[Y,Z]=(0,G.A)("root",{ref:b,className:[S.root,o],elementType:H,getSlotProps:T,externalForwardedProps:{...X,...Q},ownerState:R}),[$,{ownerState:_,...aa}]=(0,G.A)("clickAwayListener",{elementType:n,externalForwardedProps:X,getSlotProps:a=>({onClickAway:(...b)=>{a.onClickAway?.(...b),U(...b)}}),ownerState:R}),[ab,ac]=(0,G.A)("content",{elementType:E,shouldForwardComponentProp:!0,externalForwardedProps:X,additionalProps:{message:w,action:h},ownerState:R}),[ad,ae]=(0,G.A)("transition",{elementType:t.A,externalForwardedProps:X,getSlotProps:a=>({onEnter:(...b)=>{a.onEnter?.(...b),((a,b)=>{W(!1),N&&N(a,b)})(...b)},onExited:(...b)=>{a.onExited?.(...b),(a=>{W(!0),O&&O(a)})(...b)}}),additionalProps:{appear:!0,in:D,timeout:M,direction:"top"===j?"down":"up"},ownerState:R});return!D&&V?null:(0,A.jsx)($,{...aa,...J.clickAwayListener&&{ownerState:_},children:(0,A.jsx)(Y,{...Z,children:(0,A.jsx)(ad,{...ae,children:m||(0,A.jsx)(ab,{...ac})})})})})},46410:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m0 12H4V8h16z"}),"FolderOpen")},51694:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M4 7v2c0 .55-.45 1-1 1H2v4h1c.55 0 1 .45 1 1v2c0 1.65 1.35 3 3 3h3v-2H7c-.55 0-1-.45-1-1v-2c0-1.3-.84-2.42-2-2.83v-.34C5.16 11.42 6 10.3 6 9V7c0-.55.45-1 1-1h3V4H7C5.35 4 4 5.35 4 7m17 3c-.55 0-1-.45-1-1V7c0-1.65-1.35-3-3-3h-3v2h3c.55 0 1 .45 1 1v2c0 1.3.84 2.42 2 2.83v.34c-1.16.41-2 1.52-2 2.83v2c0 .55-.45 1-1 1h-3v2h3c1.65 0 3-1.35 3-3v-2c0-.55.45-1 1-1h1v-4z"}),"DataObject")},52399:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward")},55641:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M16.91 14.09 17 14l2 2 4-4.04L21 10h-8.17zM3.98 6.81C2.2 7.85 1 9.79 1 12c0 3.31 2.69 6 6 6 2.21 0 4.15-1.2 5.18-2.99l7.59 7.59 1.41-1.41L2.81 2.81 1.39 4.22zm5.93 5.93C9.58 14.03 8.4 15 7 15c-1.65 0-3-1.35-3-3 0-1.4.97-2.58 2.26-2.91z"}),"KeyOff")},64956:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M11 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8z"}),"Login")},71756:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"m1 9 2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9m8 8 3 3 3-3c-1.65-1.66-4.34-1.66-6 0m-4-4 2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13"}),"Wifi")},83013:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M4.5 11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5zm2.5-.5h1.5V15H10v-4.5h1.5V9H7zm5.5 0H14V15h1.5v-4.5H17V9h-4.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5m0 2.5h-2v-1h2z"}),"Http")},91314:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"}),"Home")},91901:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)([(0,e.jsx)("circle",{cx:"20",cy:"12",r:"2"},"0"),(0,e.jsx)("circle",{cx:"4",cy:"12",r:"2"},"1"),(0,e.jsx)("circle",{cx:"12",cy:"20",r:"2"},"2"),(0,e.jsx)("path",{d:"M10.05 8.59 6.03 4.55h-.01l-.31-.32-1.42 1.41 4.02 4.05.01-.01.31.32zm3.893.027 4.405-4.392L19.76 5.64l-4.405 4.393zM10.01 15.36l-1.42-1.41-4.03 4.01-.32.33 1.41 1.41 4.03-4.02zm9.75 2.94-3.99-4.01-.36-.35L14 15.35l3.99 4.01.35.35z"},"3"),(0,e.jsx)("circle",{cx:"12",cy:"4",r:"2"},"4")],"Stream")},95786:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1z"}),"Lock")},98810:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zM6 20V4h7v5h5v11z"}),"InsertDriveFileOutlined")}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=4822,exports.ids=[1925,3629,4306,4822,6793,9174],exports.modules={1925:(a,b,c)=>{"use strict";c.d(b,{Hm:()=>f,xc:()=>e});let d=["key","secret","token","password"],e=a=>d.some(b=>a.toLowerCase().includes(b)),f=a=>e(a)||"authorization"===a.trim().toLowerCase()},3676:(a,b,c)=>{"use strict";c.d(b,{Wj:()=>h,ln:()=>g});var d=c(10641),e=c(58739);let f="encryption_locked";async function g(){return(0,e.isEncryptionLocked)()}async function h(a){return await g()?a?.openai?d.NextResponse.json({error:{message:"Encryption is locked. Unlock FLUJO to continue.",type:f,code:f,param:null}},{status:423}):d.NextResponse.json({error:f},{status:423}):null}},41115:(a,b,c)=>{"use strict";c.d(b,{$:()=>h,v5:()=>g});var d=c(10641);let e=new Set(["localhost","127.0.0.1","::1"]);function f(a){let b=a.toLowerCase();return!!e.has(b)||(function(){let a=process.env.FLUJO_EXTRA_LOCAL_HOSTS;return a?a.split(",").map(a=>a.trim().toLowerCase()).filter(a=>a.length>0&&"."!==a):[]})().some(a=>a.startsWith(".")?b.endsWith(a):b===a)}function g(a,b){let c=function(a){if(!a)return null;let b=a.trim();if(b.startsWith("[")){let a=b.indexOf("]");return a>0?b.slice(1,a):null}return b.split(":")[0]||null}(a);if(!c||!f(c))return!1;if(b)try{if(!f(new URL(b).hostname))return!1}catch{return!1}return!0}function h(a){return g(a.headers.get("host"),a.headers.get("origin"))?null:d.NextResponse.json({error:"Forbidden: this endpoint only accepts local requests."},{status:403})}},42398:(a,b,c)=>{"use strict";c.d(b,{QE:()=>l,_u:()=>n,aZ:()=>k,qf:()=>o,v5:()=>h.v5,xK:()=>m,xV:()=>p});var d=c(50846),e=c(60453),f=c(3676),g=c(68780),h=c(41115);let i=(0,d.h)("backend/services/mcp/proxyForward"),j="FLUJO encryption is locked (encryption_locked). Unlock FLUJO to continue.";async function k(a){let b=await e.mcpService.loadServerConfigs();if(!Array.isArray(b))return i.warn("isServerExposed: failed to load server configs",{error:b.error}),!1;let c=b.find(b=>b.name===a);return!!c&&!c.disabled&&!0===c.exposeAsMcpServer}async function l(a){if(await (0,f.ln)())throw Error(j);let b=await e.mcpService.connectServer(a);if(!b.success)throw Error(`Failed to connect to MCP server '${a}': ${b.error}`);let c=await e.mcpService.listServerTools(a);if(c.error)throw Error(`Failed to list tools for '${a}': ${c.error}`);return{tools:c.tools??[]}}async function m(a,b,c){if(await (0,f.ln)())return{content:[{type:"text",text:j}],isError:!0};let d=await e.mcpService.connectServer(a);if(!d.success)return{content:[{type:"text",text:`Error connecting to '${a}': ${d.error}`}],isError:!0};let g=await e.mcpService.callTool(a,b,c,void 0,void 0,void 0,void 0,"model");return g.success?g.data:{content:[{type:"text",text:`Error: ${g.error??"Unknown error"}`}],isError:!0}}async function n(a){if(await (0,f.ln)())throw Error(j);let b=await e.mcpService.connectServer(a);if(!b.success)throw Error(`Failed to connect to MCP server '${a}': ${b.error}`);let c=await e.mcpService.listServerResources(a);if(c.error)throw Error(`Failed to list resources for '${a}': ${c.error}`);return{resources:c.resources??[]}}async function o(a){if(await (0,f.ln)())throw Error(j);let b=await e.mcpService.connectServer(a);if(!b.success)throw Error(`Failed to connect to MCP server '${a}': ${b.error}`);let c=await e.mcpService.listServerResourceTemplates(a);if(c.error)throw Error(`Failed to list resource templates for '${a}': ${c.error}`);return{resourceTemplates:c.resourceTemplates??[]}}async function p(a,b){if(await (0,f.ln)())throw Error(j);let c=await e.mcpService.connectServer(a);if(!c.success)throw Error(`Failed to connect to MCP server '${a}': ${c.error}`);let d=await e.mcpService.readResource(a,b);if(!d.success||!d.data)throw new g.Nh(g.O4.InvalidParams,`Resource not found: '${b}' on server '${a}': ${d.error??"unknown error"}`);return d.data}},56793:(a,b,c)=>{"use strict";c.d(b,{eh:()=>g,ru:()=>e});let d=(0,c(50846).h)("backend/services/scheduler/flowRunEventBus");function e(a){return"signal"===a.kind}class f{publish(a){if(0===this.listeners.size)return;let b=e(a)?`signal topic=${a.topic} emitter=${a.emitterFlowId}`:`flow=${a.flowId} status=${a.status}`;for(let c of(d.debug(`Publishing flow event: ${b} firedBy=${a.firedBy} depth=${a.chainDepth} listeners=${this.listeners.size}`),[...this.listeners]))try{c(a)}catch(a){d.warn("A flow-run event listener threw:",a)}}subscribe(a){return this.listeners.add(a),()=>{this.listeners.delete(a)}}get listenerCount(){return this.listeners.size}constructor(){this.listeners=new Set}}function g(){return global.__flujo_flow_run_event_bus||(global.__flujo_flow_run_event_bus=new f),global.__flujo_flow_run_event_bus}},73456:(a,b,c)=>{"use strict";c.d(b,{G:()=>m,V:()=>l,resolveGlobalVars:()=>k});var d=c(75879);c(68633);var e=c(50846),f=c(92372),g=c(38844),h=c(58739),i=c(51669);let j=(0,e.h)("backend/utils/resolveGlobalVars");async function k(a,b={}){j.debug("Entering resolveGlobalVars method");let c=!1!==b.resolveSecrets,d=await (0,f.YM)(g.Z.GLOBAL_ENV_VARS,{}),e=function(a){if(!a||"object"!=typeof a)return!1;let b=Object.keys(a);if(0===b.length)return!0;let c=a[b[0]];return c&&"object"==typeof c&&"value"in c&&"metadata"in c&&"object"==typeof c.metadata&&"isSecret"in c.metadata}(d);j.debug(`Loaded ${Object.keys(d).length} global environment variables (${e?"new":"old"} format)`);let i={},l=new Set;if(e)for(let[a,b]of Object.entries(d))i[a]=b.value,b.metadata.isSecret&&l.add(a);else i={...d};let m=async a=>{let b=a.match(/\$\{global:([^}]+)\}/g);if(!b)return a;let d=a;for(let a of b){let b=a.substring(9,a.length-1);if(void 0!==i[b]){let e=i[b];if(!c&&(l.has(b)||e.startsWith("encrypted:")||e.startsWith("encrypted_failed:"))){j.debug(`Keeping secret global variable unresolved: ${b}`);continue}if(e.startsWith("encrypted:")){j.debug(`Decrypting encrypted global variable: ${b}`);try{let a=e.substring(10),c=await (0,h.decryptWithPassword)(a);if(c)e=c,j.debug(`Successfully decrypted global variable: ${b}`);else{j.warn(`Failed to decrypt global variable: ${b}`);continue}}catch(a){j.error(`Error decrypting global variable: ${b}`,a);continue}}else if(e.startsWith("encrypted_failed:")){j.warn(`Skipping failed encrypted global variable: ${b}`);continue}j.debug(`Resolved global variable: ${b}`),d=d.replace(a,e)}else j.warn(`Global variable not found: ${b}`)}return d},n=async a=>{if("string"==typeof a)return await m(a);if(Array.isArray(a))return await Promise.all(a.map(a=>n(a)));if(null!==a&&"object"==typeof a){let b={};for(let[c,d]of Object.entries(a))b[c]=await n(d);return b}return a},o=await n(a);return"object"==typeof a&&null!==a&&j.debug("Resolved global variables result:",JSON.stringify(o,null,2)),j.debug("Completed global variable resolution"),o}async function l(a){return k(a,{resolveSecrets:!1})}async function m(a,b=0){if(j.debug(`Entering resolveAndDecryptApiKey method (depth: ${b})`),!a)return j.warn("Empty value provided"),null;if(b>=10)return j.warn(`Maximum resolution depth reached (10) for value: ${a}`),a;let c=a;if(c.startsWith("encrypted:")){j.debug(`Decrypting encrypted value at depth ${b}`);try{let a=c.substring(10),d=await (0,h.decryptWithPassword)(a);if(!d)return j.warn(`Failed to decrypt value at depth ${b}`),null;j.debug(`Successfully decrypted value at depth ${b}`),j.verbose(d),c=d}catch(a){return j.error(`Error decrypting value at depth ${b}:`,a),null}}else c.startsWith("encrypted_failed:")&&(j.warn(`Skipping failed encrypted value at depth ${b}`),c=c.substring(17));if(c.includes("${global:")){j.debug(`Resolving global variables at depth ${b}`);try{let a=await k(c);if(j.verbose(a),a!==c)return j.debug(`Value changed after resolving globals at depth ${b}, processing recursively`),m(a,b+1);c=a}catch(a){return j.error(`Error resolving global variables at depth ${b}:`,a),null}}return j.debug(`Completed resolveAndDecryptApiKey at depth ${b}`),c}(0,i.D)([k,l,m]),(0,d.A)(k,"605caa1e030009a4bc7e820854ff481d3e0295325d",null),(0,d.A)(l,"4003ce37366709f5add0c98a6e32e47a1006fd7c7d",null),(0,d.A)(m,"6061ed6d99a98b5d9f5d2d15065caab0a27d6a8987",null)},78335:()=>{},91959:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"4003ce37366709f5add0c98a6e32e47a1006fd7c7d":()=>d.V,"605caa1e030009a4bc7e820854ff481d3e0295325d":()=>d.resolveGlobalVars,"6061ed6d99a98b5d9f5d2d15065caab0a27d6a8987":()=>d.G});var d=c(73456)},96487:()=>{}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=5040,exports.ids=[1925,3629,4306,5040,6793,9174],exports.modules={1925:(a,b,c)=>{c.d(b,{Hm:()=>f,xc:()=>e});let d=["key","secret","token","password"],e=a=>d.some(b=>a.toLowerCase().includes(b)),f=a=>e(a)||"authorization"===a.trim().toLowerCase()},5248:(a,b,c)=>{c.d(b,{P:()=>m,p:()=>k});var d=c(32524),e=c(81226);function f(a){return!!a&&a.includes("mcp")}function g(a){return!!a&&a.includes("resource")}let h=a=>({source:`${a}-bottom`,target:`${a}-top`});function i(a,b){let c=a.filter(a=>"mcp"!==a.type&&"resource"!==a.type&&"string"==typeof a.id),d=new Map(c.map(a=>[a.id,a])),e=new Map,i=new Map,j=new Set;for(let a of c)e.set(a.id,0),i.set(a.id,0);let k=(a,b)=>{j.add(`${a}->${b}`),i.set(a,(i.get(a)??0)+1),e.set(b,(e.get(b)??0)+1)};for(let a of b)d.has(a.from)&&d.has(a.to)&&a.from!==a.to&&(k(a.from,a.to),a.bidirectional&&k(a.to,a.from));let l=[];for(let a of[...c].sort((a,b)=>a.y-b.y||a.x-b.x)){let b=l[l.length-1];b&&70>=Math.abs(a.y-b[0].y)?b.push(a):l.push([a])}let m=new Map;l.forEach((a,b)=>a.forEach(a=>m.set(a.id,b)));let n=new Map;for(let a=1;a<l.length;a++){let b=l[a],c=b.filter(a=>"subflow"===a.type);if(c.length>=2&&c.length===b.length){let b=l[a-1];if(1===b.length&&"process"===b[0].type)for(let a of c)n.set(a.id,b[0].id)}}let o=[],p=(a,b)=>{if(a===b||j.has(`${a}->${b}`))return!1;let c=d.get(a),e=d.get(b);return!(!c||!e||null!==function(a,b,c,d){if("trigger"===a&&"start"===c)return b&&"trigger-bottom"!==b?"Trigger nodes must connect via their bottom handle":d&&"start-top"!==d?"Trigger nodes must connect to the top handle of the Start node":null;if("trigger"===c)return"Trigger nodes cannot have incoming connections";if("trigger"===a&&"start"!==c)return"Trigger nodes can only connect to the Start node";if("start"===c)return"Start nodes cannot have incoming connections";if("finish"===a)return"Finish nodes cannot have outgoing connections";if("mcp"===a||"mcp"===c||f(b)||f(d))return("mcp"!==a||"process"!==c)&&("process"!==a||"mcp"!==c)?"MCP connections must link an MCP node to a Process node via MCP handles":"process"!==a||f(b)?null:"Connect MCP nodes from the Process node's left/right MCP handles";if("resource"===a||"resource"===c||g(b)||g(d)){if(("resource"!==a||"process"!==c)&&("process"!==a||"resource"!==c))return"Resource connections must link a Resource node to a Process node via resource handles";if("process"===a&&!g(b))return"Connect Resource nodes from the Process node's left/right resource handles"}return null}(c.type,h(c.type).source,e.type,h(e.type).target)||"subflow"===c.type&&(i.get(a)??0)>=1)},q=(a,b,c,d)=>{o.push({from:a,to:b,bidirectional:c,reason:d}),k(a,b),c&&k(b,a)},r=a=>{let b=m.get(a.id)??0;for(let c=b-1;c>=0;c--){let b=l[c].filter(b=>b.id!==a.id&&"finish"!==b.type&&!n.has(b.id));if(0!==b.length){if(1===b.length)return b[0];return b.reduce((b,c)=>Math.abs(c.x-a.x)<Math.abs(b.x-a.x)?c:b)}}return null};for(let a of l)for(let b of a){if("start"===b.type||(e.get(b.id)??0)>0)continue;let a=n.get(b.id);if(a){p(a,b.id)&&q(a,b.id,!0,"auto-bidirectional-subflow");continue}let c=r(b);c&&p(c.id,b.id)&&q(c.id,b.id,!1,"auto-connected")}let s=c.filter(a=>"start"===a.type),t=()=>c.filter(a=>"start"!==a.type&&"finish"!==a.type&&!n.has(a.id)&&(e.get(a.id)??0)===0),u=null;if(0===s.length){let a=t();if(a.length>0)u={targets:a.map(a=>a.id)};else{let a=c.filter(a=>"finish"!==a.type).sort((a,b)=>a.y-b.y)[0];a&&(u={targets:[a.id]})}}else{let a=s[0];for(let b of t())p(a.id,b.id)&&q(a.id,b.id,!1,"auto-connected")}let v=c.filter(a=>"finish"===a.type),w=()=>c.filter(a=>"start"!==a.type&&"finish"!==a.type&&!n.has(a.id)&&(i.get(a.id)??0)===0),x=null;if(0===v.length){let a=w();a.length>0&&(x={sources:a.map(a=>a.id)})}else{let a=v[0];for(let b of w())p(b.id,a.id)&&q(b.id,a.id,!1,"auto-connected")}return{addEdges:o,addStart:u,addFinish:x}}function j(a,b){if(!b.has(a))return a;for(let c=2;;c++){let d=`${a}_${c}`;if(!b.has(d))return d}}function k(a){let b=[];return{spec:function a(b,c){let d=Array.isArray(b?.nodes)?b.nodes.map(a=>({...a})):[],e=Array.isArray(b?.edges)?b.edges.map(a=>({...a})):[];for(let b of d)b?.type==="subflow"&&b.subflowSpec&&(b.subflowSpec=a(b.subflowSpec,c));let f=d.filter(a=>a&&"string"==typeof a.key&&!!a.key&&"mcp"!==a.type);if(0===f.length)return{...b,nodes:d,edges:e};let g=i(f.map((a,b)=>({id:a.key,type:a.type,x:0,y:1e3*b})),e.filter(a=>a&&"string"==typeof a.from&&"string"==typeof a.to).map(a=>({from:a.from,to:a.to,bidirectional:!0===a.bidirectional})));for(let a of g.addEdges)e.push({from:a.from,to:a.to,...a.bidirectional?{bidirectional:!0}:{}}),c.push({code:a.reason,message:n(a.reason),nodeId:a.to});let h=new Set(d.map(a=>a.key).filter(Boolean));if(g.addStart){let a=j("start",h);for(let b of(h.add(a),d.unshift({key:a,type:"start"}),g.addStart.targets))e.push({from:a,to:b});c.push({code:"auto-added-start",message:`Added a Start node connected to ${g.addStart.targets.length} entry step(s).`})}if(g.addFinish){let a=j("finish",h);for(let b of(h.add(a),d.push({key:a,type:"finish"}),g.addFinish.sources))e.push({from:b,to:a});c.push({code:"auto-added-finish",message:`Added a Finish node connected from ${g.addFinish.sources.length} final step(s).`})}return{...b,nodes:d,edges:e}}(a,b),changes:b}}function l(a){return a.data?.type??a.type??"unknown"}function m(a){var b,c;let f=(a?.nodes??[]).map(a=>({...a,position:{...a.position??{x:0,y:0}},data:{...a.data}})),g=[...a?.edges??[]],h={...a,nodes:f,edges:g},j=[],k=i(f.filter(a=>"mcp"!==l(a)&&"resource"!==l(a)).map(a=>({id:a.id,type:l(a),x:a.position?.x??0,y:a.position?.y??0})),g.filter(a=>!function(a){let b=a.data?.edgeType;return"mcp"===b||"resource"===b}(a)).map(a=>({from:a.source,to:a.target,bidirectional:a.data?.bidirectional===!0}))),m=new Map(f.map(a=>[a.id,a])),o=(a,b,c)=>{let d=m.get(a),f=m.get(b);d&&f&&g.push((0,e.pX)(d,f,c))};for(let a of k.addEdges)o(a.from,a.to,a.bidirectional),j.push({code:a.reason,message:n(a.reason),nodeId:a.to});if(k.addStart){let a=k.addStart.targets.map(a=>m.get(a)).filter(Boolean).reduce((a,b)=>!a||b.position.y<a.position.y?b:a,null),c=(b={x:a?.position.x??250,y:(a?.position.y??150)-150},{id:(0,d.A)(),type:"start",position:b,data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}});for(let a of(f.unshift(c),m.set(c.id,c),k.addStart.targets))o(c.id,a,!1);j.push({code:"auto-added-start",message:`Added a Start node connected to ${k.addStart.targets.length} entry step(s).`,nodeId:c.id})}if(k.addFinish){let a=k.addFinish.sources.map(a=>m.get(a)).filter(Boolean).reduce((a,b)=>!a||b.position.y>a.position.y?b:a,null),b=(c={x:a?.position.x??250,y:(a?.position.y??0)+150},{id:(0,d.A)(),type:"finish",position:c,data:{label:"Finish Node",type:"finish",properties:{}}});for(let a of(f.push(b),m.set(b.id,b),k.addFinish.sources))o(a,b.id,!1);j.push({code:"auto-added-finish",message:`Added a Finish node connected from ${k.addFinish.sources.length} final step(s).`,nodeId:b.id})}return{flow:h,changes:j}}function n(a){switch(a){case"auto-connected":return"Connected a disconnected step into the flow.";case"auto-bidirectional-subflow":return"Wired a parallel subflow with a two-way handoff to its orchestrator.";case"auto-added-start":return"Added a Start node.";case"auto-added-finish":return"Added a Finish node."}}},56793:(a,b,c)=>{c.d(b,{eh:()=>g,ru:()=>e});let d=(0,c(50846).h)("backend/services/scheduler/flowRunEventBus");function e(a){return"signal"===a.kind}class f{publish(a){if(0===this.listeners.size)return;let b=e(a)?`signal topic=${a.topic} emitter=${a.emitterFlowId}`:`flow=${a.flowId} status=${a.status}`;for(let c of(d.debug(`Publishing flow event: ${b} firedBy=${a.firedBy} depth=${a.chainDepth} listeners=${this.listeners.size}`),[...this.listeners]))try{c(a)}catch(a){d.warn("A flow-run event listener threw:",a)}}subscribe(a){return this.listeners.add(a),()=>{this.listeners.delete(a)}}get listenerCount(){return this.listeners.size}constructor(){this.listeners=new Set}}function g(){return global.__flujo_flow_run_event_bus||(global.__flujo_flow_run_event_bus=new f),global.__flujo_flow_run_event_bus}},71994:(a,b,c)=>{c.d(b,{GN:()=>B,Xg:()=>C,UC:()=>D});var d=c(50846),e=c(20433),f=c(
|
|
1
|
+
"use strict";exports.id=5040,exports.ids=[1925,3629,4306,5040,6793,9174],exports.modules={1925:(a,b,c)=>{c.d(b,{Hm:()=>f,xc:()=>e});let d=["key","secret","token","password"],e=a=>d.some(b=>a.toLowerCase().includes(b)),f=a=>e(a)||"authorization"===a.trim().toLowerCase()},5248:(a,b,c)=>{c.d(b,{P:()=>m,p:()=>k});var d=c(32524),e=c(81226);function f(a){return!!a&&a.includes("mcp")}function g(a){return!!a&&a.includes("resource")}let h=a=>({source:`${a}-bottom`,target:`${a}-top`});function i(a,b){let c=a.filter(a=>"mcp"!==a.type&&"resource"!==a.type&&"string"==typeof a.id),d=new Map(c.map(a=>[a.id,a])),e=new Map,i=new Map,j=new Set;for(let a of c)e.set(a.id,0),i.set(a.id,0);let k=(a,b)=>{j.add(`${a}->${b}`),i.set(a,(i.get(a)??0)+1),e.set(b,(e.get(b)??0)+1)};for(let a of b)d.has(a.from)&&d.has(a.to)&&a.from!==a.to&&(k(a.from,a.to),a.bidirectional&&k(a.to,a.from));let l=[];for(let a of[...c].sort((a,b)=>a.y-b.y||a.x-b.x)){let b=l[l.length-1];b&&70>=Math.abs(a.y-b[0].y)?b.push(a):l.push([a])}let m=new Map;l.forEach((a,b)=>a.forEach(a=>m.set(a.id,b)));let n=new Map;for(let a=1;a<l.length;a++){let b=l[a],c=b.filter(a=>"subflow"===a.type);if(c.length>=2&&c.length===b.length){let b=l[a-1];if(1===b.length&&"process"===b[0].type)for(let a of c)n.set(a.id,b[0].id)}}let o=[],p=(a,b)=>{if(a===b||j.has(`${a}->${b}`))return!1;let c=d.get(a),e=d.get(b);return!(!c||!e||null!==function(a,b,c,d){if("trigger"===a&&"start"===c)return b&&"trigger-bottom"!==b?"Trigger nodes must connect via their bottom handle":d&&"start-top"!==d?"Trigger nodes must connect to the top handle of the Start node":null;if("trigger"===c)return"Trigger nodes cannot have incoming connections";if("trigger"===a&&"start"!==c)return"Trigger nodes can only connect to the Start node";if("start"===c)return"Start nodes cannot have incoming connections";if("finish"===a)return"Finish nodes cannot have outgoing connections";if("mcp"===a||"mcp"===c||f(b)||f(d))return("mcp"!==a||"process"!==c)&&("process"!==a||"mcp"!==c)?"MCP connections must link an MCP node to a Process node via MCP handles":"process"!==a||f(b)?null:"Connect MCP nodes from the Process node's left/right MCP handles";if("resource"===a||"resource"===c||g(b)||g(d)){if(("resource"!==a||"process"!==c)&&("process"!==a||"resource"!==c))return"Resource connections must link a Resource node to a Process node via resource handles";if("process"===a&&!g(b))return"Connect Resource nodes from the Process node's left/right resource handles"}return null}(c.type,h(c.type).source,e.type,h(e.type).target)||"subflow"===c.type&&(i.get(a)??0)>=1)},q=(a,b,c,d)=>{o.push({from:a,to:b,bidirectional:c,reason:d}),k(a,b),c&&k(b,a)},r=a=>{let b=m.get(a.id)??0;for(let c=b-1;c>=0;c--){let b=l[c].filter(b=>b.id!==a.id&&"finish"!==b.type&&!n.has(b.id));if(0!==b.length){if(1===b.length)return b[0];return b.reduce((b,c)=>Math.abs(c.x-a.x)<Math.abs(b.x-a.x)?c:b)}}return null};for(let a of l)for(let b of a){if("start"===b.type||(e.get(b.id)??0)>0)continue;let a=n.get(b.id);if(a){p(a,b.id)&&q(a,b.id,!0,"auto-bidirectional-subflow");continue}let c=r(b);c&&p(c.id,b.id)&&q(c.id,b.id,!1,"auto-connected")}let s=c.filter(a=>"start"===a.type),t=()=>c.filter(a=>"start"!==a.type&&"finish"!==a.type&&!n.has(a.id)&&(e.get(a.id)??0)===0),u=null;if(0===s.length){let a=t();if(a.length>0)u={targets:a.map(a=>a.id)};else{let a=c.filter(a=>"finish"!==a.type).sort((a,b)=>a.y-b.y)[0];a&&(u={targets:[a.id]})}}else{let a=s[0];for(let b of t())p(a.id,b.id)&&q(a.id,b.id,!1,"auto-connected")}let v=c.filter(a=>"finish"===a.type),w=()=>c.filter(a=>"start"!==a.type&&"finish"!==a.type&&!n.has(a.id)&&(i.get(a.id)??0)===0),x=null;if(0===v.length){let a=w();a.length>0&&(x={sources:a.map(a=>a.id)})}else{let a=v[0];for(let b of w())p(b.id,a.id)&&q(b.id,a.id,!1,"auto-connected")}return{addEdges:o,addStart:u,addFinish:x}}function j(a,b){if(!b.has(a))return a;for(let c=2;;c++){let d=`${a}_${c}`;if(!b.has(d))return d}}function k(a){let b=[];return{spec:function a(b,c){let d=Array.isArray(b?.nodes)?b.nodes.map(a=>({...a})):[],e=Array.isArray(b?.edges)?b.edges.map(a=>({...a})):[];for(let b of d)b?.type==="subflow"&&b.subflowSpec&&(b.subflowSpec=a(b.subflowSpec,c));let f=d.filter(a=>a&&"string"==typeof a.key&&!!a.key&&"mcp"!==a.type);if(0===f.length)return{...b,nodes:d,edges:e};let g=i(f.map((a,b)=>({id:a.key,type:a.type,x:0,y:1e3*b})),e.filter(a=>a&&"string"==typeof a.from&&"string"==typeof a.to).map(a=>({from:a.from,to:a.to,bidirectional:!0===a.bidirectional})));for(let a of g.addEdges)e.push({from:a.from,to:a.to,...a.bidirectional?{bidirectional:!0}:{}}),c.push({code:a.reason,message:n(a.reason),nodeId:a.to});let h=new Set(d.map(a=>a.key).filter(Boolean));if(g.addStart){let a=j("start",h);for(let b of(h.add(a),d.unshift({key:a,type:"start"}),g.addStart.targets))e.push({from:a,to:b});c.push({code:"auto-added-start",message:`Added a Start node connected to ${g.addStart.targets.length} entry step(s).`})}if(g.addFinish){let a=j("finish",h);for(let b of(h.add(a),d.push({key:a,type:"finish"}),g.addFinish.sources))e.push({from:b,to:a});c.push({code:"auto-added-finish",message:`Added a Finish node connected from ${g.addFinish.sources.length} final step(s).`})}return{...b,nodes:d,edges:e}}(a,b),changes:b}}function l(a){return a.data?.type??a.type??"unknown"}function m(a){var b,c;let f=(a?.nodes??[]).map(a=>({...a,position:{...a.position??{x:0,y:0}},data:{...a.data}})),g=[...a?.edges??[]],h={...a,nodes:f,edges:g},j=[],k=i(f.filter(a=>"mcp"!==l(a)&&"resource"!==l(a)).map(a=>({id:a.id,type:l(a),x:a.position?.x??0,y:a.position?.y??0})),g.filter(a=>!function(a){let b=a.data?.edgeType;return"mcp"===b||"resource"===b}(a)).map(a=>({from:a.source,to:a.target,bidirectional:a.data?.bidirectional===!0}))),m=new Map(f.map(a=>[a.id,a])),o=(a,b,c)=>{let d=m.get(a),f=m.get(b);d&&f&&g.push((0,e.pX)(d,f,c))};for(let a of k.addEdges)o(a.from,a.to,a.bidirectional),j.push({code:a.reason,message:n(a.reason),nodeId:a.to});if(k.addStart){let a=k.addStart.targets.map(a=>m.get(a)).filter(Boolean).reduce((a,b)=>!a||b.position.y<a.position.y?b:a,null),c=(b={x:a?.position.x??250,y:(a?.position.y??150)-150},{id:(0,d.A)(),type:"start",position:b,data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}});for(let a of(f.unshift(c),m.set(c.id,c),k.addStart.targets))o(c.id,a,!1);j.push({code:"auto-added-start",message:`Added a Start node connected to ${k.addStart.targets.length} entry step(s).`,nodeId:c.id})}if(k.addFinish){let a=k.addFinish.sources.map(a=>m.get(a)).filter(Boolean).reduce((a,b)=>!a||b.position.y>a.position.y?b:a,null),b=(c={x:a?.position.x??250,y:(a?.position.y??0)+150},{id:(0,d.A)(),type:"finish",position:c,data:{label:"Finish Node",type:"finish",properties:{}}});for(let a of(f.push(b),m.set(b.id,b),k.addFinish.sources))o(a,b.id,!1);j.push({code:"auto-added-finish",message:`Added a Finish node connected from ${k.addFinish.sources.length} final step(s).`,nodeId:b.id})}return{flow:h,changes:j}}function n(a){switch(a){case"auto-connected":return"Connected a disconnected step into the flow.";case"auto-bidirectional-subflow":return"Wired a parallel subflow with a two-way handoff to its orchestrator.";case"auto-added-start":return"Added a Start node.";case"auto-added-finish":return"Added a Finish node."}}},56793:(a,b,c)=>{c.d(b,{eh:()=>g,ru:()=>e});let d=(0,c(50846).h)("backend/services/scheduler/flowRunEventBus");function e(a){return"signal"===a.kind}class f{publish(a){if(0===this.listeners.size)return;let b=e(a)?`signal topic=${a.topic} emitter=${a.emitterFlowId}`:`flow=${a.flowId} status=${a.status}`;for(let c of(d.debug(`Publishing flow event: ${b} firedBy=${a.firedBy} depth=${a.chainDepth} listeners=${this.listeners.size}`),[...this.listeners]))try{c(a)}catch(a){d.warn("A flow-run event listener threw:",a)}}subscribe(a){return this.listeners.add(a),()=>{this.listeners.delete(a)}}get listenerCount(){return this.listeners.size}constructor(){this.listeners=new Set}}function g(){return global.__flujo_flow_run_event_bus||(global.__flujo_flow_run_event_bus=new f),global.__flujo_flow_run_event_bus}},71994:(a,b,c)=>{c.d(b,{GN:()=>B,Xg:()=>C,UC:()=>D});var d=c(50846),e=c(20433),f=c(58858),g=c(46496),h=c(81226),i=c(84671),j=c(5248),k=c(88185),l=c(14265),m=c(1905),n=c(33233),o=c(9312),p=c(41527);let q=["prompt","isolatedPrompt","payloadTemplate"];function r(a){return RegExp("\\$\\{var:\\s*"+a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\s*\\}","g")}function s(a,b){for(let c of q){let d=a[c];"string"==typeof d&&(a[c]=b(d))}Array.isArray(a.spawnBriefs)&&(a.spawnBriefs=a.spawnBriefs.map(a=>"string"==typeof a?b(a):a))}function t(a){return a.replace(/[ \t]{2,}/g," ").replace(/[ \t]+([.,;:!?])/g,"$1").replace(/[ \t]+\n/g,"\n")}let u=(0,d.h)("backend/services/flow/generateFlow");function v(a,b,c,d){let e=c?`MULTI-LEVEL FLOWS — you MAY design subflows that are themselves brand-new flows:
|
|
2
2
|
- A subflow node normally references an EXISTING flow via "flow". To instead create a NEW child flow, use ONE of these on the subflow node (not "flow"):
|
|
3
3
|
- "subflowSpec": an inline nested FlowSpec (you author the whole child now), or
|
|
4
4
|
- "generateSubflow": a short natural-language description of the child — FLUJO will generate that child flow for you.
|
|
@@ -17,19 +17,14 @@ GENERATED-FLOW DEFAULTS (context saving): process nodes you leave without an exp
|
|
|
17
17
|
GENERATED-FLOW DATA-FLOW POLICY (IMPORTANT — carry data through the conversation, NOT scratchpad variables):
|
|
18
18
|
1. PREFER CONVERSATION HISTORY. For a later step to use an earlier step's output, keep that output in the thread: give the earlier (producer) step outputMode "full-conversation" (or leave "latest-message" when only its final text matters) and give the later (consumer) step inputMode "full-history" so it actually sees the producer's turn. This is the default, robust way to move data forward.
|
|
19
19
|
2. DO NOT emit \${var:NAME} in generated prompts. The scratchpad variable feature (captureVariable + \${var:NAME}) is a valid HAND-AUTHORING tool, but for AUTO-GENERATED flows it is a footgun: a missing/late capture silently bakes an EMPTY string into the reading step's prompt and breaks the run. Do not use \${var:NAME} just to shuttle ordinary text one step forward — use history (rule 1).
|
|
20
|
-
3.
|
|
21
|
-
|
|
22
|
-
{ "key": "critic", "type": "process", "model": "...", "inputMode": "isolated", "isolatedPrompt": "Critique this report:
|
|
23
|
-
|
|
24
|
-
\${res:report}" }
|
|
25
|
-
(edge writer -> critic). Use \${res:NAME}, never \${var:NAME}, in generated flows.
|
|
26
|
-
4. Any \${var:NAME} you emit anyway will be automatically rewritten to history or a run resource (or removed if nothing captures it), so emit history/\${res:...} directly to keep control of the design.
|
|
20
|
+
3. DO NOT emit passive "captureResource" on a process node. Process artifacts require an explicit Resource node connected from the producing process; the model writes the artifact through the supplied write_resource tool. Use that advanced graph-visible protocol only when the artifact itself must be tracked. Ordinary generated flows should use history.
|
|
21
|
+
4. Any \${var:NAME} you emit anyway will be automatically rewritten to history (or removed if nothing captures it).
|
|
27
22
|
|
|
28
23
|
${f}
|
|
29
24
|
|
|
30
25
|
${e}
|
|
31
26
|
|
|
32
|
-
${a}`}function w(a){return a.map(a=>`- [${a.severity}] ${a.message}`).join("\n")}function x(a){let b=[{type:"function",function:{name:"search_mcp_marketplace",description:'Search the public MCP server registry. The registry matches the query against server NAMES only (substring), so use short single terms ("voice", "tts", "browser") and try several. Returns name, description, whether FLUJO can install it, and which env vars/keys it requires.',parameters:{type:"object",properties:{query:{type:"string",description:"Short search term matched against server names."}},required:["query"]}}}];return a&&b.push({type:"function",function:{name:"install_mcp_server",description:"Install an MCP server from the registry (by the exact name returned by search) and connect it. Returns the server name to reference in the spec and the tools it provides — or needsEnv when required keys are missing (then pick an alternative or note it for the user). Installing can take a while (package download).",parameters:{type:"object",properties:{name:{type:"string",description:'Exact registry name from search results, e.g. "ai.keenable/web-search".'}},required:["name"]}}}),b}async function y(a,b,c,d){if("search_mcp_marketplace"===a){let a="string"==typeof b.query?b.query:"";try{return await (0,l.e3)(a)}catch(a){return{error:`Registry search failed: ${a instanceof Error?a.message:String(a)}`}}}if("install_mcp_server"===a){if(!c)return{error:"Installing is not allowed in this generation (allowInstall is off)."};let a="string"==typeof b.name?b.name:"",e=await (0,l.aM)(a,void 0,{resolveOnly:!0}),f=await (0,m.Ej)(),g=(0,n.e5)({caller:"generator",settings:f,registryName:a,allowInstall:c});e.plan&&await (0,m.NB)((0,n.UM)(e.plan,"generator",g,!1));let h=await (0,l.aM)(a);return h.plan&&await (0,m.NB)((0,n.UM)(h.plan,"generator",g,h.installed,h.error)),h.installed&&h.serverName&&(d.contextDirty=!0,d.installedServers.push({name:h.serverName,tools:(h.tools??[]).map(a=>a.name),...h.alreadyExisted?{alreadyExisted:!0}:{},...h.plan?.command?{command:h.plan.command}:{},...h.plan?.args?{args:h.plan.args}:{},...h.plan?.verificationStatus?{verificationStatus:h.plan.verificationStatus}:{}})),h}return{error:`Unknown tool: ${a}`}}async function z(a,b,c,d,e,f,h){let i={};for(let a of e){if("function"!==a.type)continue;let b=a.function.name;i[b]=a=>y(b,a,f,h)}for(let j=0;j<=8;j++){let k=e.length>0&&j<8,{completion:l}=await a.createCompletion({model:b,apiKey:c,messages:d,temperature:0,maxTokens:(0,g.normalizeMaxTokens)(b.maxTokens),...k?{tools:e,localToolExecutors:i}:{}}),m=l.choices?.[0]?.message,n=m?.tool_calls??[];if(0===n.length)return"string"==typeof m?.content?m.content:"";for(let a of(d.push({role:"assistant",content:m?.content??null,tool_calls:n}),n)){if("function"!==a.type)continue;let b={};try{b=JSON.parse(a.function.arguments||"{}")}catch{}u.info(`Generator tool call: ${a.function.name}(${a.function.arguments})`);let c=await y(a.function.name,b,f,h);d.push({role:"tool",tool_call_id:a.id,content:JSON.stringify(c)})}7===j&&d.push({role:"user",content:"Tool budget exhausted. Emit the COMPLETE flow specification now as a single JSON object using what you have."})}return""}function A(a){let b=a.indexOf("{");if(-1===b)return null;let c=0,d=!1,e=!1;for(let f=b;f<a.length;f++){let g=a[f];if(d){e?e=!1:"\\"===g?e=!0:'"'===g&&(d=!1);continue}if('"'===g)d=!0;else if("{"===g)c++;else if("}"===g&&0==--c)try{return JSON.parse(a.slice(b,f+1))}catch{break}}return null}async function B(a){var b;let c="string"==typeof a?.description?a.description.trim():"";if(!c)return{success:!1,error:"A flow description is required",statusCode:400};if(!a?.modelId||"string"!=typeof a.modelId)return{success:!1,error:"A generator model id is required",statusCode:400};let d=!0===a.allowInstall,g=!0===a.allowSubflows,k=g?"number"!=typeof(b=a.maxDepth)||Number.isNaN(b)?2:Math.max(0,Math.min(h.A_,Math.floor(b))):0,l=await e.modelService.getModel(a.modelId);if(!l)return{success:!1,error:`Generator model not found: ${a.modelId}`,statusCode:404};let m=await e.modelService.resolveAndDecryptApiKey(l.ApiKey)||("codex-cli"!==l.adapter||l.ApiKey?.trim()?null:"");if(null===m)return{success:!1,error:"Could not resolve the generator model API key",statusCode:500};let n=await (0,o.jY)(),y=(0,f.getCompletionAdapter)(l),B=x(d),C={installedServers:[],contextDirty:!1},D=Math.min("number"==typeof a.maxRepairs&&a.maxRepairs>=0?a.maxRepairs:1,2),E=1;async function F(a,b){let c,e=[{role:"system",content:v(n.catalog,d,g&&b<k,k)},{role:"user",content:a}];try{c=await z(y,l,m,e,B,d,C)}catch(a){return u.warn("A child subflow generation call failed; leaving the subflow unresolved",a),null}let f=A(c);return f&&"object"==typeof f?f:null}async function G(a,b){if(a&&Array.isArray(a.nodes))for(let c of a.nodes){if(c?.type!=="subflow"||c.flow)continue;if(c.subflowSpec){await G(c.subflowSpec,b+1);continue}let a="string"==typeof c.generateSubflow?c.generateSubflow.trim():"";if(!a)continue;if(b+1>k||E>=h.lk){u.info(`Not expanding generateSubflow (depth ${b+1}, ${E} flows so far): budget/depth reached`);continue}let d=await F(a,b+1);d?(E++,c.subflowSpec=d,delete c.generateSubflow,await G(d,b+1)):delete c.generateSubflow}}let H=[{role:"system",content:v(n.catalog,d,g,k)},{role:"user",content:c}],I=null,J=0;for(let a=0;a<=D;a++){let b;J++,E=1;try{b=await z(y,l,m,H,B,d,C)}catch(a){if(u.error("Generator model call failed",a),I)break;return{success:!1,error:`The generator model call failed: ${a instanceof Error?a.message:String(a)}`,statusCode:502}}let c=A(b);if(!c){if(u.warn(`Attempt ${J}: model output contained no parseable JSON object`),C.contextDirty){try{n=await (0,o.jY)()}catch(a){u.warn("Re-gathering context after install failed; keeping the stale catalog",a)}C.contextDirty=!1}H.push({role:"assistant",content:b},{role:"user",content:"Your reply contained no parseable JSON object. Re-emit the COMPLETE flow specification as a single JSON object and nothing else."});continue}if(g)try{await G(c,0)}catch(a){u.warn("Subflow expansion failed; compiling the root spec as-is",a)}if(C.contextDirty){try{n=await (0,o.jY)()}catch(a){u.warn("Re-gathering context after install failed; validating with the stale catalog",a)}C.contextDirty=!1}let e=[];try{let a=function(a){let b=[];try{!function a(b,c){if(b&&Array.isArray(b.nodes)){for(let d of(!function(a,b){let c=Array.isArray(a?.nodes)?a.nodes.filter(a=>a&&"string"==typeof a.key):[];if(0===c.length)return;let d=Array.isArray(a?.edges)?a.edges:[],e=new Map;for(let a of c)e.set(a.key,new Set);for(let a of d)a&&"string"==typeof a.from&&"string"==typeof a.to&&(e.has(a.to)&&e.get(a.to).add(a.from),a.bidirectional&&e.has(a.from)&&e.get(a.from).add(a.to));let f=a=>{let b=new Set,c=[...e.get(a)??[]];for(;c.length;){let d=c.pop();if(!b.has(d)&&d!==a)for(let a of(b.add(d),e.get(d)??[]))c.push(a)}return b},g=new Set;for(let a of c)"string"==typeof a.parallelFlowsVariable&&a.parallelFlowsVariable.trim()&&g.add(a.parallelFlowsVariable.trim());let h=new Map;for(let a of c){let b="string"==typeof a.captureVariable?a.captureVariable.trim():"";b&&(h.has(b)||h.set(b,[]),h.get(b).push(a))}let i=new Map;for(let a of c)for(let b of function(a){let b=new Set;for(let c of q){let d=a[c];if("string"==typeof d)for(let a of(0,p.T9)(d))b.add(a)}if(Array.isArray(a.spawnBriefs)){for(let c of a.spawnBriefs)if("string"==typeof c)for(let a of(0,p.T9)(c))b.add(a)}return[...b]}(a))i.has(b)||i.set(b,[]),i.get(b).push(a);for(let[a,d]of i){if(g.has(a))continue;let e=h.get(a)??[],i=d.filter(a=>{let b=f(a.key);return e.some(c=>c.key!==a.key&&b.has(c.key))});if(0===i.length){let d=r(a);for(let a of c)s(a,a=>t(a.replace(d,"")));b.push({code:"var-dangling",message:`Removed \${var:${a}} — no earlier step captures it (it would resolve to an empty string at run time).`});continue}
|
|
27
|
+
${a}`}function w(a){return a.map(a=>`- [${a.severity}] ${a.message}`).join("\n")}function x(a){let b=[{type:"function",function:{name:"search_mcp_marketplace",description:'Search the public MCP server registry. The registry matches the query against server NAMES only (substring), so use short single terms ("voice", "tts", "browser") and try several. Returns name, description, whether FLUJO can install it, and which env vars/keys it requires.',parameters:{type:"object",properties:{query:{type:"string",description:"Short search term matched against server names."}},required:["query"]}}}];return a&&b.push({type:"function",function:{name:"install_mcp_server",description:"Install an MCP server from the registry (by the exact name returned by search) and connect it. Returns the server name to reference in the spec and the tools it provides — or needsEnv when required keys are missing (then pick an alternative or note it for the user). Installing can take a while (package download).",parameters:{type:"object",properties:{name:{type:"string",description:'Exact registry name from search results, e.g. "ai.keenable/web-search".'}},required:["name"]}}}),b}async function y(a,b,c,d){if("search_mcp_marketplace"===a){let a="string"==typeof b.query?b.query:"";try{return await (0,l.e3)(a)}catch(a){return{error:`Registry search failed: ${a instanceof Error?a.message:String(a)}`}}}if("install_mcp_server"===a){if(!c)return{error:"Installing is not allowed in this generation (allowInstall is off)."};let a="string"==typeof b.name?b.name:"",e=await (0,l.aM)(a,void 0,{resolveOnly:!0}),f=await (0,m.Ej)(),g=(0,n.e5)({caller:"generator",settings:f,registryName:a,allowInstall:c});e.plan&&await (0,m.NB)((0,n.UM)(e.plan,"generator",g,!1));let h=await (0,l.aM)(a);return h.plan&&await (0,m.NB)((0,n.UM)(h.plan,"generator",g,h.installed,h.error)),h.installed&&h.serverName&&(d.contextDirty=!0,d.installedServers.push({name:h.serverName,tools:(h.tools??[]).map(a=>a.name),...h.alreadyExisted?{alreadyExisted:!0}:{},...h.plan?.command?{command:h.plan.command}:{},...h.plan?.args?{args:h.plan.args}:{},...h.plan?.verificationStatus?{verificationStatus:h.plan.verificationStatus}:{}})),h}return{error:`Unknown tool: ${a}`}}async function z(a,b,c,d,e,f,h){let i={};for(let a of e){if("function"!==a.type)continue;let b=a.function.name;i[b]=a=>y(b,a,f,h)}for(let j=0;j<=8;j++){let k=e.length>0&&j<8,{completion:l}=await a.createCompletion({model:b,apiKey:c,messages:d,temperature:0,maxTokens:(0,g.normalizeMaxTokens)(b.maxTokens),...k?{tools:e,localToolExecutors:i}:{}}),m=l.choices?.[0]?.message,n=m?.tool_calls??[];if(0===n.length)return"string"==typeof m?.content?m.content:"";for(let a of(d.push({role:"assistant",content:m?.content??null,tool_calls:n}),n)){if("function"!==a.type)continue;let b={};try{b=JSON.parse(a.function.arguments||"{}")}catch{}u.info(`Generator tool call: ${a.function.name}(${a.function.arguments})`);let c=await y(a.function.name,b,f,h);d.push({role:"tool",tool_call_id:a.id,content:JSON.stringify(c)})}7===j&&d.push({role:"user",content:"Tool budget exhausted. Emit the COMPLETE flow specification now as a single JSON object using what you have."})}return""}function A(a){let b=a.indexOf("{");if(-1===b)return null;let c=0,d=!1,e=!1;for(let f=b;f<a.length;f++){let g=a[f];if(d){e?e=!1:"\\"===g?e=!0:'"'===g&&(d=!1);continue}if('"'===g)d=!0;else if("{"===g)c++;else if("}"===g&&0==--c)try{return JSON.parse(a.slice(b,f+1))}catch{break}}return null}async function B(a){var b;let c="string"==typeof a?.description?a.description.trim():"";if(!c)return{success:!1,error:"A flow description is required",statusCode:400};if(!a?.modelId||"string"!=typeof a.modelId)return{success:!1,error:"A generator model id is required",statusCode:400};let d=!0===a.allowInstall,g=!0===a.allowSubflows,k=g?"number"!=typeof(b=a.maxDepth)||Number.isNaN(b)?2:Math.max(0,Math.min(h.A_,Math.floor(b))):0,l=await e.modelService.getModel(a.modelId);if(!l)return{success:!1,error:`Generator model not found: ${a.modelId}`,statusCode:404};let m=await e.modelService.resolveAndDecryptApiKey(l.ApiKey)||("codex-cli"!==l.adapter||l.ApiKey?.trim()?null:"");if(null===m)return{success:!1,error:"Could not resolve the generator model API key",statusCode:500};let n=await (0,o.jY)(),y=(0,f.getCompletionAdapter)(l),B=x(d),C={installedServers:[],contextDirty:!1},D=Math.min("number"==typeof a.maxRepairs&&a.maxRepairs>=0?a.maxRepairs:1,2),E=1;async function F(a,b){let c,e=[{role:"system",content:v(n.catalog,d,g&&b<k,k)},{role:"user",content:a}];try{c=await z(y,l,m,e,B,d,C)}catch(a){return u.warn("A child subflow generation call failed; leaving the subflow unresolved",a),null}let f=A(c);return f&&"object"==typeof f?f:null}async function G(a,b){if(a&&Array.isArray(a.nodes))for(let c of a.nodes){if(c?.type!=="subflow"||c.flow)continue;if(c.subflowSpec){await G(c.subflowSpec,b+1);continue}let a="string"==typeof c.generateSubflow?c.generateSubflow.trim():"";if(!a)continue;if(b+1>k||E>=h.lk){u.info(`Not expanding generateSubflow (depth ${b+1}, ${E} flows so far): budget/depth reached`);continue}let d=await F(a,b+1);d?(E++,c.subflowSpec=d,delete c.generateSubflow,await G(d,b+1)):delete c.generateSubflow}}let H=[{role:"system",content:v(n.catalog,d,g,k)},{role:"user",content:c}],I=null,J=0;for(let a=0;a<=D;a++){let b;J++,E=1;try{b=await z(y,l,m,H,B,d,C)}catch(a){if(u.error("Generator model call failed",a),I)break;return{success:!1,error:`The generator model call failed: ${a instanceof Error?a.message:String(a)}`,statusCode:502}}let c=A(b);if(!c){if(u.warn(`Attempt ${J}: model output contained no parseable JSON object`),C.contextDirty){try{n=await (0,o.jY)()}catch(a){u.warn("Re-gathering context after install failed; keeping the stale catalog",a)}C.contextDirty=!1}H.push({role:"assistant",content:b},{role:"user",content:"Your reply contained no parseable JSON object. Re-emit the COMPLETE flow specification as a single JSON object and nothing else."});continue}if(g)try{await G(c,0)}catch(a){u.warn("Subflow expansion failed; compiling the root spec as-is",a)}if(C.contextDirty){try{n=await (0,o.jY)()}catch(a){u.warn("Re-gathering context after install failed; validating with the stale catalog",a)}C.contextDirty=!1}let e=[];try{let a=function(a){let b=[];try{!function a(b,c){if(b&&Array.isArray(b.nodes)){for(let d of(!function(a,b){let c=Array.isArray(a?.nodes)?a.nodes.filter(a=>a&&"string"==typeof a.key):[];if(0===c.length)return;let d=Array.isArray(a?.edges)?a.edges:[],e=new Map;for(let a of c)e.set(a.key,new Set);for(let a of d)a&&"string"==typeof a.from&&"string"==typeof a.to&&(e.has(a.to)&&e.get(a.to).add(a.from),a.bidirectional&&e.has(a.from)&&e.get(a.from).add(a.to));let f=a=>{let b=new Set,c=[...e.get(a)??[]];for(;c.length;){let d=c.pop();if(!b.has(d)&&d!==a)for(let a of(b.add(d),e.get(d)??[]))c.push(a)}return b},g=new Set;for(let a of c)"string"==typeof a.parallelFlowsVariable&&a.parallelFlowsVariable.trim()&&g.add(a.parallelFlowsVariable.trim());let h=new Map;for(let a of c){let b="string"==typeof a.captureVariable?a.captureVariable.trim():"";b&&(h.has(b)||h.set(b,[]),h.get(b).push(a))}let i=new Map;for(let a of c)for(let b of function(a){let b=new Set;for(let c of q){let d=a[c];if("string"==typeof d)for(let a of(0,p.T9)(d))b.add(a)}if(Array.isArray(a.spawnBriefs)){for(let c of a.spawnBriefs)if("string"==typeof c)for(let a of(0,p.T9)(c))b.add(a)}return[...b]}(a))i.has(b)||i.set(b,[]),i.get(b).push(a);for(let[a,d]of i){if(g.has(a))continue;let e=h.get(a)??[],i=d.filter(a=>{let b=f(a.key);return e.some(c=>c.key!==a.key&&b.has(c.key))});if(0===i.length){let d=r(a);for(let a of c)s(a,a=>t(a.replace(d,"")));b.push({code:"var-dangling",message:`Removed \${var:${a}} — no earlier step captures it (it would resolve to an empty string at run time).`});continue}let j=r(a);for(let a of c)s(a,a=>t(a.replace(j,"")));for(let a of i)a.inputMode="full-history";for(let b of e)b.captureVariable===a&&delete b.captureVariable;b.push({code:"var-history",message:`Removed scratchpad \${var:${a}} and set the reading step(s) to full-history so the value flows through the conversation instead.`})}}(b,c),b.nodes))if(d&&(d.subflowSpec&&a(d.subflowSpec,c),Array.isArray(d.parallelSubflowSpecs)))for(let b of d.parallelSubflowSpecs)a(b,c)}}(a,b)}catch{}return{spec:a,changes:b}}(c);a.changes.length>0&&(u.info(`Attempt ${J}: scratchpad-var guard rewrote ${a.changes.length} reference(s)`),e=a.changes.map(a=>({severity:"warning",code:a.code,message:a.message})))}catch(a){u.warn("Scratchpad-var guard failed; compiling the spec as-is",a)}let f=c,v=[];try{let a=(0,j.p)(c);a.changes.length>0&&(f=a.spec,v=a.changes,u.info(`Attempt ${J}: auto-repair adjusted the spec (${v.length} change(s))`))}catch(a){u.warn("Auto-repair of the generated spec failed; compiling the spec as-is",a)}let x=v.map(a=>({severity:"warning",code:a.code,message:a.message})),F=(0,h.dM)(f,n.compile,{maxDepth:k,maxFlows:h.lk});if(!F.flow){H.push({role:"assistant",content:b},{role:"user",content:`The specification could not be compiled:
|
|
33
28
|
${w(F.issues)}
|
|
34
29
|
Fix these problems and re-emit the COMPLETE corrected JSON (only the JSON).`});continue}for(let a of F.flows)(0,h.Zn)(a);let K=F.flows.map(a=>({flow:a,validation:(0,i.nC)(a,{models:n.compile.models,servers:n.validatorServers,serverTools:n.compile.serverTools})})),L=(0,o.RB)([...e,...x,...F.issues],{issues:K.flatMap(a=>a.validation.issues),errorCount:0,warningCount:0,isRunnable:!0});if(I={flows:K,rootFlow:F.flow,validation:L},0===L.errorCount)break;u.info(`Attempt ${J}: bundle has ${L.errorCount} error(s)`+(a<D?"; asking the model to repair":"; repair budget exhausted")),a<D&&H.push({role:"assistant",content:b},{role:"user",content:`The flow you specified has these problems:
|
|
35
30
|
${w(L.issues)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=5067,exports.ids=[5067],exports.modules={26961:(a,b,c)=>{c.r(b),c.d(b,{bigint:()=>i,boolean:()=>h,date:()=>j,number:()=>g,string:()=>f});var d=c(89901),e=c(10522);function f(a){return d.K_(e.ZodString,a)}function g(a){return d.qG(e.ZodNumber,a)}function h(a){return d.dN(e.ZodBoolean,a)}function i(a){return d.St(e.ZodBigInt,a)}function j(a){return d.B4(e.ZodDate,a)}},68780:(a,b,c)=>{c.d(b,{$9:()=>bE,Cs:()=>bP,Dn:()=>a1,EV:()=>j,FP:()=>a9,FT:()=>a6,GU:()=>bM,HM:()=>aZ,Iu:()=>i,K1:()=>bn,LW:()=>F,Mg:()=>ah,Nh:()=>bR,O$:()=>aC,O4:()=>d,OI:()=>az,OR:()=>G,PC:()=>h,Ql:()=>ak,R6:()=>aE,Rk:()=>X,Sc:()=>al,Sq:()=>J,TF:()=>a4,TI:()=>bo,UJ:()=>x,WK:()=>aX,WQ:()=>bO,WT:()=>a3,Yu:()=>aO,ZC:()=>Y,_r:()=>ab,a5:()=>ao,a8:()=>N,aE:()=>g,bZ:()=>s,b_:()=>bb,br:()=>a$,cL:()=>aK,cv:()=>aA,eK:()=>V,fH:()=>a7,gH:()=>aq,gW:()=>a2,gd:()=>ap,hh:()=>aG,ig:()=>D,ki:()=>aj,lg:()=>B,n_:()=>bH,oQ:()=>am,rk:()=>U,s:()=>aB,tC:()=>$,u$:()=>aW,u9:()=>bm,ve:()=>aF,vo:()=>z,w9:()=>aV,wR:()=>H,wU:()=>Z,xI:()=>a8,zR:()=>an});var d,e=c(10522),f=c(92139);let g="2025-11-25",h="2025-03-26",i=[g,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],j="io.modelcontextprotocol/related-task",k=e.custom(a=>null!==a&&("object"==typeof a||"function"==typeof a)),l=e.union([e.string(),e.number().int()]),m=e.string();e.looseObject({ttl:e.number().optional(),pollInterval:e.number().optional()});let n=e.object({ttl:e.number().optional()}),o=e.object({taskId:e.string()}),p=e.looseObject({progressToken:l.optional(),[j]:o.optional()}),q=e.object({_meta:p.optional()}),r=q.extend({task:n.optional()}),s=a=>r.safeParse(a).success,t=e.object({method:e.string(),params:q.loose().optional()}),u=e.object({_meta:p.optional()}),v=e.object({method:e.string(),params:u.loose().optional()}),w=e.looseObject({_meta:p.optional()}),x=e.union([e.string(),e.number().int()]),y=e.object({jsonrpc:e.literal("2.0"),id:x,...t.shape}).strict(),z=a=>y.safeParse(a).success,A=e.object({jsonrpc:e.literal("2.0"),...v.shape}).strict(),B=a=>A.safeParse(a).success,C=e.object({jsonrpc:e.literal("2.0"),id:x,result:w}).strict(),D=a=>C.safeParse(a).success;!function(a){a[a.ConnectionClosed=-32e3]="ConnectionClosed",a[a.RequestTimeout=-32001]="RequestTimeout",a[a.ParseError=-32700]="ParseError",a[a.InvalidRequest=-32600]="InvalidRequest",a[a.MethodNotFound=-32601]="MethodNotFound",a[a.InvalidParams=-32602]="InvalidParams",a[a.InternalError=-32603]="InternalError",a[a.UrlElicitationRequired=-32042]="UrlElicitationRequired"}(d||(d={}));let E=e.object({jsonrpc:e.literal("2.0"),id:x.optional(),error:e.object({code:e.number().int(),message:e.string(),data:e.unknown().optional()})}).strict(),F=a=>E.safeParse(a).success,G=e.union([y,A,C,E]);e.union([C,E]);let H=w.strict(),I=u.extend({requestId:x.optional(),reason:e.string().optional()}),J=v.extend({method:e.literal("notifications/cancelled"),params:I}),K=e.object({src:e.string(),mimeType:e.string().optional(),sizes:e.array(e.string()).optional(),theme:e.enum(["light","dark"]).optional()}),L=e.object({icons:e.array(K).optional()}),M=e.object({name:e.string(),title:e.string().optional()}),N=M.extend({...M.shape,...L.shape,version:e.string(),websiteUrl:e.string().optional(),description:e.string().optional()}),O=e.intersection(e.object({applyDefaults:e.boolean().optional()}),e.record(e.string(),e.unknown())),P=e.preprocess(a=>a&&"object"==typeof a&&!Array.isArray(a)&&0===Object.keys(a).length?{form:{}}:a,e.intersection(e.object({form:O.optional(),url:k.optional()}),e.record(e.string(),e.unknown()).optional())),Q=e.looseObject({list:k.optional(),cancel:k.optional(),requests:e.looseObject({sampling:e.looseObject({createMessage:k.optional()}).optional(),elicitation:e.looseObject({create:k.optional()}).optional()}).optional()}),R=e.looseObject({list:k.optional(),cancel:k.optional(),requests:e.looseObject({tools:e.looseObject({call:k.optional()}).optional()}).optional()}),S=e.object({experimental:e.record(e.string(),k).optional(),sampling:e.object({context:k.optional(),tools:k.optional()}).optional(),elicitation:P.optional(),roots:e.object({listChanged:e.boolean().optional()}).optional(),tasks:Q.optional(),extensions:e.record(e.string(),k).optional()}),T=q.extend({protocolVersion:e.string(),capabilities:S,clientInfo:N}),U=t.extend({method:e.literal("initialize"),params:T}),V=a=>U.safeParse(a).success,W=e.object({experimental:e.record(e.string(),k).optional(),logging:k.optional(),completions:k.optional(),prompts:e.object({listChanged:e.boolean().optional()}).optional(),resources:e.object({subscribe:e.boolean().optional(),listChanged:e.boolean().optional()}).optional(),tools:e.object({listChanged:e.boolean().optional()}).optional(),tasks:R.optional(),extensions:e.record(e.string(),k).optional()}),X=w.extend({protocolVersion:e.string(),capabilities:W,serverInfo:N,instructions:e.string().optional()}),Y=v.extend({method:e.literal("notifications/initialized"),params:u.optional()}),Z=a=>Y.safeParse(a).success,$=t.extend({method:e.literal("ping"),params:q.optional()}),_=e.object({progress:e.number(),total:e.optional(e.number()),message:e.optional(e.string())}),aa=e.object({...u.shape,..._.shape,progressToken:l}),ab=v.extend({method:e.literal("notifications/progress"),params:aa}),ac=q.extend({cursor:m.optional()}),ad=t.extend({params:ac.optional()}),ae=w.extend({nextCursor:m.optional()}),af=e.enum(["working","input_required","completed","failed","cancelled"]),ag=e.object({taskId:e.string(),status:af,ttl:e.union([e.number(),e.null()]),createdAt:e.string(),lastUpdatedAt:e.string(),pollInterval:e.optional(e.number()),statusMessage:e.optional(e.string())}),ah=w.extend({task:ag}),ai=u.merge(ag),aj=v.extend({method:e.literal("notifications/tasks/status"),params:ai}),ak=t.extend({method:e.literal("tasks/get"),params:q.extend({taskId:e.string()})}),al=w.merge(ag),am=t.extend({method:e.literal("tasks/result"),params:q.extend({taskId:e.string()})});w.loose();let an=ad.extend({method:e.literal("tasks/list")}),ao=ae.extend({tasks:e.array(ag)}),ap=t.extend({method:e.literal("tasks/cancel"),params:q.extend({taskId:e.string()})}),aq=w.merge(ag),ar=e.object({uri:e.string(),mimeType:e.optional(e.string()),_meta:e.record(e.string(),e.unknown()).optional()}),as=ar.extend({text:e.string()}),at=e.string().refine(a=>{try{return atob(a),!0}catch{return!1}},{message:"Invalid Base64 string"}),au=ar.extend({blob:at}),av=e.enum(["user","assistant"]),aw=e.object({audience:e.array(av).optional(),priority:e.number().min(0).max(1).optional(),lastModified:f.datetime({offset:!0}).optional()}),ax=e.object({...M.shape,...L.shape,uri:e.string(),description:e.optional(e.string()),mimeType:e.optional(e.string()),size:e.optional(e.number()),annotations:aw.optional(),_meta:e.optional(e.looseObject({}))}),ay=e.object({...M.shape,...L.shape,uriTemplate:e.string(),description:e.optional(e.string()),mimeType:e.optional(e.string()),annotations:aw.optional(),_meta:e.optional(e.looseObject({}))}),az=ad.extend({method:e.literal("resources/list")}),aA=ae.extend({resources:e.array(ax)}),aB=ad.extend({method:e.literal("resources/templates/list")}),aC=ae.extend({resourceTemplates:e.array(ay)}),aD=q.extend({uri:e.string()}),aE=t.extend({method:e.literal("resources/read"),params:aD}),aF=w.extend({contents:e.array(e.union([as,au]))}),aG=v.extend({method:e.literal("notifications/resources/list_changed"),params:u.optional()}),aH=t.extend({method:e.literal("resources/subscribe"),params:aD}),aI=t.extend({method:e.literal("resources/unsubscribe"),params:aD}),aJ=u.extend({uri:e.string()}),aK=v.extend({method:e.literal("notifications/resources/updated"),params:aJ}),aL=e.object({name:e.string(),description:e.optional(e.string()),required:e.optional(e.boolean())}),aM=e.object({...M.shape,...L.shape,description:e.optional(e.string()),arguments:e.optional(e.array(aL)),_meta:e.optional(e.looseObject({}))}),aN=ad.extend({method:e.literal("prompts/list")}),aO=ae.extend({prompts:e.array(aM)}),aP=q.extend({name:e.string(),arguments:e.record(e.string(),e.string()).optional()}),aQ=t.extend({method:e.literal("prompts/get"),params:aP}),aR=e.object({type:e.literal("text"),text:e.string(),annotations:aw.optional(),_meta:e.record(e.string(),e.unknown()).optional()}),aS=e.object({type:e.literal("image"),data:at,mimeType:e.string(),annotations:aw.optional(),_meta:e.record(e.string(),e.unknown()).optional()}),aT=e.object({type:e.literal("audio"),data:at,mimeType:e.string(),annotations:aw.optional(),_meta:e.record(e.string(),e.unknown()).optional()}),aU=e.object({type:e.literal("tool_use"),name:e.string(),id:e.string(),input:e.record(e.string(),e.unknown()),_meta:e.record(e.string(),e.unknown()).optional()}),aV=e.object({type:e.literal("resource"),resource:e.union([as,au]),annotations:aw.optional(),_meta:e.record(e.string(),e.unknown()).optional()}),aW=ax.extend({type:e.literal("resource_link")}),aX=e.union([aR,aS,aT,aW,aV]),aY=e.object({role:av,content:aX}),aZ=w.extend({description:e.string().optional(),messages:e.array(aY)}),a$=v.extend({method:e.literal("notifications/prompts/list_changed"),params:u.optional()}),a_=e.object({title:e.string().optional(),readOnlyHint:e.boolean().optional(),destructiveHint:e.boolean().optional(),idempotentHint:e.boolean().optional(),openWorldHint:e.boolean().optional()}),a0=e.object({taskSupport:e.enum(["required","optional","forbidden"]).optional()}),a1=e.object({...M.shape,...L.shape,description:e.string().optional(),inputSchema:e.object({type:e.literal("object"),properties:e.record(e.string(),k).optional(),required:e.array(e.string()).optional()}).catchall(e.unknown()),outputSchema:e.object({type:e.literal("object"),properties:e.record(e.string(),k).optional(),required:e.array(e.string()).optional()}).catchall(e.unknown()).optional(),annotations:a_.optional(),execution:a0.optional(),_meta:e.record(e.string(),e.unknown()).optional()}),a2=ad.extend({method:e.literal("tools/list")}),a3=ae.extend({tools:e.array(a1)}),a4=w.extend({content:e.array(aX).default([]),structuredContent:e.record(e.string(),e.unknown()).optional(),isError:e.boolean().optional()});a4.or(w.extend({toolResult:e.unknown()}));let a5=r.extend({name:e.string(),arguments:e.record(e.string(),e.unknown()).optional()}),a6=t.extend({method:e.literal("tools/call"),params:a5}),a7=v.extend({method:e.literal("notifications/tools/list_changed"),params:u.optional()}),a8=e.object({autoRefresh:e.boolean().default(!0),debounceMs:e.number().int().nonnegative().default(300)}),a9=e.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),ba=q.extend({level:a9}),bb=t.extend({method:e.literal("logging/setLevel"),params:ba}),bc=u.extend({level:a9,logger:e.string().optional(),data:e.unknown()}),bd=v.extend({method:e.literal("notifications/message"),params:bc}),be=e.object({name:e.string().optional()}),bf=e.object({hints:e.array(be).optional(),costPriority:e.number().min(0).max(1).optional(),speedPriority:e.number().min(0).max(1).optional(),intelligencePriority:e.number().min(0).max(1).optional()}),bg=e.object({mode:e.enum(["auto","required","none"]).optional()}),bh=e.object({type:e.literal("tool_result"),toolUseId:e.string().describe("The unique identifier for the corresponding tool call."),content:e.array(aX).default([]),structuredContent:e.object({}).loose().optional(),isError:e.boolean().optional(),_meta:e.record(e.string(),e.unknown()).optional()}),bi=e.discriminatedUnion("type",[aR,aS,aT]),bj=e.discriminatedUnion("type",[aR,aS,aT,aU,bh]),bk=e.object({role:av,content:e.union([bj,e.array(bj)]),_meta:e.record(e.string(),e.unknown()).optional()}),bl=r.extend({messages:e.array(bk),modelPreferences:bf.optional(),systemPrompt:e.string().optional(),includeContext:e.enum(["none","thisServer","allServers"]).optional(),temperature:e.number().optional(),maxTokens:e.number().int(),stopSequences:e.array(e.string()).optional(),metadata:k.optional(),tools:e.array(a1).optional(),toolChoice:bg.optional()}),bm=t.extend({method:e.literal("sampling/createMessage"),params:bl}),bn=w.extend({model:e.string(),stopReason:e.optional(e.enum(["endTurn","stopSequence","maxTokens"]).or(e.string())),role:av,content:bi}),bo=w.extend({model:e.string(),stopReason:e.optional(e.enum(["endTurn","stopSequence","maxTokens","toolUse"]).or(e.string())),role:av,content:e.union([bj,e.array(bj)])}),bp=e.object({type:e.literal("boolean"),title:e.string().optional(),description:e.string().optional(),default:e.boolean().optional()}),bq=e.object({type:e.literal("string"),title:e.string().optional(),description:e.string().optional(),minLength:e.number().optional(),maxLength:e.number().optional(),format:e.enum(["email","uri","date","date-time"]).optional(),default:e.string().optional()}),br=e.object({type:e.enum(["number","integer"]),title:e.string().optional(),description:e.string().optional(),minimum:e.number().optional(),maximum:e.number().optional(),default:e.number().optional()}),bs=e.object({type:e.literal("string"),title:e.string().optional(),description:e.string().optional(),enum:e.array(e.string()),default:e.string().optional()}),bt=e.object({type:e.literal("string"),title:e.string().optional(),description:e.string().optional(),oneOf:e.array(e.object({const:e.string(),title:e.string()})),default:e.string().optional()}),bu=e.object({type:e.literal("string"),title:e.string().optional(),description:e.string().optional(),enum:e.array(e.string()),enumNames:e.array(e.string()).optional(),default:e.string().optional()}),bv=e.union([bs,bt]),bw=e.object({type:e.literal("array"),title:e.string().optional(),description:e.string().optional(),minItems:e.number().optional(),maxItems:e.number().optional(),items:e.object({type:e.literal("string"),enum:e.array(e.string())}),default:e.array(e.string()).optional()}),bx=e.object({type:e.literal("array"),title:e.string().optional(),description:e.string().optional(),minItems:e.number().optional(),maxItems:e.number().optional(),items:e.object({anyOf:e.array(e.object({const:e.string(),title:e.string()}))}),default:e.array(e.string()).optional()}),by=e.union([bw,bx]),bz=e.union([bu,bv,by]),bA=e.union([bz,bp,bq,br]),bB=r.extend({mode:e.literal("form").optional(),message:e.string(),requestedSchema:e.object({type:e.literal("object"),properties:e.record(e.string(),bA),required:e.array(e.string()).optional()})}),bC=r.extend({mode:e.literal("url"),message:e.string(),elicitationId:e.string(),url:e.string().url()}),bD=e.union([bB,bC]),bE=t.extend({method:e.literal("elicitation/create"),params:bD}),bF=u.extend({elicitationId:e.string()}),bG=v.extend({method:e.literal("notifications/elicitation/complete"),params:bF}),bH=w.extend({action:e.enum(["accept","decline","cancel"]),content:e.preprocess(a=>null===a?void 0:a,e.record(e.string(),e.union([e.string(),e.number(),e.boolean(),e.array(e.string())])).optional())}),bI=e.object({type:e.literal("ref/resource"),uri:e.string()}),bJ=e.object({type:e.literal("ref/prompt"),name:e.string()}),bK=q.extend({ref:e.union([bJ,bI]),argument:e.object({name:e.string(),value:e.string()}),context:e.object({arguments:e.record(e.string(),e.string()).optional()}).optional()}),bL=t.extend({method:e.literal("completion/complete"),params:bK}),bM=w.extend({completion:e.looseObject({values:e.array(e.string()).max(100),total:e.optional(e.number().int()),hasMore:e.optional(e.boolean())})}),bN=e.object({uri:e.string().startsWith("file://"),name:e.string().optional(),_meta:e.record(e.string(),e.unknown()).optional()}),bO=t.extend({method:e.literal("roots/list"),params:q.optional()}),bP=w.extend({roots:e.array(bN)}),bQ=v.extend({method:e.literal("notifications/roots/list_changed"),params:u.optional()});e.union([$,U,bL,bb,aQ,aN,az,aB,aE,aH,aI,a6,a2,ak,am,an,ap]),e.union([J,ab,Y,bQ,aj]),e.union([H,bn,bo,bH,bP,al,ao,ah]),e.union([$,bm,bE,bO,ak,am,an,ap]),e.union([J,ab,bd,aK,aG,a7,a$,aj,bG]),e.union([H,X,bM,aZ,aO,aA,aC,aF,a4,a3,al,ao,ah]);class bR extends Error{constructor(a,b,c){super(`MCP error ${a}: ${b}`),this.code=a,this.data=c,this.name="McpError"}static fromError(a,b,c){return a===d.UrlElicitationRequired&&c&&c.elicitations?new bS(c.elicitations,b):new bR(a,b,c)}}class bS extends bR{constructor(a,b=`URL elicitation${a.length>1?"s":""} required`){super(d.UrlElicitationRequired,b,{elicitations:a})}get elicitations(){return this.data?.elicitations??[]}}},83578:(a,b,c)=>{c.d(b,{eq:()=>f,kY:()=>d,pJ:()=>g,si:()=>h});var d,e=c(30902);let f={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function g(a){e.$W({customError:a})}function h(){return e.$W().customError}d||(d={})},95067:(a,b,c)=>{c.d(b,{D_:()=>N,j2:()=>R,eH:()=>U});var d=c(96271),e=c(68780),f=c(10522),g=c(83578),h=c(30902),i=c(26961);let j=f.url().superRefine((a,b)=>{if(!URL.canParse(a))return b.addIssue({code:g.eq.custom,message:"URL must be parseable",fatal:!0}),h.tm}).refine(a=>{let b=new URL(a);return"javascript:"!==b.protocol&&"data:"!==b.protocol&&"vbscript:"!==b.protocol},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),k=f.looseObject({resource:f.string().url(),authorization_servers:f.array(j).optional(),jwks_uri:f.string().url().optional(),scopes_supported:f.array(f.string()).optional(),bearer_methods_supported:f.array(f.string()).optional(),resource_signing_alg_values_supported:f.array(f.string()).optional(),resource_name:f.string().optional(),resource_documentation:f.string().optional(),resource_policy_uri:f.string().url().optional(),resource_tos_uri:f.string().url().optional(),tls_client_certificate_bound_access_tokens:f.boolean().optional(),authorization_details_types_supported:f.array(f.string()).optional(),dpop_signing_alg_values_supported:f.array(f.string()).optional(),dpop_bound_access_tokens_required:f.boolean().optional()}),l=f.looseObject({issuer:f.string(),authorization_endpoint:j,token_endpoint:j,registration_endpoint:j.optional(),scopes_supported:f.array(f.string()).optional(),response_types_supported:f.array(f.string()),response_modes_supported:f.array(f.string()).optional(),grant_types_supported:f.array(f.string()).optional(),token_endpoint_auth_methods_supported:f.array(f.string()).optional(),token_endpoint_auth_signing_alg_values_supported:f.array(f.string()).optional(),service_documentation:j.optional(),revocation_endpoint:j.optional(),revocation_endpoint_auth_methods_supported:f.array(f.string()).optional(),revocation_endpoint_auth_signing_alg_values_supported:f.array(f.string()).optional(),introspection_endpoint:f.string().optional(),introspection_endpoint_auth_methods_supported:f.array(f.string()).optional(),introspection_endpoint_auth_signing_alg_values_supported:f.array(f.string()).optional(),code_challenge_methods_supported:f.array(f.string()).optional(),client_id_metadata_document_supported:f.boolean().optional()}),m=f.looseObject({issuer:f.string(),authorization_endpoint:j,token_endpoint:j,userinfo_endpoint:j.optional(),jwks_uri:j,registration_endpoint:j.optional(),scopes_supported:f.array(f.string()).optional(),response_types_supported:f.array(f.string()),response_modes_supported:f.array(f.string()).optional(),grant_types_supported:f.array(f.string()).optional(),acr_values_supported:f.array(f.string()).optional(),subject_types_supported:f.array(f.string()),id_token_signing_alg_values_supported:f.array(f.string()),id_token_encryption_alg_values_supported:f.array(f.string()).optional(),id_token_encryption_enc_values_supported:f.array(f.string()).optional(),userinfo_signing_alg_values_supported:f.array(f.string()).optional(),userinfo_encryption_alg_values_supported:f.array(f.string()).optional(),userinfo_encryption_enc_values_supported:f.array(f.string()).optional(),request_object_signing_alg_values_supported:f.array(f.string()).optional(),request_object_encryption_alg_values_supported:f.array(f.string()).optional(),request_object_encryption_enc_values_supported:f.array(f.string()).optional(),token_endpoint_auth_methods_supported:f.array(f.string()).optional(),token_endpoint_auth_signing_alg_values_supported:f.array(f.string()).optional(),display_values_supported:f.array(f.string()).optional(),claim_types_supported:f.array(f.string()).optional(),claims_supported:f.array(f.string()).optional(),service_documentation:f.string().optional(),claims_locales_supported:f.array(f.string()).optional(),ui_locales_supported:f.array(f.string()).optional(),claims_parameter_supported:f.boolean().optional(),request_parameter_supported:f.boolean().optional(),request_uri_parameter_supported:f.boolean().optional(),require_request_uri_registration:f.boolean().optional(),op_policy_uri:j.optional(),op_tos_uri:j.optional(),client_id_metadata_document_supported:f.boolean().optional()}),n=f.object({...m.shape,...l.pick({code_challenge_methods_supported:!0}).shape}),o=f.object({access_token:f.string(),id_token:f.string().optional(),token_type:f.string(),expires_in:i.number().optional(),scope:f.string().optional(),refresh_token:f.string().optional()}).strip(),p=f.object({error:f.string(),error_description:f.string().optional(),error_uri:f.string().optional()}),q=j.optional().or(f.literal("").transform(()=>void 0)),r=f.object({redirect_uris:f.array(j),token_endpoint_auth_method:f.string().optional(),grant_types:f.array(f.string()).optional(),response_types:f.array(f.string()).optional(),client_name:f.string().optional(),client_uri:j.optional(),logo_uri:q,scope:f.string().optional(),contacts:f.array(f.string()).optional(),tos_uri:q,policy_uri:f.string().optional(),jwks_uri:j.optional(),jwks:f.any().optional(),software_id:f.string().optional(),software_version:f.string().optional(),software_statement:f.string().optional()}).strip(),s=f.object({client_id:f.string(),client_secret:f.string().optional(),client_id_issued_at:f.number().optional(),client_secret_expires_at:f.number().optional()}).strip(),t=r.merge(s);f.object({error:f.string(),error_description:f.string().optional()}).strip(),f.object({token:f.string(),token_type_hint:f.string().optional()}).strip();class u extends Error{constructor(a,b){super(a),this.errorUri=b,this.name=this.constructor.name}toResponseObject(){let a={error:this.errorCode,error_description:this.message};return this.errorUri&&(a.error_uri=this.errorUri),a}get errorCode(){return this.constructor.errorCode}}class v extends u{}v.errorCode="invalid_request";class w extends u{}w.errorCode="invalid_client";class x extends u{}x.errorCode="invalid_grant";class y extends u{}y.errorCode="unauthorized_client";class z extends u{}z.errorCode="unsupported_grant_type";class A extends u{}A.errorCode="invalid_scope";class B extends u{}B.errorCode="access_denied";class C extends u{}C.errorCode="server_error";class D extends u{}D.errorCode="temporarily_unavailable";class E extends u{}E.errorCode="unsupported_response_type";class F extends u{}F.errorCode="unsupported_token_type";class G extends u{}G.errorCode="invalid_token";class H extends u{}H.errorCode="method_not_allowed";class I extends u{}I.errorCode="too_many_requests";class J extends u{}J.errorCode="invalid_client_metadata";class K extends u{}K.errorCode="insufficient_scope";class L extends u{}L.errorCode="invalid_target";let M={[v.errorCode]:v,[w.errorCode]:w,[x.errorCode]:x,[y.errorCode]:y,[z.errorCode]:z,[A.errorCode]:A,[B.errorCode]:B,[C.errorCode]:C,[D.errorCode]:D,[E.errorCode]:E,[F.errorCode]:F,[G.errorCode]:G,[H.errorCode]:H,[I.errorCode]:I,[J.errorCode]:J,[K.errorCode]:K,[L.errorCode]:L};class N extends Error{constructor(a){super(a??"Unauthorized")}}let O="code",P="S256";async function Q(a){let b=a instanceof Response?a.status:void 0,c=a instanceof Response?await a.text():a;try{let{error:a,error_description:b,error_uri:d}=p.parse(JSON.parse(c));return new(M[a]||C)(b||"",d)}catch(a){return new C(`${b?`HTTP ${b}: `:""}Invalid OAuth error response: ${a}. Raw body: ${c}`)}}async function R(a,b){try{return await S(a,b)}catch(c){if(c instanceof w||c instanceof y)return await a.invalidateCredentials?.("all"),await S(a,b);if(c instanceof x)return await a.invalidateCredentials?.("tokens"),await S(a,b);throw c}}async function S(a,{serverUrl:b,authorizationCode:c,scope:d,resourceMetadataUrl:e,fetchFn:f}){let g,h,i,j=await a.discoveryState?.(),k=e;if(!k&&j?.resourceMetadataUrl&&(k=new URL(j.resourceMetadataUrl)),j?.authorizationServerUrl){if(h=j.authorizationServerUrl,g=j.resourceMetadata,i=j.authorizationServerMetadata??await $(h,{fetchFn:f}),!g)try{g=await W(b,{resourceMetadataUrl:k},f)}catch{}(i!==j.authorizationServerMetadata||g!==j.resourceMetadata)&&await a.saveDiscoveryState?.({authorizationServerUrl:String(h),resourceMetadataUrl:k?.toString(),resourceMetadata:g,authorizationServerMetadata:i})}else{let c=await _(b,{resourceMetadataUrl:k,fetchFn:f});h=c.authorizationServerUrl,i=c.authorizationServerMetadata,g=c.resourceMetadata,await a.saveDiscoveryState?.({authorizationServerUrl:String(h),resourceMetadataUrl:k?.toString(),resourceMetadata:g,authorizationServerMetadata:i})}let l=await T(b,a,g),m=d||g?.scopes_supported?.join(" ")||a.clientMetadata.scope,n=await Promise.resolve(a.clientInformation());if(!n){if(void 0!==c)throw Error("Existing OAuth client information is required when exchanging an authorization code");let b=i?.client_id_metadata_document_supported===!0,d=a.clientMetadataUrl;if(d&&!function(a){if(!a)return!1;try{let b=new URL(a);return"https:"===b.protocol&&"/"!==b.pathname}catch{return!1}}(d))throw new J(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${d}`);if(b&&d)n={client_id:d},await a.saveClientInformation?.(n);else{if(!a.saveClientInformation)throw Error("OAuth client information must be saveable for dynamic registration");let b=await ae(h,{metadata:i,clientMetadata:a.clientMetadata,scope:m,fetchFn:f});await a.saveClientInformation(b),n=b}}let o=!a.redirectUrl;if(void 0!==c||o){let b=await ad(a,h,{metadata:i,resource:l,authorizationCode:c,fetchFn:f});return await a.saveTokens(b),"AUTHORIZED"}let p=await a.tokens();if(p?.refresh_token)try{let b=await ac(h,{metadata:i,clientInformation:n,refreshToken:p.refresh_token,resource:l,addClientAuthentication:a.addClientAuthentication,fetchFn:f});return await a.saveTokens(b),"AUTHORIZED"}catch(a){if(!(a instanceof u)||a instanceof C);else throw a}let q=a.state?await a.state():void 0,{authorizationUrl:r,codeVerifier:s}=await aa(h,{metadata:i,clientInformation:n,state:q,redirectUrl:a.redirectUrl,scope:m,resource:l});return await a.saveCodeVerifier(s),await a.redirectToAuthorization(r),"REDIRECT"}async function T(a,b,c){let d=function(a){let b=new URL("string"==typeof a?a:a.href);return b.hash="",b}(a);if(b.validateResourceURL)return await b.validateResourceURL(d,c?.resource);if(c){if(!function({requestedResource:a,configuredResource:b}){let c=new URL("string"==typeof a?a:a.href),d=new URL("string"==typeof b?b:b.href);if(c.origin!==d.origin||c.pathname.length<d.pathname.length)return!1;let e=c.pathname.endsWith("/")?c.pathname:c.pathname+"/",f=d.pathname.endsWith("/")?d.pathname:d.pathname+"/";return e.startsWith(f)}({requestedResource:d,configuredResource:c.resource}))throw Error(`Protected resource ${c.resource} does not match expected ${d} (or origin)`);return new URL(c.resource)}}function U(a){let b,c=a.headers.get("WWW-Authenticate");if(!c)return{};let[d,e]=c.split(" ");if("bearer"!==d.toLowerCase()||!e)return{};let f=V(a,"resource_metadata")||void 0;if(f)try{b=new URL(f)}catch{}return{resourceMetadataUrl:b,scope:V(a,"scope")||void 0,error:V(a,"error")||void 0}}function V(a,b){let c=a.headers.get("WWW-Authenticate");if(!c)return null;let d=RegExp(`${b}=(?:"([^"]+)"|([^\\s,]+))`),e=c.match(d);return e?e[1]||e[2]:null}async function W(a,b,c=fetch){let d=await Z(a,"oauth-protected-resource",c,{protocolVersion:b?.protocolVersion,metadataUrl:b?.resourceMetadataUrl});if(!d||404===d.status)throw await d?.body?.cancel(),Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!d.ok)throw await d.body?.cancel(),Error(`HTTP ${d.status} trying to load well-known OAuth protected resource metadata.`);return k.parse(await d.json())}async function X(a,b,c=fetch){try{return await c(a,{headers:b})}catch(d){if(d instanceof TypeError)if(b)return X(a,void 0,c);else return;throw d}}async function Y(a,b,c=fetch){return await X(a,{"MCP-Protocol-Version":b},c)}async function Z(a,b,c,d){var f,g;let h,i=new URL(a),j=d?.protocolVersion??e.aE;d?.metadataUrl?h=new URL(d.metadataUrl):(h=new URL(function(a,b="",c={}){return b.endsWith("/")&&(b=b.slice(0,-1)),c.prependPathname?`${b}/.well-known/${a}`:`/.well-known/${a}${b}`}(b,i.pathname),d?.metadataServerUrl??i)).search=i.search;let k=await Y(h,j,c);if(!d?.metadataUrl&&(f=k,g=i.pathname,!f||f.status>=400&&f.status<500&&"/"!==g)){let a=new URL(`/.well-known/${b}`,i);k=await Y(a,j,c)}return k}async function $(a,{fetchFn:b=fetch,protocolVersion:c=e.aE}={}){let d={"MCP-Protocol-Version":c,Accept:"application/json"};for(let{url:c,type:e}of function(a){let b="string"==typeof a?new URL(a):a,c="/"!==b.pathname,d=[];if(!c)return d.push({url:new URL("/.well-known/oauth-authorization-server",b.origin),type:"oauth"}),d.push({url:new URL("/.well-known/openid-configuration",b.origin),type:"oidc"}),d;let e=b.pathname;return e.endsWith("/")&&(e=e.slice(0,-1)),d.push({url:new URL(`/.well-known/oauth-authorization-server${e}`,b.origin),type:"oauth"}),d.push({url:new URL(`/.well-known/openid-configuration${e}`,b.origin),type:"oidc"}),d.push({url:new URL(`${e}/.well-known/openid-configuration`,b.origin),type:"oidc"}),d}(a)){let a=await X(c,d,b);if(a){if(!a.ok){if(await a.body?.cancel(),a.status>=400&&a.status<500)continue;throw Error(`HTTP ${a.status} trying to load ${"oauth"===e?"OAuth":"OpenID provider"} metadata from ${c}`)}if("oauth"===e)return l.parse(await a.json());return n.parse(await a.json())}}}async function _(a,b){let c,d;try{(c=await W(a,{resourceMetadataUrl:b?.resourceMetadataUrl},b?.fetchFn)).authorization_servers&&c.authorization_servers.length>0&&(d=c.authorization_servers[0])}catch{}d||(d=String(new URL("/",a)));let e=await $(d,{fetchFn:b?.fetchFn});return{authorizationServerUrl:d,authorizationServerMetadata:e,resourceMetadata:c}}async function aa(a,{metadata:b,clientInformation:c,redirectUrl:e,scope:f,state:g,resource:h}){let i;if(b){if(i=new URL(b.authorization_endpoint),!b.response_types_supported.includes(O))throw Error(`Incompatible auth server: does not support response type ${O}`);if(b.code_challenge_methods_supported&&!b.code_challenge_methods_supported.includes(P))throw Error(`Incompatible auth server: does not support code challenge method ${P}`)}else i=new URL("/authorize",a);let j=await (0,d.Ay)(),k=j.code_verifier,l=j.code_challenge;return i.searchParams.set("response_type",O),i.searchParams.set("client_id",c.client_id),i.searchParams.set("code_challenge",l),i.searchParams.set("code_challenge_method",P),i.searchParams.set("redirect_uri",String(e)),g&&i.searchParams.set("state",g),f&&i.searchParams.set("scope",f),f?.includes("offline_access")&&i.searchParams.append("prompt","consent"),h&&i.searchParams.set("resource",h.href),{authorizationUrl:i,codeVerifier:k}}async function ab(a,{metadata:b,tokenRequestParams:c,clientInformation:d,addClientAuthentication:e,resource:f,fetchFn:g}){let h=b?.token_endpoint?new URL(b.token_endpoint):new URL("/token",a),i=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"});f&&c.set("resource",f.href),e?await e(i,c,h,b):d&&function(a,b,c,d){let{client_id:e,client_secret:f}=b;switch(a){case"client_secret_basic":var g,h,i,j,k=e,l=f,m=c;if(!l)throw Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${k}:${l}`);m.set("Authorization",`Basic ${n}`);return;case"client_secret_post":g=e,h=f,(i=d).set("client_id",g),h&&i.set("client_secret",h);return;case"none":j=e,d.set("client_id",j);return;default:throw Error(`Unsupported client authentication method: ${a}`)}}(function(a,b){let c=void 0!==a.client_secret;return"token_endpoint_auth_method"in a&&a.token_endpoint_auth_method&&["client_secret_basic","client_secret_post","none"].includes(a.token_endpoint_auth_method)&&(0===b.length||b.includes(a.token_endpoint_auth_method))?a.token_endpoint_auth_method:0===b.length?c?"client_secret_basic":"none":c&&b.includes("client_secret_basic")?"client_secret_basic":c&&b.includes("client_secret_post")?"client_secret_post":b.includes("none")?"none":c?"client_secret_post":"none"}(d,b?.token_endpoint_auth_methods_supported??[]),d,i,c);let j=await (g??fetch)(h,{method:"POST",headers:i,body:c});if(!j.ok)throw await Q(j);return o.parse(await j.json())}async function ac(a,{metadata:b,clientInformation:c,refreshToken:d,resource:e,addClientAuthentication:f,fetchFn:g}){let h=new URLSearchParams({grant_type:"refresh_token",refresh_token:d});return{refresh_token:d,...await ab(a,{metadata:b,tokenRequestParams:h,clientInformation:c,addClientAuthentication:f,resource:e,fetchFn:g})}}async function ad(a,b,{metadata:c,resource:d,authorizationCode:e,fetchFn:f}={}){let g,h=a.clientMetadata.scope;if(a.prepareTokenRequest&&(g=await a.prepareTokenRequest(h)),!g){if(!e)throw Error("Either provider.prepareTokenRequest() or authorizationCode is required");if(!a.redirectUrl)throw Error("redirectUrl is required for authorization_code flow");g=new URLSearchParams({grant_type:"authorization_code",code:e,code_verifier:await a.codeVerifier(),redirect_uri:String(a.redirectUrl)})}return ab(b,{metadata:c,tokenRequestParams:g,clientInformation:await a.clientInformation()??void 0,addClientAuthentication:a.addClientAuthentication,resource:d,fetchFn:f})}async function ae(a,{metadata:b,clientMetadata:c,scope:d,fetchFn:e}){let f;if(b){if(!b.registration_endpoint)throw Error("Incompatible auth server: does not support dynamic client registration");f=new URL(b.registration_endpoint)}else f=new URL("/register",a);let g=await (e??fetch)(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...c,...void 0!==d?{scope:d}:{}})});if(!g.ok)throw await Q(g);return t.parse(await g.json())}},96271:(a,b,c)=>{let d;async function e(a){return(await d).getRandomValues(new Uint8Array(a))}async function f(a){let b="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",c="",d=await e(a);for(let e=0;e<a;e++){let a=d[e]%b.length;c+=b[a]}return c}async function g(a){return await f(a)}async function h(a){return btoa(String.fromCharCode(...new Uint8Array(await (await d).subtle.digest("SHA-256",new TextEncoder().encode(a))))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function i(a){if(a||(a=43),a<43||a>128)throw`Expected a length between 43 and 128. Received ${a}.`;let b=await g(a),c=await h(b);return{code_verifier:b,code_challenge:c}}c.d(b,{Ay:()=>i}),d=globalThis.crypto?.webcrypto??globalThis.crypto??Promise.resolve().then(c.t.bind(c,77598,19)).then(a=>a.webcrypto)}};
|
|
1
|
+
"use strict";exports.id=5067,exports.ids=[5067],exports.modules={26961:(a,b,c)=>{c.d(b,{ai:()=>f});var d=c(89901),e=c(10522);function f(a){return d.qG(e.rS,a)}},68780:(a,b,c)=>{c.d(b,{$9:()=>bE,Cs:()=>bP,EV:()=>j,FP:()=>a9,FT:()=>a6,GU:()=>bM,HM:()=>aZ,Iu:()=>i,K1:()=>bn,LW:()=>F,Mg:()=>ah,Nh:()=>bR,O$:()=>aC,O4:()=>d,OI:()=>az,OR:()=>G,PC:()=>h,Ql:()=>ak,R6:()=>aE,Rk:()=>X,Sc:()=>al,Sq:()=>J,TF:()=>a4,TI:()=>bo,WQ:()=>bO,WT:()=>a3,Yu:()=>aO,ZC:()=>Y,_r:()=>ab,a5:()=>ao,aE:()=>g,bZ:()=>s,b_:()=>bb,br:()=>a$,cL:()=>aK,cv:()=>aA,eK:()=>V,fH:()=>a7,gH:()=>aq,gW:()=>a2,gd:()=>ap,hh:()=>aG,ig:()=>D,ki:()=>aj,lg:()=>B,n_:()=>bH,oQ:()=>am,rk:()=>U,s:()=>aB,tC:()=>$,u9:()=>bm,ve:()=>aF,vo:()=>z,wR:()=>H,wU:()=>Z,xI:()=>a8,zR:()=>an});var d,e=c(10522),f=c(92139);let g="2025-11-25",h="2025-03-26",i=[g,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],j="io.modelcontextprotocol/related-task",k=e.Ie(a=>null!==a&&("object"==typeof a||"function"==typeof a)),l=e.KC([e.Yj(),e.ai().int()]),m=e.Yj();e._H({ttl:e.ai().optional(),pollInterval:e.ai().optional()});let n=e.Ik({ttl:e.ai().optional()}),o=e.Ik({taskId:e.Yj()}),p=e._H({progressToken:l.optional(),[j]:o.optional()}),q=e.Ik({_meta:p.optional()}),r=q.extend({task:n.optional()}),s=a=>r.safeParse(a).success,t=e.Ik({method:e.Yj(),params:q.loose().optional()}),u=e.Ik({_meta:p.optional()}),v=e.Ik({method:e.Yj(),params:u.loose().optional()}),w=e._H({_meta:p.optional()}),x=e.KC([e.Yj(),e.ai().int()]),y=e.Ik({jsonrpc:e.eu("2.0"),id:x,...t.shape}).strict(),z=a=>y.safeParse(a).success,A=e.Ik({jsonrpc:e.eu("2.0"),...v.shape}).strict(),B=a=>A.safeParse(a).success,C=e.Ik({jsonrpc:e.eu("2.0"),id:x,result:w}).strict(),D=a=>C.safeParse(a).success;!function(a){a[a.ConnectionClosed=-32e3]="ConnectionClosed",a[a.RequestTimeout=-32001]="RequestTimeout",a[a.ParseError=-32700]="ParseError",a[a.InvalidRequest=-32600]="InvalidRequest",a[a.MethodNotFound=-32601]="MethodNotFound",a[a.InvalidParams=-32602]="InvalidParams",a[a.InternalError=-32603]="InternalError",a[a.UrlElicitationRequired=-32042]="UrlElicitationRequired"}(d||(d={}));let E=e.Ik({jsonrpc:e.eu("2.0"),id:x.optional(),error:e.Ik({code:e.ai().int(),message:e.Yj(),data:e.L5().optional()})}).strict(),F=a=>E.safeParse(a).success,G=e.KC([y,A,C,E]);e.KC([C,E]);let H=w.strict(),I=u.extend({requestId:x.optional(),reason:e.Yj().optional()}),J=v.extend({method:e.eu("notifications/cancelled"),params:I}),K=e.Ik({src:e.Yj(),mimeType:e.Yj().optional(),sizes:e.YO(e.Yj()).optional(),theme:e.k5(["light","dark"]).optional()}),L=e.Ik({icons:e.YO(K).optional()}),M=e.Ik({name:e.Yj(),title:e.Yj().optional()}),N=M.extend({...M.shape,...L.shape,version:e.Yj(),websiteUrl:e.Yj().optional(),description:e.Yj().optional()}),O=e.E$(e.Ik({applyDefaults:e.zM().optional()}),e.g1(e.Yj(),e.L5())),P=e.vk(a=>a&&"object"==typeof a&&!Array.isArray(a)&&0===Object.keys(a).length?{form:{}}:a,e.E$(e.Ik({form:O.optional(),url:k.optional()}),e.g1(e.Yj(),e.L5()).optional())),Q=e._H({list:k.optional(),cancel:k.optional(),requests:e._H({sampling:e._H({createMessage:k.optional()}).optional(),elicitation:e._H({create:k.optional()}).optional()}).optional()}),R=e._H({list:k.optional(),cancel:k.optional(),requests:e._H({tools:e._H({call:k.optional()}).optional()}).optional()}),S=e.Ik({experimental:e.g1(e.Yj(),k).optional(),sampling:e.Ik({context:k.optional(),tools:k.optional()}).optional(),elicitation:P.optional(),roots:e.Ik({listChanged:e.zM().optional()}).optional(),tasks:Q.optional(),extensions:e.g1(e.Yj(),k).optional()}),T=q.extend({protocolVersion:e.Yj(),capabilities:S,clientInfo:N}),U=t.extend({method:e.eu("initialize"),params:T}),V=a=>U.safeParse(a).success,W=e.Ik({experimental:e.g1(e.Yj(),k).optional(),logging:k.optional(),completions:k.optional(),prompts:e.Ik({listChanged:e.zM().optional()}).optional(),resources:e.Ik({subscribe:e.zM().optional(),listChanged:e.zM().optional()}).optional(),tools:e.Ik({listChanged:e.zM().optional()}).optional(),tasks:R.optional(),extensions:e.g1(e.Yj(),k).optional()}),X=w.extend({protocolVersion:e.Yj(),capabilities:W,serverInfo:N,instructions:e.Yj().optional()}),Y=v.extend({method:e.eu("notifications/initialized"),params:u.optional()}),Z=a=>Y.safeParse(a).success,$=t.extend({method:e.eu("ping"),params:q.optional()}),_=e.Ik({progress:e.ai(),total:e.lq(e.ai()),message:e.lq(e.Yj())}),aa=e.Ik({...u.shape,..._.shape,progressToken:l}),ab=v.extend({method:e.eu("notifications/progress"),params:aa}),ac=q.extend({cursor:m.optional()}),ad=t.extend({params:ac.optional()}),ae=w.extend({nextCursor:m.optional()}),af=e.k5(["working","input_required","completed","failed","cancelled"]),ag=e.Ik({taskId:e.Yj(),status:af,ttl:e.KC([e.ai(),e.ch()]),createdAt:e.Yj(),lastUpdatedAt:e.Yj(),pollInterval:e.lq(e.ai()),statusMessage:e.lq(e.Yj())}),ah=w.extend({task:ag}),ai=u.merge(ag),aj=v.extend({method:e.eu("notifications/tasks/status"),params:ai}),ak=t.extend({method:e.eu("tasks/get"),params:q.extend({taskId:e.Yj()})}),al=w.merge(ag),am=t.extend({method:e.eu("tasks/result"),params:q.extend({taskId:e.Yj()})});w.loose();let an=ad.extend({method:e.eu("tasks/list")}),ao=ae.extend({tasks:e.YO(ag)}),ap=t.extend({method:e.eu("tasks/cancel"),params:q.extend({taskId:e.Yj()})}),aq=w.merge(ag),ar=e.Ik({uri:e.Yj(),mimeType:e.lq(e.Yj()),_meta:e.g1(e.Yj(),e.L5()).optional()}),as=ar.extend({text:e.Yj()}),at=e.Yj().refine(a=>{try{return atob(a),!0}catch{return!1}},{message:"Invalid Base64 string"}),au=ar.extend({blob:at}),av=e.k5(["user","assistant"]),aw=e.Ik({audience:e.YO(av).optional(),priority:e.ai().min(0).max(1).optional(),lastModified:f.w$({offset:!0}).optional()}),ax=e.Ik({...M.shape,...L.shape,uri:e.Yj(),description:e.lq(e.Yj()),mimeType:e.lq(e.Yj()),size:e.lq(e.ai()),annotations:aw.optional(),_meta:e.lq(e._H({}))}),ay=e.Ik({...M.shape,...L.shape,uriTemplate:e.Yj(),description:e.lq(e.Yj()),mimeType:e.lq(e.Yj()),annotations:aw.optional(),_meta:e.lq(e._H({}))}),az=ad.extend({method:e.eu("resources/list")}),aA=ae.extend({resources:e.YO(ax)}),aB=ad.extend({method:e.eu("resources/templates/list")}),aC=ae.extend({resourceTemplates:e.YO(ay)}),aD=q.extend({uri:e.Yj()}),aE=t.extend({method:e.eu("resources/read"),params:aD}),aF=w.extend({contents:e.YO(e.KC([as,au]))}),aG=v.extend({method:e.eu("notifications/resources/list_changed"),params:u.optional()}),aH=t.extend({method:e.eu("resources/subscribe"),params:aD}),aI=t.extend({method:e.eu("resources/unsubscribe"),params:aD}),aJ=u.extend({uri:e.Yj()}),aK=v.extend({method:e.eu("notifications/resources/updated"),params:aJ}),aL=e.Ik({name:e.Yj(),description:e.lq(e.Yj()),required:e.lq(e.zM())}),aM=e.Ik({...M.shape,...L.shape,description:e.lq(e.Yj()),arguments:e.lq(e.YO(aL)),_meta:e.lq(e._H({}))}),aN=ad.extend({method:e.eu("prompts/list")}),aO=ae.extend({prompts:e.YO(aM)}),aP=q.extend({name:e.Yj(),arguments:e.g1(e.Yj(),e.Yj()).optional()}),aQ=t.extend({method:e.eu("prompts/get"),params:aP}),aR=e.Ik({type:e.eu("text"),text:e.Yj(),annotations:aw.optional(),_meta:e.g1(e.Yj(),e.L5()).optional()}),aS=e.Ik({type:e.eu("image"),data:at,mimeType:e.Yj(),annotations:aw.optional(),_meta:e.g1(e.Yj(),e.L5()).optional()}),aT=e.Ik({type:e.eu("audio"),data:at,mimeType:e.Yj(),annotations:aw.optional(),_meta:e.g1(e.Yj(),e.L5()).optional()}),aU=e.Ik({type:e.eu("tool_use"),name:e.Yj(),id:e.Yj(),input:e.g1(e.Yj(),e.L5()),_meta:e.g1(e.Yj(),e.L5()).optional()}),aV=e.Ik({type:e.eu("resource"),resource:e.KC([as,au]),annotations:aw.optional(),_meta:e.g1(e.Yj(),e.L5()).optional()}),aW=ax.extend({type:e.eu("resource_link")}),aX=e.KC([aR,aS,aT,aW,aV]),aY=e.Ik({role:av,content:aX}),aZ=w.extend({description:e.Yj().optional(),messages:e.YO(aY)}),a$=v.extend({method:e.eu("notifications/prompts/list_changed"),params:u.optional()}),a_=e.Ik({title:e.Yj().optional(),readOnlyHint:e.zM().optional(),destructiveHint:e.zM().optional(),idempotentHint:e.zM().optional(),openWorldHint:e.zM().optional()}),a0=e.Ik({taskSupport:e.k5(["required","optional","forbidden"]).optional()}),a1=e.Ik({...M.shape,...L.shape,description:e.Yj().optional(),inputSchema:e.Ik({type:e.eu("object"),properties:e.g1(e.Yj(),k).optional(),required:e.YO(e.Yj()).optional()}).catchall(e.L5()),outputSchema:e.Ik({type:e.eu("object"),properties:e.g1(e.Yj(),k).optional(),required:e.YO(e.Yj()).optional()}).catchall(e.L5()).optional(),annotations:a_.optional(),execution:a0.optional(),_meta:e.g1(e.Yj(),e.L5()).optional()}),a2=ad.extend({method:e.eu("tools/list")}),a3=ae.extend({tools:e.YO(a1)}),a4=w.extend({content:e.YO(aX).default([]),structuredContent:e.g1(e.Yj(),e.L5()).optional(),isError:e.zM().optional()});a4.or(w.extend({toolResult:e.L5()}));let a5=r.extend({name:e.Yj(),arguments:e.g1(e.Yj(),e.L5()).optional()}),a6=t.extend({method:e.eu("tools/call"),params:a5}),a7=v.extend({method:e.eu("notifications/tools/list_changed"),params:u.optional()}),a8=e.Ik({autoRefresh:e.zM().default(!0),debounceMs:e.ai().int().nonnegative().default(300)}),a9=e.k5(["debug","info","notice","warning","error","critical","alert","emergency"]),ba=q.extend({level:a9}),bb=t.extend({method:e.eu("logging/setLevel"),params:ba}),bc=u.extend({level:a9,logger:e.Yj().optional(),data:e.L5()}),bd=v.extend({method:e.eu("notifications/message"),params:bc}),be=e.Ik({name:e.Yj().optional()}),bf=e.Ik({hints:e.YO(be).optional(),costPriority:e.ai().min(0).max(1).optional(),speedPriority:e.ai().min(0).max(1).optional(),intelligencePriority:e.ai().min(0).max(1).optional()}),bg=e.Ik({mode:e.k5(["auto","required","none"]).optional()}),bh=e.Ik({type:e.eu("tool_result"),toolUseId:e.Yj().describe("The unique identifier for the corresponding tool call."),content:e.YO(aX).default([]),structuredContent:e.Ik({}).loose().optional(),isError:e.zM().optional(),_meta:e.g1(e.Yj(),e.L5()).optional()}),bi=e.gM("type",[aR,aS,aT]),bj=e.gM("type",[aR,aS,aT,aU,bh]),bk=e.Ik({role:av,content:e.KC([bj,e.YO(bj)]),_meta:e.g1(e.Yj(),e.L5()).optional()}),bl=r.extend({messages:e.YO(bk),modelPreferences:bf.optional(),systemPrompt:e.Yj().optional(),includeContext:e.k5(["none","thisServer","allServers"]).optional(),temperature:e.ai().optional(),maxTokens:e.ai().int(),stopSequences:e.YO(e.Yj()).optional(),metadata:k.optional(),tools:e.YO(a1).optional(),toolChoice:bg.optional()}),bm=t.extend({method:e.eu("sampling/createMessage"),params:bl}),bn=w.extend({model:e.Yj(),stopReason:e.lq(e.k5(["endTurn","stopSequence","maxTokens"]).or(e.Yj())),role:av,content:bi}),bo=w.extend({model:e.Yj(),stopReason:e.lq(e.k5(["endTurn","stopSequence","maxTokens","toolUse"]).or(e.Yj())),role:av,content:e.KC([bj,e.YO(bj)])}),bp=e.Ik({type:e.eu("boolean"),title:e.Yj().optional(),description:e.Yj().optional(),default:e.zM().optional()}),bq=e.Ik({type:e.eu("string"),title:e.Yj().optional(),description:e.Yj().optional(),minLength:e.ai().optional(),maxLength:e.ai().optional(),format:e.k5(["email","uri","date","date-time"]).optional(),default:e.Yj().optional()}),br=e.Ik({type:e.k5(["number","integer"]),title:e.Yj().optional(),description:e.Yj().optional(),minimum:e.ai().optional(),maximum:e.ai().optional(),default:e.ai().optional()}),bs=e.Ik({type:e.eu("string"),title:e.Yj().optional(),description:e.Yj().optional(),enum:e.YO(e.Yj()),default:e.Yj().optional()}),bt=e.Ik({type:e.eu("string"),title:e.Yj().optional(),description:e.Yj().optional(),oneOf:e.YO(e.Ik({const:e.Yj(),title:e.Yj()})),default:e.Yj().optional()}),bu=e.Ik({type:e.eu("string"),title:e.Yj().optional(),description:e.Yj().optional(),enum:e.YO(e.Yj()),enumNames:e.YO(e.Yj()).optional(),default:e.Yj().optional()}),bv=e.KC([bs,bt]),bw=e.Ik({type:e.eu("array"),title:e.Yj().optional(),description:e.Yj().optional(),minItems:e.ai().optional(),maxItems:e.ai().optional(),items:e.Ik({type:e.eu("string"),enum:e.YO(e.Yj())}),default:e.YO(e.Yj()).optional()}),bx=e.Ik({type:e.eu("array"),title:e.Yj().optional(),description:e.Yj().optional(),minItems:e.ai().optional(),maxItems:e.ai().optional(),items:e.Ik({anyOf:e.YO(e.Ik({const:e.Yj(),title:e.Yj()}))}),default:e.YO(e.Yj()).optional()}),by=e.KC([bw,bx]),bz=e.KC([bu,bv,by]),bA=e.KC([bz,bp,bq,br]),bB=r.extend({mode:e.eu("form").optional(),message:e.Yj(),requestedSchema:e.Ik({type:e.eu("object"),properties:e.g1(e.Yj(),bA),required:e.YO(e.Yj()).optional()})}),bC=r.extend({mode:e.eu("url"),message:e.Yj(),elicitationId:e.Yj(),url:e.Yj().url()}),bD=e.KC([bB,bC]),bE=t.extend({method:e.eu("elicitation/create"),params:bD}),bF=u.extend({elicitationId:e.Yj()}),bG=v.extend({method:e.eu("notifications/elicitation/complete"),params:bF}),bH=w.extend({action:e.k5(["accept","decline","cancel"]),content:e.vk(a=>null===a?void 0:a,e.g1(e.Yj(),e.KC([e.Yj(),e.ai(),e.zM(),e.YO(e.Yj())])).optional())}),bI=e.Ik({type:e.eu("ref/resource"),uri:e.Yj()}),bJ=e.Ik({type:e.eu("ref/prompt"),name:e.Yj()}),bK=q.extend({ref:e.KC([bJ,bI]),argument:e.Ik({name:e.Yj(),value:e.Yj()}),context:e.Ik({arguments:e.g1(e.Yj(),e.Yj()).optional()}).optional()}),bL=t.extend({method:e.eu("completion/complete"),params:bK}),bM=w.extend({completion:e._H({values:e.YO(e.Yj()).max(100),total:e.lq(e.ai().int()),hasMore:e.lq(e.zM())})}),bN=e.Ik({uri:e.Yj().startsWith("file://"),name:e.Yj().optional(),_meta:e.g1(e.Yj(),e.L5()).optional()}),bO=t.extend({method:e.eu("roots/list"),params:q.optional()}),bP=w.extend({roots:e.YO(bN)}),bQ=v.extend({method:e.eu("notifications/roots/list_changed"),params:u.optional()});e.KC([$,U,bL,bb,aQ,aN,az,aB,aE,aH,aI,a6,a2,ak,am,an,ap]),e.KC([J,ab,Y,bQ,aj]),e.KC([H,bn,bo,bH,bP,al,ao,ah]),e.KC([$,bm,bE,bO,ak,am,an,ap]),e.KC([J,ab,bd,aK,aG,a7,a$,aj,bG]),e.KC([H,X,bM,aZ,aO,aA,aC,aF,a4,a3,al,ao,ah]);class bR extends Error{constructor(a,b,c){super(`MCP error ${a}: ${b}`),this.code=a,this.data=c,this.name="McpError"}static fromError(a,b,c){return a===d.UrlElicitationRequired&&c&&c.elicitations?new bS(c.elicitations,b):new bR(a,b,c)}}class bS extends bR{constructor(a,b=`URL elicitation${a.length>1?"s":""} required`){super(d.UrlElicitationRequired,b,{elicitations:a})}get elicitations(){return this.data?.elicitations??[]}}},83578:(a,b,c)=>{var d;c.d(b,{eq:()=>e});let e={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};d||(d={})},95067:(a,b,c)=>{c.d(b,{D_:()=>N,j2:()=>R,eH:()=>U});var d=c(96271),e=c(68780),f=c(10522),g=c(83578),h=c(30902),i=c(26961);let j=f.OZ().superRefine((a,b)=>{if(!URL.canParse(a))return b.addIssue({code:g.eq.custom,message:"URL must be parseable",fatal:!0}),h.tm}).refine(a=>{let b=new URL(a);return"javascript:"!==b.protocol&&"data:"!==b.protocol&&"vbscript:"!==b.protocol},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),k=f._H({resource:f.Yj().url(),authorization_servers:f.YO(j).optional(),jwks_uri:f.Yj().url().optional(),scopes_supported:f.YO(f.Yj()).optional(),bearer_methods_supported:f.YO(f.Yj()).optional(),resource_signing_alg_values_supported:f.YO(f.Yj()).optional(),resource_name:f.Yj().optional(),resource_documentation:f.Yj().optional(),resource_policy_uri:f.Yj().url().optional(),resource_tos_uri:f.Yj().url().optional(),tls_client_certificate_bound_access_tokens:f.zM().optional(),authorization_details_types_supported:f.YO(f.Yj()).optional(),dpop_signing_alg_values_supported:f.YO(f.Yj()).optional(),dpop_bound_access_tokens_required:f.zM().optional()}),l=f._H({issuer:f.Yj(),authorization_endpoint:j,token_endpoint:j,registration_endpoint:j.optional(),scopes_supported:f.YO(f.Yj()).optional(),response_types_supported:f.YO(f.Yj()),response_modes_supported:f.YO(f.Yj()).optional(),grant_types_supported:f.YO(f.Yj()).optional(),token_endpoint_auth_methods_supported:f.YO(f.Yj()).optional(),token_endpoint_auth_signing_alg_values_supported:f.YO(f.Yj()).optional(),service_documentation:j.optional(),revocation_endpoint:j.optional(),revocation_endpoint_auth_methods_supported:f.YO(f.Yj()).optional(),revocation_endpoint_auth_signing_alg_values_supported:f.YO(f.Yj()).optional(),introspection_endpoint:f.Yj().optional(),introspection_endpoint_auth_methods_supported:f.YO(f.Yj()).optional(),introspection_endpoint_auth_signing_alg_values_supported:f.YO(f.Yj()).optional(),code_challenge_methods_supported:f.YO(f.Yj()).optional(),client_id_metadata_document_supported:f.zM().optional()}),m=f._H({issuer:f.Yj(),authorization_endpoint:j,token_endpoint:j,userinfo_endpoint:j.optional(),jwks_uri:j,registration_endpoint:j.optional(),scopes_supported:f.YO(f.Yj()).optional(),response_types_supported:f.YO(f.Yj()),response_modes_supported:f.YO(f.Yj()).optional(),grant_types_supported:f.YO(f.Yj()).optional(),acr_values_supported:f.YO(f.Yj()).optional(),subject_types_supported:f.YO(f.Yj()),id_token_signing_alg_values_supported:f.YO(f.Yj()),id_token_encryption_alg_values_supported:f.YO(f.Yj()).optional(),id_token_encryption_enc_values_supported:f.YO(f.Yj()).optional(),userinfo_signing_alg_values_supported:f.YO(f.Yj()).optional(),userinfo_encryption_alg_values_supported:f.YO(f.Yj()).optional(),userinfo_encryption_enc_values_supported:f.YO(f.Yj()).optional(),request_object_signing_alg_values_supported:f.YO(f.Yj()).optional(),request_object_encryption_alg_values_supported:f.YO(f.Yj()).optional(),request_object_encryption_enc_values_supported:f.YO(f.Yj()).optional(),token_endpoint_auth_methods_supported:f.YO(f.Yj()).optional(),token_endpoint_auth_signing_alg_values_supported:f.YO(f.Yj()).optional(),display_values_supported:f.YO(f.Yj()).optional(),claim_types_supported:f.YO(f.Yj()).optional(),claims_supported:f.YO(f.Yj()).optional(),service_documentation:f.Yj().optional(),claims_locales_supported:f.YO(f.Yj()).optional(),ui_locales_supported:f.YO(f.Yj()).optional(),claims_parameter_supported:f.zM().optional(),request_parameter_supported:f.zM().optional(),request_uri_parameter_supported:f.zM().optional(),require_request_uri_registration:f.zM().optional(),op_policy_uri:j.optional(),op_tos_uri:j.optional(),client_id_metadata_document_supported:f.zM().optional()}),n=f.Ik({...m.shape,...l.pick({code_challenge_methods_supported:!0}).shape}),o=f.Ik({access_token:f.Yj(),id_token:f.Yj().optional(),token_type:f.Yj(),expires_in:i.ai().optional(),scope:f.Yj().optional(),refresh_token:f.Yj().optional()}).strip(),p=f.Ik({error:f.Yj(),error_description:f.Yj().optional(),error_uri:f.Yj().optional()}),q=j.optional().or(f.eu("").transform(()=>void 0)),r=f.Ik({redirect_uris:f.YO(j),token_endpoint_auth_method:f.Yj().optional(),grant_types:f.YO(f.Yj()).optional(),response_types:f.YO(f.Yj()).optional(),client_name:f.Yj().optional(),client_uri:j.optional(),logo_uri:q,scope:f.Yj().optional(),contacts:f.YO(f.Yj()).optional(),tos_uri:q,policy_uri:f.Yj().optional(),jwks_uri:j.optional(),jwks:f.bz().optional(),software_id:f.Yj().optional(),software_version:f.Yj().optional(),software_statement:f.Yj().optional()}).strip(),s=f.Ik({client_id:f.Yj(),client_secret:f.Yj().optional(),client_id_issued_at:f.ai().optional(),client_secret_expires_at:f.ai().optional()}).strip(),t=r.merge(s);f.Ik({error:f.Yj(),error_description:f.Yj().optional()}).strip(),f.Ik({token:f.Yj(),token_type_hint:f.Yj().optional()}).strip();class u extends Error{constructor(a,b){super(a),this.errorUri=b,this.name=this.constructor.name}toResponseObject(){let a={error:this.errorCode,error_description:this.message};return this.errorUri&&(a.error_uri=this.errorUri),a}get errorCode(){return this.constructor.errorCode}}class v extends u{}v.errorCode="invalid_request";class w extends u{}w.errorCode="invalid_client";class x extends u{}x.errorCode="invalid_grant";class y extends u{}y.errorCode="unauthorized_client";class z extends u{}z.errorCode="unsupported_grant_type";class A extends u{}A.errorCode="invalid_scope";class B extends u{}B.errorCode="access_denied";class C extends u{}C.errorCode="server_error";class D extends u{}D.errorCode="temporarily_unavailable";class E extends u{}E.errorCode="unsupported_response_type";class F extends u{}F.errorCode="unsupported_token_type";class G extends u{}G.errorCode="invalid_token";class H extends u{}H.errorCode="method_not_allowed";class I extends u{}I.errorCode="too_many_requests";class J extends u{}J.errorCode="invalid_client_metadata";class K extends u{}K.errorCode="insufficient_scope";class L extends u{}L.errorCode="invalid_target";let M={[v.errorCode]:v,[w.errorCode]:w,[x.errorCode]:x,[y.errorCode]:y,[z.errorCode]:z,[A.errorCode]:A,[B.errorCode]:B,[C.errorCode]:C,[D.errorCode]:D,[E.errorCode]:E,[F.errorCode]:F,[G.errorCode]:G,[H.errorCode]:H,[I.errorCode]:I,[J.errorCode]:J,[K.errorCode]:K,[L.errorCode]:L};class N extends Error{constructor(a){super(a??"Unauthorized")}}let O="code",P="S256";async function Q(a){let b=a instanceof Response?a.status:void 0,c=a instanceof Response?await a.text():a;try{let{error:a,error_description:b,error_uri:d}=p.parse(JSON.parse(c));return new(M[a]||C)(b||"",d)}catch(a){return new C(`${b?`HTTP ${b}: `:""}Invalid OAuth error response: ${a}. Raw body: ${c}`)}}async function R(a,b){try{return await S(a,b)}catch(c){if(c instanceof w||c instanceof y)return await a.invalidateCredentials?.("all"),await S(a,b);if(c instanceof x)return await a.invalidateCredentials?.("tokens"),await S(a,b);throw c}}async function S(a,{serverUrl:b,authorizationCode:c,scope:d,resourceMetadataUrl:e,fetchFn:f}){let g,h,i,j=await a.discoveryState?.(),k=e;if(!k&&j?.resourceMetadataUrl&&(k=new URL(j.resourceMetadataUrl)),j?.authorizationServerUrl){if(h=j.authorizationServerUrl,g=j.resourceMetadata,i=j.authorizationServerMetadata??await $(h,{fetchFn:f}),!g)try{g=await W(b,{resourceMetadataUrl:k},f)}catch{}(i!==j.authorizationServerMetadata||g!==j.resourceMetadata)&&await a.saveDiscoveryState?.({authorizationServerUrl:String(h),resourceMetadataUrl:k?.toString(),resourceMetadata:g,authorizationServerMetadata:i})}else{let c=await _(b,{resourceMetadataUrl:k,fetchFn:f});h=c.authorizationServerUrl,i=c.authorizationServerMetadata,g=c.resourceMetadata,await a.saveDiscoveryState?.({authorizationServerUrl:String(h),resourceMetadataUrl:k?.toString(),resourceMetadata:g,authorizationServerMetadata:i})}let l=await T(b,a,g),m=d||g?.scopes_supported?.join(" ")||a.clientMetadata.scope,n=await Promise.resolve(a.clientInformation());if(!n){if(void 0!==c)throw Error("Existing OAuth client information is required when exchanging an authorization code");let b=i?.client_id_metadata_document_supported===!0,d=a.clientMetadataUrl;if(d&&!function(a){if(!a)return!1;try{let b=new URL(a);return"https:"===b.protocol&&"/"!==b.pathname}catch{return!1}}(d))throw new J(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${d}`);if(b&&d)n={client_id:d},await a.saveClientInformation?.(n);else{if(!a.saveClientInformation)throw Error("OAuth client information must be saveable for dynamic registration");let b=await ae(h,{metadata:i,clientMetadata:a.clientMetadata,scope:m,fetchFn:f});await a.saveClientInformation(b),n=b}}let o=!a.redirectUrl;if(void 0!==c||o){let b=await ad(a,h,{metadata:i,resource:l,authorizationCode:c,fetchFn:f});return await a.saveTokens(b),"AUTHORIZED"}let p=await a.tokens();if(p?.refresh_token)try{let b=await ac(h,{metadata:i,clientInformation:n,refreshToken:p.refresh_token,resource:l,addClientAuthentication:a.addClientAuthentication,fetchFn:f});return await a.saveTokens(b),"AUTHORIZED"}catch(a){if(!(a instanceof u)||a instanceof C);else throw a}let q=a.state?await a.state():void 0,{authorizationUrl:r,codeVerifier:s}=await aa(h,{metadata:i,clientInformation:n,state:q,redirectUrl:a.redirectUrl,scope:m,resource:l});return await a.saveCodeVerifier(s),await a.redirectToAuthorization(r),"REDIRECT"}async function T(a,b,c){let d=function(a){let b=new URL("string"==typeof a?a:a.href);return b.hash="",b}(a);if(b.validateResourceURL)return await b.validateResourceURL(d,c?.resource);if(c){if(!function({requestedResource:a,configuredResource:b}){let c=new URL("string"==typeof a?a:a.href),d=new URL("string"==typeof b?b:b.href);if(c.origin!==d.origin||c.pathname.length<d.pathname.length)return!1;let e=c.pathname.endsWith("/")?c.pathname:c.pathname+"/",f=d.pathname.endsWith("/")?d.pathname:d.pathname+"/";return e.startsWith(f)}({requestedResource:d,configuredResource:c.resource}))throw Error(`Protected resource ${c.resource} does not match expected ${d} (or origin)`);return new URL(c.resource)}}function U(a){let b,c=a.headers.get("WWW-Authenticate");if(!c)return{};let[d,e]=c.split(" ");if("bearer"!==d.toLowerCase()||!e)return{};let f=V(a,"resource_metadata")||void 0;if(f)try{b=new URL(f)}catch{}return{resourceMetadataUrl:b,scope:V(a,"scope")||void 0,error:V(a,"error")||void 0}}function V(a,b){let c=a.headers.get("WWW-Authenticate");if(!c)return null;let d=RegExp(`${b}=(?:"([^"]+)"|([^\\s,]+))`),e=c.match(d);return e?e[1]||e[2]:null}async function W(a,b,c=fetch){let d=await Z(a,"oauth-protected-resource",c,{protocolVersion:b?.protocolVersion,metadataUrl:b?.resourceMetadataUrl});if(!d||404===d.status)throw await d?.body?.cancel(),Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!d.ok)throw await d.body?.cancel(),Error(`HTTP ${d.status} trying to load well-known OAuth protected resource metadata.`);return k.parse(await d.json())}async function X(a,b,c=fetch){try{return await c(a,{headers:b})}catch(d){if(d instanceof TypeError)if(b)return X(a,void 0,c);else return;throw d}}async function Y(a,b,c=fetch){return await X(a,{"MCP-Protocol-Version":b},c)}async function Z(a,b,c,d){var f,g;let h,i=new URL(a),j=d?.protocolVersion??e.aE;d?.metadataUrl?h=new URL(d.metadataUrl):(h=new URL(function(a,b="",c={}){return b.endsWith("/")&&(b=b.slice(0,-1)),c.prependPathname?`${b}/.well-known/${a}`:`/.well-known/${a}${b}`}(b,i.pathname),d?.metadataServerUrl??i)).search=i.search;let k=await Y(h,j,c);if(!d?.metadataUrl&&(f=k,g=i.pathname,!f||f.status>=400&&f.status<500&&"/"!==g)){let a=new URL(`/.well-known/${b}`,i);k=await Y(a,j,c)}return k}async function $(a,{fetchFn:b=fetch,protocolVersion:c=e.aE}={}){let d={"MCP-Protocol-Version":c,Accept:"application/json"};for(let{url:c,type:e}of function(a){let b="string"==typeof a?new URL(a):a,c="/"!==b.pathname,d=[];if(!c)return d.push({url:new URL("/.well-known/oauth-authorization-server",b.origin),type:"oauth"}),d.push({url:new URL("/.well-known/openid-configuration",b.origin),type:"oidc"}),d;let e=b.pathname;return e.endsWith("/")&&(e=e.slice(0,-1)),d.push({url:new URL(`/.well-known/oauth-authorization-server${e}`,b.origin),type:"oauth"}),d.push({url:new URL(`/.well-known/openid-configuration${e}`,b.origin),type:"oidc"}),d.push({url:new URL(`${e}/.well-known/openid-configuration`,b.origin),type:"oidc"}),d}(a)){let a=await X(c,d,b);if(a){if(!a.ok){if(await a.body?.cancel(),a.status>=400&&a.status<500)continue;throw Error(`HTTP ${a.status} trying to load ${"oauth"===e?"OAuth":"OpenID provider"} metadata from ${c}`)}if("oauth"===e)return l.parse(await a.json());return n.parse(await a.json())}}}async function _(a,b){let c,d;try{(c=await W(a,{resourceMetadataUrl:b?.resourceMetadataUrl},b?.fetchFn)).authorization_servers&&c.authorization_servers.length>0&&(d=c.authorization_servers[0])}catch{}d||(d=String(new URL("/",a)));let e=await $(d,{fetchFn:b?.fetchFn});return{authorizationServerUrl:d,authorizationServerMetadata:e,resourceMetadata:c}}async function aa(a,{metadata:b,clientInformation:c,redirectUrl:e,scope:f,state:g,resource:h}){let i;if(b){if(i=new URL(b.authorization_endpoint),!b.response_types_supported.includes(O))throw Error(`Incompatible auth server: does not support response type ${O}`);if(b.code_challenge_methods_supported&&!b.code_challenge_methods_supported.includes(P))throw Error(`Incompatible auth server: does not support code challenge method ${P}`)}else i=new URL("/authorize",a);let j=await (0,d.Ay)(),k=j.code_verifier,l=j.code_challenge;return i.searchParams.set("response_type",O),i.searchParams.set("client_id",c.client_id),i.searchParams.set("code_challenge",l),i.searchParams.set("code_challenge_method",P),i.searchParams.set("redirect_uri",String(e)),g&&i.searchParams.set("state",g),f&&i.searchParams.set("scope",f),f?.includes("offline_access")&&i.searchParams.append("prompt","consent"),h&&i.searchParams.set("resource",h.href),{authorizationUrl:i,codeVerifier:k}}async function ab(a,{metadata:b,tokenRequestParams:c,clientInformation:d,addClientAuthentication:e,resource:f,fetchFn:g}){let h=b?.token_endpoint?new URL(b.token_endpoint):new URL("/token",a),i=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"});f&&c.set("resource",f.href),e?await e(i,c,h,b):d&&function(a,b,c,d){let{client_id:e,client_secret:f}=b;switch(a){case"client_secret_basic":var g,h,i,j,k=e,l=f,m=c;if(!l)throw Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${k}:${l}`);m.set("Authorization",`Basic ${n}`);return;case"client_secret_post":g=e,h=f,(i=d).set("client_id",g),h&&i.set("client_secret",h);return;case"none":j=e,d.set("client_id",j);return;default:throw Error(`Unsupported client authentication method: ${a}`)}}(function(a,b){let c=void 0!==a.client_secret;return"token_endpoint_auth_method"in a&&a.token_endpoint_auth_method&&["client_secret_basic","client_secret_post","none"].includes(a.token_endpoint_auth_method)&&(0===b.length||b.includes(a.token_endpoint_auth_method))?a.token_endpoint_auth_method:0===b.length?c?"client_secret_basic":"none":c&&b.includes("client_secret_basic")?"client_secret_basic":c&&b.includes("client_secret_post")?"client_secret_post":b.includes("none")?"none":c?"client_secret_post":"none"}(d,b?.token_endpoint_auth_methods_supported??[]),d,i,c);let j=await (g??fetch)(h,{method:"POST",headers:i,body:c});if(!j.ok)throw await Q(j);return o.parse(await j.json())}async function ac(a,{metadata:b,clientInformation:c,refreshToken:d,resource:e,addClientAuthentication:f,fetchFn:g}){let h=new URLSearchParams({grant_type:"refresh_token",refresh_token:d});return{refresh_token:d,...await ab(a,{metadata:b,tokenRequestParams:h,clientInformation:c,addClientAuthentication:f,resource:e,fetchFn:g})}}async function ad(a,b,{metadata:c,resource:d,authorizationCode:e,fetchFn:f}={}){let g,h=a.clientMetadata.scope;if(a.prepareTokenRequest&&(g=await a.prepareTokenRequest(h)),!g){if(!e)throw Error("Either provider.prepareTokenRequest() or authorizationCode is required");if(!a.redirectUrl)throw Error("redirectUrl is required for authorization_code flow");g=new URLSearchParams({grant_type:"authorization_code",code:e,code_verifier:await a.codeVerifier(),redirect_uri:String(a.redirectUrl)})}return ab(b,{metadata:c,tokenRequestParams:g,clientInformation:await a.clientInformation()??void 0,addClientAuthentication:a.addClientAuthentication,resource:d,fetchFn:f})}async function ae(a,{metadata:b,clientMetadata:c,scope:d,fetchFn:e}){let f;if(b){if(!b.registration_endpoint)throw Error("Incompatible auth server: does not support dynamic client registration");f=new URL(b.registration_endpoint)}else f=new URL("/register",a);let g=await (e??fetch)(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...c,...void 0!==d?{scope:d}:{}})});if(!g.ok)throw await Q(g);return t.parse(await g.json())}},96271:(a,b,c)=>{let d;async function e(a){return(await d).getRandomValues(new Uint8Array(a))}async function f(a){let b="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",c="",d=await e(a);for(let e=0;e<a;e++){let a=d[e]%b.length;c+=b[a]}return c}async function g(a){return await f(a)}async function h(a){return btoa(String.fromCharCode(...new Uint8Array(await (await d).subtle.digest("SHA-256",new TextEncoder().encode(a))))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function i(a){if(a||(a=43),a<43||a>128)throw`Expected a length between 43 and 128. Received ${a}.`;let b=await g(a),c=await h(b);return{code_verifier:b,code_challenge:c}}c.d(b,{Ay:()=>i}),d=globalThis.crypto?.webcrypto??globalThis.crypto??Promise.resolve().then(c.t.bind(c,77598,19)).then(a=>a.webcrypto)}};
|