flujo-ai 3.31.0 → 3.34.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 +384 -342
- package/.next/app-path-routes-manifest.json +23 -19
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +24 -24
- package/.next/react-loadable-manifest.json +29 -14
- 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 +28 -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 +5 -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 +23 -19
- 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/3128.js +4 -4
- package/.next/server/chunks/3653.js +2 -0
- package/.next/server/chunks/3717.js +1 -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/4771.js +1 -1
- package/.next/server/chunks/4822.js +1 -0
- package/.next/server/chunks/5067.js +1 -1
- package/.next/server/chunks/519.js +2 -0
- package/.next/server/chunks/5285.js +1 -0
- package/.next/server/chunks/5309.js +78 -0
- package/.next/server/chunks/544.js +28 -27
- 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/6034.js +1 -1
- package/.next/server/chunks/{5708.js → 6041.js} +3 -4
- package/.next/server/chunks/6226.js +1 -1
- package/.next/server/chunks/6747.js +435 -0
- package/.next/server/chunks/6967.js +82 -0
- 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/7519.js +1 -0
- package/.next/server/chunks/7628.js +1 -0
- package/.next/server/chunks/7630.js +11 -0
- package/.next/server/chunks/{3030.js → 7674.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/8284.js +42 -0
- package/.next/server/chunks/8645.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 +29 -0
- package/.next/server/chunks/9724.js +3 -3
- package/.next/server/chunks/9983.js +1 -1
- package/.next/server/functions-config-manifest.json +1 -1
- 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/Zz_Vh59XdtLIPcf-PxCpo/_buildManifest.js +1 -0
- package/.next/static/chunks/1675-773454288de4309d.js +1 -0
- package/.next/static/chunks/2005.4eea65c00d9a29cd.js +1 -0
- package/.next/static/chunks/2318-13ef0d3048e97834.js +1 -0
- package/.next/static/chunks/3429-34fb1a84aed96703.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/{3189-fa8ec6d719d5e72b.js → 4386-e9621d3c94969a68.js} +1 -1
- package/.next/static/chunks/4555-c9070f8c79bccfad.js +39 -0
- package/.next/static/chunks/4919-6c8a48e3cc642349.js +1 -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/7561-2b366ddcbc3cc0ec.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-5aa8ea49197b98b8.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-5294c6ed1173b014.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/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-bc7807593b8b7394.js +1 -0
- package/.next/static/chunks/app/docs/page-3b9ce48854b2147d.js +1 -0
- package/.next/static/chunks/app/executions/page-8296fd69c439ccee.js +1 -0
- package/.next/static/chunks/app/flows/page-87fb466e491fc068.js +1 -0
- package/.next/static/chunks/app/layout-abed1f211e03152f.js +1 -0
- package/.next/static/chunks/app/mcp/page-1648e6fde0c41461.js +1 -0
- 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-a5e2437356b06db8.js +1 -0
- package/.next/static/chunks/app/packages/page-fba5696f33d9cdfb.js +1 -0
- package/.next/static/chunks/app/page-2f9da78a4891731a.js +1 -0
- package/.next/static/chunks/app/settings/page-2fc3a70bfd25c48b.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-d5d737ff6a86674f.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 +58 -18
- package/next.config.mjs +2 -2
- package/package.json +3 -2
- 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/3570.js +0 -372
- package/.next/server/chunks/4366.js +0 -2
- package/.next/server/chunks/4961.js +0 -2
- package/.next/server/chunks/5040.js +0 -53
- 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/8851.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/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/8041-05830e887c133085.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/page-6041156fc67ef361.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-e3d9ffd69d16873a.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/eaxwKaaFHlA1_FLDIyFGi/_buildManifest.js +0 -1
- /package/.next/static/{eaxwKaaFHlA1_FLDIyFGi → Zz_Vh59XdtLIPcf-PxCpo}/_ssgManifest.js +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=4366,exports.ids=[4366],exports.modules={3391:(a,b,c)=>{c.d(b,{A:()=>w});var d=c(21124),e=c(38301),f=c(81637),g=c(37674),h=c(67101),i=c(43312),j=c(44079),k=c(79515),l=c(73520),m=c(95587),n=c(77028),o=c(88745),p=c(61628),q=c(19787),r=c(95803),s=c(17332),t=c(30717),u=c(32720);let v=[{value:"add",label:"A file appears"},{value:"change",label:"A file changes"},{value:"unlink",label:"A file is deleted"}],w=({config:a,onChange:b})=>{let[c,w]=(0,e.useState)(!1);return(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsx)(g.A,{fullWidth:!0,label:"Folder (or file) to watch",value:a.path,onChange:c=>b({...a,path:c.target.value}),placeholder:"e.g. C:\\Users\\me\\Documents\\inbox",margin:"normal",InputProps:{endAdornment:(0,d.jsx)(h.A,{position:"end",children:(0,d.jsx)(i.A,{title:"Browse folders (on the FLUJO machine)",children:(0,d.jsx)(j.A,{edge:"end",onClick:()=>w(!0),children:(0,d.jsx)(t.A,{})})})})}}),(0,d.jsx)(u.A,{open:c,title:"Choose what to watch",selectFiles:!0,initialPath:a.path||void 0,onClose:()=>w(!1),onSelect:c=>b({...a,path:c})}),(0,d.jsx)(g.A,{fullWidth:!0,label:"Only files matching (optional)",value:a.glob||"",onChange:c=>b({...a,glob:c.target.value||void 0}),placeholder:"e.g. *.pdf or reports/**/*.csv",helperText:"Simple patterns: * matches within a folder, ** across folders, ? one character.",margin:"normal"}),(0,d.jsx)(k.default,{variant:"subtitle2",sx:{mt:1},children:"Run when…"}),(0,d.jsx)(l.A,{row:!0,children:v.map(c=>(0,d.jsx)(m.A,{control:(0,d.jsx)(n.A,{checked:a.events.includes(c.value),onChange:d=>((c,d)=>{let e=d?[...a.events,c]:a.events.filter(a=>a!==c);b({...a,events:e})})(c.value,d.target.checked)}),label:c.label},c.value))}),(0,d.jsx)(o.A,{severity:"info",sx:{mt:1},children:"Bursts are batched: many files changing at once produce one run with all changes listed. If this flow writes into the watched folder, it will trigger itself in a loop — point its output somewhere else."}),(0,d.jsxs)(p.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,d.jsx)(q.A,{expandIcon:(0,d.jsx)(s.A,{}),sx:{px:0},children:(0,d.jsx)(k.default,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,d.jsx)(r.A,{sx:{px:0},children:(0,d.jsx)(g.A,{label:"Quiet window (ms)",type:"number",value:a.debounceMs??2e3,onChange:c=>b({...a,debounceMs:Math.max(0,Number(c.target.value)||0)}),helperText:"How long to wait after the last change before running.",inputProps:{min:0,step:500},sx:{width:220}})})]})]})}},21704:(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 15h5.88c.27-.31.67-.5 1.12-.5.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5c-.44 0-.84-.19-1.12-.5H11.9c-.46 2.28-2.48 4-4.9 4-2.76 0-5-2.24-5-5 0-2.42 1.72-4.44 4-4.9v2.07c-1.16.41-2 1.53-2 2.83 0 1.65 1.35 3 3 3s3-1.35 3-3zm2.5-11c1.65 0 3 1.35 3 3h2c0-2.76-2.24-5-5-5s-5 2.24-5 5c0 1.43.6 2.71 1.55 3.62l-2.35 3.9c-.68.14-1.2.75-1.2 1.48 0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5c0-.16-.02-.31-.07-.45l3.38-5.63C10.49 9.61 9.5 8.42 9.5 7c0-1.65 1.35-3 3-3m4.5 9c-.64 0-1.23.2-1.72.54l-3.05-5.07C11.53 8.35 11 7.74 11 7c0-.83.67-1.5 1.5-1.5S14 6.17 14 7c0 .15-.02.29-.06.43l2.19 3.65c.28-.05.57-.08.87-.08 2.76 0 5 2.24 5 5s-2.24 5-5 5c-1.85 0-3.47-1.01-4.33-2.5h2.67c.48.32 1.05.5 1.66.5 1.65 0 3-1.35 3-3s-1.35-3-3-3"}),"Webhook")},34413:(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:"m9.78 11.16-1.42 1.42c-.68-.69-1.34-1.58-1.79-2.94l1.94-.49c.32.89.77 1.5 1.27 2.01M11 6 7 2 3 6h3.02c.02.81.08 1.54.19 2.17l1.94-.49C8.08 7.2 8.03 6.63 8.02 6zm10 0-4-4-4 4h2.99c-.1 3.68-1.28 4.75-2.54 5.88-.5.44-1.01.92-1.45 1.55-.34-.49-.73-.88-1.13-1.24L9.46 13.6c.93.85 1.54 1.54 1.54 3.4v5h2v-5c0-2.02.71-2.66 1.79-3.63 1.38-1.24 3.08-2.78 3.2-7.37z"}),"AltRoute")},62185:(a,b,c)=>{c.d(b,{A:()=>v});var d=c(21124),e=c(38301),f=c(81637),g=c(82605),h=c(50062),i=c(7675),j=c(94367),k=c(37674),l=c(88745),m=c(79515),n=c(95587),o=c(77028),p=c(61628),q=c(19787),r=c(95803),s=c(17332),t=c(63654);let u=a=>String(a).padStart(2,"0"),v=({cron:a,timezone:b,onChange:c,verb:v="Runs",catchUp:w,onCatchUpChange:x})=>{let y=(0,e.useMemo)(()=>(function(a){let b=/^\*\/(\d+) \* \* \* \* \*$/.exec(a);return b?{mode:"seconds",n:Number(b[1]),time:"09:00"}:(b=/^\*\/(\d+) \* \* \* \*$/.exec(a))?{mode:"minutes",n:Number(b[1]),time:"09:00"}:(b=/^0 \*\/(\d+) \* \* \*$/.exec(a))?{mode:"hours",n:Number(b[1]),time:"09:00"}:(b=/^(\d+) (\d+) \* \* \*$/.exec(a))?{mode:"daily",n:1,time:`${u(Number(b[2]))}:${u(Number(b[1]))}`}:(b=/^(\d+) (\d+) \* \* 1-5$/.exec(a))?{mode:"weekdays",n:1,time:`${u(Number(b[2]))}:${u(Number(b[1]))}`}:{mode:"custom",n:15,time:"09:00"}})(a),[]),[z,A]=(0,e.useState)(y.mode),[B,C]=(0,e.useState)(y.n),[D,E]=(0,e.useState)(y.time),[F,G]=(0,e.useState)(a),[H,I]=(0,e.useState)(null),J=function(a,b,c,d){let[e,f]=c.split(":").map(Number);switch(a){case"seconds":return`*/${Math.max(1,Math.min(59,Math.floor(b)||1))} * * * * *`;case"minutes":return`*/${Math.max(1,Math.min(59,Math.floor(b)||1))} * * * *`;case"hours":return`0 */${Math.max(1,Math.min(23,Math.floor(b)||1))} * * *`;case"daily":return`${f||0} ${e||0} * * *`;case"weekdays":return`${f||0} ${e||0} * * 1-5`;default:return d}}(z,B,D,F);return(0,e.useEffect)(()=>{J!==a&&c({cron:J,timezone:b})},[J]),(0,e.useEffect)(()=>{let a=!1,c=setTimeout(()=>{t.P.previewSchedule(J,b).then(b=>{a||I(b)})},300);return()=>{a=!0,clearTimeout(c)}},[J,b]),(0,d.jsxs)(f.default,{children:[(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"center",mt:1},children:[(0,d.jsxs)(g.A,{sx:{minWidth:180},children:[(0,d.jsx)(h.A,{id:"schedule-preset-label",children:v}),(0,d.jsxs)(i.A,{labelId:"schedule-preset-label",label:v,value:z,onChange:a=>A(a.target.value),children:[(0,d.jsx)(j.A,{value:"seconds",children:"Every N seconds"}),(0,d.jsx)(j.A,{value:"minutes",children:"Every N minutes"}),(0,d.jsx)(j.A,{value:"hours",children:"Every N hours"}),(0,d.jsx)(j.A,{value:"daily",children:"Daily at a time"}),(0,d.jsx)(j.A,{value:"weekdays",children:"Weekdays at a time"}),(0,d.jsx)(j.A,{value:"custom",children:"Custom (cron)"})]})]}),("seconds"===z||"minutes"===z||"hours"===z)&&(0,d.jsx)(k.A,{label:"seconds"===z?"Seconds":"minutes"===z?"Minutes":"Hours",type:"number",value:B,onChange:a=>C(Number(a.target.value)),inputProps:{min:1,max:"hours"===z?23:59},sx:{width:120}}),("daily"===z||"weekdays"===z)&&(0,d.jsx)(k.A,{label:"Time",type:"time",value:D,onChange:a=>E(a.target.value),sx:{width:150},InputLabelProps:{shrink:!0}}),"custom"===z&&(0,d.jsx)(k.A,{label:"Cron pattern",value:F,onChange:a=>G(a.target.value),sx:{minWidth:220},placeholder:"*/15 * * * *"})]}),H&&!H.valid&&(0,d.jsx)(l.A,{severity:"error",sx:{mt:2},children:H.error||"This schedule is not valid."}),H&&H.valid&&H.nextRuns.length>0&&(0,d.jsxs)(m.default,{variant:"body2",color:"text.secondary",sx:{mt:2},children:["Next: ",H.nextRuns.map(a=>new Date(a).toLocaleString()).join(" \xb7 ")]}),x&&(0,d.jsx)(n.A,{sx:{mt:1,display:"flex"},control:(0,d.jsx)(o.A,{checked:!0===w,onChange:a=>x(a.target.checked)}),label:"If FLUJO was closed at a scheduled time, run once on startup"}),(0,d.jsxs)(p.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,d.jsx)(q.A,{expandIcon:(0,d.jsx)(s.A,{}),sx:{px:0},children:(0,d.jsx)(m.default,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,d.jsx)(r.A,{sx:{px:0},children:(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,d.jsx)(k.A,{label:"Timezone (optional)",value:b||"",onChange:a=>c({cron:J,timezone:a.target.value||void 0}),placeholder:"e.g. Europe/Berlin",helperText:"IANA timezone name. Empty = this computer's timezone.",sx:{minWidth:260}}),(0,d.jsx)(k.A,{label:"Generated cron pattern",value:J,InputProps:{readOnly:"custom"!==z},onChange:a=>{A("custom"),G(a.target.value)},helperText:"Editing switches to Custom mode.",sx:{minWidth:220}})]})})]})]})}},62350:(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:"M19.3 16.9c.4-.7.7-1.5.7-2.4 0-2.5-2-4.5-4.5-4.5S11 12 11 14.5s2 4.5 4.5 4.5c.9 0 1.7-.3 2.4-.7l3.2 3.2 1.4-1.4zm-3.8.1c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5M12 20v2C6.48 22 2 17.52 2 12S6.48 2 12 2c4.84 0 8.87 3.44 9.8 8h-2.07c-.64-2.46-2.4-4.47-4.73-5.41V5c0 1.1-.9 2-2 2h-2v2c0 .55-.45 1-1 1H8v2h2v3H9l-4.79-4.79C4.08 10.79 4 11.38 4 12c0 4.41 3.59 8 8 8"}),"TravelExplore")},72535:(a,b,c)=>{c.d(b,{A:()=>v});var d=c(21124),e=c(38301),f=c(81637),g=c(79515),h=c(82605),i=c(50062),j=c(7675),k=c(94367),l=c(19427),m=c(37674),n=c(73520),o=c(95587),p=c(77028),q=c(91059),r=c(88745),s=c(63654);function t(a){if(!a||!Array.isArray(a.nodes))return[];let b=[];for(let c of a.nodes){if(c?.data?.type!=="signal")continue;let a=c.data.properties?.topic;"string"==typeof a&&a.trim()&&b.push(a.trim())}return b}let u=(0,c(19815).h)("frontend/components/PlannedExecutions/FlowEventPanel"),v=({config:a,onChange:b,flows:c,currentExecutionId:v})=>{let[w,x]=(0,e.useState)([]),[y,z]=(0,e.useState)(void 0!==a.maxChainDepth||void 0!==a.minIntervalMs),A=a.source?.topic!==void 0?"topic":a.source?.executionId!==void 0?"execution":"flow",B="topic"===A,C=(0,e.useMemo)(()=>(function(a,b=10){let c=new Map;for(let b of a)b&&"string"==typeof b.id&&c.set(b.id,b);let d=new Map,e=(a,b)=>{d.has(a)||d.set(a,[]),d.get(a).push(b)};for(let d of a){if(!d||"string"!=typeof d.id)continue;let a=new Map;for(let b of t(d))a.set(b,(a.get(b)??0)+1);for(let[b,c]of a)e(b,{flowId:d.id,flowName:d.name,signalNodeCount:c,viaSubflow:!1});for(let f of function(a,b,c=10){let d=new Set,e=new Set,f=(a,g)=>{if(e.has(a)||g>c)return;e.add(a);let h=b.get(a);for(let a of t(h))d.add(a);for(let a of function(a){if(!a||!Array.isArray(a.nodes))return[];let b=[];for(let c of a.nodes){if(c?.data?.type!=="subflow")continue;let a=c.data.properties??{};if("string"==typeof a.subflowId&&a.subflowId.trim()&&b.push(a.subflowId.trim()),Array.isArray(a.parallelSubflowIds))for(let c of a.parallelSubflowIds)"string"==typeof c&&c.trim()&&b.push(c.trim())}return Array.from(new Set(b))}(h))f(a,g+1)};return f(a,0),d}(d.id,c,b))a.has(f)||e(f,{flowId:d.id,flowName:d.name,signalNodeCount:0,viaSubflow:!0})}return d})(c),[c]),D=(0,e.useMemo)(()=>{let a=new Map;for(let b of c)b?.id&&a.set(b.id,b.name);return a},[c]),E=(0,e.useMemo)(()=>{let a=new Map;for(let b of w){let c=b.execution;if(c.id===v||c.trigger?.type!=="flow-event")continue;let d=c.trigger.source?.topic;if("string"!=typeof d||!d.trim())continue;let e=d.trim();a.has(e)||a.set(e,[]),a.get(e).push({executionId:c.id,executionName:c.name,flowId:c.flowId,flowName:D.get(c.flowId)})}return a},[w,v,D]),F=(0,e.useMemo)(()=>Array.from(new Set([...C.keys(),...E.keys()])).sort((a,b)=>a.localeCompare(b)),[C,E]),G=a=>{let b=C.get(a);if(!b||0===b.length)return null;let c=Array.from(new Set(b.map(a=>(a.flowName||a.flowId)+(a.viaSubflow?" (via subflow)":""))));return`Emitted in: ${c.join(", ")}`},H=(a.source?.topic??"").trim(),I=!H||C.has(H);(0,e.useEffect)(()=>{let a=!1;return s.P.list().then(b=>{a||x(b.executions||[])}).catch(b=>{u.warn("Failed to load planned executions for source picker",b),a||x([])}),()=>{a=!0}},[]);let J=(c,d)=>{let e=new Set(a.on??[]);d?e.add(c):e.delete(c),b({...a,on:Array.from(e)})};return(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mt:1},children:"React to"}),(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,mt:1},children:[(0,d.jsxs)(h.A,{sx:{minWidth:180},children:[(0,d.jsx)(i.A,{id:"flow-event-source-kind",children:"Source"}),(0,d.jsxs)(j.A,{labelId:"flow-event-source-kind",label:"Source",value:A,onChange:c=>(c=>{b({...a,source:"flow"===c?{flowId:""}:"execution"===c?{executionId:""}:{topic:""}})})(c.target.value),children:[(0,d.jsx)(k.A,{value:"flow",children:"A flow (any run)"}),(0,d.jsx)(k.A,{value:"execution",children:"A planned execution"}),(0,d.jsx)(k.A,{value:"topic",children:"A signal topic"})]})]}),"topic"===A?(0,d.jsx)(h.A,{fullWidth:!0,children:(0,d.jsx)(l.A,{freeSolo:!0,autoHighlight:!0,options:F,value:a.source?.topic??"",inputValue:a.source?.topic??"",onInputChange:(c,d)=>b({...a,source:{topic:d}}),renderOption:(a,b)=>{let c=G(b),h=(a=>{let b=E.get(a);if(!b||0===b.length)return null;let c=Array.from(new Set(b.map(a=>a.flowName||a.flowId)));return`Used by ${b.length} trigger${1===b.length?"":"s"} → starts ${c.join(", ")}`})(b);return(0,e.createElement)(f.default,{component:"li",...a,key:b},(0,d.jsxs)(f.default,{sx:{display:"flex",flexDirection:"column",py:.25},children:[(0,d.jsx)(g.default,{variant:"body2",sx:{fontWeight:600},children:b}),c&&(0,d.jsx)(g.default,{variant:"caption",color:"text.secondary",children:c}),h&&(0,d.jsx)(g.default,{variant:"caption",color:"text.secondary",children:h}),!c&&(0,d.jsx)(g.default,{variant:"caption",color:"warning.main",children:"No flow currently emits this signal"})]}))},renderInput:a=>(0,d.jsx)(m.A,{...a,label:"Signal topic",placeholder:"e.g. review-blocked",helperText:H?I?G(H)??"React when this signal is emitted.":"No flow currently emits this signal — the trigger will stay idle until one does.":"React when a signal node in any flow emits this topic. Suggestions come from your existing flows."})})}):"flow"===A?(0,d.jsxs)(h.A,{fullWidth:!0,children:[(0,d.jsx)(i.A,{id:"flow-event-flow",children:"Flow to watch"}),(0,d.jsxs)(j.A,{labelId:"flow-event-flow",label:"Flow to watch",value:a.source?.flowId??"",onChange:c=>b({...a,source:{flowId:c.target.value}}),displayEmpty:!0,children:[0===c.length&&(0,d.jsx)(k.A,{value:"",disabled:!0,children:"No flows available"}),c.map(a=>(0,d.jsx)(k.A,{value:a.id,children:a.name},a.id))]})]}):(0,d.jsxs)(h.A,{fullWidth:!0,children:[(0,d.jsx)(i.A,{id:"flow-event-execution",children:"Planned execution to watch"}),(0,d.jsxs)(j.A,{labelId:"flow-event-execution",label:"Planned execution to watch",value:a.source?.executionId??"",onChange:c=>b({...a,source:{executionId:c.target.value}}),displayEmpty:!0,children:[0===w.filter(a=>a.execution.id!==v).length&&(0,d.jsx)(k.A,{value:"",disabled:!0,children:"No other planned executions"}),w.filter(a=>a.execution.id!==v).map(a=>(0,d.jsx)(k.A,{value:a.execution.id,children:a.execution.name},a.execution.id))]})]})]}),!B&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mt:2},children:"When it…"}),(0,d.jsxs)(n.A,{row:!0,children:[(0,d.jsx)(o.A,{control:(0,d.jsx)(p.A,{checked:(a.on??[]).includes("completed"),onChange:a=>J("completed",a.target.checked)}),label:"completes"}),(0,d.jsx)(o.A,{control:(0,d.jsx)(p.A,{checked:(a.on??[]).includes("error"),onChange:a=>J("error",a.target.checked)}),label:"errors"})]})]}),(0,d.jsx)(m.A,{fullWidth:!0,label:B?"Only when the payload contains (optional)":"Only when the output contains (optional)",value:a.outputMatch?.contains??"",onChange:c=>{let d=c.target.value,e={...a.outputMatch,contains:d||void 0},f=e.contains||e.regex?e:void 0;b({...a,outputMatch:f})},margin:"normal",placeholder:"e.g. FAILED, or leave empty to react to every matching run"}),(0,d.jsx)(o.A,{sx:{mt:1},control:(0,d.jsx)(p.A,{checked:y,onChange:a=>z(a.target.checked)}),label:"Advanced (loop safety)"}),y&&(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,mt:1},children:[(0,d.jsx)(m.A,{label:"Max chain depth",type:"number",value:a.maxChainDepth??"",onChange:c=>b({...a,maxChainDepth:""===c.target.value?void 0:Number(c.target.value)}),helperText:"Stop after this many hops (default 5)",inputProps:{min:1}}),(0,d.jsx)(m.A,{label:"Cooldown (ms)",type:"number",value:a.minIntervalMs??"",onChange:c=>b({...a,minIntervalMs:""===c.target.value?void 0:Number(c.target.value)}),helperText:"Minimum gap between fires",inputProps:{min:0}})]}),(0,d.jsx)(q.A,{sx:{mt:2}}),(0,d.jsx)(r.A,{severity:"info",sx:{mt:2},children:B?"The signal’s payload is handed to this flow. Emit a signal from a signal node in any flow to fire this one — fire-and-forget. To avoid runaway loops, a chain of fires stops at the max depth above, and the overlap-skip prevents a single execution from re-triggering itself while it’s still running.":"The upstream run’s output is handed to this flow, so it can build on what the other flow produced. To avoid runaway loops, a chain of flow-event fires stops at the max depth above, and the existing overlap-skip prevents a single execution from re-triggering itself while it’s still running."})]})}},72748:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(21124);c(38301);var e=c(81637),f=c(37674),g=c(79515),h=c(88745),i=c(62185);let j=({config:a,onChange:b})=>(0,d.jsxs)(e.default,{sx:{mt:1},children:[(0,d.jsx)(f.A,{fullWidth:!0,label:"URL to watch",value:a.url,onChange:c=>b({...a,url:c.target.value}),placeholder:"https://example.com/status or an API/feed URL",margin:"normal",type:"url"}),(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,d.jsx)(i.A,{verb:"Check",cron:a.cron,timezone:a.timezone,onChange:({cron:c,timezone:d})=>b({...a,cron:c,timezone:d})}),(0,d.jsx)(h.A,{severity:"info",sx:{mt:1},children:"The first check only takes a snapshot; the flow runs when a later check finds different content, and the fetched content is handed to the flow. Pages that embed ever-changing bits (timestamps, session tokens) look “changed” on every check — plain APIs, feeds, and raw files work best."})]})},87113:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(21124);c(38301);var e=c(81637),f=c(79515),g=c(8165);let h=({selected:a,icon:b,title:c,description:h,onClick:i})=>(0,d.jsxs)(e.default,{role:"radio","aria-checked":a,tabIndex:0,onClick:i,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),i())},sx:{flex:1,minWidth:200,position:"relative",p:2,borderRadius:2,border:2,borderColor:a?"primary.main":"divider",bgcolor:a?"action.selected":"background.paper",cursor:"pointer",transition:"border-color 120ms, background-color 120ms","&:hover":{borderColor:a?"primary.main":"text.disabled"},outline:"none","&:focus-visible":{boxShadow:a=>`0 0 0 3px ${a.palette.primary.light}`}},children:[a&&(0,d.jsx)(g.A,{color:"primary",fontSize:"small",sx:{position:"absolute",top:8,right:8}}),(0,d.jsxs)(e.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5,color:a?"primary.main":"text.secondary"},children:[b,(0,d.jsx)(f.default,{variant:"subtitle1",sx:{fontWeight:600,color:"text.primary"},children:c})]}),(0,d.jsx)(f.default,{variant:"body2",color:"text.secondary",children:h})]})},88839:(a,b,c)=>{c.d(b,{A:()=>D});var d=c(21124),e=c(38301),f=c(81637),g=c(79515),h=c(68730),i=c(82605),j=c(50062),k=c(7675),l=c(94367),m=c(37674),n=c(8521),o=c(88745),p=c(11801);let q=(0,p.A)((0,d.jsx)("path",{d:"M18 23H4c-1.1 0-2-.9-2-2V7h2v14h14zM15 1H8c-1.1 0-1.99.9-1.99 2L6 17c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V7zm1.5 14h-6v-2h6zm0-6h-2v2h-2V9h-2V7h2V5h2v2h2z"}),"Difference"),r=(0,p.A)([(0,d.jsx)("path",{d:"M13 8.57c-.79 0-1.43.64-1.43 1.43s.64 1.43 1.43 1.43 1.43-.64 1.43-1.43-.64-1.43-1.43-1.43"},"0"),(0,d.jsx)("path",{d:"M13 3C9.25 3 6.2 5.94 6.02 9.64L4.1 12.2c-.25.33-.01.8.4.8H6v3c0 1.1.9 2 2 2h1v3h7v-4.68c2.36-1.12 4-3.53 4-6.32 0-3.87-3.13-7-7-7m3 7c0 .13-.01.26-.02.39l.83.66c.08.06.1.16.05.25l-.8 1.39c-.05.09-.16.12-.24.09l-.99-.4c-.21.16-.43.29-.67.39L14 13.83c-.01.1-.1.17-.2.17h-1.6c-.1 0-.18-.07-.2-.17l-.15-1.06c-.25-.1-.47-.23-.68-.39l-.99.4c-.09.03-.2 0-.25-.09l-.8-1.39c-.05-.08-.03-.19.05-.25l.84-.66c-.01-.13-.02-.26-.02-.39s.02-.27.04-.39l-.85-.66c-.08-.06-.1-.16-.05-.26l.8-1.38c.05-.09.15-.12.24-.09l1 .4c.2-.15.43-.29.67-.39L12 6.17c.02-.1.1-.17.2-.17h1.6c.1 0 .18.07.2.17l.15 1.06c.24.1.46.23.67.39l1-.4c.09-.03.2 0 .24.09l.8 1.38c.05.09.03.2-.05.26l-.85.66c.03.12.04.25.04.39"},"1")],"Psychology");var s=c(28055),t=c(83434),u=c(63281),v=c(19815),w=c(87113),x=c(62185),y=c(31411),z=c(21570),A=c(35070),B=c(45231);let C=(0,v.h)("frontend/components/PlannedExecutions/WatchToolPanel"),D=({config:a,onChange:b})=>{let[c,p]=(0,e.useState)([]),[v,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)([]),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(Object.keys(a.args||{}).length>0?JSON.stringify(a.args,null,2):""),[K,L]=(0,e.useState)(null),[M,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)(null),[Q,R]=(0,e.useState)(null),[S,T]=(0,e.useState)([]),[U,V]=(0,e.useState)([]);(0,e.useEffect)(()=>{let a=!1;return s.S.loadServerConfigs().then(b=>{a||(Array.isArray(b)?p(b.filter(a=>!a.disabled)):(C.warn("Failed to load MCP servers for watch-tool panel",b),p([])))}),()=>{a=!0}},[]),(0,e.useEffect)(()=>{if(!a.serverName)return void F([]);let b=!1;return H(!0),s.S.listServerTools(a.serverName).then(({tools:a})=>{b||F(a||[])}).finally(()=>{b||H(!1)}),()=>{b=!0}},[a.serverName]),(0,e.useEffect)(()=>{let a=!1;return t.N.loadModels().then(b=>{a||T(Array.isArray(b)?b:[])}).catch(()=>{a||T([])}),u.g.loadFlows().then(b=>{a||V(b||[])}).catch(()=>{a||V([])}),()=>{a=!0}},[]);let W=async()=>{N(!0),P(null),R(null);try{let b=await s.S.callTool(a.serverName,a.toolName,a.args||{});if(b?.error)R("string"==typeof b.error?b.error:"Tool call failed");else{let a=b?.data??b,c=JSON.stringify(a,null,2)??"";P(c.length>6e3?`${c.slice(0,6e3)}
|
|
2
|
-
… (truncated)`:c)}}catch(a){R(a instanceof Error?a.message:"Tool call failed")}finally{N(!1)}},X=a.evaluate,Y=E.find(b=>b.name===a.toolName),Z=(0,B.E)("mcp",c),$=c=>({key:c.name,content:(c=>(0,d.jsx)(A.A,{name:c.name,status:c.status||"disconnected",path:c.rootPath||"",enabled:!c.disabled,transport:c.transport||"stdio",pickerMode:!0,selected:a.serverName===c.name,onClick:()=>{var d;return d=c.name,void(b({...a,serverName:d,toolName:""}),D(!1))}}))(c)}),_=Z.items.map($),aa=Z.groups?Z.groups.map(a=>({...a,items:a.items.map($)})):null;return(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,d.jsxs)(f.default,{sx:{minWidth:220,flex:1,mt:2,mb:1},children:[(0,d.jsx)(g.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Server"}),(0,d.jsx)(h.A,{variant:"outlined",fullWidth:!0,onClick:()=>D(!0),sx:{justifyContent:"flex-start",textTransform:"none"},children:a.serverName?`${a.serverName} — change`:"Choose an MCP server…"}),(0,d.jsx)(z.A,{open:v,onClose:()=>D(!1),title:"Choose an MCP server",description:"Pick the server whose tool you want to watch.",emptyMessage:"No MCP servers configured.",searchable:!0,searchPlaceholder:"Search servers…",searchTerm:Z.searchTerm,onSearchChange:Z.setSearchTerm,columns:{xs:12,sm:6},items:_,groups:aa,collapsedKeys:Z.collapsedKeys,onToggleGroup:Z.toggleGroup})]}),(0,d.jsxs)(i.A,{sx:{minWidth:220,flex:1},margin:"normal",disabled:!a.serverName,children:[(0,d.jsx)(j.A,{id:"watch-tool-label",children:"Tool"}),(0,d.jsxs)(k.A,{labelId:"watch-tool-label",label:"Tool",value:E.some(b=>b.name===a.toolName)?a.toolName:"",onChange:c=>b({...a,toolName:c.target.value,args:{}}),children:[0===E.length&&(0,d.jsx)(l.A,{value:"",disabled:!0,children:G?"Loading tools…":"Pick a server first"}),E.map(a=>(0,d.jsx)(l.A,{value:a.name,children:a.name},a.name))]})]})]}),(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,d.jsx)(x.A,{verb:"Check",cron:a.cron??function(a){let b=Math.max(5,Math.round((a??6e4)/1e3));if(b<60)return`*/${b} * * * * *`;let c=Math.max(1,Math.round(b/60));if(c<60)return`*/${c} * * * *`;let d=Math.max(1,Math.min(23,Math.round(c/60)));return`0 */${d} * * *`}(a.intervalMs),timezone:a.timezone,onChange:({cron:c,timezone:d})=>b({...a,cron:c,timezone:d})}),Y?(0,d.jsxs)(f.default,{sx:{my:1.5},children:[(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mb:1.5},children:"Tool parameters — sent on every check"}),(0,d.jsx)(y.A,{schema:Y.inputSchema,values:a.args||{},onChange:c=>b({...a,args:c})})]}):(0,d.jsx)(m.A,{fullWidth:!0,label:"Tool arguments (JSON, optional)",value:I,onChange:c=>(c=>{if(J(c),!c.trim()){L(null),b({...a,args:{}});return}try{let d=JSON.parse(c);if(null===d||"object"!=typeof d||Array.isArray(d))return void L('Arguments must be a JSON object, e.g. { "query": "…" }');L(null),b({...a,args:d})}catch{L("Not valid JSON yet")}})(c.target.value),margin:"normal",multiline:!0,minRows:2,placeholder:'{ "query": "is:unread" }',error:!!K,helperText:K??"Sent to the tool on every check.",slotProps:{input:{sx:{fontFamily:"monospace",fontSize:14}}}}),(0,d.jsxs)(f.default,{sx:{display:"flex",alignItems:"center",gap:2,mb:1},children:[(0,d.jsx)(h.A,{variant:"outlined",size:"small",onClick:W,disabled:!a.serverName||!a.toolName||M||!!K,startIcon:M?(0,d.jsx)(n.default,{size:16}):void 0,children:"Test: call the tool now"}),(0,d.jsx)(g.default,{variant:"caption",color:"text.secondary",children:"See what the result looks like — useful for the settings below."})]}),Q&&(0,d.jsx)(o.A,{severity:"error",sx:{mb:1},children:Q}),O&&(0,d.jsx)(f.default,{component:"pre",sx:{maxHeight:240,overflow:"auto",bgcolor:"action.hover",borderRadius:1,p:1.5,fontSize:12,m:0,mb:1},children:O}),(0,d.jsx)(g.default,{variant:"subtitle2",sx:{mt:2,mb:1},children:"Run the flow when…"}),(0,d.jsxs)(f.default,{role:"radiogroup","aria-label":"Poll condition",sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,d.jsx)(w.A,{selected:"on-change"===X.mode,onClick:()=>b({...a,evaluate:{mode:"on-change"}}),icon:(0,d.jsx)(q,{}),title:"The result changes",description:"Any difference from the last check runs the flow. Simplest — no setup."}),(0,d.jsx)(w.A,{selected:"llm-gate"===X.mode||"flow-gate"===X.mode,onClick:()=>{"llm-gate"!==X.mode&&"flow-gate"!==X.mode&&b({...a,evaluate:{mode:"llm-gate",condition:"",modelId:""}})},icon:(0,d.jsx)(r,{}),title:"AI decides",description:"Describe the condition in plain language; a model — or one of your flows — checks the result whenever it changes."})]}),("llm-gate"===X.mode||"flow-gate"===X.mode)&&(0,d.jsxs)(f.default,{sx:{mt:1},children:[(0,d.jsx)(m.A,{fullWidth:!0,label:"Run the flow if…",value:X.condition,onChange:c=>b({...a,evaluate:{...X,condition:c.target.value}}),multiline:!0,minRows:2,margin:"normal",placeholder:"e.g. any email mentions an invoice or a payment reminder"}),(0,d.jsxs)(f.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"flex-start"},children:[(0,d.jsxs)(i.A,{sx:{minWidth:170},children:[(0,d.jsx)(j.A,{id:"gate-checker-label",children:"Checked by"}),(0,d.jsxs)(k.A,{labelId:"gate-checker-label",label:"Checked by",value:X.mode,onChange:c=>{let d=c.target.value;if(d===X.mode)return;let e={condition:X.condition,maxCallsPerDay:X.maxCallsPerDay};b({...a,evaluate:"llm-gate"===d?{mode:d,...e,modelId:""}:{mode:d,...e,flowId:""}})},children:[(0,d.jsx)(l.A,{value:"llm-gate",children:"A model"}),(0,d.jsx)(l.A,{value:"flow-gate",children:"One of my flows"})]})]}),"llm-gate"===X.mode&&(0,d.jsxs)(i.A,{sx:{minWidth:240,flex:1},children:[(0,d.jsx)(j.A,{id:"gate-model-label",children:"Model that checks"}),(0,d.jsxs)(k.A,{labelId:"gate-model-label",label:"Model that checks",value:S.some(a=>a.id===X.modelId)?X.modelId:"",onChange:c=>b({...a,evaluate:{...X,modelId:c.target.value}}),children:[0===S.length&&(0,d.jsx)(l.A,{value:"",disabled:!0,children:"No models configured"}),S.map(a=>(0,d.jsx)(l.A,{value:a.id,children:a.displayName||a.name},a.id))]})]}),"flow-gate"===X.mode&&(0,d.jsxs)(i.A,{sx:{minWidth:240,flex:1},children:[(0,d.jsx)(j.A,{id:"gate-flow-label",children:"Flow that checks"}),(0,d.jsxs)(k.A,{labelId:"gate-flow-label",label:"Flow that checks",value:U.some(a=>a.id===X.flowId)?X.flowId:"",onChange:c=>b({...a,evaluate:{...X,flowId:c.target.value}}),children:[0===U.length&&(0,d.jsx)(l.A,{value:"",disabled:!0,children:"No flows available"}),U.map(a=>(0,d.jsx)(l.A,{value:a.id,children:a.name},a.id))]})]}),(0,d.jsx)(m.A,{label:"Max checks per day",type:"number",value:X.maxCallsPerDay??500,onChange:c=>b({...a,evaluate:{...X,maxCallsPerDay:Math.max(1,Number(c.target.value)||1)}}),inputProps:{min:1},helperText:"Cost guard per check.",sx:{width:180}})]}),(0,d.jsx)(g.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.5},children:"flow-gate"===X.mode?'The checker flow runs invisibly (never in the chat), gets the condition + tool result, and must answer with {"fire": true/false, "reason": "…"} — it can use its own tools to verify before deciding.':"The model is only asked when the result actually changed since the last check — an idle feed costs nothing. Pick a small, cheap model."})]}),(0,d.jsx)(o.A,{severity:"info",sx:{mt:2},children:"The first check only takes a snapshot — the flow runs from the second check onwards, when something actually changed. FLUJO must be running for checks to happen."})]})}},91283:(a,b,c)=>{c.d(b,{A:()=>q});var d=c(21124),e=c(38301),f=c(81637),g=c(88745),h=c(37674),i=c(43312),j=c(44079),k=c(68730),l=c(79515),m=c(95587),n=c(77028),o=c(38941),p=c(36698);let q=({config:a,onChange:b,executionId:c,saved:q})=>{let[r,s]=(0,e.useState)(null),t=`/api/webhooks/${c}`,u=async(a,b)=>{try{await navigator.clipboard.writeText(b),s(a),setTimeout(()=>s(null),1500)}catch{}};return(0,d.jsxs)(f.default,{sx:{mt:1},children:[!q&&(0,d.jsx)(g.A,{severity:"info",sx:{mb:2},children:"This URL and token are ready to copy now — they become active when you save."}),(0,d.jsxs)(f.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,d.jsx)(h.A,{fullWidth:!0,label:"Webhook URL",value:t,InputProps:{readOnly:!0},size:"small"}),(0,d.jsx)(i.A,{title:"Copy URL",children:(0,d.jsx)(j.A,{onClick:()=>u("url",t),children:"url"===r?(0,d.jsx)(p.A,{color:"success"}):(0,d.jsx)(o.A,{})})})]}),(0,d.jsxs)(f.default,{sx:{display:"flex",alignItems:"center",gap:1,mt:2},children:[(0,d.jsx)(h.A,{fullWidth:!0,label:"Secret token",value:a.token,InputProps:{readOnly:!0},size:"small",type:"password"}),(0,d.jsx)(i.A,{title:"Copy token",children:(0,d.jsx)(j.A,{onClick:()=>u("token",a.token),disabled:!a.token,children:"token"===r?(0,d.jsx)(p.A,{color:"success"}):(0,d.jsx)(o.A,{})})}),(0,d.jsx)(k.A,{size:"small",onClick:()=>b({...a,token:crypto.randomUUID()}),sx:{whiteSpace:"nowrap"},children:"New token"})]}),(0,d.jsx)(l.default,{variant:"caption",color:"text.secondary",children:q?"A new token takes effect when you save — callers using the old one are cut off.":""}),(0,d.jsxs)(l.default,{variant:"body2",color:"text.secondary",sx:{mt:1.5},children:["Callers send a POST with the token in the ",(0,d.jsx)("code",{children:"X-Flujo-Token"})," ","header (or ",(0,d.jsx)("code",{children:"?token=…"}),"). The request body becomes part of the flow's input — treat it as untrusted data in your prompt."]}),(0,d.jsx)(m.A,{sx:{mt:1,display:"flex"},control:(0,d.jsx)(n.A,{checked:!0===a.allowExternal,onChange:c=>b({...a,allowExternal:c.target.checked})}),label:"Allow calls from other machines (default: this computer only)"}),a.allowExternal&&(0,d.jsx)(g.A,{severity:"warning",children:"FLUJO assumes a single user on this machine. If you expose it beyond localhost (port forwarding, tunnels), securing that access is your responsibility — anyone with the URL and token can run this flow."})]})}}};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=4961,exports.ids=[4961],exports.modules={13516:(a,b,c)=>{c.d(b,{G:()=>d});let d={LOG_LEVEL:3,INCLUDE_TOOL_CALLS_IN_RESPONSE:!0,ENABLE_EXECUTION_TRACKER:!1}},50846:(a,b,c)=>{c.d(b,{h:()=>i});var d=c(13516);let e={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},f="number"==typeof d.G.LOG_LEVEL?d.G.LOG_LEVEL:e.ERROR;function g(a,b=0){if(b>6)return String(a);if(!(a instanceof Error))return a;let c={name:a.name,message:a.message};for(let d of Object.getOwnPropertyNames(a)){if("name"===d||"message"===d)continue;let e=a[d];"function"!=typeof e&&("stack"===d?c.stack=e:"cause"===d?c.cause=g(e,b+1):"errors"===d&&Array.isArray(e)?c.errors=e.map(a=>g(a,b+1)):c[d]=e)}return c}function h(a,b,c,d,h){if(a>=("number"==typeof h?h:f)){if("function"==typeof d)try{d=d()}catch{d="[lazy log data threw]"}let f=new Date().toISOString(),h=`[${f}] [${b}]`,i=`${h} ${c}`;if(void 0!==d)if(d instanceof Error||"object"==typeof d)try{let a=d instanceof Error?g(d):d,b=JSON.stringify(a,(a,b)=>b instanceof Error?g(b):b,2);i+=`:
|
|
2
|
-
${b}`}catch(a){i+=": [Object cannot be stringified]"}else i+=`: ${d}`;switch(a){case e.VERBOSE:console.debug(`[VERBOSE] ${i}`);break;case e.DEBUG:console.debug(i);break;case e.INFO:console.info(i);break;case e.WARN:console.warn(i);break;case e.ERROR:console.error(i);break;default:console.log(i)}}}function i(a,b){let c,d=((c=a.replace(/^src\//,"")).startsWith("/")&&(c=c.substring(1)),c);return{verbose:(a,c)=>{h(e.VERBOSE,d,a,c,b)},debug:(a,c)=>{h(e.DEBUG,d,a,c,b)},info:(a,c)=>{h(e.INFO,d,a,c,b)},warn:(a,c)=>{h(e.WARN,d,a,c,b)},error:(a,c)=>{h(e.ERROR,d,a,c,b)}}}},63281:(a,b,c)=>{c.d(b,{g:()=>g});var d=c(2117);let e=(0,c(19815).h)("frontend/services/flow/index");class f{async loadFlows(){e.debug("loadFlows: Entering method");try{if(this.flowsCache)return e.debug("loadFlows: Using cached flows",{count:this.flowsCache.length}),this.flowsCache;let a=await fetch("/api/flow");if(!a.ok){let b=await a.json();throw Error(b.error||"Failed to load flows")}let b=await a.json();return e.debug("loadFlows: Loaded flows from API",{count:b.length}),this.flowsCache=b,b}catch(a){return e.warn("loadFlows: Failed to load flows:",a),[]}}async getFlow(a){e.debug("getFlow: Entering method",{flowId:a});try{if(this.flowsCache){let b=this.flowsCache.find(b=>b.id===a);if(b)return e.debug("getFlow: Using cached flow",{flowId:a}),b}let b=await fetch(`/api/flow/${encodeURIComponent(a)}`);if(!b.ok){if(404===b.status)return e.debug(`getFlow: Flow ${a} not found`),null;let c=await b.json();throw Error(c.error||`Failed to get flow: ${a}`)}let c=await b.json();return e.debug("getFlow: Retrieved flow from API",{flowId:a}),c}catch(b){return e.warn(`getFlow: Failed to get flow ${a}:`,b),null}}async addFlow(a){e.debug("addFlow: Entering method",{flowId:a.id,flowName:a.name,nodeCount:a.nodes.length,edgeCount:a.edges.length});try{let b=await fetch("/api/flow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok){let a=await b.json();return{success:!1,error:a.error||"Failed to add flow"}}let c=await b.json();return this.flowsCache&&this.flowsCache.push(c),e.debug("addFlow: Flow added successfully",{flowId:a.id}),{success:!0}}catch(a){return e.warn("addFlow: Failed to add flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to add flow"}}}async generateFlow(a,b,c){e.debug("generateFlow: Entering method",{modelId:b,allowInstall:c?.allowInstall,allowSubflows:c?.allowSubflows,maxDepth:c?.maxDepth});try{let d=await fetch("/api/flow/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:a,modelId:b,allowInstall:c?.allowInstall===!0,allowSubflows:c?.allowSubflows===!0,..."number"==typeof c?.maxDepth?{maxDepth:c.maxDepth}:{}})}),f=await d.json().catch(()=>null);if(!d.ok)return{success:!1,error:f?.error||"Failed to generate flow"};let g=Array.isArray(f.flows)&&f.flows.length>0?f.flows:[{flow:f.flow,validation:f.validation}];return e.debug("generateFlow: Draft generated",{flowId:f.flow?.id,flowCount:g.length,attempts:f.attempts,errorCount:f.validation?.errorCount,installedServers:f.installedServers?.length??0}),{success:!0,flow:f.flow,validation:f.validation,flows:g,rootFlowId:f.rootFlowId??f.flow?.id,attempts:f.attempts,installedServers:f.installedServers??[]}}catch(a){return e.warn("generateFlow: Failed to generate flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to generate flow"}}}async improveFlow(a,b,c,d){e.debug("improveFlow: Entering method",{flowId:a?.id,modelId:c,allowInstall:d?.allowInstall});try{let f=await fetch("/api/flow/improve",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({flow:a,description:b,modelId:c,allowInstall:d?.allowInstall===!0})}),g=await f.json().catch(()=>null);if(!f.ok)return{success:!1,error:g?.error||"Failed to improve flow"};return e.debug("improveFlow: Draft revised",{flowId:g.flow?.id,attempts:g.attempts,errorCount:g.validation?.errorCount,installedServers:g.installedServers?.length??0}),{success:!0,flow:g.flow,validation:g.validation,attempts:g.attempts,installedServers:g.installedServers??[]}}catch(a){return e.warn("improveFlow: Failed to improve flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to improve flow"}}}async updateFlow(a){e.debug("updateFlow: Entering method",{flowId:a.id,flowName:a.name,nodeCount:a.nodes.length,edgeCount:a.edges.length});try{let b=await fetch(`/api/flow/${encodeURIComponent(a.id)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok){let a=await b.json();return{success:!1,error:a.error||"Failed to update flow"}}let c=await b.json();if(this.flowsCache){let b=this.flowsCache.findIndex(b=>b.id===a.id);b>=0?this.flowsCache[b]=c:this.flowsCache.push(c)}return e.debug("updateFlow: Flow updated successfully",{flowId:a.id}),{success:!0}}catch(a){return e.warn("updateFlow: Failed to update flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to update flow"}}}async deleteFlow(a){e.debug("deleteFlow: Entering method",{flowId:a});try{let b=await fetch(`/api/flow/${encodeURIComponent(a)}`,{method:"DELETE"});if(!b.ok){let a=await b.json();return{success:!1,error:a.error||"Failed to delete flow"}}return this.flowsCache&&(this.flowsCache=this.flowsCache.filter(b=>b.id!==a)),e.debug("deleteFlow: Flow deleted successfully",{flowId:a}),{success:!0}}catch(a){return e.warn("deleteFlow: Failed to delete flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to delete flow"}}}async listFlowVersions(a){e.debug("listFlowVersions: Entering method",{flowId:a});try{let b=await fetch(`/api/flow/${encodeURIComponent(a)}/versions`);if(!b.ok){let a=await b.json().catch(()=>null);throw Error(a?.error||"Failed to list flow versions")}let c=await b.json();return Array.isArray(c.versions)?c.versions:[]}catch(b){return e.warn(`listFlowVersions: Failed for flow ${a}:`,b),[]}}async getFlowVersion(a,b){e.debug("getFlowVersion: Entering method",{flowId:a,versionId:b});try{let c=await fetch(`/api/flow/${encodeURIComponent(a)}/versions/${encodeURIComponent(b)}`);if(!c.ok){if(404===c.status)return null;let a=await c.json().catch(()=>null);throw Error(a?.error||"Failed to get flow version")}return await c.json()}catch(c){return e.warn(`getFlowVersion: Failed for ${a}/${b}:`,c),null}}createNode(a,b){return e.debug("createNode: Entering method",{type:a,position:b}),{id:(0,d.A)(),type:a,position:b,data:{label:`${"mcp"===a?"MCP":a.charAt(0).toUpperCase()+a.slice(1)} Node`,type:a,properties:{}}}}createStartNode(){return{id:(0,d.A)(),type:"start",position:{x:250,y:150},data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}}}createNewFlow(a="NewFlow"){e.debug("createNewFlow: Entering method",{name:a});let b=Date.now();return{id:(0,d.A)(),name:a,createdAt:b,updatedAt:b,nodes:[this.createStartNode()],edges:[]}}createHistoryEntry(a,b){return e.debug("createHistoryEntry: Entering method"),{nodes:[...a],edges:[...b]}}generateSampleFlow(a="Sample Flow"){return e.debug("generateSampleFlow: Entering method",{name:a}),{id:(0,d.A)(),name:a,nodes:[{id:"1",type:"start",position:{x:250,y:50},data:{label:"Start Node",type:"start",properties:{prompt:"Enter your query here",systemMessage:"You are a helpful assistant",temperature:0}}},{id:"2",type:"process",position:{x:250,y:200},data:{label:"Process Node",type:"process",properties:{operation:"transform",enabled:!0}}},{id:"3",type:"finish",position:{x:250,y:350},data:{label:"Finish Node",type:"finish",properties:{format:"json",template:'{ "result": {{data}} }'}}},{id:"4",type:"mcp",position:{x:450,y:200},data:{label:"MCP Node",type:"mcp",properties:{channels:2,mode:"parallel"}}}],edges:[{id:"e1-2",source:"1",target:"2",type:"custom"},{id:"e2-3",source:"2",target:"3",type:"custom"}]}}constructor(){this.flowsCache=null}}let g=new f},63654:(a,b,c)=>{c.d(b,{P:()=>f});let d=(0,c(19815).h)("frontend/services/plannedExecutions");class e{async list(){try{let a=await fetch("/api/planned-executions");if(!a.ok)throw Error(`HTTP ${a.status}`);return await a.json()}catch(a){return d.warn("Failed to list planned executions",a),{paused:!1,executions:[]}}}async create(a){try{let b=await fetch("/api/planned-executions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json();if(!b.ok)return{success:!1,error:c?.error||`HTTP ${b.status}`};return{success:!0,execution:c.execution}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async update(a,b){try{let c=await fetch(`/api/planned-executions/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json();if(!c.ok)return{success:!1,error:d?.error||`HTTP ${c.status}`};return{success:!0,execution:d.execution}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async delete(a){try{let b=await fetch(`/api/planned-executions/${a}`,{method:"DELETE"});if(!b.ok){let a=await b.json().catch(()=>null);return{success:!1,error:a?.error||`HTTP ${b.status}`}}return{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async setPaused(a){try{let b=await fetch("/api/planned-executions",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({paused:a})});if(!b.ok){let a=await b.json().catch(()=>null);return{success:!1,error:a?.error||`HTTP ${b.status}`}}return{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async runNow(a){try{let b=await fetch(`/api/planned-executions/${a}/run`,{method:"POST"}),c=await b.json();if(!b.ok)return{success:!1,error:c?.error||`HTTP ${b.status}`};return{success:!0,record:c.record}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async loadRuns(a){try{let b=await fetch(`/api/planned-executions/${a}/runs`);if(!b.ok)throw Error(`HTTP ${b.status}`);let c=await b.json();return Array.isArray(c?.runs)?c.runs:[]}catch(b){return d.warn(`Failed to load runs for ${a}`,b),[]}}async previewSchedule(a,b){try{let c=await fetch("/api/planned-executions/preview-schedule",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cron:a,timezone:b})});if(!c.ok)throw Error(`HTTP ${c.status}`);return await c.json()}catch(a){return{valid:!1,error:a instanceof Error?a.message:"Preview failed",nextRuns:[]}}}}let f=new e}};
|
|
@@ -1,53 +0,0 @@
|
|
|
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
|
-
- 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
|
-
- "subflowSpec": an inline nested FlowSpec (you author the whole child now), or
|
|
4
|
-
- "generateSubflow": a short natural-language description of the child — FLUJO will generate that child flow for you.
|
|
5
|
-
- Nest only when a self-contained sub-task genuinely deserves its own flow. Nesting is bounded: at most ${d} level(s) deep and ${h.lk} flows total. Keep it minimal.`:`SUBFLOWS: a subflow node's "flow" must reference an EXISTING flow (by name or id). Do NOT use "subflowSpec" or "generateSubflow" — multi-level generation is off for this run.`,f=b?`CAPABILITY ACQUISITION — you are allowed to EXPAND this FLUJO instance:
|
|
6
|
-
- If the task needs a capability none of the configured servers provides (voice, vision, browsing, email, code execution, …), use search_mcp_marketplace to find a server for it, then install_mcp_server to install the best match. Prefer servers that need no API keys (empty requiredEnv); if the best option needs keys, install a keyless alternative or note the requirement in the flow description.
|
|
7
|
-
- After a successful install, reference the returned server name in a process node's "servers" list and enable the tools it reported.
|
|
8
|
-
- Be ambitious: an actual capability (real audio, real browsing, real files) beats a text approximation. Search with several short terms ("voice", "tts", "speech") — the registry matches server NAMES only.`:`CAPABILITY DISCOVERY — you may search but NOT install:
|
|
9
|
-
- If the task needs a capability none of the configured servers provides, you may use search_mcp_marketplace to see what exists. Do NOT reference unconfigured servers in the spec; instead mention the recommended server (its registry name) in the flow "description" so the user can install it.`;return`You design workflows for FLUJO, an MCP-first workflow builder. The user describes what they want; you emit a flow specification as JSON.
|
|
10
|
-
|
|
11
|
-
OUTPUT FORMAT — when you are done (after any tool use), respond with ONLY one JSON object, no prose, no code fences.
|
|
12
|
-
|
|
13
|
-
${k.R}
|
|
14
|
-
|
|
15
|
-
GENERATED-FLOW DEFAULTS (context saving): process nodes you leave without an explicit inputMode/outputMode are compiled with inputMode "latest-message" and outputMode "latest-message" — each step sees only the current task and later steps see only its final response, not its tool calls/results. When a step genuinely needs the whole conversation or later steps need its intermediate work, set "full-history" / "full-conversation" explicitly.
|
|
16
|
-
|
|
17
|
-
GENERATED-FLOW DATA-FLOW POLICY (IMPORTANT — carry data through the conversation, NOT scratchpad variables):
|
|
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
|
-
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. WHEN HISTORY IS INSUFFICIENT (the consumer is "isolated"/"latest-message" and still needs an earlier step's data, or the artifact is large/structured/binary), use a RUN RESOURCE instead of a scratchpad variable: the producer step sets "captureResource": "NAME" and the consumer step injects \${res:NAME} in its prompt. A run resource survives isolated/latest-message scoping and is tracked with lineage. Example:
|
|
21
|
-
{ "key": "writer", "type": "process", "model": "...", "prompt": "Draft the full report.", "captureResource": "report" }
|
|
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.
|
|
27
|
-
|
|
28
|
-
${f}
|
|
29
|
-
|
|
30
|
-
${e}
|
|
31
|
-
|
|
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}if(i.some(a=>"isolated"===a.inputMode)){if(e.some(b=>"string"==typeof b.captureResource&&b.captureResource.trim()&&b.captureResource.trim()!==a))continue;for(let b of e)b.captureResource=a,delete b.captureVariable;let d=r(a);for(let b of c)s(b,b=>b.replace(d,"${res:"+a+"}"));b.push({code:"var-resource",message:`Converted scratchpad \${var:${a}} to a tracked run resource \${res:${a}} (a consumer is isolated, so conversation history cannot carry it).`});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
|
-
${w(F.issues)}
|
|
34
|
-
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
|
-
${w(L.issues)}
|
|
36
|
-
Fix the errors (warnings are advisory) and re-emit the COMPLETE corrected JSON (only the JSON).`})}return I?(u.info(`Generated draft bundle rooted at "${I.rootFlow.name}" (${I.flows.length} flow(s)) in ${J} attempt(s): ${I.validation.errorCount} error(s), ${I.validation.warningCount} warning(s), ${C.installedServers.length} server(s) installed`),{success:!0,flow:I.rootFlow,validation:I.validation,flows:I.flows,rootFlowId:I.rootFlow.id,attempts:J,installedServers:C.installedServers}):{success:!1,error:"The model did not produce a usable flow specification. Try rephrasing the description or a different generator model.",statusCode:422}}async function C(a){let b="string"==typeof a?.description?a.description.trim():"";if(!b)return{success:!1,error:"A change 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 c=a?.flow;if(!c||"object"!=typeof c||!Array.isArray(c.nodes)||!Array.isArray(c.edges))return{success:!1,error:"A valid flow to improve is required",statusCode:400};let d=await e.modelService.getModel(a.modelId);if(!d)return{success:!1,error:`Generator model not found: ${a.modelId}`,statusCode:404};let g=await e.modelService.resolveAndDecryptApiKey(d.ApiKey)||("codex-cli"!==d.adapter||d.ApiKey?.trim()?null:"");if(null===g)return{success:!1,error:"Could not resolve the generator model API key",statusCode:500};let j=!0===a.allowInstall,k=await (0,o.jY)(),l=(0,f.getCompletionAdapter)(d),m=x(j),n={installedServers:[],contextDirty:!1},p=Math.min("number"==typeof a.maxRepairs&&a.maxRepairs>=0?a.maxRepairs:1,2),q=(0,h.FH)(c),r={};for(let a of c.nodes)a?.id&&a.position&&"number"==typeof a.position.x&&"number"==typeof a.position.y&&(r[a.id]={x:a.position.x,y:a.position.y});let s=a=>({models:a.compile.models,servers:a.compile.servers,serverTools:a.compile.serverTools,flows:(a.compile.flows??[]).filter(a=>a.id!==c.id)}),t=`EXISTING FLOW (modify this — keep unchanged parts intact, and KEEP each node's "key" for any node you do NOT restructure so its canvas position is preserved):
|
|
37
|
-
${JSON.stringify(q)}
|
|
38
|
-
|
|
39
|
-
CHANGE REQUEST:
|
|
40
|
-
${b}
|
|
41
|
-
|
|
42
|
-
Re-emit the COMPLETE flow specification as a single JSON object (only the JSON), including the nodes you did not change.`,y=[{role:"system",content:v(k.catalog,j,!1,0)},{role:"user",content:t}],B=null,C=0;for(let a=0;a<=p;a++){let b;C++;try{b=await z(l,d,g,y,m,j,n)}catch(a){if(u.error("Improver model call failed",a),B)break;return{success:!1,error:`The generator model call failed: ${a instanceof Error?a.message:String(a)}`,statusCode:502}}if(n.contextDirty){try{k=await (0,o.jY)()}catch(a){u.warn("Re-gathering context after install failed; using the stale catalog",a)}n.contextDirty=!1}let e=A(b);if(!e){u.warn(`Improve attempt ${C}: model output contained no parseable JSON object`),y.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}let f=(0,h.dM)(e,s(k),{maxDepth:0,maxFlows:1,positions:r});if(!f.flow){y.push({role:"assistant",content:b},{role:"user",content:`The specification could not be compiled:
|
|
43
|
-
${w(f.issues)}
|
|
44
|
-
Fix these problems and re-emit the COMPLETE corrected JSON (only the JSON).`});continue}f.flow.id=c.id,"string"==typeof e.name&&e.name.trim()||(f.flow.name=c.name),(0,h.Zn)(f.flow);let q=(0,i.nC)(f.flow,{models:k.compile.models,servers:k.validatorServers,serverTools:k.compile.serverTools}),t=(0,o.RB)(f.issues,q);if(B={flows:[{flow:f.flow,validation:q}],rootFlow:f.flow,validation:t},0===t.errorCount)break;u.info(`Improve attempt ${C}: flow has ${t.errorCount} error(s)`+(a<p?"; asking the model to repair":"; repair budget exhausted")),a<p&&y.push({role:"assistant",content:b},{role:"user",content:`The flow you specified has these problems:
|
|
45
|
-
${w(t.issues)}
|
|
46
|
-
Fix the errors (warnings are advisory) and re-emit the COMPLETE corrected JSON (only the JSON).`})}return B?(u.info(`Improved draft "${B.rootFlow.name}" in ${C} attempt(s): ${B.validation.errorCount} error(s), ${B.validation.warningCount} warning(s), ${n.installedServers.length} server(s) installed`),{success:!0,flow:B.rootFlow,validation:B.validation,flows:B.flows,rootFlowId:B.rootFlow.id,attempts:C,installedServers:n.installedServers}):{success:!1,error:"The model did not produce a usable flow specification. Try rephrasing the change request or a different generator model.",statusCode:422}}async function D(a){let b=a?.flow;if(!b||"object"!=typeof b||!Array.isArray(b.nodes)||!Array.isArray(b.edges))return{success:!1,error:"A valid flow to repair is required",statusCode:400};if(!a?.modelId||"string"!=typeof a.modelId)return{success:!1,error:"A repair model id is required",statusCode:400};let c=(0,i.nC)(b),d=c.issues.length>0?`
|
|
47
|
-
|
|
48
|
-
Known problems to fix:
|
|
49
|
-
${w(c.issues)}`:"";return C({flow:b,description:`Repair this flow's wiring so it is runnable, WITHOUT changing any node's prompt, model, or servers:
|
|
50
|
-
- add a Start node if one is missing, connected to the first step;
|
|
51
|
-
- add a Finish node if one is missing, connected from the last step;
|
|
52
|
-
- connect any disconnected process/subflow nodes.
|
|
53
|
-
Read node placement as intent: nodes stacked top-to-bottom are sequential steps, and nodes on the same horizontal line are parallel branches under a shared parent above them.${d}`,modelId:a.modelId,...void 0!==a.allowInstall?{allowInstall:a.allowInstall}:{},...void 0!==a.maxRepairs?{maxRepairs:a.maxRepairs}:{}})}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=510,exports.ids=[510],exports.modules={7499:(a,b,c)=>{c.d(b,{A:()=>t});var d=c(38301),e=c(43249),f=c(75575),g=c(2783),h=c(37489),i=c(14328),j=c(6638),k=c(18168),l=c(68333),m=c(54716),n=c(6636),o=c(35133),p=c(73032),q=c(73284),r=c(21124);let s=(0,k.Ay)(i.A,{name:"MuiToggleButton",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[`size${(0,j.A)(c.size)}`]]}})((0,l.A)(({theme:a})=>({...a.typography.button,borderRadius:(a.vars||a).shape.borderRadius,padding:11,border:`1px solid ${(a.vars||a).palette.divider}`,color:(a.vars||a).palette.action.active,[`&.${o.A.disabled}`]:{color:(a.vars||a).palette.action.disabled,border:`1px solid ${(a.vars||a).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:a.vars?`rgba(${a.vars.palette.text.primaryChannel} / ${a.vars.palette.action.hoverOpacity})`:(0,h.X4)(a.palette.text.primary,a.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{[`&.${o.A.selected}`]:{color:(a.vars||a).palette.text.primary,backgroundColor:a.vars?`rgba(${a.vars.palette.text.primaryChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,h.X4)(a.palette.text.primary,a.palette.action.selectedOpacity),"&:hover":{backgroundColor:a.vars?`rgba(${a.vars.palette.text.primaryChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.hoverOpacity}))`:(0,h.X4)(a.palette.text.primary,a.palette.action.selectedOpacity+a.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:a.vars?`rgba(${a.vars.palette.text.primaryChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,h.X4)(a.palette.text.primary,a.palette.action.selectedOpacity)}}}}},...Object.entries(a.palette).filter((0,m.A)()).map(([b])=>({props:{color:b},style:{[`&.${o.A.selected}`]:{color:(a.vars||a).palette[b].main,backgroundColor:a.vars?`rgba(${a.vars.palette[b].mainChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,h.X4)(a.palette[b].main,a.palette.action.selectedOpacity),"&:hover":{backgroundColor:a.vars?`rgba(${a.vars.palette[b].mainChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.hoverOpacity}))`:(0,h.X4)(a.palette[b].main,a.palette.action.selectedOpacity+a.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:a.vars?`rgba(${a.vars.palette[b].mainChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,h.X4)(a.palette[b].main,a.palette.action.selectedOpacity)}}}}})),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:a.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:a.typography.pxToRem(15)}}]}))),t=d.forwardRef(function(a,b){var c;let{value:h,...i}=d.useContext(p.A),k=d.useContext(q.A),l=(0,f.A)({...i,selected:(c=a.value,void 0!==h&&void 0!==c&&(Array.isArray(h)?h.includes(c):c===h))},a),m=(0,n.b)({props:l,name:"MuiToggleButton"}),{children:t,className:u,color:v="standard",disabled:w=!1,disableFocusRipple:x=!1,fullWidth:y=!1,onChange:z,onClick:A,selected:B,size:C="medium",value:D,...E}=m,F={...m,color:v,disabled:w,disableFocusRipple:x,fullWidth:y,size:C},G=(a=>{let{classes:b,fullWidth:c,selected:d,disabled:e,size:f,color:h}=a,i={root:["root",d&&"selected",e&&"disabled",c&&"fullWidth",`size${(0,j.A)(f)}`,h]};return(0,g.A)(i,o.J,b)})(F);return(0,r.jsx)(s,{className:(0,e.A)(i.className,G.root,u,k||""),disabled:w,focusRipple:!x,ref:b,onClick:a=>{A&&(A(a,D),a.defaultPrevented)||z&&z(a,D)},onChange:z,value:D,ownerState:F,"aria-pressed":B,...E,children:t})})},29277:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(38301);function e(a){return d.Children.toArray(a).filter(a=>d.isValidElement(a))}},35133:(a,b,c)=>{c.d(b,{A:()=>g,J:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiToggleButton",a)}let g=(0,d.A)("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge","fullWidth"])},48317:(a,b,c)=>{c.d(b,{A:()=>u});var d=c(38301),e=c(43249),f=c(2783),g=c(29277),h=c(18168),i=c(68333),j=c(6636),k=c(6638),l=c(29565),m=c(33105);function n(a){return(0,m.Ay)("MuiToggleButtonGroup",a)}let o=(0,l.A)("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]);var p=c(73032),q=c(73284),r=c(35133),s=c(21124);let t=(0,h.Ay)("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[{[`& .${o.grouped}`]:b.grouped},{[`& .${o.grouped}`]:b[`grouped${(0,k.A)(c.orientation)}`]},{[`& .${o.firstButton}`]:b.firstButton},{[`& .${o.lastButton}`]:b.lastButton},{[`& .${o.middleButton}`]:b.middleButton},b.root,"vertical"===c.orientation&&b.vertical,c.fullWidth&&b.fullWidth]}})((0,i.A)(({theme:a})=>({display:"inline-flex",borderRadius:(a.vars||a).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${o.grouped}`]:{[`&.${o.selected} + .${o.grouped}.${o.selected}`]:{borderTop:0,marginTop:0}},[`& .${o.firstButton},& .${o.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${o.lastButton},& .${o.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},[`& .${o.lastButton}.${r.A.disabled},& .${o.middleButton}.${r.A.disabled}`]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{[`& .${o.grouped}`]:{[`&.${o.selected} + .${o.grouped}.${o.selected}`]:{borderLeft:0,marginLeft:0}},[`& .${o.firstButton},& .${o.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${o.lastButton},& .${o.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},[`& .${o.lastButton}.${r.A.disabled},& .${o.middleButton}.${r.A.disabled}`]:{borderLeft:"1px solid transparent"}}}]}))),u=d.forwardRef(function(a,b){let c=(0,j.b)({props:a,name:"MuiToggleButtonGroup"}),{children:h,className:i,color:l="standard",disabled:m=!1,exclusive:o=!1,fullWidth:r=!1,onChange:u,orientation:v="horizontal",size:w="medium",value:x,...y}=c,z={...c,disabled:m,fullWidth:r,orientation:v,size:w},A=(a=>{let{classes:b,orientation:c,fullWidth:d,disabled:e}=a,g={root:["root",c,d&&"fullWidth"],grouped:["grouped",`grouped${(0,k.A)(c)}`,e&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return(0,f.A)(g,n,b)})(z),B=d.useCallback((a,b)=>{let c;if(!u)return;let d=x&&x.indexOf(b);x&&d>=0?(c=x.slice()).splice(d,1):c=x?x.concat(b):[b],u(a,c)},[u,x]),C=d.useCallback((a,b)=>{u&&u(a,x===b?null:b)},[u,x]),D=d.useMemo(()=>({className:A.grouped,onChange:o?C:B,value:x,size:w,fullWidth:r,color:l,disabled:m}),[A.grouped,o,C,B,x,w,r,l,m]),E=(0,g.A)(h),F=E.length;return(0,s.jsx)(t,{role:"group",className:(0,e.A)(A.root,i),ref:b,ownerState:z,...y,children:(0,s.jsx)(p.A.Provider,{value:D,children:E.map((a,b)=>(0,s.jsx)(q.A.Provider,{value:(a=>{let b=0===a,c=a===F-1;return b&&c?"":b?A.firstButton:c?A.lastButton:A.middleButton})(b),children:a},b))})})})},51100:(a,b,c)=>{c.d(b,{A:()=>t});var d=c(38301),e=c(43249),f=c(2783),g=c(14328),h=c(6638),i=c(29565),j=c(33105);function k(a){return(0,j.Ay)("MuiFab",a)}let l=(0,i.A)("MuiFab",["root","primary","secondary","extended","circular","focusVisible","disabled","colorInherit","sizeSmall","sizeMedium","sizeLarge","info","error","warning","success"]);var m=c(41126),n=c(18168),o=c(68333),p=c(54716),q=c(6636),r=c(21124);let s=(0,n.Ay)(g.A,{name:"MuiFab",slot:"Root",shouldForwardProp:a=>(0,m.A)(a)||"classes"===a,overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[c.variant],b[`size${(0,h.A)(c.size)}`],"inherit"===c.color&&b.colorInherit,b[(0,h.A)(c.size)],b[c.color]]}})((0,o.A)(({theme:a})=>({...a.typography.button,minHeight:36,transition:a.transitions.create(["background-color","box-shadow","border-color"],{duration:a.transitions.duration.short}),borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,zIndex:(a.vars||a).zIndex.fab,boxShadow:(a.vars||a).shadows[6],"&:active":{boxShadow:(a.vars||a).shadows[12]},color:a.vars?a.vars.palette.text.primary:a.palette.getContrastText?.(a.palette.grey[300]),backgroundColor:(a.vars||a).palette.grey[300],"&:hover":{backgroundColor:(a.vars||a).palette.grey.A100,"@media (hover: none)":{backgroundColor:(a.vars||a).palette.grey[300]},textDecoration:"none"},[`&.${l.focusVisible}`]:{boxShadow:(a.vars||a).shadows[6]},variants:[{props:{size:"small"},style:{width:40,height:40}},{props:{size:"medium"},style:{width:48,height:48}},{props:{variant:"extended"},style:{borderRadius:24,padding:"0 16px",width:"auto",minHeight:"auto",minWidth:48,height:48}},{props:{variant:"extended",size:"small"},style:{width:"auto",padding:"0 8px",borderRadius:17,minWidth:34,height:34}},{props:{variant:"extended",size:"medium"},style:{width:"auto",padding:"0 16px",borderRadius:20,minWidth:40,height:40}},{props:{color:"inherit"},style:{color:"inherit"}}]})),(0,o.A)(({theme:a})=>({variants:[...Object.entries(a.palette).filter((0,p.A)(["dark","contrastText"])).map(([b])=>({props:{color:b},style:{color:(a.vars||a).palette[b].contrastText,backgroundColor:(a.vars||a).palette[b].main,"&:hover":{backgroundColor:(a.vars||a).palette[b].dark,"@media (hover: none)":{backgroundColor:(a.vars||a).palette[b].main}}}}))]})),(0,o.A)(({theme:a})=>({[`&.${l.disabled}`]:{color:(a.vars||a).palette.action.disabled,boxShadow:(a.vars||a).shadows[0],backgroundColor:(a.vars||a).palette.action.disabledBackground}}))),t=d.forwardRef(function(a,b){let c=(0,q.b)({props:a,name:"MuiFab"}),{children:d,className:g,color:i="default",component:j="button",disabled:l=!1,disableFocusRipple:m=!1,focusVisibleClassName:n,size:o="large",variant:p="circular",...t}=c,u={...c,color:i,component:j,disabled:l,disableFocusRipple:m,size:o,variant:p},v=(a=>{let{color:b,variant:c,classes:d,size:e}=a,g={root:["root",c,`size${(0,h.A)(e)}`,"inherit"===b?"colorInherit":b]},i=(0,f.A)(g,k,d);return{...d,...i}})(u);return(0,r.jsx)(s,{className:(0,e.A)(v.root,g),component:j,disabled:l,focusRipple:!m,focusVisibleClassName:(0,e.A)(v.focusVisible,n),ownerState:u,ref:b,...t,classes:v,children:d})})},73032:(a,b,c)=>{c.d(b,{A:()=>d});let d=c(38301).createContext({})},73284:(a,b,c)=>{c.d(b,{A:()=>d});let d=c(38301).createContext(void 0)}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=5150,exports.ids=[5150],exports.modules={1509:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(38301),e=c(23312),f=c(67943),g=c(51939),h=c(75249),i=c(10005);let j=d.forwardRef(function(a,b){let{children:c,container:j,disablePortal:k=!1}=a,[l,m]=d.useState(null),n=(0,f.A)(d.isValidElement(c)?(0,g.A)(c):null,b);return((0,h.A)(()=>{k||m(("function"==typeof j?j():j)||document.body)},[j,k]),(0,h.A)(()=>{if(l&&!k)return(0,i.A)(b,l),()=>{(0,i.A)(b,null)}},[b,l,k]),k)?d.isValidElement(c)?d.cloneElement(c,{ref:n}):c:l?e.createPortal(c,l):l})},4927:(a,b,c)=>{c.d(b,{A:()=>p});var d=c(38301),e=c(74846),f=c(51939),g=c(65823),h=c(60839),i=c(28366),j=c(26636),k=c(21124);function l(a){return`scale(${a}, ${a**2})`}let m={entering:{opacity:1,transform:l(1)},entered:{opacity:1,transform:"none"}},n="undefined"!=typeof navigator&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),o=d.forwardRef(function(a,b){let{addEndListener:c,appear:o=!0,children:p,easing:q,in:r,onEnter:s,onEntered:t,onEntering:u,onExit:v,onExited:w,onExiting:x,style:y,timeout:z="auto",TransitionComponent:A=g.Ay,...B}=a,C=(0,e.A)(),D=d.useRef(),E=(0,h.A)(),F=d.useRef(null),G=(0,j.A)(F,(0,f.A)(p),b),H=a=>b=>{if(a){let c=F.current;void 0===b?a(c):a(c,b)}},I=H(u),J=H((a,b)=>{let c;(0,i.q)(a);let{duration:d,delay:e,easing:f}=(0,i.c)({style:y,timeout:z,easing:q},{mode:"enter"});"auto"===z?D.current=c=E.transitions.getAutoHeightDuration(a.clientHeight):c=d,a.style.transition=[E.transitions.create("opacity",{duration:c,delay:e}),E.transitions.create("transform",{duration:n?c:.666*c,delay:e,easing:f})].join(","),s&&s(a,b)}),K=H(t),L=H(x),M=H(a=>{let b,{duration:c,delay:d,easing:e}=(0,i.c)({style:y,timeout:z,easing:q},{mode:"exit"});"auto"===z?D.current=b=E.transitions.getAutoHeightDuration(a.clientHeight):b=c,a.style.transition=[E.transitions.create("opacity",{duration:b,delay:d}),E.transitions.create("transform",{duration:n?b:.666*b,delay:n?d:d||.333*b,easing:e})].join(","),a.style.opacity=0,a.style.transform=l(.75),v&&v(a)}),N=H(w);return(0,k.jsx)(A,{appear:o,in:r,nodeRef:F,onEnter:J,onEntered:K,onEntering:I,onExit:M,onExited:N,onExiting:L,addEndListener:a=>{"auto"===z&&C.start(D.current||0,a),c&&c(F.current,a)},timeout:"auto"===z?null:z,...B,children:(a,{ownerState:b,...c})=>d.cloneElement(p,{style:{opacity:0,transform:l(.75),visibility:"exited"!==a||r?void 0:"hidden",...m[a],...y,...p.props.style},ref:G,...c})})});o&&(o.muiSupportAuto=!0);let p=o},10005:(a,b,c)=>{c.d(b,{A:()=>d});function d(a,b){"function"==typeof a?a(b):a&&(a.current=b)}},28366:(a,b,c)=>{c.d(b,{c:()=>e,q:()=>d});let d=a=>a.scrollTop;function e(a,b){let{timeout:c,easing:d,style:e={}}=a;return{duration:e.transitionDuration??("number"==typeof c?c:c[b.mode]||0),easing:e.transitionTimingFunction??("object"==typeof d?d[b.mode]:d),delay:e.transitionDelay}}},38404:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(38301);c(21124);let e=d.createContext(),f=()=>d.useContext(e)??!1},41893:(a,b,c)=>{c.d(b,{A:()=>y});var d=c(38301),e=c(43249),f=c(2783),g=c(37489),h=c(11801),i=c(21124);let j=(0,h.A)((0,i.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");var k=c(26636),l=c(6638),m=c(14328),n=c(18168),o=c(68333),p=c(54716),q=c(6636),r=c(29565),s=c(33105);function t(a){return(0,s.Ay)("MuiChip",a)}let u=(0,r.A)("MuiChip",["root","sizeSmall","sizeMedium","colorDefault","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),v=(0,n.Ay)("div",{name:"MuiChip",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a,{color:d,iconColor:e,clickable:f,onDelete:g,size:h,variant:i}=c;return[{[`& .${u.avatar}`]:b.avatar},{[`& .${u.avatar}`]:b[`avatar${(0,l.A)(h)}`]},{[`& .${u.avatar}`]:b[`avatarColor${(0,l.A)(d)}`]},{[`& .${u.icon}`]:b.icon},{[`& .${u.icon}`]:b[`icon${(0,l.A)(h)}`]},{[`& .${u.icon}`]:b[`iconColor${(0,l.A)(e)}`]},{[`& .${u.deleteIcon}`]:b.deleteIcon},{[`& .${u.deleteIcon}`]:b[`deleteIcon${(0,l.A)(h)}`]},{[`& .${u.deleteIcon}`]:b[`deleteIconColor${(0,l.A)(d)}`]},{[`& .${u.deleteIcon}`]:b[`deleteIcon${(0,l.A)(i)}Color${(0,l.A)(d)}`]},b.root,b[`size${(0,l.A)(h)}`],b[`color${(0,l.A)(d)}`],f&&b.clickable,f&&"default"!==d&&b[`clickableColor${(0,l.A)(d)})`],g&&b.deletable,g&&"default"!==d&&b[`deletableColor${(0,l.A)(d)}`],b[i],b[`${i}${(0,l.A)(d)}`]]}})((0,o.A)(({theme:a})=>{let b="light"===a.palette.mode?a.palette.grey[700]:a.palette.grey[300];return{maxWidth:"100%",fontFamily:a.typography.fontFamily,fontSize:a.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(a.vars||a).palette.text.primary,backgroundColor:(a.vars||a).palette.action.selected,borderRadius:16,whiteSpace:"nowrap",transition:a.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${u.disabled}`]:{opacity:(a.vars||a).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${u.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:a.vars?a.vars.palette.Chip.defaultAvatarColor:b,fontSize:a.typography.pxToRem(12)},[`& .${u.avatarColorPrimary}`]:{color:(a.vars||a).palette.primary.contrastText,backgroundColor:(a.vars||a).palette.primary.dark},[`& .${u.avatarColorSecondary}`]:{color:(a.vars||a).palette.secondary.contrastText,backgroundColor:(a.vars||a).palette.secondary.dark},[`& .${u.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:a.typography.pxToRem(10)},[`& .${u.icon}`]:{marginLeft:5,marginRight:-6},[`& .${u.deleteIcon}`]:{WebkitTapHighlightColor:"transparent",color:a.vars?`rgba(${a.vars.palette.text.primaryChannel} / 0.26)`:(0,g.X4)(a.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:a.vars?`rgba(${a.vars.palette.text.primaryChannel} / 0.4)`:(0,g.X4)(a.palette.text.primary,.4)}},variants:[{props:{size:"small"},style:{height:24,[`& .${u.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${u.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(a.palette).filter((0,p.A)(["contrastText"])).map(([b])=>({props:{color:b},style:{backgroundColor:(a.vars||a).palette[b].main,color:(a.vars||a).palette[b].contrastText,[`& .${u.deleteIcon}`]:{color:a.vars?`rgba(${a.vars.palette[b].contrastTextChannel} / 0.7)`:(0,g.X4)(a.palette[b].contrastText,.7),"&:hover, &:active":{color:(a.vars||a).palette[b].contrastText}}}})),{props:a=>a.iconColor===a.color,style:{[`& .${u.icon}`]:{color:a.vars?a.vars.palette.Chip.defaultIconColor:b}}},{props:a=>a.iconColor===a.color&&"default"!==a.color,style:{[`& .${u.icon}`]:{color:"inherit"}}},{props:{onDelete:!0},style:{[`&.${u.focusVisible}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.action.selectedChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.focusOpacity}))`:(0,g.X4)(a.palette.action.selected,a.palette.action.selectedOpacity+a.palette.action.focusOpacity)}}},...Object.entries(a.palette).filter((0,p.A)(["dark"])).map(([b])=>({props:{color:b,onDelete:!0},style:{[`&.${u.focusVisible}`]:{background:(a.vars||a).palette[b].dark}}})),{props:{clickable:!0},style:{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:a.vars?`rgba(${a.vars.palette.action.selectedChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.hoverOpacity}))`:(0,g.X4)(a.palette.action.selected,a.palette.action.selectedOpacity+a.palette.action.hoverOpacity)},[`&.${u.focusVisible}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.action.selectedChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.focusOpacity}))`:(0,g.X4)(a.palette.action.selected,a.palette.action.selectedOpacity+a.palette.action.focusOpacity)},"&:active":{boxShadow:(a.vars||a).shadows[1]}}},...Object.entries(a.palette).filter((0,p.A)(["dark"])).map(([b])=>({props:{color:b,clickable:!0},style:{[`&:hover, &.${u.focusVisible}`]:{backgroundColor:(a.vars||a).palette[b].dark}}})),{props:{variant:"outlined"},style:{backgroundColor:"transparent",border:a.vars?`1px solid ${a.vars.palette.Chip.defaultBorder}`:`1px solid ${"light"===a.palette.mode?a.palette.grey[400]:a.palette.grey[700]}`,[`&.${u.clickable}:hover`]:{backgroundColor:(a.vars||a).palette.action.hover},[`&.${u.focusVisible}`]:{backgroundColor:(a.vars||a).palette.action.focus},[`& .${u.avatar}`]:{marginLeft:4},[`& .${u.avatarSmall}`]:{marginLeft:2},[`& .${u.icon}`]:{marginLeft:4},[`& .${u.iconSmall}`]:{marginLeft:2},[`& .${u.deleteIcon}`]:{marginRight:5},[`& .${u.deleteIconSmall}`]:{marginRight:3}}},...Object.entries(a.palette).filter((0,p.A)()).map(([b])=>({props:{variant:"outlined",color:b},style:{color:(a.vars||a).palette[b].main,border:`1px solid ${a.vars?`rgba(${a.vars.palette[b].mainChannel} / 0.7)`:(0,g.X4)(a.palette[b].main,.7)}`,[`&.${u.clickable}:hover`]:{backgroundColor:a.vars?`rgba(${a.vars.palette[b].mainChannel} / ${a.vars.palette.action.hoverOpacity})`:(0,g.X4)(a.palette[b].main,a.palette.action.hoverOpacity)},[`&.${u.focusVisible}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette[b].mainChannel} / ${a.vars.palette.action.focusOpacity})`:(0,g.X4)(a.palette[b].main,a.palette.action.focusOpacity)},[`& .${u.deleteIcon}`]:{color:a.vars?`rgba(${a.vars.palette[b].mainChannel} / 0.7)`:(0,g.X4)(a.palette[b].main,.7),"&:hover, &:active":{color:(a.vars||a).palette[b].main}}}}))]}})),w=(0,n.Ay)("span",{name:"MuiChip",slot:"Label",overridesResolver:(a,b)=>{let{ownerState:c}=a,{size:d}=c;return[b.label,b[`label${(0,l.A)(d)}`]]}})({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap",variants:[{props:{variant:"outlined"},style:{paddingLeft:11,paddingRight:11}},{props:{size:"small"},style:{paddingLeft:8,paddingRight:8}},{props:{size:"small",variant:"outlined"},style:{paddingLeft:7,paddingRight:7}}]});function x(a){return"Backspace"===a.key||"Delete"===a.key}let y=d.forwardRef(function(a,b){let c=(0,q.b)({props:a,name:"MuiChip"}),{avatar:g,className:h,clickable:n,color:o="default",component:p,deleteIcon:r,disabled:s=!1,icon:u,label:y,onClick:z,onDelete:A,onKeyDown:B,onKeyUp:C,size:D="medium",variant:E="filled",tabIndex:F,skipFocusWhenDisabled:G=!1,...H}=c,I=d.useRef(null),J=(0,k.A)(I,b),K=a=>{a.stopPropagation(),A&&A(a)},L=!1!==n&&!!z||n,M=L||A?m.A:p||"div",N={...c,component:M,disabled:s,size:D,color:o,iconColor:d.isValidElement(u)&&u.props.color||o,onDelete:!!A,clickable:L,variant:E},O=(a=>{let{classes:b,disabled:c,size:d,color:e,iconColor:g,onDelete:h,clickable:i,variant:j}=a,k={root:["root",j,c&&"disabled",`size${(0,l.A)(d)}`,`color${(0,l.A)(e)}`,i&&"clickable",i&&`clickableColor${(0,l.A)(e)}`,h&&"deletable",h&&`deletableColor${(0,l.A)(e)}`,`${j}${(0,l.A)(e)}`],label:["label",`label${(0,l.A)(d)}`],avatar:["avatar",`avatar${(0,l.A)(d)}`,`avatarColor${(0,l.A)(e)}`],icon:["icon",`icon${(0,l.A)(d)}`,`iconColor${(0,l.A)(g)}`],deleteIcon:["deleteIcon",`deleteIcon${(0,l.A)(d)}`,`deleteIconColor${(0,l.A)(e)}`,`deleteIcon${(0,l.A)(j)}Color${(0,l.A)(e)}`]};return(0,f.A)(k,t,b)})(N),P=M===m.A?{component:p||"div",focusVisibleClassName:O.focusVisible,...A&&{disableRipple:!0}}:{},Q=null;A&&(Q=r&&d.isValidElement(r)?d.cloneElement(r,{className:(0,e.A)(r.props.className,O.deleteIcon),onClick:K}):(0,i.jsx)(j,{className:(0,e.A)(O.deleteIcon),onClick:K}));let R=null;g&&d.isValidElement(g)&&(R=d.cloneElement(g,{className:(0,e.A)(O.avatar,g.props.className)}));let S=null;return u&&d.isValidElement(u)&&(S=d.cloneElement(u,{className:(0,e.A)(O.icon,u.props.className)})),(0,i.jsxs)(v,{as:M,className:(0,e.A)(O.root,h),disabled:!!L&&!!s||void 0,onClick:z,onKeyDown:a=>{a.currentTarget===a.target&&x(a)&&a.preventDefault(),B&&B(a)},onKeyUp:a=>{a.currentTarget===a.target&&A&&x(a)&&A(a),C&&C(a)},ref:J,tabIndex:G&&s?-1:F,ownerState:N,...P,...H,children:[R||S,(0,i.jsx)(w,{className:(0,e.A)(O.label),ownerState:N,children:y}),Q]})})},46757:(a,b,c)=>{c.d(b,{A:()=>d});function d(a){return a&&a.ownerDocument||document}},49565:(a,b,c)=>{c.d(b,{A:()=>l});var d=c(38301),e=c(65823),f=c(51939),g=c(60839),h=c(28366),i=c(26636),j=c(21124);let k={entering:{opacity:1},entered:{opacity:1}},l=d.forwardRef(function(a,b){let c=(0,g.A)(),l={enter:c.transitions.duration.enteringScreen,exit:c.transitions.duration.leavingScreen},{addEndListener:m,appear:n=!0,children:o,easing:p,in:q,onEnter:r,onEntered:s,onEntering:t,onExit:u,onExited:v,onExiting:w,style:x,timeout:y=l,TransitionComponent:z=e.Ay,...A}=a,B=d.useRef(null),C=(0,i.A)(B,(0,f.A)(o),b),D=a=>b=>{if(a){let c=B.current;void 0===b?a(c):a(c,b)}},E=D(t),F=D((a,b)=>{(0,h.q)(a);let d=(0,h.c)({style:x,timeout:y,easing:p},{mode:"enter"});a.style.webkitTransition=c.transitions.create("opacity",d),a.style.transition=c.transitions.create("opacity",d),r&&r(a,b)}),G=D(s),H=D(w),I=D(a=>{let b=(0,h.c)({style:x,timeout:y,easing:p},{mode:"exit"});a.style.webkitTransition=c.transitions.create("opacity",b),a.style.transition=c.transitions.create("opacity",b),u&&u(a)}),J=D(v);return(0,j.jsx)(z,{appear:n,in:q,nodeRef:B,onEnter:F,onEntered:G,onEntering:E,onExit:I,onExited:J,onExiting:H,addEndListener:a=>{m&&m(B.current,a)},timeout:y,...A,children:(a,{ownerState:b,...c})=>d.cloneElement(o,{style:{opacity:0,visibility:"exited"!==a||q?void 0:"hidden",...k[a],...x,...o.props.style},ref:C,...c})})})},51939:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(38301);function e(a){return parseInt(d.version,10)>=19?a?.props?.ref||null:a?.ref||null}},55973:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(38301);function e({controlled:a,default:b,name:c,state:e="value"}){let{current:f}=d.useRef(void 0!==a),[g,h]=d.useState(b),i=d.useCallback(a=>{f||h(a)},[]);return[f?a:g,i]}},65603:(a,b,c)=>{c.d(b,{A:()=>d});let d=c(55973).A},65823:(a,b,c)=>{c.d(b,{Ay:()=>s});var d=c(45430),e=c(57188),f=c(38301),g=c.n(f),h=c(23312),i=c.n(h);let j={disabled:!1};var k=c(35153),l="unmounted",m="exited",n="entering",o="entered",p="exiting",q=function(a){function b(b,c){var d,e=a.call(this,b,c)||this,f=c&&!c.isMounting?b.enter:b.appear;return e.appearStatus=null,b.in?f?(d=m,e.appearStatus=n):d=o:d=b.unmountOnExit||b.mountOnEnter?l:m,e.state={status:d},e.nextCallback=null,e}(0,e.A)(b,a),b.getDerivedStateFromProps=function(a,b){return a.in&&b.status===l?{status:m}:null};var c=b.prototype;return c.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},c.componentDidUpdate=function(a){var b=null;if(a!==this.props){var c=this.state.status;this.props.in?c!==n&&c!==o&&(b=n):(c===n||c===o)&&(b=p)}this.updateStatus(!1,b)},c.componentWillUnmount=function(){this.cancelNextCallback()},c.getTimeouts=function(){var a,b,c,d=this.props.timeout;return a=b=c=d,null!=d&&"number"!=typeof d&&(a=d.exit,b=d.enter,c=void 0!==d.appear?d.appear:b),{exit:a,enter:b,appear:c}},c.updateStatus=function(a,b){if(void 0===a&&(a=!1),null!==b)if(this.cancelNextCallback(),b===n){if(this.props.unmountOnExit||this.props.mountOnEnter){var c=this.props.nodeRef?this.props.nodeRef.current:i().findDOMNode(this);c&&c.scrollTop}this.performEnter(a)}else this.performExit();else this.props.unmountOnExit&&this.state.status===m&&this.setState({status:l})},c.performEnter=function(a){var b=this,c=this.props.enter,d=this.context?this.context.isMounting:a,e=this.props.nodeRef?[d]:[i().findDOMNode(this),d],f=e[0],g=e[1],h=this.getTimeouts(),k=d?h.appear:h.enter;if(!a&&!c||j.disabled)return void this.safeSetState({status:o},function(){b.props.onEntered(f)});this.props.onEnter(f,g),this.safeSetState({status:n},function(){b.props.onEntering(f,g),b.onTransitionEnd(k,function(){b.safeSetState({status:o},function(){b.props.onEntered(f,g)})})})},c.performExit=function(){var a=this,b=this.props.exit,c=this.getTimeouts(),d=this.props.nodeRef?void 0:i().findDOMNode(this);if(!b||j.disabled)return void this.safeSetState({status:m},function(){a.props.onExited(d)});this.props.onExit(d),this.safeSetState({status:p},function(){a.props.onExiting(d),a.onTransitionEnd(c.exit,function(){a.safeSetState({status:m},function(){a.props.onExited(d)})})})},c.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},c.safeSetState=function(a,b){b=this.setNextCallback(b),this.setState(a,b)},c.setNextCallback=function(a){var b=this,c=!0;return this.nextCallback=function(d){c&&(c=!1,b.nextCallback=null,a(d))},this.nextCallback.cancel=function(){c=!1},this.nextCallback},c.onTransitionEnd=function(a,b){this.setNextCallback(b);var c=this.props.nodeRef?this.props.nodeRef.current:i().findDOMNode(this),d=null==a&&!this.props.addEndListener;if(!c||d)return void setTimeout(this.nextCallback,0);if(this.props.addEndListener){var e=this.props.nodeRef?[this.nextCallback]:[c,this.nextCallback],f=e[0],g=e[1];this.props.addEndListener(f,g)}null!=a&&setTimeout(this.nextCallback,a)},c.render=function(){var a=this.state.status;if(a===l)return null;var b=this.props,c=b.children,e=(b.in,b.mountOnEnter,b.unmountOnExit,b.appear,b.enter,b.exit,b.timeout,b.addEndListener,b.onEnter,b.onEntering,b.onEntered,b.onExit,b.onExiting,b.onExited,b.nodeRef,(0,d.A)(b,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return g().createElement(k.A.Provider,{value:null},"function"==typeof c?c(a,e):g().cloneElement(g().Children.only(c),e))},b}(g().Component);function r(){}q.contextType=k.A,q.propTypes={},q.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:r,onEntering:r,onEntered:r,onExit:r,onExiting:r,onExited:r},q.UNMOUNTED=l,q.EXITED=m,q.ENTERING=n,q.ENTERED=o,q.EXITING=p;let s=q},91059:(a,b,c)=>{c.d(b,{A:()=>p});var d=c(38301),e=c(43249),f=c(2783),g=c(37489),h=c(18168),i=c(68333),j=c(6636),k=c(93895),l=c(21124);let m=(0,h.Ay)("div",{name:"MuiDivider",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.absolute&&b.absolute,b[c.variant],c.light&&b.light,"vertical"===c.orientation&&b.vertical,c.flexItem&&b.flexItem,c.children&&b.withChildren,c.children&&"vertical"===c.orientation&&b.withChildrenVertical,"right"===c.textAlign&&"vertical"!==c.orientation&&b.textAlignRight,"left"===c.textAlign&&"vertical"!==c.orientation&&b.textAlignLeft]}})((0,i.A)(({theme:a})=>({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(a.vars||a).palette.divider,borderBottomWidth:"thin",variants:[{props:{absolute:!0},style:{position:"absolute",bottom:0,left:0,width:"100%"}},{props:{light:!0},style:{borderColor:a.vars?`rgba(${a.vars.palette.dividerChannel} / 0.08)`:(0,g.X4)(a.palette.divider,.08)}},{props:{variant:"inset"},style:{marginLeft:72}},{props:{variant:"middle",orientation:"horizontal"},style:{marginLeft:a.spacing(2),marginRight:a.spacing(2)}},{props:{variant:"middle",orientation:"vertical"},style:{marginTop:a.spacing(1),marginBottom:a.spacing(1)}},{props:{orientation:"vertical"},style:{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"}},{props:{flexItem:!0},style:{alignSelf:"stretch",height:"auto"}},{props:({ownerState:a})=>!!a.children,style:{display:"flex",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}}},{props:({ownerState:a})=>a.children&&"vertical"!==a.orientation,style:{"&::before, &::after":{width:"100%",borderTop:`thin solid ${(a.vars||a).palette.divider}`,borderTopStyle:"inherit"}}},{props:({ownerState:a})=>"vertical"===a.orientation&&a.children,style:{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:`thin solid ${(a.vars||a).palette.divider}`,borderLeftStyle:"inherit"}}},{props:({ownerState:a})=>"right"===a.textAlign&&"vertical"!==a.orientation,style:{"&::before":{width:"90%"},"&::after":{width:"10%"}}},{props:({ownerState:a})=>"left"===a.textAlign&&"vertical"!==a.orientation,style:{"&::before":{width:"10%"},"&::after":{width:"90%"}}}]}))),n=(0,h.Ay)("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.wrapper,"vertical"===c.orientation&&b.wrapperVertical]}})((0,i.A)(({theme:a})=>({display:"inline-block",paddingLeft:`calc(${a.spacing(1)} * 1.2)`,paddingRight:`calc(${a.spacing(1)} * 1.2)`,whiteSpace:"nowrap",variants:[{props:{orientation:"vertical"},style:{paddingTop:`calc(${a.spacing(1)} * 1.2)`,paddingBottom:`calc(${a.spacing(1)} * 1.2)`}}]}))),o=d.forwardRef(function(a,b){let c=(0,j.b)({props:a,name:"MuiDivider"}),{absolute:d=!1,children:g,className:h,orientation:i="horizontal",component:o=g||"vertical"===i?"div":"hr",flexItem:p=!1,light:q=!1,role:r="hr"!==o?"separator":void 0,textAlign:s="center",variant:t="fullWidth",...u}=c,v={...c,absolute:d,component:o,flexItem:p,light:q,orientation:i,role:r,textAlign:s,variant:t},w=(a=>{let{absolute:b,children:c,classes:d,flexItem:e,light:g,orientation:h,textAlign:i,variant:j}=a;return(0,f.A)({root:["root",b&&"absolute",j,g&&"light","vertical"===h&&"vertical",e&&"flexItem",c&&"withChildren",c&&"vertical"===h&&"withChildrenVertical","right"===i&&"vertical"!==h&&"textAlignRight","left"===i&&"vertical"!==h&&"textAlignLeft"],wrapper:["wrapper","vertical"===h&&"wrapperVertical"]},k.K,d)})(v);return(0,l.jsx)(m,{as:o,className:(0,e.A)(w.root,h),role:r,ref:b,ownerState:v,"aria-orientation":"separator"===r&&("hr"!==o||"vertical"===i)?i:void 0,...u,children:g?(0,l.jsx)(n,{className:w.wrapper,ownerState:v,children:g}):null})});o&&(o.muiSkipListHighlight=!0);let p=o},93895:(a,b,c)=>{c.d(b,{A:()=>g,K:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiDivider",a)}let g=(0,d.A)("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"])},94633:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(67943),e=c(99829),f=c(76240),g=c(66469);let h=function(a){let{elementType:b,externalSlotProps:c,ownerState:h,skipResolvingSlotProps:i=!1,...j}=a,k=i?{}:(0,g.A)(c,h),{props:l,internalRef:m}=(0,f.A)({...j,externalSlotProps:k}),n=(0,d.A)(m,k?.ref,a.additionalProps?.ref);return(0,e.A)(b,{...l,ref:n},h)}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=5561,exports.ids=[5561],exports.modules={55561:(a,b,c)=>{c.d(b,{A:()=>s});var d=c(21124),e=c(38301),f=c(81637),g=c(8521),h=c(79515),i=c(88745),j=c(53773),k=c(41893),l=c(68730),m=c(22042),n=c(34304),o=c(37674),p=c(91059),q=c(75550);let r=(0,c(19815).h)("frontend/components/Settings/RegistryAccountSettings");function s(){let[a,b]=(0,e.useState)(null),[c,s]=(0,e.useState)(!0),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)("login"),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(""),[F,G]=(0,e.useState)(""),[H,I]=(0,e.useState)(""),J=(0,e.useCallback)(async()=>{try{let[a,c]=await Promise.all([q.f.getStatus(),q.f.getSettings()]);b(a),I(c.defaultUrl),G(c.usingDefault?"":c.baseUrl)}catch(a){r.warn("Failed to load registry account status",a)}finally{s(!1)}},[]),K=async()=>{u(!0),w(null);try{let a="signup"===x?await q.f.signup(z.trim(),B,D.trim()):await q.f.login(z.trim(),B);"authenticated"===a.status?(w({type:"success",text:"Signed in to the package registry."}),C("")):"confirmation_required"===a.status?(w({type:"info",text:a.message||"Check your inbox to confirm your email."}),C("")):w({type:"error",text:a.message||"Authentication failed."}),a.account?b(a.account):await J()}catch(a){w({type:"error",text:a instanceof Error?a.message:"Authentication failed."})}finally{u(!1)}},L=async()=>{u(!0),w(null);try{await q.f.logout(),await J(),w({type:"success",text:"Logged out."})}catch(a){w({type:"error",text:a instanceof Error?a.message:"Failed to log out."})}finally{u(!1)}},M=async a=>{u(!0),w(null);try{let{authorizationUrl:b}=await q.f.beginOAuth(a);window.location.assign(b)}catch(a){w({type:"error",text:a instanceof Error?a.message:"Failed to start OAuth sign-in."}),u(!1)}},N=async()=>{u(!0),w(null);try{let a=await q.f.resendConfirmation();w(a.success?{type:"success",text:"Confirmation email sent."}:{type:"error",text:a.message||"Failed to resend confirmation."})}finally{u(!1)}},O=async()=>{let a=z.trim();if(!a)return void w({type:"info",text:"Enter your account email above, then tap “Forgot password?”."});u(!0),w(null);try{await q.f.requestPasswordReset(a),w({type:"info",text:"If an account exists for that email, a password-reset link is on its way. Follow the link to set a new password."})}catch(a){w({type:"error",text:a instanceof Error?a.message:"Failed to request a password reset."})}finally{u(!1)}},P=async()=>{u(!0),w(null);try{let a=await q.f.saveSettings(F.trim());w(a.success?{type:"success",text:"Registry URL saved."}:{type:"error",text:a.message||"Invalid registry URL."})}finally{u(!1)}};if(c)return(0,d.jsx)(f.default,{sx:{display:"flex",justifyContent:"center",p:3},children:(0,d.jsx)(g.default,{size:28})});let Q=!!a?.signedIn,R=!!(a?.email&&!Q&&a&&!a.isConfirmed);return(0,d.jsxs)(f.default,{sx:{width:"100%"},children:[(0,d.jsx)(h.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Sign in to the FLUJO package registry to publish packages. Browsing and installing packages does not require an account — only publishing does, and your email must be confirmed first. Your registry tokens are encrypted at rest and never shown here."}),v&&(0,d.jsx)(i.A,{severity:v.type,sx:{mb:2},onClose:()=>w(null),children:v.text}),Q?(0,d.jsxs)(j.A,{spacing:2,children:[(0,d.jsxs)(j.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,d.jsx)(h.default,{variant:"subtitle1",children:a?.email}),a?.publisherHandle&&(0,d.jsx)(k.A,{size:"small",label:`@${a.publisherHandle}`}),a?.isConfirmed?(0,d.jsx)(k.A,{size:"small",color:"success",label:"Confirmed"}):(0,d.jsx)(k.A,{size:"small",color:"warning",label:"Unconfirmed"})]}),(0,d.jsx)(f.default,{children:(0,d.jsx)(l.A,{variant:"outlined",onClick:L,disabled:t,children:"Log out"})})]}):R?(0,d.jsxs)(j.A,{spacing:2,children:[(0,d.jsxs)(i.A,{severity:"info",children:["We sent a confirmation link to ",(0,d.jsx)("strong",{children:a?.email}),". Confirm your email, then log in to start publishing."]}),(0,d.jsxs)(j.A,{direction:"row",spacing:1,children:[(0,d.jsx)(l.A,{variant:"outlined",onClick:N,disabled:t,children:"Resend confirmation email"}),(0,d.jsx)(l.A,{onClick:L,disabled:t,children:"Use a different account"})]})]}):(0,d.jsxs)(j.A,{spacing:2,children:[(0,d.jsxs)(m.A,{value:x,onChange:(a,b)=>y(b),children:[(0,d.jsx)(n.A,{value:"login",label:"Log in"}),(0,d.jsx)(n.A,{value:"signup",label:"Sign up"})]}),(0,d.jsx)(o.A,{label:"Email",type:"email",value:z,onChange:a=>A(a.target.value),fullWidth:!0,autoComplete:"username"}),(0,d.jsx)(o.A,{label:"Password",type:"password",value:B,onChange:a=>C(a.target.value),fullWidth:!0,autoComplete:"signup"===x?"new-password":"current-password"}),"signup"===x&&(0,d.jsx)(o.A,{label:"Publisher handle",value:D,onChange:a=>E(a.target.value),fullWidth:!0,autoComplete:"username",helperText:"A unique handle for publishing packages, e.g. your-name"}),(0,d.jsx)(f.default,{children:(0,d.jsx)(l.A,{variant:"contained",onClick:K,disabled:t||!z.trim()||!B||"signup"===x&&!D.trim(),children:"signup"===x?"Sign up":"Log in"})}),"login"===x&&(0,d.jsx)(f.default,{children:(0,d.jsx)(l.A,{variant:"text",size:"small",onClick:O,disabled:t,sx:{textTransform:"none",px:0},children:"Forgot password?"})}),(0,d.jsx)(p.A,{children:"or"}),(0,d.jsxs)(j.A,{direction:"row",spacing:1,flexWrap:"wrap",useFlexGap:!0,children:[(0,d.jsx)(l.A,{variant:"outlined",onClick:()=>M("github"),disabled:t,children:"Continue with GitHub"}),(0,d.jsx)(l.A,{variant:"outlined",onClick:()=>M("google"),disabled:t,children:"Continue with Google"})]})]}),(0,d.jsx)(p.A,{sx:{my:3}}),(0,d.jsx)(h.default,{variant:"subtitle2",gutterBottom:!0,children:"Registry URL"}),(0,d.jsxs)(h.default,{variant:"body2",color:"text.secondary",sx:{mb:1},children:["Leave blank to use the default (",H,")."]}),(0,d.jsxs)(j.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,d.jsx)(o.A,{size:"small",placeholder:H,value:F,onChange:a=>G(a.target.value),sx:{minWidth:320}}),(0,d.jsx)(l.A,{variant:"outlined",onClick:P,disabled:t,children:"Save"})]})]})}},75550:(a,b,c)=>{c.d(b,{f:()=>e,p:()=>d}),(0,c(19815).h)("frontend/services/registry");let d=()=>{throw Error("RegistryService can only be used in browser environment")},e=new Proxy({},{get(a,b){let c=d(),e=c[b];return"function"==typeof e?e.bind(c):e}})}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=5705,exports.ids=[5705],exports.modules={423:(a,b,c)=>{c.d(b,{A:()=>s});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(68333),i=c(6636),j=c(29565),k=c(33105);function l(a){return(0,k.Ay)("MuiCardActionArea",a)}let m=(0,j.A)("MuiCardActionArea",["root","focusVisible","focusHighlight"]);var n=c(14328),o=c(20385),p=c(21124);let q=(0,g.Ay)(n.A,{name:"MuiCardActionArea",slot:"Root",overridesResolver:(a,b)=>b.root})((0,h.A)(({theme:a})=>({display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%",[`&:hover .${m.focusHighlight}`]:{opacity:(a.vars||a).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}},[`&.${m.focusVisible} .${m.focusHighlight}`]:{opacity:(a.vars||a).palette.action.focusOpacity}}))),r=(0,g.Ay)("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:(a,b)=>b.focusHighlight})((0,h.A)(({theme:a})=>({overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:a.transitions.create("opacity",{duration:a.transitions.duration.short})}))),s=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiCardActionArea"}),{children:d,className:g,focusVisibleClassName:h,slots:j={},slotProps:k={},...m}=c,n=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"],focusHighlight:["focusHighlight"]},l,b)})(c),s={slots:j,slotProps:k},[t,u]=(0,o.A)("root",{elementType:q,externalForwardedProps:{...s,...m},shouldForwardComponentProp:!0,ownerState:c,ref:b,className:(0,e.A)(n.root,g),additionalProps:{focusVisibleClassName:(0,e.A)(h,n.focusVisible)}}),[v,w]=(0,o.A)("focusHighlight",{elementType:r,externalForwardedProps:s,ownerState:c,ref:b,className:n.focusHighlight});return(0,p.jsxs)(t,{...u,children:[d,(0,p.jsx)(v,{...w})]})})},27114:(a,b,c)=>{c.d(b,{A:()=>n});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(29565),j=c(33105);function k(a){return(0,j.Ay)("MuiCardContent",a)}(0,i.A)("MuiCardContent",["root"]);var l=c(21124);let m=(0,g.Ay)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(a,b)=>b.root})({padding:16,"&:last-child":{paddingBottom:24}}),n=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiCardContent"}),{className:d,component:g="div",...i}=c,j={...c,component:g},n=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"]},k,b)})(j);return(0,l.jsx)(m,{as:g,className:(0,e.A)(n.root,d),ownerState:j,ref:b,...i})})},30818:(a,b,c)=>{c.d(b,{A:()=>o});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(54573),j=c(29565),k=c(33105);function l(a){return(0,k.Ay)("MuiCard",a)}(0,j.A)("MuiCard",["root"]);var m=c(21124);let n=(0,g.Ay)(i.A,{name:"MuiCard",slot:"Root",overridesResolver:(a,b)=>b.root})({overflow:"hidden"}),o=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiCard"}),{className:d,raised:g=!1,...i}=c,j={...c,raised:g},k=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"]},l,b)})(j);return(0,m.jsx)(n,{className:(0,e.A)(k.root,d),elevation:g?8:void 0,ref:b,ownerState:j,...i})})},38313:(a,b,c)=>{c.d(b,{A:()=>g,f:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiListItemIcon",a)}let g=(0,d.A)("MuiListItemIcon",["root","alignItemsFlexStart"])},40973:(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:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"}),"Search")},50553:(a,b,c)=>{c.d(b,{A:()=>n});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(68333),i=c(6636),j=c(38313),k=c(55470),l=c(21124);let m=(0,g.Ay)("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,"flex-start"===c.alignItems&&b.alignItemsFlexStart]}})((0,h.A)(({theme:a})=>({minWidth:56,color:(a.vars||a).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}))),n=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiListItemIcon"}),{className:g,...h}=c,n=d.useContext(k.A),o={...c,alignItems:n.alignItems},p=(a=>{let{alignItems:b,classes:c}=a;return(0,f.A)({root:["root","flex-start"===b&&"alignItemsFlexStart"]},j.f,c)})(o);return(0,l.jsx)(m,{className:(0,e.A)(p.root,g),ownerState:o,ref:b,...h})})},76345:(a,b,c)=>{c.d(b,{A:()=>g,b:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiListItemText",a)}let g=(0,d.A)("MuiListItemText",["root","multiline","dense","inset","primary","secondary"])},84233:(a,b,c)=>{c.d(b,{A:()=>p});var d=c(38301),e=c(43249),f=c(2783),g=c(29071),h=c(79515),i=c(55470),j=c(18168),k=c(6636),l=c(76345),m=c(20385),n=c(21124);let o=(0,j.Ay)("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[{[`& .${l.A.primary}`]:b.primary},{[`& .${l.A.secondary}`]:b.secondary},b.root,c.inset&&b.inset,c.primary&&c.secondary&&b.multiline,c.dense&&b.dense]}})({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4,[`.${g.A.root}:where(& .${l.A.primary})`]:{display:"block"},[`.${g.A.root}:where(& .${l.A.secondary})`]:{display:"block"},variants:[{props:({ownerState:a})=>a.primary&&a.secondary,style:{marginTop:6,marginBottom:6}},{props:({ownerState:a})=>a.inset,style:{paddingLeft:56}}]}),p=d.forwardRef(function(a,b){let c=(0,k.b)({props:a,name:"MuiListItemText"}),{children:g,className:j,disableTypography:p=!1,inset:q=!1,primary:r,primaryTypographyProps:s,secondary:t,secondaryTypographyProps:u,slots:v={},slotProps:w={},...x}=c,{dense:y}=d.useContext(i.A),z=null!=r?r:g,A=t,B={...c,disableTypography:p,inset:q,primary:!!z,secondary:!!A,dense:y},C=(a=>{let{classes:b,inset:c,primary:d,secondary:e,dense:g}=a;return(0,f.A)({root:["root",c&&"inset",g&&"dense",d&&e&&"multiline"],primary:["primary"],secondary:["secondary"]},l.b,b)})(B),D={slots:v,slotProps:{primary:s,secondary:u,...w}},[E,F]=(0,m.A)("root",{className:(0,e.A)(C.root,j),elementType:o,externalForwardedProps:{...D,...x},ownerState:B,ref:b}),[G,H]=(0,m.A)("primary",{className:C.primary,elementType:h.default,externalForwardedProps:D,ownerState:B}),[I,J]=(0,m.A)("secondary",{className:C.secondary,elementType:h.default,externalForwardedProps:D,ownerState:B});return null==z||z.type===h.default||p||(z=(0,n.jsx)(G,{variant:y?"body2":"body1",component:H?.variant?void 0:"span",...H,children:z})),null==A||A.type===h.default||p||(A=(0,n.jsx)(I,{variant:"body2",color:"textSecondary",...J,children:A})),(0,n.jsxs)(E,{...F,children:[z,A]})})},94367:(a,b,c)=>{c.d(b,{A:()=>y});var d=c(38301),e=c(43249),f=c(2783),g=c(37489),h=c(41126),i=c(18168),j=c(68333),k=c(6636),l=c(55470),m=c(14328),n=c(14758),o=c(26636),p=c(93895),q=c(38313),r=c(76345),s=c(29565),t=c(33105);function u(a){return(0,t.Ay)("MuiMenuItem",a)}let v=(0,s.A)("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]);var w=c(21124);let x=(0,i.Ay)(m.A,{shouldForwardProp:a=>(0,h.A)(a)||"classes"===a,name:"MuiMenuItem",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.dense&&b.dense,c.divider&&b.divider,!c.disableGutters&&b.gutters]}})((0,j.A)(({theme:a})=>({...a.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(a.vars||a).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${v.selected}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity),[`&.${v.focusVisible}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.focusOpacity}))`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity+a.palette.action.focusOpacity)}},[`&.${v.selected}:hover`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.hoverOpacity}))`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity+a.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,g.X4)(a.palette.primary.main,a.palette.action.selectedOpacity)}},[`&.${v.focusVisible}`]:{backgroundColor:(a.vars||a).palette.action.focus},[`&.${v.disabled}`]:{opacity:(a.vars||a).palette.action.disabledOpacity},[`& + .${p.A.root}`]:{marginTop:a.spacing(1),marginBottom:a.spacing(1)},[`& + .${p.A.inset}`]:{marginLeft:52},[`& .${r.A.root}`]:{marginTop:0,marginBottom:0},[`& .${r.A.inset}`]:{paddingLeft:36},[`& .${q.A.root}`]:{minWidth:36},variants:[{props:({ownerState:a})=>!a.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:a})=>a.divider,style:{borderBottom:`1px solid ${(a.vars||a).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:a})=>!a.dense,style:{[a.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:a})=>a.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...a.typography.body2,[`& .${q.A.root} svg`]:{fontSize:"1.25rem"}}}]}))),y=d.forwardRef(function(a,b){let c,g=(0,k.b)({props:a,name:"MuiMenuItem"}),{autoFocus:h=!1,component:i="li",dense:j=!1,divider:m=!1,disableGutters:p=!1,focusVisibleClassName:q,role:r="menuitem",tabIndex:s,className:t,...v}=g,y=d.useContext(l.A),z=d.useMemo(()=>({dense:j||y.dense||!1,disableGutters:p}),[y.dense,j,p]),A=d.useRef(null);(0,n.A)(()=>{h&&A.current&&A.current.focus()},[h]);let B={...g,dense:z.dense,divider:m,disableGutters:p},C=(a=>{let{disabled:b,dense:c,divider:d,disableGutters:e,selected:g,classes:h}=a,i=(0,f.A)({root:["root",c&&"dense",b&&"disabled",!e&&"gutters",d&&"divider",g&&"selected"]},u,h);return{...h,...i}})(g),D=(0,o.A)(A,b);return g.disabled||(c=void 0!==s?s:-1),(0,w.jsx)(l.A.Provider,{value:z,children:(0,w.jsx)(x,{ref:D,role:r,tabIndex:c,component:i,focusVisibleClassName:(0,e.A)(C.focusVisible,q),className:(0,e.A)(C.root,t),...v,ownerState:B,classes:C})})})}};
|