flujo-ai 3.28.0 → 3.30.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 +481 -464
- package/.next/app-path-routes-manifest.json +20 -17
- package/.next/build-manifest.json +6 -6
- package/.next/prerender-manifest.json +30 -30
- package/.next/react-loadable-manifest.json +7 -6
- package/.next/required-server-files.json +4 -4
- package/.next/routes-manifest.json +8 -0
- package/.next/server/app/_not-found/page.js +4 -4
- package/.next/server/app/_not-found/page.js.nft.json +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 +3 -3
- 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/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 +2 -2
- 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.js +2 -1
- package/.next/server/app/api/local-models/capability/route.js.nft.json +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.js +2 -1
- package/.next/server/app/api/local-models/pull/route.js.nft.json +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.js +2 -2
- 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 -0
- package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/search/route.js +1 -0
- package/.next/server/app/api/packages/search/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -0
- 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/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/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/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 +9 -9
- 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 +4 -4
- package/.next/server/app/docs/page.js +5 -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 +4 -4
- package/.next/server/app/executions/page.js +2 -39
- package/.next/server/app/executions/page.js.nft.json +1 -1
- package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/executions.html +1 -1
- package/.next/server/app/executions.rsc +4 -4
- package/.next/server/app/flows/page.js +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 +4 -4
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/mcp/page.js +11 -11
- 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 +4 -4
- 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 +4 -4
- package/.next/server/app/page.js +3 -3
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +2 -2
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +4 -4
- 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 +4 -4
- 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 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.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 +4 -4
- 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 +4 -4
- package/.next/server/app-paths-manifest.json +20 -17
- package/.next/server/chunks/1114.js +1 -1
- package/.next/server/chunks/1226.js +1 -1
- package/.next/server/chunks/1314.js +1 -1
- package/.next/server/chunks/{6529.js → 1578.js} +2 -2
- package/.next/server/chunks/1634.js +1 -0
- package/.next/server/chunks/166.js +5 -5
- package/.next/server/chunks/1690.js +1 -0
- package/.next/server/chunks/2180.js +1 -0
- package/.next/server/chunks/227.js +2 -2
- package/.next/server/chunks/2273.js +2 -0
- package/.next/server/chunks/237.js +1 -0
- package/.next/server/chunks/2695.js +2 -2
- package/.next/server/chunks/2859.js +1 -1
- package/.next/server/chunks/2866.js +2 -0
- package/.next/server/chunks/{7674.js → 3030.js} +1 -1
- package/.next/server/chunks/3128.js +4 -4
- package/.next/server/chunks/{8730.js → 3489.js} +1 -1
- package/.next/server/chunks/3570.js +228 -105
- package/.next/server/chunks/3629.js +1 -1
- package/.next/server/chunks/3912.js +2 -0
- package/.next/server/chunks/3984.js +4 -4
- package/.next/server/chunks/4265.js +1 -1
- package/.next/server/chunks/4366.js +2 -0
- package/.next/server/chunks/4551.js +6 -0
- package/.next/server/chunks/4566.js +6 -0
- package/.next/server/chunks/4671.js +1 -1
- package/.next/server/chunks/4681.js +1 -1
- package/.next/server/chunks/4685.js +1 -0
- package/.next/server/chunks/4771.js +2 -2
- package/.next/server/chunks/4961.js +2 -0
- package/.next/server/chunks/5040.js +53 -0
- package/.next/server/chunks/5067.js +1 -1
- package/.next/server/chunks/544.js +135 -0
- package/.next/server/chunks/5463.js +1 -1
- package/.next/server/chunks/5544.js +5 -5
- package/.next/server/chunks/5548.js +62 -0
- package/.next/server/chunks/5561.js +1 -0
- package/.next/server/chunks/5705.js +1 -0
- package/.next/server/chunks/5708.js +1 -1
- package/.next/server/chunks/5829.js +1 -0
- package/.next/server/chunks/5863.js +37 -0
- package/.next/server/chunks/5880.js +1 -1
- package/.next/server/chunks/6034.js +77 -0
- package/.next/server/chunks/6226.js +6 -0
- package/.next/server/chunks/6404.js +2 -0
- package/.next/server/chunks/6432.js +1 -0
- package/.next/server/chunks/6496.js +1 -0
- package/.next/server/chunks/6793.js +1 -0
- package/.next/server/chunks/694.js +3 -0
- package/.next/server/chunks/701.js +1 -1
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7579.js +4 -4
- package/.next/server/chunks/7634.js +4 -0
- package/.next/server/chunks/7724.js +1 -0
- package/.next/server/chunks/7821.js +1 -1
- package/.next/server/chunks/793.js +15 -5
- package/.next/server/chunks/7969.js +1 -0
- package/.next/server/chunks/{6537.js → 8001.js} +1 -1
- package/.next/server/chunks/8034.js +1 -0
- package/.next/server/chunks/8092.js +1 -0
- package/.next/server/chunks/{8568.js → 8192.js} +1 -1
- package/.next/server/chunks/826.js +2 -0
- package/.next/server/chunks/8298.js +1 -0
- package/.next/server/chunks/8321.js +1 -0
- package/.next/server/chunks/8356.js +1 -0
- package/.next/server/chunks/8366.js +90 -0
- package/.next/server/chunks/8387.js +1 -1
- package/.next/server/chunks/848.js +39 -0
- package/.next/server/chunks/8615.js +1 -0
- package/.next/server/chunks/8645.js +2 -0
- package/.next/server/chunks/8739.js +1 -1
- package/.next/server/chunks/8851.js +1 -0
- package/.next/server/chunks/9174.js +1 -0
- package/.next/server/chunks/9313.js +1 -0
- package/.next/server/chunks/94.js +1 -1
- package/.next/server/chunks/9406.js +2 -2
- package/.next/server/chunks/9509.js +2 -2
- package/.next/server/chunks/9537.js +39 -0
- package/.next/server/chunks/9576.js +2 -0
- package/.next/server/chunks/9671.js +1 -1
- package/.next/server/chunks/9724.js +16 -6
- package/.next/server/chunks/9857.js +1 -0
- package/.next/server/chunks/{3298.js → 9868.js} +2 -2
- package/.next/server/chunks/9957.js +1 -0
- package/.next/server/chunks/9983.js +2 -0
- package/.next/server/edge-instrumentation.js.map +1 -1
- package/.next/server/functions-config-manifest.json +2 -2
- 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/server/src/middleware.js +2 -2
- package/.next/server/src/middleware.js.map +1 -1
- package/.next/static/A9jP2ydtYbqx-IayWP2Sg/_buildManifest.js +1 -0
- package/.next/static/chunks/1496-d478bce7d7c85080.js +1 -0
- package/.next/static/chunks/1572-b663a83bba28a0a1.js +8 -0
- package/.next/static/chunks/1641-e5ff8f112da0a335.js +1 -0
- package/.next/static/chunks/1988-bd73f26184e930c1.js +1 -0
- package/.next/static/chunks/2266-d812473724cc6643.js +1 -0
- package/.next/static/chunks/{8345.bc5534ec13abc9ee.js → 2969.eb9ff8cd2a5034b0.js} +1 -1
- package/.next/static/chunks/3089.a0856f8093b90939.js +1 -0
- package/.next/static/chunks/{2005-f9d38c39f10c321f.js → 3189-fa8ec6d719d5e72b.js} +1 -1
- package/.next/static/chunks/3452-a639f121f2953f50.js +62 -0
- package/.next/static/chunks/3560-5bdceef09b50e1c3.js +1 -0
- package/.next/static/chunks/3659-0ab9580d5ee5deea.js +1 -0
- package/.next/static/chunks/3672-cd86ace43288da79.js +1 -0
- package/.next/static/chunks/3711-0050bb4d345c2c9c.js +1 -0
- package/.next/static/chunks/4147-20897d83b3cd3978.js +39 -0
- package/.next/static/chunks/435-17c79f3b9f8dd38d.js +1 -0
- package/.next/static/chunks/454.5fc2f8eef98483e3.js +1 -0
- package/.next/static/chunks/469-1f043fe082d9f475.js +1 -0
- package/.next/static/chunks/4740-62814d07b2b7f760.js +1 -0
- package/.next/static/chunks/5418-45aa7e646ad024be.js +1 -0
- package/.next/static/chunks/5441-cb0c31de8bce65c3.js +1 -0
- package/.next/static/chunks/6404-86615a5f5ce5c00f.js +1 -0
- package/.next/static/chunks/7445-d8a8be6e451c522e.js +1 -0
- package/.next/static/chunks/{3827-9e9a6e11ef808d90.js → 8041-05830e887c133085.js} +1 -1
- package/.next/static/chunks/812-dfe7ba07ddb7a565.js +1 -0
- package/.next/static/chunks/8404-14ef0345dc401ac5.js +1 -0
- package/.next/static/chunks/8678-c6c6be2672f337f6.js +1 -0
- package/.next/static/chunks/8855-f802599c4af81cca.js +1 -0
- package/.next/static/chunks/9562-5494feecd8c6f7a3.js +1 -0
- package/.next/static/chunks/9581-6d2523fd68a5e3c4.js +1 -0
- package/.next/static/chunks/app/_not-found/page-26055690a2426e22.js +1 -0
- package/.next/static/chunks/app/api/approvals/[id]/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/approvals/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/backup/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/browse/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/bugs/enhance/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/cwd/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/encryption/secure/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/env/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/flow/compile/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/flow/generate/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/flow/improve/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/flow/quick-chat/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/flow/repair/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/flow/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/git/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/init/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/local-models/capability/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/local-models/pull/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/local-models/suggest/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/app-sandbox/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/cancel/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/oauth-capability/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/model/[id]/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/model/provider/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/model/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/model/test/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/oauth/callback/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/oauth/initiate/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/oauth/reset/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/packages/build/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/packages/derive-secrets/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/packages/install/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/packages/install/status/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/packages/installed/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/packages/resolve/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/packages/scan-targets/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/packages/search/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/packages/uninstall/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/resend/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/reset/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/callback/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/initiate/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/registry/publish/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/registry/settings/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/restore/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/runs/active/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/storage/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/update/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/waves/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[id]/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/chat/page-558edb21321a32d0.js +1 -0
- package/.next/static/chunks/app/docs/{page-250523af44e96120.js → page-fc30f613607b8a26.js} +1 -1
- package/.next/static/chunks/app/executions/page-e71689c7256af1e8.js +1 -0
- package/.next/static/chunks/app/flows/page-e90e8d7b4c1bd1c8.js +1 -0
- package/.next/static/chunks/app/layout-038b35b382eef11d.js +1 -0
- package/.next/static/chunks/app/mcp/page-6041156fc67ef361.js +1 -0
- package/.next/static/chunks/app/mcp-flows/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/mcp-proxy/[server]/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/models/{error-5732fbb053e182c5.js → error-1718b538d6967e56.js} +1 -1
- package/.next/static/chunks/app/models/{loading-57d1c02d0817fc47.js → loading-1687ae86584f5b1b.js} +1 -1
- package/.next/static/chunks/app/models/page-d16f2721e7a93b43.js +1 -0
- package/.next/static/chunks/app/packages/page-c6b0e7aa95bc1064.js +1 -0
- package/.next/static/chunks/app/page-5c7fccd019942d46.js +1 -0
- package/.next/static/chunks/app/settings/page-fb336bb049bab72a.js +1 -0
- package/.next/static/chunks/app/v1/chat/completions/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/chat/events/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/v1/models/route-1a4c9e7a416ccbcf.js +1 -0
- package/.next/static/chunks/app/waves/page-3cf4b47b12662196.js +1 -0
- package/.next/static/chunks/{main-app-faff38c77cb00119.js → main-app-2de821d2899bb841.js} +1 -1
- package/.next/static/chunks/webpack-2d8e0c13c0b865fe.js +1 -0
- package/.next/static/css/30253fcfa8035221.css +1 -0
- package/.next/trace +10 -10
- package/.next/types/app/api/approvals/[id]/route.ts +1 -1
- package/.next/types/app/api/approvals/route.ts +1 -1
- package/.next/types/app/api/backup/route.ts +1 -1
- package/.next/types/app/api/browse/route.ts +1 -1
- package/.next/types/app/api/bugs/enhance/route.ts +1 -1
- package/.next/types/app/api/cwd/route.ts +1 -1
- package/.next/types/app/api/encryption/secure/route.ts +1 -1
- package/.next/types/app/api/env/route.ts +1 -1
- package/.next/types/app/api/flow/[id]/route.ts +1 -1
- package/.next/types/app/api/flow/[id]/versions/[versionId]/route.ts +1 -1
- package/.next/types/app/api/flow/[id]/versions/route.ts +1 -1
- package/.next/types/app/api/flow/compile/route.ts +1 -1
- package/.next/types/app/api/flow/generate/route.ts +1 -1
- package/.next/types/app/api/flow/improve/route.ts +1 -1
- package/.next/types/app/api/flow/prompt-renderer/route.ts +1 -1
- package/.next/types/app/api/flow/quick-chat/route.ts +1 -1
- package/.next/types/app/api/flow/repair/route.ts +1 -1
- package/.next/types/app/api/flow/route.ts +1 -1
- package/.next/types/app/api/git/route.ts +1 -1
- package/.next/types/app/api/init/route.ts +1 -1
- package/.next/types/app/api/local-models/capability/route.ts +1 -1
- package/.next/types/app/api/local-models/pull/route.ts +1 -1
- package/.next/types/app/api/local-models/suggest/route.ts +1 -1
- package/.next/types/app/api/mcp/app-sandbox/route.ts +1 -1
- package/.next/types/app/api/mcp/cancel/route.ts +1 -1
- package/.next/types/app/api/mcp/oauth-capability/route.ts +1 -1
- package/.next/types/app/api/mcp/servers/[name]/prompts/get/route.ts +1 -1
- package/.next/types/app/api/mcp/servers/[name]/prompts/route.ts +1 -1
- package/.next/types/app/api/mcp/servers/[name]/resources/read/route.ts +1 -1
- package/.next/types/app/api/mcp/servers/[name]/resources/route.ts +1 -1
- package/.next/types/app/api/mcp/servers/[name]/route.ts +1 -1
- package/.next/types/app/api/mcp/servers/[name]/status/route.ts +1 -1
- package/.next/types/app/api/mcp/servers/[name]/tools/[toolName]/route.ts +1 -1
- package/.next/types/app/api/mcp/servers/[name]/tools/route.ts +1 -1
- package/.next/types/app/api/mcp/servers/route.ts +1 -1
- package/.next/types/app/api/mcp/test-connection/route.ts +1 -1
- package/.next/types/app/api/mcp/test-connection/stream/route.ts +1 -1
- package/.next/types/app/api/mcp-registry/route.ts +1 -1
- package/.next/types/app/api/mcp-registry/spotlight/route.ts +1 -1
- package/.next/types/app/api/model/[id]/route.ts +1 -1
- package/.next/types/app/api/model/provider/route.ts +1 -1
- package/.next/types/app/api/model/route.ts +1 -1
- package/.next/types/app/api/model/test/route.ts +1 -1
- package/.next/types/app/api/oauth/callback/route.ts +1 -1
- package/.next/types/app/api/oauth/initiate/route.ts +1 -1
- package/.next/types/app/api/oauth/reset/route.ts +1 -1
- package/.next/types/app/api/packages/build/route.ts +1 -1
- package/.next/types/app/api/packages/derive-secrets/route.ts +1 -1
- package/.next/types/app/api/packages/install/route.ts +1 -1
- package/.next/types/app/api/packages/install/status/route.ts +1 -1
- package/.next/types/app/api/packages/installed/route.ts +1 -1
- package/.next/types/app/api/packages/resolve/route.ts +1 -1
- package/.next/types/app/api/packages/scan-targets/route.ts +347 -0
- package/.next/types/app/api/packages/search/route.ts +347 -0
- package/.next/types/app/api/packages/uninstall/route.ts +1 -1
- package/.next/types/app/api/planned-executions/[id]/route.ts +1 -1
- package/.next/types/app/api/planned-executions/[id]/run/route.ts +1 -1
- package/.next/types/app/api/planned-executions/[id]/runs/route.ts +1 -1
- package/.next/types/app/api/planned-executions/preview-schedule/route.ts +1 -1
- package/.next/types/app/api/planned-executions/reconcile/route.ts +1 -1
- package/.next/types/app/api/planned-executions/route.ts +1 -1
- package/.next/types/app/api/registry/auth/resend/route.ts +1 -1
- package/.next/types/app/api/registry/auth/reset/route.ts +1 -1
- package/.next/types/app/api/registry/auth/route.ts +1 -1
- package/.next/types/app/api/registry/oauth/callback/route.ts +1 -1
- package/.next/types/app/api/registry/oauth/initiate/route.ts +1 -1
- package/.next/types/app/api/registry/publish/route.ts +1 -1
- package/.next/types/app/api/registry/settings/route.ts +1 -1
- package/.next/types/app/api/restore/route.ts +1 -1
- package/.next/types/app/api/runs/active/route.ts +1 -1
- package/.next/types/app/api/storage/route.ts +1 -1
- package/.next/types/app/api/update/route.ts +1 -1
- package/.next/types/app/api/waves/route.ts +1 -1
- package/.next/types/app/api/webhooks/[id]/route.ts +1 -1
- package/.next/types/app/chat/page.ts +1 -1
- package/.next/types/app/docs/page.ts +1 -1
- package/.next/types/app/executions/page.ts +1 -1
- package/.next/types/app/flows/page.ts +1 -1
- package/.next/types/app/layout.ts +1 -1
- package/.next/types/app/mcp/page.ts +1 -1
- package/.next/types/app/mcp-flows/route.ts +1 -1
- package/.next/types/app/mcp-proxy/[server]/route.ts +1 -1
- package/.next/types/app/models/page.ts +1 -1
- package/.next/types/app/packages/page.ts +1 -1
- package/.next/types/app/page.ts +1 -1
- package/.next/types/app/settings/page.ts +1 -1
- package/.next/types/app/v1/chat/completions/route.ts +1 -1
- package/.next/types/app/v1/chat/conversations/[conversationId]/breakpoints/route.ts +1 -1
- package/.next/types/app/v1/chat/conversations/[conversationId]/cancel/route.ts +1 -1
- package/.next/types/app/v1/chat/conversations/[conversationId]/debug/continue/route.ts +1 -1
- package/.next/types/app/v1/chat/conversations/[conversationId]/debug/step/route.ts +1 -1
- package/.next/types/app/v1/chat/conversations/[conversationId]/edit-state/route.ts +1 -1
- package/.next/types/app/v1/chat/conversations/[conversationId]/events/route.ts +1 -1
- package/.next/types/app/v1/chat/conversations/[conversationId]/inject/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/[conversationId]/resources/route.ts +1 -1
- package/.next/types/app/v1/chat/conversations/[conversationId]/respond/route.ts +1 -1
- package/.next/types/app/v1/chat/conversations/[conversationId]/route.ts +1 -1
- package/.next/types/app/v1/chat/conversations/route.ts +1 -1
- package/.next/types/app/v1/chat/events/route.ts +1 -1
- package/.next/types/app/v1/models/route.ts +1 -1
- package/.next/types/app/waves/page.ts +1 -1
- package/.next/types/routes.d.ts +4 -1
- package/.next/types/validator.ts +27 -0
- package/README.md +6 -1
- package/bin/flujo.mjs +120 -120
- package/next.config.mjs +139 -139
- package/package.json +2 -1
- package/scripts/launch-next.mjs +112 -112
- package/.next/server/chunks/1083.js +0 -2
- package/.next/server/chunks/1197.js +0 -2
- package/.next/server/chunks/1373.js +0 -1
- package/.next/server/chunks/1604.js +0 -70
- package/.next/server/chunks/1659.js +0 -1
- package/.next/server/chunks/1819.js +0 -2
- package/.next/server/chunks/2434.js +0 -2
- package/.next/server/chunks/2666.js +0 -1
- package/.next/server/chunks/2940.js +0 -46
- package/.next/server/chunks/2985.js +0 -1
- package/.next/server/chunks/3273.js +0 -1
- package/.next/server/chunks/3304.js +0 -1
- package/.next/server/chunks/346.js +0 -1
- package/.next/server/chunks/3648.js +0 -1
- package/.next/server/chunks/38.js +0 -2
- package/.next/server/chunks/3951.js +0 -151
- package/.next/server/chunks/4042.js +0 -1
- package/.next/server/chunks/4239.js +0 -1
- package/.next/server/chunks/4426.js +0 -6
- package/.next/server/chunks/4661.js +0 -1
- package/.next/server/chunks/4765.js +0 -1
- package/.next/server/chunks/5148.js +0 -1
- package/.next/server/chunks/5471.js +0 -1
- package/.next/server/chunks/5958.js +0 -2
- package/.next/server/chunks/6005.js +0 -1
- package/.next/server/chunks/6126.js +0 -53
- package/.next/server/chunks/6849.js +0 -66
- package/.next/server/chunks/7214.js +0 -6
- package/.next/server/chunks/724.js +0 -27
- package/.next/server/chunks/7463.js +0 -6
- package/.next/server/chunks/7538.js +0 -21
- package/.next/server/chunks/8339.js +0 -1
- package/.next/server/chunks/8522.js +0 -2
- package/.next/server/chunks/8572.js +0 -1
- package/.next/server/chunks/8667.js +0 -1
- package/.next/server/chunks/869.js +0 -2
- package/.next/server/chunks/8979.js +0 -37
- package/.next/server/chunks/8994.js +0 -2
- package/.next/server/chunks/9165.js +0 -1
- package/.next/server/chunks/9387.js +0 -15
- package/.next/server/chunks/9400.js +0 -2
- package/.next/server/chunks/9472.js +0 -2
- package/.next/server/chunks/9583.js +0 -1
- package/.next/server/chunks/991.js +0 -2
- package/.next/static/Q6ITx_bZyoEOnKdZu_C7j/_buildManifest.js +0 -1
- package/.next/static/chunks/1594-309fa6363f215d76.js +0 -1
- package/.next/static/chunks/1809-e56cf3c476261e34.js +0 -1
- package/.next/static/chunks/1937-6bbdcdc660db562c.js +0 -1
- package/.next/static/chunks/1988-1b651d581fc44a36.js +0 -1
- package/.next/static/chunks/2164-7d6451e88a447de7.js +0 -1
- package/.next/static/chunks/218-6cbe09820faa3272.js +0 -1
- package/.next/static/chunks/2566-60acd5838abd9f3f.js +0 -1
- package/.next/static/chunks/2800-4fa29a3eeb693593.js +0 -1
- package/.next/static/chunks/289-98f50bfcf833d661.js +0 -1
- package/.next/static/chunks/3089.9e15df4ffd0fe4e8.js +0 -1
- package/.next/static/chunks/3418-a2f5d0c4f29ee2fb.js +0 -1
- package/.next/static/chunks/3556-b9855146c7506696.js +0 -1
- package/.next/static/chunks/3948-1cb8fc7a64805254.js +0 -1
- package/.next/static/chunks/3958-5641a828b320f2fe.js +0 -100
- package/.next/static/chunks/5328-4e556503b70e72b4.js +0 -1
- package/.next/static/chunks/5512.682bef7fd3a7c286.js +0 -1
- package/.next/static/chunks/6195-8c4c57628e9013d5.js +0 -1
- package/.next/static/chunks/6669-a949326b30ea1d39.js +0 -1
- package/.next/static/chunks/6777-4b0d05731a089de4.js +0 -1
- package/.next/static/chunks/6947-0ff3545efb53e959.js +0 -1
- package/.next/static/chunks/7304-e7cd725083617b81.js +0 -8
- package/.next/static/chunks/7445-2802e158c9093556.js +0 -1
- package/.next/static/chunks/795-704a0e742ecc2ef6.js +0 -1
- package/.next/static/chunks/812-3ceea0da38ad2891.js +0 -1
- package/.next/static/chunks/8551-a28272acfda62ac9.js +0 -1
- package/.next/static/chunks/8855-02889c9ab4bf0bcf.js +0 -1
- package/.next/static/chunks/9554-cb5bd72cb40e8dbe.js +0 -1
- package/.next/static/chunks/9562-ef0ddd4e6b9023cf.js +0 -1
- package/.next/static/chunks/app/_not-found/page-81dc485d60f94046.js +0 -1
- package/.next/static/chunks/app/api/approvals/[id]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/approvals/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/backup/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/browse/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/bugs/enhance/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/cwd/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/encryption/secure/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/env/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/versions/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/compile/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/generate/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/improve/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/quick-chat/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/repair/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/git/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/init/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/local-models/capability/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/local-models/pull/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/local-models/suggest/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/app-sandbox/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/cancel/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/oauth-capability/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/model/[id]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/model/provider/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/model/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/model/test/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/oauth/callback/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/oauth/initiate/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/oauth/reset/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/build/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/derive-secrets/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/install/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/install/status/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/installed/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/resolve/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/uninstall/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/resend/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/reset/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/oauth/callback/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/oauth/initiate/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/publish/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/settings/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/restore/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/runs/active/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/storage/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/update/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/waves/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[id]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/chat/page-c39160ddf90bbae9.js +0 -1
- package/.next/static/chunks/app/executions/page-10d09f36de30939f.js +0 -1
- package/.next/static/chunks/app/flows/page-0d8fb471adfc2981.js +0 -1
- package/.next/static/chunks/app/layout-eea7078d7553c21a.js +0 -1
- package/.next/static/chunks/app/mcp/page-8ad71bf5801bfe5f.js +0 -1
- package/.next/static/chunks/app/mcp-flows/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/mcp-proxy/[server]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/models/page-17e8e6668f92f58d.js +0 -1
- package/.next/static/chunks/app/packages/page-9f61751e98134f3d.js +0 -1
- package/.next/static/chunks/app/page-d3ea90b065b95d1e.js +0 -1
- package/.next/static/chunks/app/settings/page-afbf8790e99fecaf.js +0 -1
- package/.next/static/chunks/app/v1/chat/completions/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/events/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/models/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/waves/page-97ad6b51c9cae4b3.js +0 -1
- package/.next/static/chunks/webpack-0d4a4e773990ac44.js +0 -1
- package/.next/static/css/40f9bef305b11bf5.css +0 -1
- /package/.next/static/{Q6ITx_bZyoEOnKdZu_C7j → A9jP2ydtYbqx-IayWP2Sg}/_ssgManifest.js +0 -0
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=2940,exports.ids=[2940],exports.modules={2826:(a,b,c)=>{c.d(b,{R:()=>e,j:()=>d});let d="flujo://run/",e={autoCaptureEnabled:!0,textThresholdChars:8192,maxResourceBytes:0x3200000,maxConversationBytes:0x10000000,replaceLargeTextWithStub:!1}},14159:(a,b,c)=>{c.r(b),c.d(b,{ToolHandler:()=>i});var d=c(50846),e=c(38611),f=c(24463),g=c(75312);let h=(0,d.h)("backend/flow/execution/handlers/ToolHandler");class i{static sanitizeSchema(a){if(!a||"object"!=typeof a)return a;let b=JSON.parse(JSON.stringify(a));if("string"===b.type&&b.format&&"enum"!==b.format&&"date-time"!==b.format&&(b.description||(b.description=""),b.description+=` (format: ${b.format})`,delete b.format),b.properties&&Object.keys(b.properties).forEach(a=>{b.properties[a]=i.sanitizeSchema(b.properties[a])}),Array.isArray(b.required))if(b.properties&&"object"==typeof b.properties){let a=new Set(Object.keys(b.properties));b.required=b.required.filter(b=>"string"==typeof b&&a.has(b)),0===b.required.length&&delete b.required}else delete b.required;return b.items&&(b.items=i.sanitizeSchema(b.items)),["oneOf","anyOf","allOf"].forEach(a=>{Array.isArray(b[a])&&(b[a]=b[a].map(a=>i.sanitizeSchema(a)))}),b}static prepareTools(a){let{availableTools:b}=a;if(h.verbose("prepareTools input",JSON.stringify(a)),!b||0===b.length){let a={success:!0,value:{tools:[]}};return h.verbose("prepareTools empty result",JSON.stringify(a)),a}try{for(let a of b){if(!a.name)return{success:!1,error:(0,e.Po)("invalid_tool","Tool missing required 'name' property","unknown")};if(!a.inputSchema)return{success:!1,error:(0,e.Po)("invalid_tool",`Tool '${a.name}' missing required 'inputSchema' property`,a.name)}}let a=[...b].sort((a,b)=>a.name<b.name?-1:+(a.name>b.name)).map(a=>({type:"function",function:{name:a.name,description:a.description||`Tool: ${a.name}`,parameters:i.sanitizeSchema(a.inputSchema)}})),c={success:!0,value:{tools:a}};return h.verbose("prepareTools success result",JSON.stringify(c)),c}catch(b){let a={success:!1,error:(0,e.Po)("tool_preparation_failed",b instanceof Error?b.message:String(b),"unknown")};return h.verbose("prepareTools error result",JSON.stringify(a)),a}}static async processMCPNodes(a){let{mcpNodes:b}=a;if(h.verbose("processMCPNodes input",JSON.stringify(a)),!b||0===b.length){let a={success:!0,value:{availableTools:[]}};return h.verbose("processMCPNodes empty result",JSON.stringify(a)),a}try{let a=[];for(let c of b){let b=c.properties;if(b&&b.boundServer){let d=b.boundServer,h=b.enabledTools||[],i=b.toolTimeout;f.mcpService.setNodeRoots(d,c.id,b.roots);let j=await f.mcpService.connectServer(d);if(!j.success)return{success:!1,error:(0,e.Fp)("server_connection_failed",`Failed to connect to MCP server '${d}': ${j.error}`,d,"connect")};let k=await f.mcpService.listServerTools(d);if(k.error)return{success:!1,error:(0,e.Fp)("list_tools_failed",`Failed to list tools for MCP server '${d}': ${k.error}`,d,"listTools")};for(let b of(k.tools||[]).filter(a=>h.includes(a.name)).map(a=>({originalName:a.name,server:d,name:(0,g.Y6)(d,a.name),timeout:i,description:a.description,inputSchema:a.inputSchema})))a.some(a=>a.name===b.name)||a.push(b)}}let c={success:!0,value:{availableTools:a}};return h.verbose("processMCPNodes success result",JSON.stringify(c)),c}catch(b){let a={success:!1,error:(0,e.Fp)("mcp_processing_failed",b instanceof Error?b.message:String(b),"unknown","processMCPNodes")};return h.verbose("processMCPNodes error result",JSON.stringify(a)),a}}}},14214:(a,b,c)=>{c.d(b,{$:()=>i});var d=c(94735),e=c(60184);let f=(0,c(50846).h)("backend/execution/flow/engine/ExecutionEventBus");class g{getChannel(a){let b=this.channels.get(a);if(!b){let c=new d.EventEmitter;c.setMaxListeners(0),b={emitter:c,seq:0,buffer:[]},this.channels.set(a,b)}return b}cancelCleanup(a){let b=this.cleanupTimers.get(a);b&&(clearTimeout(b),this.cleanupTimers.delete(a))}scheduleCleanup(a,b){this.cancelCleanup(a);let c=setTimeout(()=>{this.cleanupTimers.delete(a);let c=this.channels.get(a);c&&c.seq===b&&(c.emitter.listenerCount("event")>0||this.channels.delete(a))},3e5);"function"==typeof c.unref&&c.unref(),this.cleanupTimers.set(a,c)}emit(a,b){let c=this.getChannel(a),d={...b,conversationId:a,seq:c.seq++,timestamp:Date.now()};return c.buffer.push(d),c.buffer.length>1e3&&c.buffer.shift(),c.emitter.emit("event",d),(0,e.LB)(d),this.publishGlobal(d),"run:done"===d.type?this.scheduleCleanup(a,c.seq):this.cancelCleanup(a),d}emitterFor(a){return b=>{try{this.emit(a,b)}catch(b){f.warn(`Failed to emit execution event for ${a}`,{err:b})}}}getBufferedSince(a,b){let c=this.channels.get(a);return c?c.buffer.filter(a=>a.seq>=b):[]}currentSeq(a){return this.channels.get(a)?.seq??0}subscribe(a,b){let c=this.getChannel(a);return c.emitter.on("event",b),()=>{c.emitter.off("event",b)}}publishGlobal(a){let b={globalSeq:this.globalSeq++,event:a};this.globalBuffer.push(b),this.globalBuffer.length>5e3&&this.globalBuffer.shift(),this.globalEmitter.emit("event",b)}subscribeGlobal(a){return this.globalEmitter.on("event",a),()=>{this.globalEmitter.off("event",a)}}getGlobalBufferedSince(a){return this.globalBuffer.filter(b=>b.globalSeq>=a)}currentGlobalSeq(){return this.globalSeq}constructor(){this.channels=new Map,this.cleanupTimers=new Map,this.globalEmitter=(()=>{let a=new d.EventEmitter;return a.setMaxListeners(0),a})(),this.globalSeq=0,this.globalBuffer=[]}}let h=globalThis,i=h.__flujoExecutionEventBus??(h.__flujoExecutionEventBus=new g)},23529:(a,b,c)=>{c.d(b,{oO:()=>d});function d(a){let b=(a??"").replace(/\s+/g," ").trim();if(!b)return"New Conversation";let c=b,d=!1,e=c.split(" ");if(e.length>10&&(c=e.slice(0,10).join(" "),d=!0),c.length>60){let a=c.slice(0,60),b=a.lastIndexOf(" ");c=(b>0?a.slice(0,b):a).trimEnd(),d=!0}return d?`${c}…`:c}},35205:(a,b,c)=>{c.d(b,{t:()=>s,p:()=>r});var d=c(87821),e=c(20433),f=c(24463),g=c(50846),h=c(67490);function i(a,b){let c=a.replace(/\s+/g," ").trim();if(c.length<=b)return c;let d=c.slice(0,b),e=d.lastIndexOf(" ");return`${(e>.6*b?d.slice(0,e):d).trimEnd()}…`}function j(a,b,c){let d=" ".repeat(b);if(a.userDescription&&a.userDescription.trim())return void c.push(`${d}${i(a.userDescription,200)}`);if("subflow"===a.type){if(a.subflowMissing)return void c.push(`${d}Runs a subflow (referenced flow not found).`);if(a.subflowDetailsUnavailable){let b=a.subflowName?` "${a.subflowName}"`:"";c.push(`${d}Runs a subflow${b} (contents summarised when the flow runs).`);return}if(c.push(`${d}Runs the subflow "${a.subflowName??"unknown"}", which contains:`),a.depthCapReached)return void c.push(`${d} (nested subflows omitted — recursion depth limit reached)`);let e=a.children??[];if(0===e.length)return void c.push(`${d} (no process or subflow steps)`);for(let a of e.slice(0,10))c.push(`${d} - ${a.label}:`),j(a,b+2,c);return void(e.length>10&&c.push(`${d} - …and ${e.length-10} more step(s)`))}if(a.modelName&&c.push(`${d}Model: ${a.modelName}`),a.promptSummary&&c.push(`${d}Role: ${i(a.promptSummary,200)}`),a.servers&&a.servers.length>0)for(let b of a.servers)if(b.connected&&b.tools&&b.tools.length>0){let a=b.tools.slice(0,10),e=b.tools.length-a.length,f=e>0?`, +${e} more`:"";c.push(`${d}Tools (${b.name}): ${a.join(", ")}${f}`)}else c.push(`${d}Tools (${b.name}): server not connected`)}let k=(0,g.h)("backend/execution/flow/buildHandoffDescription");function l(){return{modelNames:new Map,serverConnected:new Map,flows:new Map}}async function m(a,b){if(!a)return;if(b.modelNames.has(a))return b.modelNames.get(a);let c=a;try{let b=await e.modelService.getModel(a);b&&(c=b.displayName&&b.displayName.trim()||b.name||a)}catch(b){k.debug("resolveModelName failed; using raw id",{modelId:a,err:b})}return b.modelNames.set(a,c),c}async function n(a,b){if(b.serverConnected.has(a))return b.serverConnected.get(a);let c=!1;try{let b=await f.mcpService.getServerStatus(a);c=b?.status==="connected"}catch(b){k.debug("getServerStatus failed; treating server as offline",{server:a,err:b})}return b.serverConnected.set(a,c),c}async function o(a,b){if(b.flows.has(a))return b.flows.get(a);let c=null;try{c=await d.flowService.getFlow(a)}catch(b){k.debug("getFlow failed while summarising subflow",{flowId:a,err:b})}return b.flows.set(a,c),c}async function p(a,b){let c=Array.isArray(a.mcpNodes)?a.mcpNodes:[],d=[],e=new Set;for(let a of c){let c=a?.properties?.boundServer;if(!c||e.has(c))continue;e.add(c);let f=await n(c,b),g=Array.isArray(a?.properties?.enabledTools)?a.properties.enabledTools:[];d.push({name:c,connected:f,tools:f?g:void 0})}return d}async function q(a,b,c,d){let e=a.data?.type||a.type||"unknown",f=a.data?.label||"Unknown Node",g=a.data?.properties||{},i=a.data?.description,j={label:f,type:e,userDescription:i};if(i&&i.trim())return j;if("subflow"===e){let a=g.subflowId;if(!a)return j.subflowMissing=!0,j;if(b+1>h.A||d.has(a)){j.depthCapReached=!0;let b=await o(a,c);return j.subflowName=b?.name,j}let e=await o(a,c);if(!e)return j.subflowMissing=!0,j;j.subflowName=e.name;let f=new Set(d);f.add(a);let i=(e.nodes||[]).filter(a=>a.data?.type==="process"||a.data?.type==="subflow"||"process"===a.type||"subflow"===a.type);for(let a of(j.children=[],i))j.children.push(await q(a,b+1,c,f));return j}j.modelName=await m(g.boundModel,c);let k=g.promptTemplate;return"string"==typeof k&&k.trim()&&(j.promptSummary=k),j.servers=await p(g,c),j}async function r(a){try{let b=await q(a,0,l(),new Set);return function(a){if(a.userDescription&&a.userDescription.trim())return i(a.userDescription,1500);let b=`Hand off execution to ${a.label} (${a.type}).`,c=[];j(a,0,c);let d=c.join("\n").trim(),e=d?`${b}
|
|
2
|
-
${d}`:b;if(e.length<=1500)return e;let f=1500-b.length-2;return f<=0?b:`${b}
|
|
3
|
-
${i(d,f)}`}(b)}catch(d){let b=a.data?.label||"Unknown Node",c=a.data?.type||a.type||"unknown";return k.warn("buildHandoffDescription failed; falling back to basic description",{label:b,type:c,err:d}),`Hand off execution to ${b} (${c})`}}async function s(a){try{let b=l(),c=new Set([a.id]),d=(a.nodes||[]).filter(a=>a.data?.type==="process"||a.data?.type==="subflow"||"process"===a.type||"subflow"===a.type),e=[];for(let a of d)e.push(await q(a,1,b,c));return function(a,b,c){let d=`Runs the FLUJO flow "${a}".`,e=[],f=b.slice(0,10);if(f.length>0){for(let a of(e.push("Steps:"),f))e.push(` - ${a.label}:`),j(a,2,e);b.length>10&&e.push(` - …and ${b.length-10} more step(s)`)}let g=e.join("\n").trim(),h=g?`${d}
|
|
4
|
-
${g}`:d;if(h.length<=1500)return h;let k=1500-d.length-2;return k<=0?d:`${d}
|
|
5
|
-
${i(g,k)}`}(a.name,e)}catch(b){return k.warn("buildFlowToolDescription failed; falling back to basic description",{flow:a?.name,err:b}),`Runs the FLUJO flow "${a?.name??"unknown"}".`}}},38611:(a,b,c)=>{c.d(b,{Fp:()=>f,M5:()=>d,Po:()=>e});let d=(a,b,c,d,e)=>({type:"model",code:a,message:b,modelId:c,requestId:d,details:e}),e=(a,b,c,d,e)=>({type:"tool",code:a,message:b,toolName:c,toolArgs:d,details:e}),f=(a,b,c,d,e)=>({type:"mcp",code:a,message:b,serverName:c,operation:d,details:e})},41742:(a,b,c)=>{c.d(b,{s:()=>E});var d=c(50846),e=c(38611),f=c(75312),g=c(83964),h=c(2826);let i=(0,d.h)("backend/execution/flow/handlers/compactForWire"),j={keepRecentMessages:12,toolResultHeadChars:2e3,dropOldAssistantProse:!0,allowLossyTruncation:!1,compactRecentToolResults:!1};function k(a,b){let{keepRecentMessages:c,toolResultHeadChars:d,dropOldAssistantProse:e,allowLossyTruncation:f,compactRecentToolResults:g}={...j,...b},h=b?.resourceMarkers;if(!g&&a.length<=c)return a;let k=a.length-c,l=0,m=a.map((a,b)=>{let c=b>=k;if("tool"===a.role&&"string"==typeof a.content){if(a.content.length<=d||c&&!g)return a;let b=h?.get(a.tool_call_id)?.result?.uri,e=a.content.slice(0,d),i=a.content.length,j=i-d;return b?(l+=j,{...a,content:`${e}
|
|
6
|
-
…
|
|
7
|
-
[tool result truncated for context — the full ${i}-character result is stored as run resource ${b}; call read_resource with this uri to read all of it]`}):f?(l+=j,{...a,content:`${e}
|
|
8
|
-
…[truncated ${j} chars]`}):a}return c?a:e&&"assistant"===a.role&&Array.isArray(a.tool_calls)&&a.tool_calls.length>0&&"string"==typeof a.content&&a.content.length>0?(l+=a.content.length,{...a,content:""}):a});return l>0&&i.debug("compactForWire trimmed history for the wire",{messages:a.length,compactedOldest:k,keptRecent:c,approxCharsSaved:l}),m}var l=c(78975),m=c(20433),n=c(41561),o=c(54042),p=c(62101),q=c(24463),r=c(77213);function s(a){if(a&&"object"==typeof a){for(let b of[a.ui,a["io.modelcontextprotocol/ui"]])if(b&&"object"==typeof b){let a=b.resourceUri;if("string"==typeof a&&a.trim().toLowerCase().startsWith("ui://"))return a}}}var t=c(61539);let u=(0,d.h)("backend/services/runResources/capture");function v(a){var b;return`[FLUJO stored this ${a.mimeType??a.kind} (${(b=a.size)<1024?`${b} B`:b<1048576?`${Math.round(b/1024)} KB`:`${(b/1048576).toFixed(1)} MB`}) as run resource ${a.uri}. Read it back with the 'read_resource' tool (or the 'flujo' MCP server's resources/read) if needed.]`}async function w(a){let{conversationId:b,server:c,toolName:d,toolCallId:e,nodeId:f,result:g,settings:h}=a,i=[];if(g.isError||!Array.isArray(g.content))return{result:g,captured:i};let j={source:"tool-result",nodeId:f,server:c,toolName:d,toolCallId:e},k=async(a,e,f,g)=>{try{let h=await (0,t.tm)({conversationId:b,mimeType:f,kind:a,data:e,producedBy:g?{...j,source:"mcp-link"}:j,origin:g});if("skipped"in h)return u.warn(`Auto-capture skipped (${h.skipped}) for ${c}/${d}`),null;return i.push(h),h}catch(a){return u.error(`Auto-capture failed for ${c}/${d}; keeping inline content`,a),null}},l=[];for(let a of g.content)switch(a.type){case"image":case"audio":{let b=await k(a.type,{base64:a.data},a.mimeType);l.push(b?{type:"text",text:v(b)}:a);break}case"resource_link":await k("link",void 0,a.mimeType,{server:c,uri:a.uri}),l.push(a);break;case"resource":{let b=a.resource;if("string"==typeof b.blob){let d=b.blob,e=await k("blob",{base64:d},b.mimeType,{server:c,uri:b.uri});l.push(e?{type:"text",text:v(e)}:a)}else if("string"==typeof b.text){let d=b.text;if(d.length>=h.textThresholdChars){let e=await k("text",{text:d},b.mimeType??"text/plain",{server:c,uri:b.uri});e&&h.replaceLargeTextWithStub?l.push({type:"text",text:`${d.slice(0,1024)}
|
|
9
|
-
…
|
|
10
|
-
${v(e)}`}):l.push(a)}else l.push(a)}else l.push(a);break}case"text":if("string"==typeof a.text&&a.text.length>=h.textThresholdChars){let b=await k("text",{text:a.text},"text/plain");b&&h.replaceLargeTextWithStub?l.push({type:"text",text:`${a.text.slice(0,1024)}
|
|
11
|
-
…
|
|
12
|
-
${v(b)}`}):l.push(a)}else l.push(a);break;default:l.push(a)}return 0===i.length?{result:g,captured:i}:{result:{...g,content:l},captured:i}}var x=c(48965),y=c(14214),z=c(76813),A=c(92372),B=c(84653),C=c(32524);let D=(0,d.h)("backend/flow/execution/handlers/ModelHandler");class E{static async resolveToolUiLink(a,b,d){let e=s(d?._meta);if(!e)try{let{tools:c}=await q.mcpService.listServerTools(a),d=Array.isArray(c)?c.find(a=>a.name===b):void 0;e=s(d?._meta)}catch(b){D.warn(`resolveToolUiLink: failed to list tools for ${a}`,b)}if(e)try{let{isBuiltInServerName:b}=await Promise.resolve().then(c.bind(c,7658));if(b(a))return{uri:e,serverName:a};let d=await q.mcpService.loadServerConfigs();if(!Array.isArray(d))return;let f=d.find(b=>b.name===a);if(!f?.enableMcpApps)return;return{uri:e,serverName:a}}catch(b){D.warn(`resolveToolUiLink: failed to check MCP Apps opt-in for ${a}`,b);return}}static extractProviderErrorDetails(a,b){let c=b||a?.message||"Provider returned an unspecified error in the response body.";b&&"string"==typeof a?.message&&a.message&&a.message!==b&&(c=`${b} - ${a.message}`);let d=a?.metadata;if(d){let a;if("string"==typeof d.raw)try{let b=JSON.parse(d.raw);a=b?.error?.message||b?.message||d.raw}catch{a=d.raw}else d.raw&&"object"==typeof d.raw&&(a=d.raw.error?.message||d.raw.message);let b=[];d.provider_name&&b.push(String(d.provider_name)),a&&b.push(a),b.length>0&&(c=`${c} (upstream: ${b.join(": ")})`)}return"string"==typeof a?.origin&&a.origin&&(c=`${c} (origin: ${a.origin})`),{message:c,code:a?.code,type:a?.type,param:a?.param,retryAfter:d?.retry_after_seconds!=null?String(d.retry_after_seconds):void 0,providerError:a}}static isConversationCancelled(a){try{let{FlowExecutor:b}=c(52940),{isCancelledByAncestry:d}=c(75028);return d(a,b.conversationStates)}catch(b){return D.warn(`Cancellation check failed for conversation ${a}`,{err:b}),!1}}static async isClaudeSessionResumeEnabled(){try{let a=await (0,A.YM)(B.Z.SPEECH_SETTINGS,void 0);return!!a?.experimental?.claudeSessionResume}catch(a){return D.warn("Failed to read claudeSessionResume setting; defaulting to disabled",{err:a}),!1}}static persistStreamedMessage(a,b){try{let{FlowExecutor:d}=c(52940),e=d.conversationStates.get(a);if(!e||!Array.isArray(e.messages))return;!function(a,b){let c=a.findIndex(a=>a.id===b.id);c>=0?a[c]=b:a.push(b)}(e.messages,b),e.updatedAt=Date.now()}catch(b){D.warn(`Failed to fold streamed message into conversation ${a}`,{err:b})}}static async buildRunResourceMarkers(a){try{let b;for(let c of(await (0,t.Bt)(a))){let a=c.producedBy?.toolCallId;if(!a)continue;let d=c.producedBy.source;if("tool-result"!==d&&"tool-args"!==d)continue;b||(b=new Map);let e=b.get(a)??{};"tool-result"===d?e.result=c:e.args=c,b.set(a,e)}return b}catch(b){D.warn(`Failed to build run-resource markers for conversation ${a}`,b);return}}static{this.OVERFLOW_TOOL_RESULT_HEAD_CHARS=2e3}static isContextOverflowError(a){if(!a||"model"!==a.type)return!1;let b=a.details??{},c="";try{c=JSON.stringify(b.providerError??"")}catch{}let d=`${a.message??""} ${String(b.code??"")} ${String(b.type??"")} ${c}`.toLowerCase();return d.includes("context_length_exceeded")||d.includes("maximum context length")||d.includes("context length is")||d.includes("maximum context")||d.includes("reduce the length")||d.includes("too many tokens")||d.includes("exceeds the context")}static ensureReadResourceArmed(a,b){if(!a.some(a=>JSON.stringify(a).includes(h.j))||(b??[]).some(a=>"function"===a.type&&a.function.name===x.JM))return b;let c=(0,x.J2)();return[...b??[],{type:"function",function:{name:c.name,description:c.description||`Tool: ${c.name}`,parameters:c.inputSchema}}].sort((a,b)=>"function"===a.type&&"function"===b.type?a.function.name<b.function.name?-1:+(a.function.name>b.function.name):0)}static async captureOversizedToolResultsForRefit(a,b,c,d){let e=c?new Map(c):void 0;for(let c of b){if("tool"!==c.role||"string"!=typeof c.content||c.content.length<=E.OVERFLOW_TOOL_RESULT_HEAD_CHARS)continue;let b=c.tool_call_id;if(!e?.get(b)?.result?.uri)try{let f=await (0,t.tm)({conversationId:a,mimeType:"text/plain",kind:"text",data:{text:c.content},producedBy:{source:"tool-result",nodeId:d,toolCallId:b}});if("skipped"in f){D.warn(`Emergency capture of oversized tool result skipped (${f.skipped}); it will be lossily truncated`);continue}e||(e=new Map);let g=e.get(b)??{};g.result=f,e.set(b,g)}catch(a){D.warn("Emergency capture of oversized tool result failed; it will be lossily truncated",a)}}return e}static shapeCompletionError(a,b,c){if(c)return D.info("Provider call aborted by user cancellation.",{modelId:b}),{success:!1,error:(0,e.M5)("cancelled","Execution cancelled by user.",b)};if(D.error("[ModelHandler.generateCompletion] Caught error during OpenAI API call",{rawError:a}),D.error("--- Error during openai.chat.completions.create ---"),a instanceof Error?(D.error(`Error Name: ${a.name}`),D.error(`Error Message: ${a.message}`),D.error(`Error Stack: ${a.stack}`)):D.error("Caught non-Error object:",a),a instanceof l.Ay.APIError&&(D.error(`API Error Status: ${a.status}`),D.error(`API Error Type: ${a.type}`),D.error(`API Error Code: ${a.code}`),D.error(`API Error Param: ${a.param}`),D.error(`API Error Headers: ${JSON.stringify(a.headers)}`)),D.error("--- End Error Details ---"),a instanceof l.Ay.APIError){let c=a.error,d=E.extractProviderErrorDetails(c,a.message),f=a.headers||{},g=f["retry-after"]??f["Retry-After"],h=void 0!==g?String(g):d.retryAfter,i=f["x-ratelimit-reset"]??f["x-ratelimit-reset-requests"],j={success:!1,error:(0,e.M5)("api_error",d.message,b,void 0,{status:a.status,type:d.type??a.type,code:d.code??a.code,param:d.param??a.param,retryAfter:h,rateLimitReset:void 0!==i?String(i):void 0,providerError:d.providerError,stack:a.stack})};return D.verbose("generateCompletion API error",j),j}let d={success:!1,error:(0,e.M5)("unknown_error",a instanceof Error?a.message:String(a),b,void 0,{stack:a instanceof Error?a.stack:void 0})};return D.verbose("generateCompletion unknown error",d),d}static async callModel(a){var b;let c,d,e,{modelId:f,prompt:g,messages:h,wireMessages:i,tools:j,nodeName:k,nodeId:l,toolNameMap:o,maxTurns:p,maxTokens:q,conversationId:r,requireToolApproval:s}=a;try{let a=await m.modelService.getModel(f);a&&(a.displayName||a.name,a.name,c=a.maxTurns,d=a.maxTokens,e=a.adapter)}catch(a){D.warn(`Failed to fetch model information for prefix: ${a instanceof Error?a.message:String(a)}`)}let t="claude-cli"===e&&!i&&await E.isClaudeSessionResumeEnabled(),u=function(a,b,c=n.m){return"number"==typeof a&&Number.isFinite(a)&&a>0?a:"number"==typeof b&&Number.isFinite(b)&&b>0?b:c}(p,c),v=(b=d,(0,n.c)(q)??(0,n.c)(b));D.info("callModel - Single execution",{modelId:f,messagesCount:h.length,toolsCount:j?.length||0,nodeName:k,nodeId:l}),D.verbose("callModel input",a);let w=r?y.$.emitterFor(r):void 0,A=s&&w&&r?async a=>{let b={id:a.id,type:"function",function:{name:a.name,arguments:JSON.stringify(a.args??{})}};return new Promise(a=>{(0,z.sf)(r,b,a),w({type:"run:awaiting_approval",pendingToolCalls:(0,z.Rt)(r)})})}:void 0,B=w?a=>{let b=l?{...a,processNodeId:l}:a;w({type:"message",message:b,node:l?{nodeId:l}:void 0}),r&&E.persistStreamedMessage(r,b)}:void 0,F=r?()=>E.isConversationCancelled(r):void 0,G=l?{nodeId:l,nodeName:k,nodeType:"process"}:void 0,H=r&&(j??[]).some(a=>"function"===a.type&&(0,x.pb)(a.function.name))?{[x.W5]:async a=>{let b=await (0,x.ll)(x.W5,a,{conversationId:r,node:G,emit:w});if(!b.success)throw Error(b.error??"write_resource failed");return b.data},[x.JM]:async a=>{let b=await (0,x.ll)(x.JM,a,{conversationId:r,node:G,emit:w});if(!b.success)throw Error(b.error??"read_resource failed");return b.data}}:void 0,I=r?await E.buildRunResourceMarkers(r):void 0,J=await this.generateCompletion(f,g,i??h,j,{toolNameMap:o,maxTurns:u,maxTokens:v,requestToolApproval:A,onTranscriptMessage:B,shouldAbort:F,conversationId:r,nodeId:l,localToolExecutors:H,runResourceMarkers:I,sessionResume:t});if(!J.success)return D.verbose("callModel error response",J),{success:!1,error:J.error};let K=J.value,L=K.content||"",M=[...h],N=function(a){if(!a)return;let b=a.prompt_tokens_details?.cached_tokens;return{promptTokens:a.prompt_tokens??0,completionTokens:a.completion_tokens??0,totalTokens:a.total_tokens??0,...null!=b?{cacheReadTokens:b}:{}}}(K.fullResponse?.usage);if(K.transcript&&K.transcript.length>0){let a=Date.now(),b=K.transcript;b.forEach((c,d)=>{let e=d===b.length-1;M.push({...c,id:c.id??(0,C.A)(),timestamp:c.timestamp??a+d,processNodeId:l,...e&&N?{usage:N}:{}})})}else{let a={id:(0,C.A)(),role:"assistant",content:L,tool_calls:K.fullResponse?.choices?.[0]?.message?.tool_calls,timestamp:Date.now(),processNodeId:l,...N?{usage:N}:{}};M.push(a)}let O=K.fullResponse?.choices?.[0]?.message?.tool_calls?.map(a=>{try{return{name:a.function.name,args:JSON.parse(a.function.arguments),id:a.id,result:""}}catch(b){return D.warn(`Failed to parse tool arguments for call ${a.id}`,{args:a.function.arguments,error:b}),{name:a.function.name,args:{},id:a.id,result:""}}}).filter(Boolean),P={success:!0,value:{content:L,messages:M,fullResponse:K.fullResponse,toolCalls:O}};return D.verbose("callModel single step result",P),P}static async generateCompletion(a,b,d,f,h){let i;D.verbose("generateCompletion input",{modelId:a,prompt:b,messages:d,tools:f});let l=new AbortController,n=()=>{i&&(clearInterval(i),i=void 0)};try{let b,q=await m.modelService.getModel(a);if(!q)return{success:!1,error:(0,e.M5)("model_not_found",`Model not found: ${a}`,a)};let r=q.temperature?parseFloat(q.temperature):0,s=await m.modelService.resolveAndDecryptApiKey(q.ApiKey);if(!s)return{success:!1,error:(0,e.M5)("api_key_error","Failed to resolve or decrypt API key",a)};D.verbose(`decrypted api key ${s}`),D.verbose(` baseurl ${q.baseUrl}`);let t=(0,g.ae)(d),u=f;if("claude-cli"!==q.adapter&&function(a,b){let c=(void 0)??j.keepRecentMessages;return a.length>c}(t)&&(t=k(t,{resourceMarkers:h?.runResourceMarkers}),u=E.ensureReadResourceArmed(t,u)),u&&u.length>0){let{ToolHandler:a}=c(14159);b=u.map(b=>"function"===b.type&&b.function.parameters?{...b,function:{...b.function,parameters:a.sanitizeSchema(b.function.parameters)}}:b)}let v=(0,p.getCompletionAdapter)(q);D.debug("calling chatcompletion"),D.verbose("calling chatcompletion now with ADAPTER",q.adapter||"openai"),D.verbose("calling chatcompletion now with MODEL",q.name),D.verbose("calling chatcompletion now with TEMP",r),D.verbose("calling chatcompletion now with MESSAGES",t),D.verbose("calling chatcompletion now with TOOLS",b),D.debug("[ModelHandler.generateCompletion] Sending request via adapter",{adapter:q.adapter||"openai",model:q.name});let w=async(b,c)=>{if(h?.shouldAbort&&(h.shouldAbort()?l.abort():i||(i=setInterval(()=>{h.shouldAbort()&&(D.info("Cancellation detected mid-completion; aborting the provider call.",{modelId:a}),l.abort(),n())},250),i.unref?.())),l.signal.aborted)return{success:!1,error:(0,e.M5)("cancelled","Execution cancelled by user.",a)};try{let f,g;try{({completion:f,transcript:g}=await v.createCompletion({model:q,apiKey:s,messages:b,tools:c,temperature:r,maxTokens:h?.maxTokens??(0,o.normalizeMaxTokens)(q.maxTokens),toolNameMap:h?.toolNameMap,localToolExecutors:h?.localToolExecutors,maxTurns:h?.maxTurns,requestToolApproval:h?.requestToolApproval,onTranscriptMessage:h?.onTranscriptMessage,signal:l.signal,conversationId:h?.conversationId,nodeId:h?.nodeId,runResourceMarkers:h?.runResourceMarkers,sessionResume:h?.sessionResume}))}finally{n()}if(D.debug("[ModelHandler.generateCompletion] Received raw response from OpenAI API",{response:f}),D.verbose("chatcompletion returned"),D.verbose("chatcompletion returned",f),f&&"object"==typeof f&&"error"in f&&f.error){D.warn("API call returned successfully but contained an error object:",JSON.stringify(f.error));let b=f.error,c=E.extractProviderErrorDetails(b),d={success:!1,error:(0,e.M5)("api_error",c.message,a,void 0,{code:c.code,type:c.type,param:c.param,retryAfter:c.retryAfter,providerError:c.providerError})};return D.verbose("generateCompletion returning error from response body",d),d}let i=f?.choices?.[0];if(!i)return D.error("API response missing choices array or first choice.",{response:f}),{success:!1,error:(0,e.M5)("api_error","Invalid response structure from API: Missing choices.",a,void 0,{rawResponse:f})};let j={success:!0,value:{content:i.message?.content||"",messages:[...d],fullResponse:f,transcript:g}};return D.verbose("generateCompletion success result",j),j}catch(b){return E.shapeCompletionError(b,a,l.signal.aborted)}},x=await w(t,b);if(!x.success&&"claude-cli"!==q.adapter&&E.isContextOverflowError(x.error)){let c=JSON.stringify(t).length,d=h?.runResourceMarkers;h?.conversationId&&(d=await E.captureOversizedToolResultsForRefit(h.conversationId,t,d,h?.nodeId));let e=k(t,{resourceMarkers:d,compactRecentToolResults:!0,allowLossyTruncation:!0,toolResultHeadChars:E.OVERFLOW_TOOL_RESULT_HEAD_CHARS}),f=JSON.stringify(e).length;if(f<c){let d=E.ensureReadResourceArmed(e,b);D.warn("Context-length overflow; retrying once with oversized tool results shrunk to run-resource URIs",{modelId:a,beforeChars:c,afterChars:f}),x=await w(e,d)}else D.warn("Context-length overflow but nothing on the wire left to compact; returning the original error",{modelId:a})}return x}catch(b){return n(),E.shapeCompletionError(b,a,l.signal.aborted)}}static async processToolCalls(a){let{toolCalls:b,toolNameMap:c,emit:d,conversationId:g,node:h}=a;if(D.verbose("processToolCalls input",a),!b||0===b.length){let a={success:!0,value:{toolCallMessages:[],processedToolCalls:[]}};return D.verbose("processToolCalls empty result",a),a}try{let e=[],i=[];for(let j=0;j<b.length;j++){let{id:k,function:{name:l,arguments:m}}=b[j];if(a.shouldAbort?.()){for(let a of(D.info(`Cancellation detected before tool call ${l}; skipping the remaining ${b.length-j} call(s).`),b.slice(j)))e.push({id:(0,C.A)(),role:"tool",tool_call_id:a.id,content:"Execution cancelled by user before this tool call ran.",timestamp:Date.now()});break}try{let a,b=JSON.parse(m);if(D.info("trying to call tool",l),l.startsWith("handoff_to_")||"handoff"===l){D.info(`Processing handoff tool: ${l}`);let a={handoff:!0,args:b},c=JSON.stringify(a);e.push({id:(0,C.A)(),role:"tool",tool_call_id:k,content:c,timestamp:Date.now()}),i.push({name:l,args:b,id:k,result:c});continue}if((0,x.pb)(l)){d?.({type:"tool:call",toolCallId:k,name:l,args:m});let a=await (0,x.ll)(l,b,{conversationId:g,node:h,emit:d}),c=a.success?JSON.stringify(a.data):`Error: ${a.error}`;d?.({type:"tool:result",toolCallId:k,name:l,result:c.length>500?`${c.slice(0,500)}…`:c,isError:!a.success}),e.push({id:(0,C.A)(),role:"tool",tool_call_id:k,content:c,timestamp:Date.now()}),i.push({name:l,args:b,id:k,result:c});continue}let j=(0,f.ud)(l,c);if(!j)throw D.error("invalid tool format",l),Error(`Invalid tool name format: ${l}`);let n=j.server,o=j.tool;if(d?.({type:"tool:call",toolCallId:k,name:l,args:m}),g)try{a=await (0,t.jR)()}catch(a){D.warn("Failed to load run-resource settings; skipping capture",a)}if(g&&a?.autoCaptureEnabled&&"string"==typeof m&&m.length>=a.textThresholdChars)try{let a=await (0,t.tm)({conversationId:g,mimeType:"application/json",kind:"text",data:{text:m},producedBy:{source:"tool-args",nodeId:h?.nodeId,server:n,toolName:o,toolCallId:k}});"skipped"in a||d?.({type:"resource:write",node:h,server:"flujo",uri:a.uri,name:a.name,mimeType:a.mimeType,size:a.size,source:"tool-args",toolCallId:k})}catch(a){D.error("Tool-args capture failed; continuing with the call",a)}let p=j.timeout??r.aI,s=await q.mcpService.callTool(n,o,b,p,a=>d?.({type:"tool:progress",toolCallId:k,name:l,progress:a.progress,total:a.total,message:a.message})),u=s.data;if(s.success&&g&&a)try{if(a.autoCaptureEnabled){let b=await w({conversationId:g,server:n,toolName:o,toolCallId:k,nodeId:h?.nodeId,result:s.data,settings:a});for(let a of(u=b.result,b.captured))d?.({type:"resource:write",node:h,server:"flujo",uri:a.uri,name:a.name,mimeType:a.mimeType,size:a.size,source:"tool-result",toolCallId:k})}}catch(a){D.error("Run-resource auto-capture failed; keeping original tool result",a),u=s.data}let v=s.success?JSON.stringify(u):`Error: ${s.error}`;d?.({type:"tool:result",toolCallId:k,name:l,result:v.length>500?`${v.slice(0,500)}…`:v,isError:!s.success});let y=s.success?await E.resolveToolUiLink(n,o,s.data):void 0;e.push({id:(0,C.A)(),role:"tool",tool_call_id:k,content:v,timestamp:Date.now(),...y?{ui:y}:{}}),i.push({name:l,args:b,id:k,result:v})}catch(b){let a=`Error: ${b instanceof Error?b.message:"Unknown error"}`;d?.({type:"tool:result",toolCallId:k,name:l,result:a,isError:!0}),e.push({id:(0,C.A)(),role:"tool",tool_call_id:k,content:a,timestamp:Date.now()}),i.push({name:l,args:{},id:k,result:a})}}let j={success:!0,value:{toolCallMessages:e,processedToolCalls:i}};return D.verbose("processToolCalls success result",j),j}catch(b){let a={success:!1,error:(0,e.Po)("tool_processing_failed",b instanceof Error?b.message:String(b),"unknown")};return D.verbose("processToolCalls error result",a),a}}static hasToolCalls(a){return!!(a.fullResponse?.choices?.[0]?.message?.tool_calls&&a.fullResponse.choices[0].message.tool_calls.length>0)}}},48965:(a,b,c)=>{c.d(b,{B1:()=>k,J2:()=>j,JM:()=>h,W5:()=>g,ll:()=>l,pb:()=>i});var d=c(50846),e=c(61539);let f=(0,d.h)("backend/flow/execution/handlers/runResourceTools"),g="write_resource",h="read_resource";function i(a){return a===g||a===h}function j(){return{name:h,description:"Read the FULL content of a run resource by its flujo://run/... URI. When a prior tool result or tool-call argument was too large to include inline, the conversation shows a head excerpt plus a flujo://run/... marker; call this tool with that exact URI to retrieve the complete content.",inputSchema:{type:"object",properties:{uri:{type:"string",description:"The flujo://run/<conversationId>/<id> URI of the run resource to read."}},required:["uri"]}}}function k(a){let b=(a??[]).filter(a=>"produce"===a.role&&a.properties?.scope==="run"&&!!a.properties?.runName?.trim());if(0===b.length)return[];let c=Array.from(new Set(b.map(a=>a.properties.runName.trim()))),d=c.map(a=>`"${a}"`).join(", ");return[{name:g,description:`Produce/update a run artifact — a named data output of this flow run that later steps can read via \${res:NAME} and that appears in the run-data panel. Write the artifact's FULL content here rather than only describing it in your reply. This step is wired to produce: ${d}. Writing the same name again replaces the previous content (last write wins).`,inputSchema:{type:"object",properties:{name:{type:"string",description:`The artifact name to write. Use one of: ${c.join(", ")}.`},content:{type:"string",description:"The full content of the artifact (text/markdown)."}},required:["name","content"]}}]}async function l(a,b,c){if(a===h)return m(b,c);if(a!==g)return{success:!1,error:`Unknown run-resource tool: ${a}`};if(!c.conversationId||c.ephemeral)return{success:!1,error:"Run artifacts are not available in this run."};let d="string"==typeof b?.name?b.name.trim():"";if(!d)return{success:!1,error:'write_resource requires a non-empty "name".'};let i="string"==typeof b?.content?b.content:"";try{let a=await (0,e.tm)({conversationId:c.conversationId,name:d,mimeType:"text/markdown",kind:"text",data:{text:i},producedBy:{source:"capture",nodeId:c.node?.nodeId,nodeName:c.node?.nodeName}});if("skipped"in a)return f.warn("write_resource skipped by store cap",{name:d,reason:a.skipped}),{success:!1,error:`Artifact not stored (${a.skipped}).`};return c.emit?.({type:"resource:write",node:c.node,server:"flujo",uri:a.uri,name:d,mimeType:a.mimeType,size:a.size,source:"capture"}),f.info("write_resource stored run artifact",{name:d,uri:a.uri,size:a.size}),{success:!0,data:{written:!0,name:d,uri:a.uri,size:a.size}}}catch(a){return f.error("write_resource failed",a),{success:!1,error:a instanceof Error?a.message:String(a)}}}async function m(a,b){let c="string"==typeof a?.uri?a.uri.trim():"";if(!c)return{success:!1,error:'read_resource requires a non-empty "uri".'};let d=(0,e.Ns)(c);if(!d)return{success:!1,error:`Not a run-resource URI: ${c}`};if(b.conversationId&&d.conversationId!==b.conversationId)return{success:!1,error:`Run resource ${c} is not part of this run.`};try{let a=await (0,e.gy)(c,{at:Date.now(),source:"tool-read",nodeId:b.node?.nodeId});if(!a)return{success:!1,error:`Run resource not found: ${c}`};let{entry:d,contents:g}=a;b.emit?.({type:"resource:read",node:b.node,server:"flujo",uri:d.uri,name:d.name,mimeType:d.mimeType,size:d.size,source:"tool-read"});let h=(g.contents??[]).map(a=>"string"==typeof a.text?a.text:"").filter(a=>a.length>0),i=h.length>0?h.join("\n"):`[binary run resource ${d.mimeType??d.kind} (${d.size} bytes) at ${d.uri}]`;return f.info("read_resource served run resource",{uri:d.uri,size:d.size}),{success:!0,data:{uri:d.uri,name:d.name,mimeType:d.mimeType,content:i}}}catch(a){return f.error("read_resource failed",a),{success:!1,error:a instanceof Error?a.message:String(a)}}}},52940:(a,b,c)=>{c.r(b),c.d(b,{FlowExecutor:()=>au});var d=c(50846),e=c(99978),f=c(91373),g=c.n(f),h=c(13516),i=c(87821);let j=(0,d.h)("backend/execution/flow/pocketflow"),k="default";class l{constructor(){j.debug("BaseNode constructor called"),this.flow_params={},this.node_params={},this.successors=new Map}setParams(a,b){j.debug("setParams called with params",{params:a}),j.verbose("setParams input",{params:a,node_params:b}),this.flow_params=a,b&&(this.node_params=b),j.debug("setParams finished. flow_params count",{flow_params:this.flow_params?.length,node_params:this.node_params?.length}),j.verbose("setParams result",{flow_params:this.flow_params,node_params:this.node_params})}clone(){j.debug("clone called");let a=this._clone();return j.verbose("_clone result",{newNode:a}),a.flow_params=g()(this.flow_params),j.verbose("Cloned flow_params",{flow_params:a.flow_params}),a.node_params=g()(this.node_params),j.verbose("Cloned node_params",{node_params:a.node_params}),a.successors=new Map(this.successors),j.verbose("Cloned successors",{successors:a.successors}),j.verbose("clone finished"),a}addSuccessor(a,b=k){if(j.verbose(`addSuccessor called with action: ${b}`),this.successors.has(b))throw j.error(`Action ${b} already exists`),Error(`Action ${b} already exists`);this.successors.set(b,a),j.debug("addSuccessor finished. Successors",{successors:this.successors})}getSuccessor(a){if(j.debug(`getSuccessor called with name: ${a}`),!this.successors.has(a))return void j.error(`Successor ${a} not found`);let b=this.successors.get(a).clone();return j.debug("getSuccessor finished. Returning successor",{successor:b}),b}async execWrapper(a,b){j.debug("execWrapper called with prepResult",{prepResult:a}),j.verbose("execWrapper input",{prepResult:a,node_params:b});let c=await this.execCore(a,b);return j.debug("execWrapper finished. Result",{result:c}),j.verbose("execWrapper result",c),c}async run(a){j.debug("run called with sharedState",{sharedState:a}),j.debug("Current flow_params at start of run",{flow_params:this.flow_params}),j.verbose("run input",{sharedState:a,flow_params:this.flow_params,node_params:this.node_params});let b=await this.prep(a,this.node_params);j.verbose("run prepResult",b);let c=await this.execWrapper(b,this.node_params);j.verbose("run execResult",c);let d=await this.post(b,c,a,this.node_params);return j.debug("action",{action:d}),j.debug(`run finished. Returning action: ${d}`),j.verbose("run action result",{action:d,prepResult:b,execResult:c}),{action:d,prepResult:b,execResult:c}}}class m extends l{constructor(a){j.debug("Flow constructor called with start",{start:a}),super(),this.start=a}_clone(){j.debug("Flow _clone called");let a=new m(this.start);return j.debug("Flow _clone finished. Returning",{newFlow:a}),a}async getStartNode(){j.debug("getStartNode called");let a=this.start.clone();return j.debug("getStartNode finished. Returning",{clonedStart:a}),a}async execCore(a){throw j.error("Flow node does not support direct execution"),j.verbose("Flow execCore error",{error:"Flow node does not support direct execution"}),Error("Flow node does not support direct execution")}async prep(a,b){return j.debug("Flow prep called with sharedState",{sharedState:a}),j.verbose("Flow prep input",{sharedState:a,node_params:b}),j.debug("Flow prep finished. Returning empty object"),j.verbose("Flow prep result",{}),{}}async post(a,b,c,d){return j.debug("Flow post called with prepResult, execResult, and sharedState",{prepResult:a,execResult:b,sharedState:c}),j.verbose("Flow post input",{prepResult:a,execResult:b,node_params:d}),j.debug("Flow post finished. Returning DEFAULT_ACTION"),j.verbose("Flow post result",{action:k}),k}}let n=(0,d.h)("execution/nodes/StartNode.ts");class o extends l{async prep(a,b){n.info("prep() started");let c=b?.properties?.promptTemplate||"";n.info("Extracted promptTemplate",{promptTemplateLength:c.length,promptTemplatePreview:c.length>100?c.substring(0,100)+"...":c});let d={nodeId:b?.id||"",nodeType:"start",systemPrompt:c};return n.info("prep() completed"),d}async execCore(a,b){n.info("execCore() started"),n.verbose("execCore() prepResult",JSON.stringify(a));let c={success:!0};return n.verbose("execCore() execResult",JSON.stringify(c)),n.info("execCore() completed"),c}async post(a,b,c,d){if(n.info("post() started"),n.verbose("post() inputs",JSON.stringify({prepResult:a,execResult:b,nodeParams:d})),h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(c.trackingInfo.nodeExecutionTracker)&&(c.trackingInfo.nodeExecutionTracker.push({nodeType:"StartNode",nodeId:d?.id||"unknown",nodeName:d?.properties?.name||"Start Node",timestamp:new Date().toISOString()}),n.info("Added StartNode tracking information")),a.systemPrompt){let b={role:"system",content:a.systemPrompt,id:crypto.randomUUID(),timestamp:Date.now()};c.messages.some(a=>"system"===a.role)||(c.messages.push(b),n.debug("Added system message",{contentLength:"string"==typeof b.content?b.content.length:"non-string content",contentPreview:"string"==typeof b.content&&b.content.length>50?b.content.substring(0,50)+"...":b.content}))}n.info("Successors object:",{hasSuccessors:!!this.successors,isMap:this.successors instanceof Map,type:typeof this.successors});let e=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});if(n.info("Actions:",{actionsCount:e.length,actions:e}),e.length>0){let a=e[0];return n.info(`post() completed, returning action: ${a}`),a}return n.info("post() completed, returning default action"),"default"}_clone(){return new o}}var p=c(60724),q=c(14159),r=c(41742),s=c(24463),t=c(61539);let u=(0,d.h)("backend/flow/execution/handlers/ResourceHandler");function v(a,b,c){let d=Array.isArray(c?.contents)?c.contents:[];if(0===d.length)return`### ${a}
|
|
13
|
-
(empty resource — ${b})
|
|
14
|
-
`;let e=d.map(a=>{if("string"==typeof a.text)return a.text;if("string"==typeof a.blob){let b=Math.round(3*a.blob.length/4/1024);return`[binary ${a.mimeType||"data"} (~${b} KB)${a.uri?` at ${a.uri}`:""} — not inlined; readable via MCP resources/read]`}return JSON.stringify(a)}).join("\n\n");return`### ${a} (${b})
|
|
15
|
-
${e}
|
|
16
|
-
`}class w{static async processResourceNodes(a){let b=(a.resourceNodes??[]).filter(a=>"consume"===a.role);if(0===b.length)return"";let c=[];for(let d of b){let b=d.properties??{},e=b.name||b.runName||b.uri||d.id;try{if("run"===b.scope){let f=b.runName?.trim();if(!f){c.push(`### ${e}
|
|
17
|
-
(run artifact with no name — configure the resource node)
|
|
18
|
-
`);continue}if(!a.conversationId){c.push(`### ${e}
|
|
19
|
-
(run artifact "${f}" is not available in this run)
|
|
20
|
-
`);continue}let g=await (0,t.FA)(a.conversationId,f);if(!g){c.push(`### ${e}
|
|
21
|
-
(run artifact "${f}" has not been produced yet)
|
|
22
|
-
`);continue}let h=await (0,t.gy)(g.uri,{at:Date.now(),source:"node",nodeId:d.id});if(!h){c.push(`### ${e}
|
|
23
|
-
(run artifact "${f}" could not be read)
|
|
24
|
-
`);continue}c.push(v(e,g.uri,h.contents)),a.emit?.({type:"resource:read",node:{nodeId:d.id,nodeName:b.name,nodeType:"resource"},server:"flujo",uri:g.uri,name:f,mimeType:g.mimeType,size:g.size,source:"node"})}else{let f=b.boundServer,g=b.uri;if(!f||!g){c.push(`### ${e}
|
|
25
|
-
(resource node is not fully bound — set server and uri)
|
|
26
|
-
`);continue}let h=await s.mcpService.readResource(f,g);if(!h.success||!h.data){c.push(`### ${e}
|
|
27
|
-
(resource ${g} on ${f} could not be read: ${h.error??"unknown error"})
|
|
28
|
-
`);continue}c.push(v(e,`${g} from ${f}`,h.data));let i=h.data.contents?.[0];a.emit?.({type:"resource:read",node:{nodeId:d.id,nodeName:b.name,nodeType:"resource"},server:f,uri:g,name:b.name,mimeType:i?.mimeType??b.mimeType,size:"string"==typeof i?.text?i.text.length:"string"==typeof i?.blob?Math.floor(3*i.blob.length/4):void 0,source:"node"})}}catch(a){u.error(`Failed to read resource node ${d.id}; injecting a note`,a),c.push(`### ${e}
|
|
29
|
-
(resource is currently unavailable)
|
|
30
|
-
`)}}return`
|
|
31
|
-
|
|
32
|
-
## Resources
|
|
33
|
-
The following data artifacts are wired to this step:
|
|
34
|
-
|
|
35
|
-
${c.join("\n")}`}}var x=c(48965),y=c(2826),z=c(83964),A=c(35205),B=c(89224),C=c(67512),D=c(41527);let E=(0,d.h)("backend/flow/execution/resolveRunResourceRefs"),F=/\$\{res:([^}]+)\}/g;async function G(a,b,c,d){if(!a||!a.includes("${res:")||!b)return a?a.replace(F,""):a;F.lastIndex=0;let e=new Set;for(let b=F.exec(a);b;b=F.exec(a))e.add(b[1]);let f=new Map;for(let a of e){let e="";try{let f=await (0,t.FA)(b,a.trim());if(f){let b=await (0,t.gy)(f.uri,{at:Date.now(),source:"res-ref",nodeId:d?.nodeId});if(b){let h=b.contents.contents[0];if(h&&"string"==typeof h.text&&"link"!==f.kind)e=`
|
|
36
|
-
--- resource ${a} (${f.uri}) ---
|
|
37
|
-
${h.text}
|
|
38
|
-
--- end resource ${a} ---
|
|
39
|
-
`;else{var g;e=`[run resource "${a}": ${f.mimeType??f.kind} (${(g=f.size)<1024?`${g} B`:g<1048576?`${Math.round(g/1024)} KB`:`${(g/1048576).toFixed(1)} MB`}) at ${f.uri} — readable via the 'flujo' MCP server]`}c?.({type:"resource:read",node:d,server:"flujo",uri:f.uri,name:a,mimeType:f.mimeType,size:f.size,source:"res-ref"})}else E.warn(`\${res:${a}} entry exists but payload read failed; resolving to ''`,{uri:f.uri})}else E.warn(`\${res:${a}} has no matching run resource; resolving to ''`,{conversationId:b})}catch(b){E.error(`Failed to resolve \${res:${a}}; resolving to ''`,b)}f.set(a,e)}return a.replace(F,(a,b)=>f.get(b)??"")}var H=c(55511),I=c(58505),J=c(78325);let K=(0,d.h)("backend/flow/execution/resolveKvNodeRefs"),L=/^[A-Za-z0-9_-]{1,64}$/;function M(a,b){if("global"===a)return"global";let c=()=>{let a=b.flowId;return a&&L.test(a)?`flow-${a}`:"global"};if("flow"===a)return c();let d=b.folder?.trim();if(d){let a=(0,H.createHash)("sha256").update(d).digest("hex").slice(0,32);return`folder-${a}`}return c()}async function N(a,b){if("string"!=typeof a||!a.includes("${kv:"))return a;let c=(0,I.pf)(a),d={};for(let a of c){let{scope:c,key:e}=(0,I.g2)(a);if(!(0,I.ng)(e)){K.warn(`\${kv:${a}} has an invalid key; resolving to ''`),d[a]="";continue}try{let f=await (0,J.M3)(M(c,b),e);d[a]=f??""}catch(b){K.error(`Failed to resolve \${kv:${a}}; resolving to ''`,b),d[a]=""}}return(0,I.Ul)(a,d)}async function O(a,b,c){let{scope:d,key:e}=(0,I.g2)(a);return(0,I.ng)(e)?(0,J.or)(M(d,c),e,b??""):{skipped:"invalid-name"}}var P=c(32524);let Q=(0,d.h)("backend/flow/execution/nodes/ProcessNode");class R extends l{async generateHandoffTools(a){Q.info("Generating handoff tools");let b=(this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{})).filter(a=>!a.includes("-mcpEdge")&&!a.endsWith("mcpEdge")&&!a.includes("-mcp"));Q.debug("Found standard actions for handoff tools",{actionsCount:b.length,actions:b});let c=[],d=new Set;for(let a of b){let b=this.successors instanceof Map?this.successors.get(a):this.successors[a];if(!b){Q.warn(`Target node not found for edge ${a}`);continue}let e=b.node_params?.id||"unknown";d.has(e)||(d.add(e),c.push({id:e,label:b.node_params?.label||"Unknown Node",type:b.node_params?.type||"unknown"}))}let e=(0,B.E9)(c);a.handoffNameMap=a.handoffNameMap||{};let f=null;try{let b=await i.flowService.getFlow(a.flowId);b&&(f=new Map(b.nodes.map(a=>[a.id,a])))}catch(a){Q.warn("Could not load flow for handoff descriptions; using basic descriptions",{err:a})}let g=[];for(let b of c){let c=e.get(b.id)||`handoff_to_${b.id}`;a.handoffNameMap[c]=b.id;let d=f?.get(b.id),h=d?await (0,A.p)(d):`Hand off execution to ${b.label} (${b.type})`,i=d?.data?.properties,j="subflow"===b.type&&i?.allowCallerFanout===!0,k=("subflow"===b.type||"process"===b.type)&&i?.inputMode==="isolated"&&i?.allowCallerPrompt!==!1,l="subflow"===b.type?i?.promptTemplate:i?.isolatedPrompt,m=k&&i?.allowCallerFanout!==!0&&!l?.trim(),n={},o=[],p=[];j?(n.task={type:"string",description:"The brief for this spawned instance of the sub-agent: what this one copy should work on. Optional; omit it (and call the tool once) for a plain handoff."},p.push('PARALLEL SPAWNING: You may call this tool MULTIPLE TIMES in the SAME response — each call spawns one parallel instance of this sub-agent, briefed with that call\'s "task". All instances run concurrently in the background; their results are merged in call order and the flow continues once every instance has finished. To split work, make one call per sub-task, each with a specific, self-contained "task".')):k&&(n.prompt={type:"string",description:m?"REQUIRED initial brief/instruction for the target node (isolated mode). It has no authored message of its own, so you MUST supply what it should work on — omitting it makes the target start with an empty prompt and stall.":"Instruction/prompt to run the target node with (isolated mode). Optional; omitted falls back to the target's default prompt."},m?(o.push("prompt"),p.push('You MUST pass a "prompt" argument instructing the target node — it has no authored message of its own.')):p.push('Optionally pass a "prompt" argument to instruct the target node; omit it to use its default prompt.'));let q=Object.keys(n).length>0;g.push({name:c,description:p.length>0?`${h}
|
|
40
|
-
|
|
41
|
-
${p.join("\n\n")}`:h,inputSchema:{type:"object",properties:q?n:{},required:o}}),Q.debug("Created handoff tool",{toolName:c,targetNodeId:b.id,targetNodeLabel:b.label})}return Q.info("Generated handoff tools",{toolsCount:g.length}),g}async prep(a,b){Q.info("prep() started");let c=b?.id,d=a.flowId,e=b?.properties?.boundModel,f=b?.properties?.excludeModelPrompt||!1,g=b?.properties?.excludeStartNodePrompt||!1,j=b?.properties?.excludeSystemPrompt||!1;if(Q.debug("Extracted properties",{nodeId:c,flowId:d,boundModel:e,excludeModelPrompt:f,excludeStartNodePrompt:g,excludeSystemPrompt:j}),!c||!d)throw Q.error("Missing required node or flow ID",{nodeId:c,flowId:d}),Error("Process node requires node ID and flow ID");if(!e)throw Q.error("Missing bound model"),Error("Process node requires a bound model");Q.info("Using promptRenderer to build the complete prompt");let k=await p.h.renderPrompt(d,c,{renderMode:"rendered",includeConversationHistory:!1,excludeModelPrompt:f,excludeStartNodePrompt:g,excludeSystemPrompt:j,onResourceRead:b=>a.emit?.({type:"resource:read",node:{nodeId:c},source:"pill",...b})}),l=await G((0,D.S$)(k,a.variables),a.ephemeral?void 0:a.conversationId,a.emit,{nodeId:c}),m=null,n=async()=>{let a;if(m)return m;try{a=(await i.flowService.getFlow(d))?.folder}catch{}return m={flowId:d,folder:a}};l.includes("${kv:")&&(l=await N(l,await n()));let o=b?.properties?.resourceNodes||[];o.length>0&&(l+=await w.processResourceNodes({resourceNodes:o,conversationId:a.ephemeral?void 0:a.conversationId,emit:a.emit})),Q.debug("Prompt rendered successfully",{completePromptLength:l.length,completePromptPreview:l.length>100?l.substring(0,100)+"...":l}),a.currentNodeId=c;let r=[];if(a.mcpContext&&a.mcpContext.availableTools&&a.mcpContext.availableTools.length>0)Q.info("Using MCP tools from shared state",{toolsCount:a.mcpContext.availableTools.length}),r=a.mcpContext.availableTools;else{let a=b?.properties?.mcpNodes||[];if(a.length>0){Q.info("No MCP tools found in shared state, processing MCP nodes",{mcpNodesCount:a.length});let b=await q.ToolHandler.processMCPNodes({mcpNodes:a});if(!b.success)throw Q.error("Failed to process MCP nodes",{error:b.error}),Error(`Failed to process MCP nodes: ${b.error.message}`);r=b.value.availableTools}}r=[...r,...await this.generateHandoffTools(a)];let s=(0,x.B1)(b?.properties?.resourceNodes);for(let b of(s.length>0&&(r=[...r,...s]),a.toolNameMap=a.toolNameMap||{},r))b.server&&b.originalName&&(a.toolNameMap[b.name]={server:b.server,tool:b.originalName,timeout:b.timeout});let t={nodeId:c,nodeType:"process",currentPrompt:l,boundModel:e,availableTools:r,messages:[],conversationId:a.conversationId,requireToolApproval:a.requireApproval??!1},u={id:(0,P.A)(),role:"system",content:l,timestamp:Date.now()};Q.info("Added system message from prompt template",{contentLength:l.length,contentPreview:l.length>100?l.substring(0,100)+"...":l}),t.messages=(0,z.Ui)(a.messages,u);let v=b?.properties?.inputMode??"full-history",A=a.handoffInput&&a.handoffInput.targetNodeId===b?.id?a.handoffInput:void 0,B=t.messages;try{let a=await i.flowService.getFlow(d),b=new Set((a?.nodes??[]).filter(a=>"process"===a.type&&a.data?.properties?.outputMode==="latest-message").map(a=>a.id));B=(0,z.Qv)(t.messages,b)}catch(a){Q.warn("Could not resolve outputMode collapse set; sending the full wire view",{err:a})}if("full-history"!==v||B!==t.messages){let d=b?.properties?.allowCallerPrompt!==!1?A?.prompt?.trim():void 0;d&&Q.info("Using caller-supplied prompt for isolated process node",{nodeId:c});let e=d||b?.properties?.isolatedPrompt,f=void 0!==e?await G((0,D.S$)(e,a.variables),a.ephemeral?void 0:a.conversationId,a.emit,{nodeId:c}):e;"string"==typeof f&&f.includes("${kv:")&&(f=await N(f,await n())),t.wireMessages=(0,z.ij)(B,v,f)}if((t.wireMessages??B).some(a=>JSON.stringify(a).includes(y.j))&&!r.some(a=>a.name===x.JM)&&r.push((0,x.J2)()),Q.info("Assembled node context",{systemMessageCount:1,totalMessageCount:t.messages.length,inputMode:v,wireMessageCount:t.wireMessages?.length}),a.debugMode||h.G.ENABLE_EXECUTION_TRACKER)try{t.modelInput=(0,z.oH)({threaded:t.messages,foldedView:B,scopedView:t.wireMessages??B,systemContent:l,inputMode:v}),t.modelInputs=[t.modelInput]}catch(a){Q.warn("Could not derive model-input debug view",{err:a})}return Q.info("prep() completed",{completePromptLength:l.length,boundModel:e,hasTools:!!t.availableTools?.length,toolsCount:t.availableTools?.length||0,messagesCount:t.messages.length}),t}async execCore(a,b){Q.info("execCore() started",{boundModel:a.boundModel,promptLength:a.currentPrompt?.length,messagesCount:a.messages?.length||0}),Q.debug("execCore() prepResult",a);try{let c,d;if(a.availableTools&&a.availableTools.length>0){let b=q.ToolHandler.prepareTools({availableTools:a.availableTools});if(!b.success)throw Q.error("Failed to prepare tools",{error:b.error}),Error(`Failed to prepare tools: ${b.error.message}`);d=b.value.tools}let e={};for(let b of a.availableTools??[])b.server&&b.originalName&&(e[b.name]={server:b.server,tool:b.originalName,timeout:b.timeout});let f=b?.label||b?.properties?.name||"Process Node",g=a.messages&&a.messages.length>0?a.messages[a.messages.length-1]:null;Q.debug(`[ProcessNode ${a.nodeId}] Calling ModelHandler.callModel`,{modelId:a.boundModel,messageCount:a.messages?.length||0,toolCount:d?.length||0,lastMessageType:g?.role,lastMessageToolCallId:g?.role==="tool"?g.tool_call_id:void 0,lastMessageContentPreview:"string"==typeof g?.content?g.content.substring(0,100)+"...":"(non-string content)"});try{(c=await r.s.callModel({modelId:a.boundModel,prompt:a.currentPrompt,messages:a.messages,wireMessages:a.wireMessages,tools:d,iteration:1,maxIterations:1,maxTurns:b?.properties?.maxTurns,maxTokens:b?.properties?.maxTokens,nodeName:f,nodeId:a.nodeId,toolNameMap:e,conversationId:a.conversationId,requireToolApproval:a.requireToolApproval})).success?Q.debug(`[ProcessNode ${a.nodeId}] ModelHandler.callModel returned successfully`,{success:!0,hasContent:!!c.value?.content,contentLength:c.value?.content?.length||0,toolCallsCount:c.value?.toolCalls?.length||0}):Q.warn(`[ProcessNode ${a.nodeId}] ModelHandler.callModel returned failure state unexpectedly here`,{success:!1,error:c.error})}catch(b){throw Q.error(`[ProcessNode ${a.nodeId}] Error calling ModelHandler.callModel`,{error:b}),b}finally{Q.debug(`[ProcessNode ${a.nodeId}] Finished attempt to call ModelHandler.callModel`)}if(!c||!c.success){let a=c?.error||{message:"Unknown model execution error after call attempt."};Q.error("Model execution error after call attempt",{error:a});let b=Error(`Model execution failed: ${c.error.message}`);throw b.isModelError=!0,b.details={message:c.error.message,type:c.error.type,code:c.error.code,..."model"===c.error.type?{modelId:c.error.modelId}:{},param:"string"==typeof c.error.details?.param?c.error.details.param:void 0,status:"number"==typeof c.error.details?.status?c.error.details.status:void 0,...c.error.details},Q.error("Throwing critical model error to abort flow execution",{error:c.error.message,type:c.error.type,code:c.error.code}),b}let h=c.value,i={success:!0,content:h.content||"",messages:h.messages,fullResponse:h.fullResponse,toolCalls:h.toolCalls};return h.toolCalls&&h.toolCalls.length>0&&Q.info("Tool calls found in model response",{toolCallsCount:h.toolCalls.length,toolNames:h.toolCalls.map(a=>a.name).join(", ")}),Q.info("execCore() completed",{responseLength:i.content?.length||0,messagesCount:i.messages?.length||0,hasToolCalls:!!i.toolCalls?.length}),Q.verbose("execCore() execResult",i),i}catch(b){if(b&&"object"==typeof b&&("isCriticalToolError"in b||"isModelError"in b)){let a=b instanceof Error?b.message:String(b);throw Q.error("Critical error detected - propagating to abort flow:",{error:a,isModelError:"isModelError"in b,isCriticalToolError:"isCriticalToolError"in b}),b}let a={success:!1,error:b instanceof Error?b.message:String(b),errorDetails:b instanceof Error?{message:b.message,name:b.name,stack:b.stack}:{message:String(b)}};return Q.error("execCore() failed",{error:a.error,errorDetails:a.errorDetails}),Q.verbose("execCore() errorResult",a),a}}processHandoffToolCalls(a,b){if(!a||0===a.length)return!1;Q.info("Processing tool calls for handoff requests",{toolCallsCount:a.length});let c=(this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{})).filter(a=>!a.includes("-mcpEdge")&&!a.endsWith("mcpEdge")&&!a.includes("-mcp"));for(let d of a){let{name:a}=d;if(a.startsWith("handoff_to_")){let d=b.handoffNameMap?.[a]||a.replace("handoff_to_","");for(let e of c){let c=this.successors instanceof Map?this.successors.get(e):this.successors[e];if(c&&c.node_params?.id===d)return b.handoffRequested={edgeId:e,targetNodeId:d},Q.info(`Handoff requested to node ${d}`,{edgeId:e,toolName:a}),!0}}}return!1}orderedControlEdges(a){let b=a?.orderedOutgoingEdges;return Array.isArray(b)&&b.length>0?b:(this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{})).filter(a=>!a.includes("-mcpEdge")&&!a.endsWith("mcpEdge")&&!a.includes("-mcp"))}async post(a,b,c,d){if(Q.debug(`[ProcessNode ${d?.id}] post() method started.`),Q.info("post() started",{execResultSuccess:b.success,execResultContentLength:b.content?.length||0,messagesCount:b.messages?.length||0,toolCallsCount:b.toolCalls?.length||0}),!b.success)return c.lastResponse={success:!1,error:b.error,errorDetails:b.errorDetails},Array.isArray(c.trackingInfo.nodeExecutionTracker),Q.warn(`Execution failed for node ${d?.id}. Returning ERROR_ACTION.`),e.O;c.lastResponse=b.content||"";let f=d?.properties?.captureVariable?.trim();b.success&&f&&(c.variables=c.variables??{},c.variables[f]=b.content??"",Q.info("Captured node output into run variable",{captureVariable:f,nodeId:d?.id}));let g=d?.properties?.captureKv?.trim();if(b.success&&g)try{let a;try{a=(await i.flowService.getFlow(c.flowId))?.folder}catch{}let e=await O(g,b.content??"",{flowId:c.flowId,folder:a});"skipped"in e?Q.warn("captureKv skipped",{captureKv:g,reason:e.skipped}):Q.info("Captured node output into persistent kv",{captureKv:g,nodeId:d?.id})}catch(a){Q.error("captureKv failed; continuing run",a)}if(b.messages&&b.messages.length>0&&(c.messages=b.messages.filter(a=>"system"!==a.role),Q.info("Updated messages in sharedState (system prompt excluded)",{messagesCount:c.messages.length})),h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(c.trackingInfo.nodeExecutionTracker)&&(c.trackingInfo.nodeExecutionTracker.push({nodeType:"ProcessNode",nodeId:d?.id||"unknown",nodeName:d?.properties?.name||"Process Node",modelDisplayName:a.modelDisplayName||"Unknown Model",modelTechnicalName:a.boundModel||"unknown",allowedTools:d?.properties?.allowedTools?.join(", "),timestamp:new Date().toISOString()}),Q.info("Added ProcessNode tracking information",{modelDisplayName:a.modelDisplayName,modelTechnicalName:a.boundModel})),this.processHandoffToolCalls(b.toolCalls,c)&&c.handoffRequested){let a=c.handoffRequested.edgeId;return Q.info(`Handoff requested via tool call, returning edge ID: ${a}`),a}let j=b.toolCalls?.filter(a=>!a.name.startsWith("handoff_to_"));if(j&&j.length>0)return Q.info("Non-handoff tool calls detected, returning TOOL_CALL_ACTION"),e.Jp;let k=d?.edgeConditions;if(k&&Object.keys(k).length>0){let a=this.orderedControlEdges(d);for(let b of a){let a=k[b];if(!a)continue;let d=(0,C.PP)(c.messages,a.target);if((0,C.F9)(a,d))return Q.info("Deterministic edge condition matched; routing",{edgeId:b,kind:a.kind}),b}let b=a.find(a=>!k[a]);if(b)return Q.info("No edge condition matched; routing to bare fallback edge",{edgeId:b}),b;Q.info("Conditioned node: no predicate matched and no bare fallback; terminating")}return Q.info("No tool calls or handoff requested, returning FINAL_RESPONSE_ACTION"),e.g4}_clone(){return new R}}var S=c(38611);let T=(0,d.h)("backend/flow/execution/handlers/MCPHandler");class U{static async executeMCP(a){let{mcpServer:b,enabledTools:c,nodeId:d,nodeRoots:e}=a;T.verbose("executeMCP input",JSON.stringify(a));try{d&&s.mcpService.setNodeRoots(b,d,e);let a=await s.mcpService.getServerStatus(b);if("connected"!==a.status){let a=await s.mcpService.connectServer(b);if(!a.success){let c={success:!1,error:(0,S.Fp)("server_connection_failed",`Failed to connect to MCP server: ${a.error}`,b,"connect")};return T.verbose("executeMCP connection error",JSON.stringify(c)),c}}let f=await s.mcpService.listServerTools(b);if(f.error){let a={success:!1,error:(0,S.Fp)("list_tools_failed",`Failed to list tools for server: ${f.error}`,b,"listTools")};return T.verbose("executeMCP list tools error",JSON.stringify(a)),a}let g={success:!0,value:{server:b,tools:f.tools||[],enabledTools:c}};return T.verbose("executeMCP success result",JSON.stringify(g)),g}catch(c){let a={success:!1,error:(0,S.Fp)("mcp_execution_failed",c instanceof Error?c.message:String(c),b,"executeMCP")};return T.verbose("executeMCP execution error",JSON.stringify(a)),a}}}var V=c(75312);let W=(0,d.h)("backend/flow/execution/nodes/MCPNode");class X extends l{async prep(a,b){W.info("prep() started");let c=b?.id||"",d=b?.properties?.boundServer,e=b?.properties?.enabledTools||[],f=b?.properties?.roots||[];if(!d)throw W.error("Missing bound server"),Error("MCP node requires a bound server");return W.info("prep() completed",{mcpServer:d,enabledToolsCount:e.length,nodeRootsCount:f.length}),{nodeId:c,nodeType:"mcp",mcpServer:d,enabledTools:e,nodeRoots:f}}async execCore(a,b){W.info("execCore() started",{mcpServer:a.mcpServer}),W.verbose("execCore() prepResult",JSON.stringify(a));try{let b=await U.executeMCP({mcpServer:a.mcpServer,enabledTools:a.enabledTools,nodeId:a.nodeId,nodeRoots:a.nodeRoots});if(!b.success)throw W.error("MCP execution failed",{error:b.error}),Error(`MCP execution failed: ${b.error.message}`);let c={success:!0,server:b.value.server,tools:b.value.tools,enabledTools:b.value.enabledTools};return W.info("execCore() completed",{server:c.server,toolsCount:c.tools?.length||0,enabledToolsCount:c.enabledTools?.length||0}),W.verbose("execCore() execResult",JSON.stringify(c)),c}catch(b){let a={success:!1,error:b instanceof Error?b.message:String(b)};return W.error("execCore() failed",{error:a.error}),W.verbose("execCore() errorResult",JSON.stringify(a)),a}}async post(a,b,c,d){if(W.info("post() started",{server:b.server,toolsCount:b.tools?.length||0,enabledToolsCount:b.enabledTools?.length||0}),W.verbose("post() inputs",JSON.stringify({prepResult:a,execResult:b,nodeParams:d})),h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(c.trackingInfo.nodeExecutionTracker)&&(c.trackingInfo.nodeExecutionTracker.push({nodeType:"MCPNode",nodeId:d?.id||"unknown",nodeName:d?.properties?.name||"MCP Node",timestamp:new Date().toISOString()}),W.info("Added MCPNode tracking information")),b.success&&b.server&&b.tools){let a=d?.properties?.toolTimeout,e=b.tools.filter(a=>b.enabledTools?.includes(a.name)).map(c=>({...c,originalName:c.name,server:b.server,name:(0,V.Y6)(b.server,c.name),timeout:a}));if(c.mcpContext){let a=[...c.mcpContext.availableTools||[]];for(let b of e)a.some(a=>a.name===b.name)||a.push(b);c.mcpContext.availableTools=a}else c.mcpContext={server:b.server,availableTools:e};for(let a of(c.toolNameMap=c.toolNameMap||{},e))c.toolNameMap[a.name]={server:b.server,tool:a.originalName,timeout:a.timeout};let f=e.map(a=>a.name);W.info("Stored MCP context in shared state",{server:b.server,availableToolsCount:e.length,availableToolNames:f.length>10?f.slice(0,10).join(", ")+"...":f.join(", "),totalToolsCount:c.mcpContext.availableTools.length})}W.info("post() completed"),W.info("Successors object:",{hasSuccessors:!!this.successors,isMap:this.successors instanceof Map,type:typeof this.successors});let e=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});if(W.info("Actions:",{actionsCount:e.length,actions:e}),e.length>0){let a=e[0];return W.info(`Returning action: ${a}`),a}return"default"}_clone(){return new X}}let Y=(0,d.h)("backend/flow/execution/nodes/FinishNode");class Z extends l{async prep(a,b){Y.debug("prep() started");let c={nodeId:b?.id||"",nodeType:"finish",messages:a.messages};return Y.debug("prep() completed",{messagesCount:c.messages.length,hasSystemPrompt:c.messages.some(a=>"system"===a.role)}),c}async execCore(a,b){Y.debug("execCore() started",{messagesCount:a.messages.length}),Y.verbose("execCore() prepResult",JSON.stringify(a));let c={success:!0};return Y.verbose("execCore() execResult",JSON.stringify(c)),Y.info("execCore() completed"),c}async post(a,b,c,d){Y.info("post() started",{messagesCount:a.messages.length}),Y.verbose("post() inputs",JSON.stringify({prepResult:a,execResult:b,nodeParams:d})),h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(c.trackingInfo.nodeExecutionTracker)&&(c.trackingInfo.nodeExecutionTracker.push({nodeType:"FinishNode",nodeId:d?.id||"unknown",nodeName:d?.properties?.name||"Finish Node",timestamp:new Date().toISOString()}),Y.info("Added FinishNode tracking information"));let f=a.messages[a.messages.length-1];f&&"assistant"===f.role&&f.content&&("string"==typeof f.content?c.lastResponse=f.content:c.lastResponse={content:f.content,role:f.role}),Y.info("Successors object:",{hasSuccessors:!!this.successors,isMap:this.successors instanceof Map,type:typeof this.successors});let g=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});if(Y.info("Actions:",{actionsCount:g.length,actions:g}),g.length>0){let a=g[0];return Y.info(`post() completed, returning action: ${a}`),a}return Y.info("post() completed, returning FINAL_RESPONSE_ACTION"),e.g4}_clone(){return new Z}}var $=c(75028),_=c(23529);let aa=(0,d.h)("backend/execution/flow/nodes/SubflowNode");function ab(a){let b,c=-1;for(let b=a.length-1;b>=0;b--)if("user"===a[b].role){c=b;break}if(-1===c)return a;for(let d=a.length-1;d>c;d--)if("assistant"===a[d].role){b=a[d];break}return b?[a[c],b]:[a[c]]}function ac(a,b){let c;if("lines"===b)return a.split(/\r?\n/).map(a=>a.trim()).filter(a=>a.length>0);try{c=JSON.parse(a)}catch{return[]}return Array.isArray(c)?c.map(a=>"string"==typeof a?a:JSON.stringify(a)):[]}function ad(a,b,c){if("string"!=typeof a||""===a.trim())return[];let d=new Set,e=[];for(let f of ac(a,b)){let a=f.trim();if(!(!a||d.has(a))){if(d.add(a),c&&a===c){aa.warn("Dynamic fan-out target refers to the running flow itself; skipping (recursion guard)",{id:a});continue}if(e.push(a),e.length>=32)break}}return e}async function ae(a,b,d){let e=await G((0,D.S$)(a,b.variables),b.ephemeral?void 0:b.conversationId,b.emit,d?{nodeId:d,nodeType:"subflow"}:void 0);if(e.includes("${kv:")){let a;try{let{flowService:d}=await Promise.resolve().then(c.bind(c,87821));a=(await d.getFlow(b.flowId))?.folder}catch{}e=await N(e,{flowId:b.flowId,folder:a})}return e}function af(a,b,c,d,e,f){if(!a||!b)return;let g=f?{laneIndex:f.index,laneCount:f.count}:{},h=f?{...f.title?{laneTitle:f.title}:{},...f.conversationId?{laneConversationId:f.conversationId}:{}}:{};return b=>{let f=(b.depth??0)+1;return"run:start"===b.type?void a({type:"subflow:start",node:c,subflowId:d,subflowName:e,depth:f,...g,...h}):"run:done"===b.type?void a({type:"subflow:done",node:c,subflowId:d,status:b.status,depth:f,...g,...h}):"message"===b.type?void a({...b,depth:f,message:{...b.message,depth:f},...g}):void a({...b,depth:f,...g})}}class ag extends l{async prep(a,b){let d,e=b?.properties?.subflowId,f=a.handoffInput&&a.handoffInput.targetNodeId===b?.id?a.handoffInput:void 0;f&&(a.handoffInput=void 0);let g=(b?.properties?.parallelSubflowIds??[]).filter(a=>"string"==typeof a&&""!==a.trim()),h=b?.properties?.mapOverList===!0,i=b?.properties?.itemSplit==="lines"?"lines":"json-array",j=b?.properties?.sequential===!0,k=b?.properties?.parallelSubflowIdsVar?.trim(),l=!1;if(k){let b=ad(a.variables?.[k],i,a.flowId);b.length>0?(g=b,l=!0,aa.info("Dynamic fan-out targets resolved from run variable",{variable:k,count:b.length})):aa.info("Dynamic fan-out variable resolved to no targets; using static parallelSubflowIds",{variable:k,staticCount:g.length})}let m=!1,n=b?.properties?.allowCallerFanout===!0;if(n&&f?.parallelFlows&&f.parallelFlows.length>0){let c=ad(JSON.stringify(f.parallelFlows),"json-array",a.flowId);c.length>0&&(g=c,l=!0,m=!0,aa.info("Caller-chosen fan-out targets resolved from handoff tool",{count:c.length,nodeId:b?.id}))}"number"==typeof f?.concurrencyLimit&&f.concurrencyLimit>=1&&(d=Math.floor(f.concurrencyLimit));let o=n&&f?.tasks&&f.tasks.length>0?f.tasks:void 0,p=(b?.properties?.spawnBriefs??[]).map(a=>"string"==typeof a?a.trim():"").filter(a=>""!==a),q=o??(p.length>0?p:void 0);q&&q.length>32&&(aa.warn("Spawn briefs exceed the fan-out lane cap; truncating",{requested:q.length,cap:32}),q=q.slice(0,32));let r=b?.properties?.promptTemplate?.trim(),s=b?.properties?.inputMode??(r?"isolated":"full-history"),t=b?.properties?.outputMode!=="final-only",u=b?.properties?.saveConversation!==!1,v={nodeId:b?.id||"",nodeType:"subflow",subflowId:e,depth:(a.runDepth??0)+1,chainDepth:a.chainDepth??0,parentRunId:a.conversationId,plannedExecutionId:a.plannedExecutionId,showSteps:t,persistConversation:u,emit:a.emit,nodeName:b?.properties?.name};if("isolated"===s)b?.properties?.allowCallerPrompt!==!1&&f?.prompt.trim()?(v.inputText=f.prompt,aa.info("Using caller-supplied prompt for isolated subflow",{nodeId:b?.id})):v.inputText=r??"";else{let b=function(a){let b=[];for(let d of a){var c;if("system"===d.role||"tool"===d.role||"assistant"===d.role&&Array.isArray(d.tool_calls)&&d.tool_calls.length>0||!("string"==typeof(c=d.content)?c.trim().length>0:!!Array.isArray(c)&&c.length>0))continue;let{processNodeId:a,...e}=d;b.push({...e})}return b}(a.messages);v.messages="latest-message"===s?ab(b):b}if(void 0!==v.inputText&&(v.inputText=await ae(v.inputText,a,b?.id)),h&&g.length>0&&aa.warn("SubflowNode sets both mapOverList and parallelSubflowIds; ignoring mapOverList (fan-out precedence)",{nodeId:b?.id}),q&&q.length>0&&!e&&(aa.warn("Spawn briefs received but the node has no subflowId; briefs are ignored",{nodeId:b?.id,briefCount:q.length}),q=void 0),q&&q.length>0&&e){let f;g.length>0&&aa.warn("SubflowNode has both spawn briefs and parallelSubflowIds; spawn briefs win for this visit",{nodeId:b?.id});try{let{flowService:a}=await Promise.resolve().then(c.bind(c,87821));f=(await a.getFlow(e))?.name}catch{}let h=await Promise.all(q.map(c=>ae(c,a,b?.id)));v.lanes=h.map((a,b)=>({subflowId:e,subflowName:f,input:void 0!==v.messages?{messages:[...v.messages,{role:"user",content:a,id:crypto.randomUUID(),timestamp:Date.now()}]}:{prompt:a},itemIndex:b,itemCount:h.length,laneTitle:(0,_.oO)(a)})),v.concurrencyLimit=Math.max(1,d??b?.properties?.concurrencyLimit??4),v.joinSeparator=b?.properties?.joinSeparator??"\n\n",v.errorStrategy=b?.properties?.errorStrategy??"collect-all",aa.info("Spawn-with-brief lanes resolved",{nodeId:b?.id,laneCount:h.length,source:o?"caller":"author"})}else if(g.length>0){let a=g.map(a=>({subflowId:a}));try{let{flowService:b}=await Promise.resolve().then(c.bind(c,87821)),d=new Set;await Promise.all(a.map(async a=>{try{let c=await b.getFlow(a.subflowId);c?.name?a.subflowName=c.name:l&&!c&&d.add(a.subflowId)}catch{l&&d.add(a.subflowId)}})),l&&d.size>0&&(aa.warn("Dropping unknown dynamic fan-out target id(s)",{dropped:[...d]}),a=a.filter(a=>!d.has(a.subflowId)))}catch{}l&&0===a.length&&(m?v.laneResolutionError=`None of the requested parallel flows exist: ${g.join(", ")}. The handoff "parallelFlows" argument must name existing flows; to run several copies of THIS sub-agent, call the handoff tool once per task instead.`:v.fanOutResolvedEmpty=!0),v.lanes=a,v.concurrencyLimit=Math.max(1,d??b?.properties?.concurrencyLimit??4),v.joinSeparator=b?.properties?.joinSeparator??"\n\n",v.errorStrategy=b?.properties?.errorStrategy??"collect-all"}else if(h&&e){var w;let a,d=ac((void 0!==v.inputText?v.inputText:"string"==typeof(w=ab(v.messages??[])[0]?.content)?w:Array.isArray(w)?w.map(a=>"string"==typeof a?a:"string"==typeof a?.text?a.text:"").join(""):"")??"",i);try{let{flowService:b}=await Promise.resolve().then(c.bind(c,87821)),d=await b.getFlow(e);d?.name&&(a=d.name)}catch{}v.lanes=d.map((b,c)=>({subflowId:e,subflowName:a,input:{prompt:b},itemIndex:c,itemCount:d.length,laneTitle:(0,_.oO)(b)})),v.mapOverList=!0,v.concurrencyLimit=j?1:Math.max(1,b?.properties?.concurrencyLimit??4),v.joinSeparator=b?.properties?.joinSeparator??"\n\n",v.errorStrategy=b?.properties?.errorStrategy??"collect-all"}else if(e)try{let{flowService:a}=await Promise.resolve().then(c.bind(c,87821)),b=await a.getFlow(e);b?.name&&(v.subflowName=b.name)}catch{}return aa.info("prep() completed",{subflowId:e,depth:v.depth,mode:s,historyCount:v.messages?.length,laneCount:v.lanes?.length,showSteps:t}),v}async execCore(a,b){let{runFlow:d}=await Promise.all([c.e(4671),c.e(7214)]).then(c.bind(c,57214)),e={nodeId:a.nodeId,nodeName:a.nodeName,nodeType:"subflow"},f=a.messages?{messages:a.messages}:{prompt:a.inputText??""};if(a.laneResolutionError)return{success:!1,error:a.laneResolutionError};if(a.lanes&&a.lanes.length>0)return this.execParallel(a,d,e,f);if(a.mapOverList||a.fanOutResolvedEmpty)return aa.info("execCore() resolved no lanes → nothing to run",{subflowId:a.subflowId,reason:a.fanOutResolvedEmpty?"dynamic-fanout-empty":"map-over-list-empty"}),{success:!0,outputText:"",subStatus:"completed",lanes:[]};if(!a.subflowId)return{success:!1,error:"Subflow node has no flow selected (subflowId is empty)."};let g=af(a.emit,a.showSteps,e,a.subflowId,a.subflowName);aa.info("execCore() running subflow",{subflowId:a.subflowId,depth:a.depth,showSteps:a.showSteps,foldingEvents:!!g});let h=await d({flowId:a.subflowId,...f,mode:a.persistConversation?"conversation":"ephemeral",flujo:!0,requireApproval:!1,debug:!1,depth:a.depth,chainDepth:a.chainDepth,parentRunId:a.parentRunId,...a.plannedExecutionId?{plannedExecutionId:a.plannedExecutionId}:{},...g?{emit:g}:{}});return"error"===h.status?{success:!1,error:h.error?.message||"Subflow execution failed",errorDetails:h.error?.details,subStatus:h.status}:{success:!0,outputText:h.outputText,subStatus:h.status}}async execParallel(a,b,d,e){let f=a.lanes??[],g=f.length,h=Math.max(1,a.concurrencyLimit??4),i=a.joinSeparator??"\n\n",j=a.errorStrategy??"collect-all";aa.info("execCore() running parallel subflows",{laneCount:g,concurrencyLimit:h,errorStrategy:j,depth:a.depth});let k=Array(g),l=0,m=!1,n=async c=>{let h=f[c],i=a.persistConversation?crypto.randomUUID():void 0,l=h.laneTitle??h.subflowName,n=af(a.emit,a.showSteps,d,h.subflowId,h.subflowName,{index:h.itemIndex??c,count:h.itemCount??g,title:l,conversationId:i});try{let d=await b({flowId:h.subflowId,...h.input??e,mode:a.persistConversation?"conversation":"ephemeral",...i?{conversationId:i}:{},...a.persistConversation&&l?{title:l}:{},flujo:!0,requireApproval:!1,debug:!1,depth:a.depth,chainDepth:a.chainDepth,parentRunId:a.parentRunId,...a.plannedExecutionId?{plannedExecutionId:a.plannedExecutionId}:{},...n?{emit:n}:{}});k[c]="error"===d.status?{subflowId:h.subflowId,success:!1,error:d.error?.message||"Subflow execution failed"}:{subflowId:h.subflowId,success:!0,outputText:d.outputText}}catch(a){k[c]={subflowId:h.subflowId,success:!1,error:a instanceof Error?a.message:String(a)},n?.({type:"run:done",status:"error"})}k[c].success||"fail-fast"!==j||(m=!0)},{FlowExecutor:o}=await Promise.resolve().then(c.bind(c,52940)),p=()=>(0,$.isCancelledByAncestry)(a.parentRunId,o.conversationStates),q=async()=>{for(;;){if(m)return;if(p()){m=!0;return}let a=l++;if(a>=g)return;await n(a)}},r=Math.min(h,g);await Promise.all(Array.from({length:r},()=>q()));let s=k.filter(a=>void 0!==a),t=s.filter(a=>a.success),u=s.filter(a=>!a.success),v=u.length>0;if("fail-fast"===j&&v){let a=s.find(a=>!a.success);return{success:!1,error:a?.error||"A parallel subflow lane failed",subStatus:"error",lanes:s}}if(0===t.length)return{success:!1,error:"All parallel subflows failed",subStatus:"error",lanes:s};let w=t.map(a=>a.outputText??"").join(i);if(v){let a=u.map(a=>`- ${a.subflowId}: ${a.error??"unknown error"}`).join("\n");w+=`${i}[${u.length} parallel subflow(s) failed:
|
|
42
|
-
${a}]`}return{success:!0,outputText:w,subStatus:"completed",lanes:s,partial:v}}async post(a,b,d,f){if(h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(d.trackingInfo.nodeExecutionTracker)&&d.trackingInfo.nodeExecutionTracker.push({nodeType:"SubflowNode",nodeId:f?.id||"unknown",nodeName:f?.properties?.name||"Subflow Node",timestamp:new Date().toISOString()}),!b.success)return aa.error("Subflow failed",{subflowId:a.subflowId,error:b.error}),d.lastResponse={success:!1,error:b.error||"Subflow execution failed",errorDetails:b.errorDetails},e.O;let g=b.outputText??"",i=f?.properties?.name||a.subflowName||"the sub-agent",j={role:"assistant",content:g.trim().length>0?`[↩ Returned result from sub-agent "${i}" — this is a FINISHED sub-task result handed back to you, not your own message. Use it to continue your task; do not wait for further output from it.]
|
|
43
|
-
|
|
44
|
-
${g}`:`[↩ Sub-agent "${i}" finished and returned control to you with no output. Continue your task; do not wait for further output from it.]`,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:f?.id};d.messages.push(j),d.lastResponse=g;let k=f?.properties?.captureVariable?.trim();k&&(d.variables=d.variables??{},d.variables[k]=g,aa.info("Captured subflow output into run variable",{captureVariable:k,nodeId:f?.id}));let l=f?.properties?.captureResource?.trim();if(l&&d.conversationId&&!d.ephemeral)try{let a=await (0,t.tm)({conversationId:d.conversationId,name:l,mimeType:"text/markdown",kind:"text",data:{text:g},producedBy:{source:"capture",nodeId:f?.id,nodeName:f?.properties?.name}});"skipped"in a?aa.warn("captureResource skipped by store cap",{captureResource:l,reason:a.skipped}):(d.emit?.({type:"resource:write",node:{nodeId:f?.id??"unknown",nodeName:f?.properties?.name,nodeType:"subflow"},server:"flujo",uri:a.uri,name:l,mimeType:a.mimeType,size:a.size,source:"capture"}),aa.info("Captured subflow output into run resource",{captureResource:l,uri:a.uri,nodeId:f?.id}))}catch(a){aa.error("captureResource failed; continuing run",a)}let m=f?.properties?.captureKv?.trim();if(m)try{let a;try{let{flowService:b}=await Promise.resolve().then(c.bind(c,87821));a=(await b.getFlow(d.flowId))?.folder}catch{}let b=await O(m,g,{flowId:d.flowId,folder:a});"skipped"in b?aa.warn("captureKv skipped",{captureKv:m,reason:b.skipped}):aa.info("Captured subflow output into persistent kv",{captureKv:m,nodeId:f?.id})}catch(a){aa.error("captureKv failed; continuing run",a)}let n=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});if(n.length>0){let a=n[0];return aa.info(`post() completed, handing off via action: ${a}`),a}return aa.info("post() completed, no successor → FINAL_RESPONSE_ACTION"),e.g4}_clone(){return new ag}}let ah=(0,d.h)("backend/flow/execution/nodes/ResourceNode");class ai extends l{async prep(a,b){return ah.warn("ResourceNode.prep() reached — resource nodes are config holders and should never execute",{nodeId:b?.id}),{}}async execCore(){return{}}async post(a,b,c,d){let e=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});return e.length>0?e[0]:"default"}_clone(){return new ai}}var aj=c(56793);let ak=(0,d.h)("backend/flow/execution/nodes/SignalNode");class al extends l{async prep(a,b){let c=(b?.properties?.topic??"").trim(),d=b?.properties?.payloadTemplate??"";return ak.info("prep() started",{nodeId:b?.id,topic:c,payloadTemplateLength:d.length}),{topic:c,payloadTemplate:d}}async execCore(){return{}}async post(a,b,c,d){ak.info("post() started",{nodeId:d?.id,topic:a.topic}),h.G.ENABLE_EXECUTION_TRACKER&&Array.isArray(c.trackingInfo?.nodeExecutionTracker)&&c.trackingInfo.nodeExecutionTracker.push({nodeType:"SignalNode",nodeId:d?.id||"unknown",nodeName:d?.properties?.name||"Signal Node",timestamp:new Date().toISOString()});let e=a.topic;if(e)try{let b=(0,D.S$)(a.payloadTemplate??"",c.variables),d="schedule"===c.source?"schedule":"api"===c.source?"api":"chat";(0,aj.eh)().publish({kind:"signal",topic:e,payload:b,emitterFlowId:c.flowId,runId:c.conversationId||"",conversationId:c.conversationId||"",firedBy:d,chainDepth:c.chainDepth??0,timestamp:new Date().toISOString()}),ak.info("Emitted signal",{topic:e,payloadLength:b.length,chainDepth:c.chainDepth??0})}catch(a){ak.warn("Signal emit failed (ignored so the run continues):",a)}else ak.warn("Signal node has no topic; nothing emitted",{nodeId:d?.id});let f=this.successors instanceof Map?Array.from(this.successors.keys()):Object.keys(this.successors||{});return f.length>0?f[0]:"default"}_clone(){return new al}}let am=(0,d.h)("backend/flow/execution/FlowConverter");class an{static convert(a){am.info("Converting React Flow to Pocket Flow",{flowName:a.name,nodeCount:a.nodes.length,edgeCount:a.edges.length}),am.verbose("convert input",JSON.stringify({flowName:a.name,nodeCount:a.nodes.length,edgeCount:a.edges.length}));let b=new Map;for(let c of a.nodes){am.debug(`Creating node: ${c.id} (${c.type})`);let a=this.createNode(c);b.set(c.id,a)}for(let c of a.edges){am.debug(`Connecting edge: ${c.id} (${c.source} -> ${c.target})`);let a=b.get(c.source),d=b.get(c.target);if(a&&d)if(c.data?.edgeType==="mcp"){let b,e;am.info(`Handling MCP connection: ${c.id} (${c.source} -> ${c.target})`),a instanceof R?(b=a,e=d):d instanceof R&&(b=d,e=a),b&&e?(b.node_params.properties||(b.node_params.properties={}),b.node_params.properties.mcpNodes||(b.node_params.properties.mcpNodes=[]),b.node_params.properties.mcpNodes.push({id:e.node_params.id,properties:e.node_params.properties}),am.info("Stored MCP node in Process node properties",{processNodeId:b.node_params.id,mcpNodeId:e.node_params.id})):am.warn(`Invalid MCP connection: ${c.id}. Could not find Process and MCP nodes.`,{sourceNodeType:a.constructor.name,targetNodeType:d.constructor.name})}else if(c.data?.edgeType==="resource"){let b,e,f;if(am.info(`Handling resource connection: ${c.id} (${c.source} -> ${c.target})`),a instanceof ai&&d instanceof R?(e=a,b=d,f="consume"):a instanceof R&&d instanceof ai&&(b=a,e=d,f="produce"),b&&e&&f){b.node_params.properties||(b.node_params.properties={}),b.node_params.properties.resourceNodes||(b.node_params.properties.resourceNodes=[]);let a=e.node_params.properties??{};b.node_params.properties.resourceNodes.push({id:e.node_params.id,role:f,properties:a}),am.info("Stored resource node in Process node properties",{processNodeId:b.node_params.id,resourceNodeId:e.node_params.id,role:f})}else am.warn(`Invalid resource connection: ${c.id}. Could not find Process and Resource nodes.`,{sourceNodeType:a.constructor.name,targetNodeType:d.constructor.name})}else{let b=c.id||"default";a.addSuccessor(d,b),a.node_params.orderedOutgoingEdges=a.node_params.orderedOutgoingEdges||[],a.node_params.orderedOutgoingEdges.push(b);let e=c.data?.condition;if(e&&"object"==typeof e&&(a.node_params.edgeConditions=a.node_params.edgeConditions||{},a.node_params.edgeConditions[b]=e,am.info("Retained edge condition for routing",{edgeId:b,source:c.source})),c.data?.bidirectional){let e=`${b}__reverse`;d.addSuccessor(a,e),d.node_params.orderedOutgoingEdges=d.node_params.orderedOutgoingEdges||[],d.node_params.orderedOutgoingEdges.push(e),am.info(`Connected nodes (bidirectional): ${c.target} -> ${c.source} with action: ${e}`)}am.info(`Connected nodes: ${c.source} -> ${c.target} with action: ${b}`),a.successors instanceof Map?am.debug("Source node successors after connection:",{sourceNodeId:c.source,successorsCount:a.successors.size,successorsKeys:Array.from(a.successors.keys()),hasTargetNode:a.successors.has(b)}):am.warn("Source node successors is not a Map:",{sourceNodeId:c.source,successorsType:typeof a.successors})}else am.warn(`Failed to connect edge: ${c.id}`,{sourceExists:!!a,targetExists:!!d})}let c=a.nodes.find(a=>"start"===a.type);if(!c)throw am.error("No start node found in flow"),Error("Flow must have a start node");am.debug(`Found start node: ${c.id}`);let d=b.get(c.id);if(!d)throw am.error(`Failed to retrieve start node from map: ${c.id}`),Error("Failed to create start node");let e=new m(d);return am.debug("Created Pocket Flow with start node"),am.info("Flow conversion completed successfully",{nodeCount:b.size}),am.verbose("convert result",JSON.stringify({flowStartNodeId:e.node_params?.id||"unknown",nodesCount:b.size})),e}static createNode(a){let b,c;switch(am.debug(`Creating node of type: ${a.type}`,{nodeId:a.id,label:a.data.label}),am.verbose("createNode input",JSON.stringify({nodeId:a.id,nodeType:a.type,label:a.data.label,properties:a.data.properties})),a.type){case"start":b=new o,c={id:a.id,label:a.data.label,type:"start",properties:a.data.properties||{name:a.data.label}};break;case"process":b=new R,c={id:a.id,label:a.data.label,type:"process",properties:a.data.properties||{name:a.data.label}};break;case"mcp":b=new X,c={id:a.id,label:a.data.label,type:"mcp",properties:a.data.properties||{name:a.data.label}};break;case"finish":b=new Z,c={id:a.id,label:a.data.label,type:"finish",properties:a.data.properties||{name:a.data.label}};break;case"subflow":b=new ag,c={id:a.id,label:a.data.label,type:"subflow",properties:a.data.properties||{name:a.data.label}};break;case"resource":b=new ai,c={id:a.id,label:a.data.label,type:"resource",properties:a.data.properties||{name:a.data.label}};break;case"signal":b=new al,c={id:a.id,label:a.data.label,type:"signal",properties:a.data.properties||{name:a.data.label}};break;default:throw am.error(`Unknown node type: ${a.type}`,{nodeId:a.id}),Error(`Unknown node type: ${a.type}`)}return b.setParams({},c),am.debug("Node created and parameters set",{nodeId:a.id,type:a.type,propertiesKeys:Object.keys(c.properties||{})}),am.verbose("createNode result",JSON.stringify({nodeId:a.id,nodeType:a.type,nodeParams:c})),b}}let ao=(0,d.h)("backend/execution/flow/engine/PocketflowEngine");class ap{clearCache(a){a?this.pocketFlowCache.delete(a):this.pocketFlowCache.clear()}async resolveFlowDefinition(a){let b=a.flowId;if(this.pocketFlowCache.has(b))return ao.debug(`Using cached Pocket Flow for flowId: ${b}`),this.pocketFlowCache.get(b).clone();let c=a.flowSnapshot;if(c)ao.verbose(`Resolving flow ${b} from an in-memory quick-chat snapshot.`);else if(ao.verbose(`Loading and converting flow for flowId: ${b}`),!(c=await i.flowService.getFlow(b)??void 0))throw ao.error(`Flow not found for flowId: ${b}`),Error(`Flow not found: ${b}`);ao.info(`Found flow: ${c.name}`,{flowId:c.id,nodeCount:c.nodes.length,edgeCount:c.edges.length});let d=an.convert(c);return this.pocketFlowCache.set(b,d),ao.verbose(`Flow ${b} converted and cached.`),d.clone()}async findNodeById(a,b){ao.verbose(`Searching for node ${b} in flow ${a.node_params?.id}`);let c=await a.getStartNode(),d=[c],e=new Set,f=c.node_params?.id;for(f?e.add(f):ao.warn("Start node is missing an ID in its parameters.");d.length>0;){let a=d.shift();if(a.node_params?.id===b)return ao.verbose(`Found node ${b}`),a;if(a.successors instanceof Map)for(let b of a.successors.values()){let a=b.node_params?.id;"string"==typeof a&&a.length>0&&!e.has(a)&&(e.add(a),d.push(b.clone()))}}ao.warn(`Node ${b} not found in flow.`)}async resolveNode(a){let b,{conversationId:c,currentNodeId:d}=a,e=await this.resolveFlowDefinition(a);if(d)(b=await this.findNodeById(e,d))?ao.info(`Resuming conversation ${c} at node ${d}`):(ao.warn(`Resuming conversation ${c}, but node ${d} not found. Starting from beginning.`),b=await e.getStartNode());else{let d=a.messages.length>0?a.messages[a.messages.length-1]:null;d?.processNodeId?(ao.info(`Found processNodeId ${d.processNodeId} in last message. Attempting to resume from this node.`),(b=await this.findNodeById(e,d.processNodeId))?ao.info(`Resuming conversation ${c} from node ${d.processNodeId} based on last message.`):(ao.warn(`Could not find node ${d.processNodeId} from last message. Starting from beginning.`),b=await e.getStartNode())):(b=await e.getStartNode(),ao.info(`Starting conversation ${c} from the beginning.`))}if(!b)throw Error("Execution error: Cannot find starting node.");let f=b.node_params?.id;if("string"!=typeof f||0===f.length)throw Error(`Execution error: Node ${b.constructor.name} is missing an ID.`);return{handle:b,id:f,type:b.node_params?.type||"unknown",name:b.node_params?.label||"Unknown Node"}}async resolveHandoff(a,b){let{currentNodeId:c}=a;if(!c||!b)return{isSuccessorEdge:!1,targetNodeId:null};let d=await this.resolveFlowDefinition(a),e=await this.findNodeById(d,c);if(!e||!e.successors.has(b))return{isSuccessorEdge:!1,targetNodeId:null};let f=e.getSuccessor(b),g=f?.node_params?.id,h=f?.node_params?.type;return{isSuccessorEdge:!0,targetNodeId:"string"==typeof g&&g.length>0?g:null,targetNodeType:"string"==typeof h?h:null}}async runNode(a,b,c){let d=a.handle;c&&(b.emit=c);try{ao.debug(`[PocketflowEngine] Calling run() on node ${a.id} (${a.type})`);let c=await d.run(b);return ao.debug(`[PocketflowEngine] Node ${a.id} returned action: "${c.action}"`),{action:c.action,prepResult:c.prepResult,execResult:c.execResult}}finally{delete b.emit}}constructor(){this.pocketFlowCache=new Map}}let aq=(0,d.h)("backend/execution/flow/FlowExecutor"),ar=["messages","availableTools","fullResponse","emit","modelInput","modelInputs"];function as(a){let{messages:b,executionTrace:c,emit:d,mcpContext:e,...f}=a,h=g()(f);return h.messageCount=b?.length??0,e&&(h.mcpContext={server:e.server,availableTools:[]}),h}function at(a){if(!a||"object"!=typeof a)return a;let b=g()(a);for(let a of ar)a in b&&delete b[a];return b}class au{static get conversationStates(){return global.__flujo_conversation_states||(global.__flujo_conversation_states=new Map),global.__flujo_conversation_states}static get engine(){return global.__flujo_flow_engine||(global.__flujo_flow_engine=new ap),global.__flujo_flow_engine}static set engine(a){global.__flujo_flow_engine=a}static clearFlowCache(a){this.engine.clearCache(a)}static resolveHandoff(a,b){return this.engine.resolveHandoff(a,b)}static async peekNextNodeId(a){try{return(await this.engine.resolveNode(a)).id}catch{return null}}static async executeStep(a,b){let c,d,f,{conversationId:g,flowId:i,currentNodeId:j}=a;if("string"!=typeof g||0===g.length)return aq.error("executeStep called without a valid conversationId in sharedState."),a.lastResponse={success:!1,error:"Internal error: Missing conversationId."},{sharedState:a,action:e.O};aq.debug(`executeStep called for conversation ${g}`,{flowId:i,currentNodeId:j});let k=h.G.ENABLE_EXECUTION_TRACKER||!!a.debugMode,l=j;try{let e=await this.engine.resolveNode(a);l=e.id,a.currentNodeId=e.id,aq.info(`Executing step for node ${e.id} (${e.type}) in conversation ${g}`),k&&!a.executionTrace&&(a.executionTrace=[]),c=as(a),b?.({type:"node:enter",node:{nodeId:e.id,nodeName:e.name,nodeType:e.type}});let h=await this.engine.runNode(e,a,b),i=h.action;d=h.prepResult,f=h.execResult,b?.({type:"node:exit",node:{nodeId:e.id,nodeName:e.name,nodeType:e.type},action:i}),aq.debug(`Node ${e.id} finished with action: ${i} for conversation ${g}`);let j=as(a);if(k&&a.executionTrace){let b=a.executionTrace.length,h={stepIndex:b,nodeId:e.id,nodeType:e.type,nodeName:e.name,timestamp:new Date().toISOString(),actionTaken:i,stateBefore:c,stateAfter:j,prepResultSnapshot:at(d),execResultSnapshot:at(f),modelInput:d?.modelInput,modelInputs:d?.modelInputs};a.executionTrace.push(h),aq.verbose(`Appended step ${b} to execution trace for conversation ${g}`)}return this.conversationStates.set(g,a),aq.debug(`[FlowExecutor] Returning from executeStep for node ${e.id} with action: "${i}"`),{sharedState:a,action:i}}catch(i){let f=l||"unknown node";aq.error(`Error during node execution step for ${f} in conversation ${g}`,{error:i});let h=i?.details;if(a.lastResponse={success:!1,error:i instanceof Error?i.message:String(i),errorDetails:i instanceof Error?{name:i.name,message:i.message,stack:i.stack,...h&&"object"==typeof h?h:{}}:{message:String(i)}},a.currentNodeId=l,b?.({type:"error",node:l?{nodeId:l}:void 0,message:i instanceof Error?i.message:String(i)}),k&&a.executionTrace){let b=a.executionTrace.length,h={stepIndex:b,nodeId:f,nodeType:"unknown",nodeName:"Unknown Node",timestamp:new Date().toISOString(),actionTaken:e.O,stateBefore:c??as(a),stateAfter:as(a),prepResultSnapshot:d?at(d):null,execResultSnapshot:{success:!1,error:a.lastResponse},modelInput:d?.modelInput,modelInputs:d?.modelInputs};a.executionTrace.push(h),aq.verbose(`Appended ERROR step ${b} to execution trace for conversation ${g}`)}return this.conversationStates.set(g,a),{sharedState:a,action:e.O}}}}},60184:(a,b,c)=>{c.d(b,{$b:()=>A,D$:()=>s,LB:()=>r,Os:()=>u,RU:()=>v,UG:()=>y,cc:()=>w,jM:()=>z,u8:()=>t});var d=c(29021),e=c(33873),f=c.n(e),g=c(75028),h=c(50846),i=c(43326);let j=(0,h.h)("backend/execution/flow/conversationLog"),k=new Set(["run:start","run:done","node:enter","node:exit","handoff","message","message:removed","tool:call","tool:result","usage","subflow:start","subflow:done","resource:read","resource:write","error"]),l=/^[A-Za-z0-9_-]+$/,m=f().join((0,i.getDataDir)(),"db","conversation-logs");function n(a){return f().join(m,`${a}.jsonl`)}let o=new Map;function p(a,b){let c=(o.get(a)??Promise.resolve()).catch(()=>{}).then(async()=>{await d.promises.mkdir(m,{recursive:!0}),await d.promises.appendFile(n(a),b)});return o.set(a,c),c.finally(()=>{o.get(a)===c&&o.delete(a)})}function q(a){return`${JSON.stringify(a)}
|
|
45
|
-
`}function r(a){if(k.has(a.type)){if(!l.test(a.conversationId))return void j.warn("Refusing to log event for unsafe conversation id",{conversationId:a.conversationId});(function(a){try{if((0,g.isConversationDeleted)(a))return!1;let{FlowExecutor:b}=c(52940),d=b.conversationStates.get(a);if(!d)return!1;return!d.ephemeral}catch(b){return j.warn(`Could not resolve persistence policy for ${a}; not persisting.`,{err:b}),!1}})(a.conversationId)&&p(a.conversationId,q(a)).catch(b=>j.warn(`Failed to append event to conversation log ${a.conversationId}`,{err:b}))}}async function s(a,b){if(0===b.length||a.ephemeral)return;let c=a.conversationId;if(!c||!l.test(c)||(0,g.isConversationDeleted)(c))return;let d=b.map(a=>q({...a,conversationId:c,seq:-1,timestamp:Date.now()})).join("");try{await p(c,d)}catch(a){j.warn(`Failed to append ${b.length} event(s) to conversation log ${c}`,{err:a})}}function t(a){let b=o.get(a);return b?b.then(()=>void 0,()=>void 0):Promise.resolve()}async function u(a){let b;if(!l.test(a))return;try{b=await d.promises.readFile(n(a),"utf-8")}catch(b){if("ENOENT"===b.code)return;j.error(`Error reading conversation log ${a}:`,b);return}let c=[],e=0;for(let a of b.split("\n"))if(0!==a.trim().length)try{c.push(JSON.parse(a))}catch{e++}return e>0&&j.warn(`Skipped ${e} unparseable line(s) in conversation log ${a} (truncated append?)`),c}async function v(a){if(l.test(a))try{await d.promises.unlink(n(a))}catch(b){"ENOENT"!==b.code&&j.warn(`Error deleting conversation log ${a}:`,b)}}function w(a){let b=[],c=new Map;for(let d of a)if("message"===d.type){let a=d.message;if(!a||!a.id||"system"===a.role)continue;let e=d.depth??0,f=e>0?{...a,depth:e}:{...a},g=c.get(a.id);void 0!==g?b[g]=f:(c.set(a.id,b.length),b.push(f))}else if("message:removed"===d.type){let a=c.get(d.messageId);if(void 0===a)continue;for(let[e,f]of(b.splice(a,1),c.delete(d.messageId),c))f>a&&c.set(e,f-1)}return b}function x(a){return JSON.stringify([a.role,a.content,a.tool_calls??null,a.disabled??!1,a.processNodeId??null])}async function y(a,b){if(a.ephemeral)return;let c=a.conversationId;if(!c||!l.test(c))return;let d=(a.messages??[]).filter(a=>"system"!==a.role&&!!a.id),e=await B(c)?b.filter(a=>"system"!==a.role&&!!a.id):[],f=new Map(e.map(a=>[a.id,a])),g=new Set(d.map(a=>a.id)),h=[];for(let a of d){let b=f.get(a.id);b&&x(b)===x(a)||h.push({type:"message",message:a})}for(let a of e)g.has(a.id)||h.push({type:"message:removed",messageId:a.id});await s(a,h)}async function z(a){if(a.ephemeral)return!1;let b=a.conversationId;if(!b||!l.test(b))return!1;let c=await u(b);if(!c)return!1;let d=w(c).filter(a=>!((a.depth??0)>0)),e=(a.messages??[]).filter(a=>"system"!==a.role&&!!a.id).map(a=>a.id);if(d.length<=e.length)return!1;let f=new Set(d.map(a=>a.id));return!!e.every(a=>f.has(a))&&(j.info(`Recovered ${d.length-e.length} message(s) from the conversation log for ${b} (snapshot was behind).`),a.messages=d,!0)}async function A(a){if(a.ephemeral)return;let b=a.conversationId;if(!b||!l.test(b))return;let c=await u(b);if(!c)return;let e=w(c).filter(a=>!((a.depth??0)>0)),f=(a.messages??[]).filter(a=>"system"!==a.role&&!!a.id);if(e.length>=f.length)return;let g=new Set(f.map(a=>a.id));if(!e.every(a=>g.has(a.id)))return;let h=f.map(a=>q({type:"message",message:a,conversationId:b,seq:-1,timestamp:Date.now()})).join("");try{await function(a,b){let c=(o.get(a)??Promise.resolve()).catch(()=>{}).then(async()=>{await d.promises.mkdir(m,{recursive:!0}),await d.promises.writeFile(n(a),b)});return o.set(a,c),c.finally(()=>{o.get(a)===c&&o.delete(a)})}(b,h),j.info(`Rebuilt truncated conversation log for ${b} from snapshot (${e.length} → ${f.length} message(s)); issue #49 self-heal.`)}catch(a){j.warn(`Failed to rebuild truncated conversation log ${b}`,{err:a})}return f}async function B(a){if(!l.test(a))return!1;try{return await d.promises.access(n(a)),!0}catch{return!1}}},61539:(a,b,c)=>{c.d(b,{Bt:()=>B,FA:()=>D,Ns:()=>u,gy:()=>E,iQ:()=>F,jR:()=>w,tm:()=>A,yP:()=>C});var d=c(29021),e=c(33873),f=c.n(e),g=c(55511),h=c(50846),i=c(43326),j=c(92372),k=c(38844),l=c(2826);let m=(0,h.h)("backend/services/runResources"),n=f().join((0,i.getDataDir)(),"db","run-resources"),o=/^[A-Za-z0-9_-]{1,64}$/;function p(a,b){if("string"!=typeof a||!o.test(a))throw Error(`Unsafe run-resource ${b}: ${JSON.stringify(a)}`)}let q=a=>f().join(n,a),r=a=>f().join(q(a),"index.json"),s=(a,b)=>f().join(q(a),`${b}.dat`),t=a=>`run-resources/${a}`;function u(a){if("string"!=typeof a||!a.startsWith(l.j))return null;let b=a.slice(l.j.length).split("/");if(2!==b.length)return null;let[c,d]=b;return o.test(c)&&o.test(d)?{conversationId:c,id:d}:null}let v=null;async function w(){let a;if(v&&Date.now()-v.at<3e4)return v.value;try{let b=await (0,j.YM)(k.Z.RUN_RESOURCE_SETTINGS,l.R);a={...l.R,...b}}catch(b){m.warn("Failed to load run-resource settings; using defaults",b),a=l.R}return v={value:a,at:Date.now()},a}let x=global.__flujo_run_resources??(global.__flujo_run_resources=new Map);async function y(a){let b=x.get(a);if(b)return b;let c=[];try{let b=await d.promises.readFile(r(a),"utf-8");if(b.trim().length>0){let a=JSON.parse(b);Array.isArray(a)&&(c=a)}}catch(b){"ENOENT"!==b.code&&m.error(`Failed to read run-resource index for ${a}; treating as empty`,b)}return x.set(a,c),c}async function z(a,b){return(0,j.l_)(t(a),async()=>{let c=await y(a),{next:d,result:e}=await b(c);return d!==c&&(x.set(a,d),await (0,j.Zf)(r(a),JSON.stringify(d,null,2))),e})}async function A(a){let b;p(a.conversationId,"conversationId");let c=await w(),e=null,f="utf8";a.data&&("text"in a.data?(e=Buffer.from(a.data.text,"utf8"),f="utf8"):(e=Buffer.from(a.data.base64,"base64"),f="base64"));let h=e?.byteLength??0;if(h>c.maxResourceBytes)return m.warn(`Run-resource write skipped (size ${h} > cap ${c.maxResourceBytes})`,{conversationId:a.conversationId,name:a.name,kind:a.kind}),{skipped:"size-cap"};let i=(0,g.randomUUID)(),j=await z(a.conversationId,async g=>{var j;let k=a.name?g.find(b=>b.name===a.name):void 0,n=g.reduce((a,b)=>a+(b===k?0:b.size),0);if(n+h>c.maxConversationBytes)return m.warn(`Run-resource write skipped (conversation budget ${n}+${h} > ${c.maxConversationBytes})`,{conversationId:a.conversationId,name:a.name,kind:a.kind}),{next:g,result:{skipped:"conversation-cap"}};let o={id:i,uri:(j=a.conversationId,`${l.j}${j}/${i}`),conversationId:a.conversationId,name:a.name,mimeType:a.mimeType,size:h,kind:a.kind,encoding:f,createdAt:Date.now(),producedBy:a.producedBy,origin:a.origin,readBy:[]};e&&(await d.promises.mkdir(q(a.conversationId),{recursive:!0}),await d.promises.writeFile(s(a.conversationId,i),e));let p=k?g.filter(a=>a!==k):g.slice();return p.push(o),b=k&&k.size>0?k:void 0,m.debug(`Stored run resource ${o.uri}`,{kind:o.kind,size:h,name:o.name}),{next:p,result:o}});return b&&d.promises.unlink(s(a.conversationId,b.id)).catch(()=>{}),j}async function B(a){return p(a,"conversationId"),(await y(a)).slice()}async function C(a=200){let b=[];try{b=(await d.promises.readdir(n,{withFileTypes:!0})).filter(a=>a.isDirectory()&&o.test(a.name)).map(a=>a.name)}catch(a){if("ENOENT"===a.code)return[];throw a}let c=[];for(let a of b)c.push(...await y(a));return c.sort((a,b)=>b.createdAt-a.createdAt),c.slice(0,a)}async function D(a,b){return p(a,"conversationId"),(await y(a)).find(a=>a.name===b)??null}async function E(a,b){let c,e=u(a);if(!e)return null;let f=(await y(e.conversationId)).find(a=>a.id===e.id);if(!f)return null;if("link"===f.kind)c={contents:[{uri:f.uri,mimeType:f.mimeType??"text/plain",text:`Run resource link → ${f.origin?`${f.origin.server}: ${f.origin.uri}`:"unknown origin"}`}]};else{let b;try{b=await d.promises.readFile(s(e.conversationId,e.id))}catch(b){return m.error(`Run-resource payload missing for ${a}`,b),null}c="utf8"===f.encoding?{contents:[{uri:f.uri,mimeType:f.mimeType??"text/plain",text:b.toString("utf8")}]}:{contents:[{uri:f.uri,mimeType:f.mimeType??"application/octet-stream",blob:b.toString("base64")}]}}if(b)try{await z(e.conversationId,async a=>{let c=a.find(a=>a.id===e.id);if(!c)return{next:a,result:void 0};let d={...c,readBy:[...c.readBy,b]};return{next:a.map(a=>a===c?d:a),result:void 0}}),f.readBy.push(b)}catch(b){m.warn(`Failed to persist readBy for ${a}`,b)}return{entry:f,contents:c}}async function F(a){p(a,"conversationId"),x.delete(a),await (0,j.l_)(t(a),async()=>{try{await d.promises.rm(q(a),{recursive:!0,force:!0}),m.debug(`Deleted run resources for conversation ${a}`)}catch(b){m.warn(`Failed to delete run resources for ${a}`,b)}})}},67490:(a,b,c)=>{c.d(b,{A:()=>d});let d=8},75028:(a,b,c)=>{c.r(b),c.d(b,{isCancelledByAncestry:()=>e,isConversationDeleted:()=>i,markConversationDeleted:()=>g,unmarkConversationDeleted:()=>h});var d=c(67490);function e(a,b){let c=a,e=new Set;for(let a=0;a<=d.A+1&&!(!c||e.has(c));a++){e.add(c);let a=b.get(c);if(!a)break;if(a.isCancelled)return!0;c=a.parentRunId}return!1}let f=new Set;function g(a){f.add(a)}function h(a){f.delete(a)}function i(a){return!!a&&f.has(a)}},75312:(a,b,c)=>{c.d(b,{$9:()=>g,Y6:()=>e,ud:()=>f});let d="_-_-_";function e(a,b){let c=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193);return(b>>>0).toString(36)}(`${a}\0${b}`),d=64-(5+c.length),e=b.replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,Math.max(0,d));return`mcp_${e}_${c}`}function f(a,b){if(b&&b[a])return b[a];if(a.includes(d)){let b=a.split(d);if(3===b.length)return{server:b[1],tool:b[2]}}return null}function g(a,b){return!!b&&!!b[a]||a.includes(d)}},76813:(a,b,c)=>{c.d(b,{J:()=>g,RZ:()=>i,Rt:()=>h,sf:()=>f});let d=globalThis,e=d.__flujoToolApprovals??(d.__flujoToolApprovals=new Map);function f(a,b,c){let d=e.get(a);d||(d=new Map,e.set(a,d)),d.set(b.id,{toolCall:b,resolve:c})}function g(a,b,c){let d=e.get(a),f=d?.get(b);return!!d&&!!f&&(d.delete(b),0===d.size&&e.delete(a),f.resolve(c),!0)}function h(a){let b=e.get(a);return b?Array.from(b.values(),a=>a.toolCall):[]}function i(a){let b=e.get(a);if(b){for(let a of b.values())a.resolve(!1);e.delete(a)}}},78325:(a,b,c)=>{c.d(b,{M3:()=>y,or:()=>x});var d=c(29021),e=c(33873),f=c.n(e),g=c(50846),h=c(43326),i=c(92372),j=c(38844);let k={enabled:!0,maxValueBytes:65536,maxKeysPerScope:512,maxScopeBytes:8388608},l=(0,g.h)("backend/services/kvStore"),m=f().join((0,h.getDataDir)(),"db","kv-store"),n=/^[A-Za-z0-9_-]{1,64}$/;function o(a){if("string"!=typeof a||!n.test(a))throw Error(`Unsafe kv scope id: ${JSON.stringify(a)}`)}function p(a){if("string"!=typeof a||!n.test(a))throw Error(`Unsafe kv key name: ${JSON.stringify(a)}`)}let q=a=>f().join(m,a),r=a=>f().join(q(a),"index.json"),s=null;async function t(){let a;if(s&&Date.now()-s.at<3e4)return s.value;try{let b=await (0,i.YM)(j.Z.KV_STORE_SETTINGS,k);a={...k,...b}}catch(b){l.warn("Failed to load kv-store settings; using defaults",b),a=k}return s={value:a,at:Date.now()},a}let u=global.__flujo_kv_store??(global.__flujo_kv_store=new Map);async function v(a){let b=u.get(a);if(b)return b;let c=[];try{let b=await d.promises.readFile(r(a),"utf-8");if(b.trim().length>0){let a=JSON.parse(b);Array.isArray(a)&&(c=a)}}catch(b){"ENOENT"!==b.code&&l.error(`Failed to read kv index for scope ${a}; treating as empty`,b)}return u.set(a,c),c}async function w(a,b){return(0,i.l_)(`kv-store/${a}`,async()=>{let c=await v(a),{next:e,result:f}=b(c);return e!==c&&(u.set(a,e),await d.promises.mkdir(q(a),{recursive:!0}),await (0,i.Zf)(r(a),JSON.stringify(e,null,2))),f})}async function x(a,b,c,d){o(a),p(b);let e=await t();if(!e.enabled)return{skipped:"disabled"};let f="string"==typeof c?c:String(c??""),g=Buffer.byteLength(f,"utf8");return g>e.maxValueBytes?(l.warn(`kv write skipped (size ${g} > cap ${e.maxValueBytes})`,{scope:a,name:b}),{skipped:"size-cap"}):w(a,c=>{let h=c.find(a=>a.name===b);if(!h&&c.length>=e.maxKeysPerScope)return l.warn(`kv write skipped (keys ${c.length} >= cap ${e.maxKeysPerScope})`,{scope:a,name:b}),{next:c,result:{skipped:"keys-cap"}};let i=c.reduce((a,b)=>a+(b===h?0:b.size),0);if(i+g>e.maxScopeBytes)return l.warn(`kv write skipped (scope budget ${i}+${g} > ${e.maxScopeBytes})`,{scope:a,name:b}),{next:c,result:{skipped:"scope-cap"}};let j=Date.now(),k={scope:a,name:b,value:f,size:g,createdAt:h?.createdAt??j,updatedAt:j,expiresAt:d?.expiresAt},m=h?c.map(a=>a===h?k:a):[...c,k];return l.debug(`Set kv ${a}/${b}`,{size:g}),{next:m,result:k}})}async function y(a,b){var c;o(a),p(b);let d=(await v(a)).find(a=>a.name===b);if(d&&(c=Date.now(),"number"!=typeof d.expiresAt||d.expiresAt>c))return d.value}},83964:(a,b,c)=>{function d(a){return"assistant"===a.role&&Array.isArray(a.tool_calls)&&a.tool_calls.length>0}function e(a){let b=a.length-1;for(;b>=0;b--){let c=a[b];if(!("tool"===c.role||d(c)))break}let c=a.slice(b+1);return c.some(d)?c:[]}function f(a,b,c){let f;if(!b||"full-history"===b)return a;let g=a.filter(a=>"system"===a.role);if("isolated"===b)return[...g,{role:"user",content:c??"",id:"isolated-input",timestamp:0},...e(a)];let h=e(a),i=a.length-h.length,j=-1;for(let b=i-1;b>=0;b--)if("user"===a[b].role){j=b;break}if(-1===j)return a;for(let b=i-1;b>j;b--){let c=a[b];if("assistant"===c.role&&!d(c)){f=c;break}}return[...g,a[j],...f?[f]:[],...h]}function g(a){return a.tool_calls.some(a=>"function"===a.type&&i(a.function.name))}function h(a,b){if(0===b.size)return a;let c=a.length-e(a).length,f=Array(c).fill(!1);for(let b=0;b<c;){let e=a[b].processNodeId,h=b;for(;h<c&&a[h].processNodeId===e;)h++;let i=!1;if(e)for(let c=b;c<h;c++){let b=a[c];if("assistant"===b.role&&k(b)&&(!d(b)||g(b))){i=!0;break}}for(let a=b;a<h;a++)f[a]=i;b=h}let h=new Set,i=[],j=!1;for(let e=0;e<a.length;e++){let l=a[e];if(e<c){if(d(l)&&l.processNodeId&&b.has(l.processNodeId)&&f[e]){for(let a of l.tool_calls)h.add(a.id);if(j=!0,g(l)&&k(l)){let{tool_calls:a,...b}=l;i.push(b)}continue}if("tool"===l.role&&l.tool_call_id&&h.has(l.tool_call_id)){j=!0;continue}}i.push(l)}return j?i:a}function i(a){return"handoff"===a||a.startsWith("handoff_to_")}function j(a,b){return[b,...a.filter(a=>"system"!==a.role)]}function k(a){return"string"==typeof a.content?a.content.trim().length>0:!!Array.isArray(a.content)&&a.content.length>0}function l(a){let b=new Set;for(let c of a)if("assistant"===c.role&&Array.isArray(c.tool_calls))for(let a of c.tool_calls)"function"===a.type&&i(a.function.name)&&b.add(a.id);let c=[];for(let d of a)if(("user"!==d.role||"string"!=typeof d.content||"The handoff was successful. Continue"!==d.content.trim())&&!("tool"===d.role&&d.tool_call_id&&b.has(d.tool_call_id))){if("assistant"===d.role&&Array.isArray(d.tool_calls)&&d.tool_calls.some(a=>"function"===a.type&&i(a.function.name))){let a=d.tool_calls.filter(a=>!("function"===a.type&&i(a.function.name)));if(a.length>0)c.push({...d,tool_calls:a});else if(k(d)){let{tool_calls:a,...b}=d;c.push(b)}continue}c.push(d)}return c}function m(a){return l(a).map(({id:a,timestamp:b,disabled:c,processNodeId:d,depth:e,usage:f,...g})=>g)}function n(a){return"string"==typeof a.content&&a.content.length>4e3?{...a,content:`${a.content.slice(0,4e3)}
|
|
46
|
-
…[truncated ${a.content.length-4e3} chars]`}:a}function o(a){let b=new Set;for(let c of a)c.id&&b.add(c.id);return b}function p(a){let{threaded:b,foldedView:c,scopedView:d,systemContent:e,inputMode:f}=a,g=l(d),h=o(c),i=o(d),j=o(g),k=[],m=0,p=0,q=0,r=0;for(let a of b){let b={id:a.id,role:a.role,status:"sent",preview:function(a,b){if("string"==typeof a.content)return a.content.slice(0,300);if(Array.isArray(a.content))try{return JSON.stringify(a.content).slice(0,300)}catch{}return""}(a,300),toolCallNames:function(a){if("assistant"===a.role&&Array.isArray(a.tool_calls)&&a.tool_calls.length>0){let b=a.tool_calls.map(a=>"function"===a.type?a.function.name:void 0).filter(a=>!!a);return b.length>0?b:void 0}}(a)};"system"===a.role?b.status="system":a.id&&j.has(a.id)?(b.status="sent",m++):a.id&&i.has(a.id)?(b.status="handoff-stripped",b.reason='Removed as FLUJO handoff plumbing (handoff tool-call / result, or synthetic "Continue").',r++):a.id&&h.has(a.id)?(b.status="scoped-out",b.reason=`Outside this node's input scope (inputMode: ${f??"full-history"}).`,q++):(b.status="folded",b.reason="Settled tool exchange folded away (a node with outputMode: latest-message).",p++),k.push(b)}return{systemMessage:null!=e?{content:e}:null,wireMessages:g.map(n),provenance:k,counts:{threaded:b.length,sent:m,folded:p,scopedOut:q,handoffStripped:r},inputMode:f}}c.d(b,{Qv:()=>h,Ui:()=>j,ae:()=>m,ij:()=>f,oH:()=>p})},99978:(a,b,c)=>{c.d(b,{E5:()=>g,Jp:()=>d,O:()=>f,g4:()=>e});let d="TOOL_CALL",e="FINAL_RESPONSE",f="ERROR",g="STAY_ON_NODE"}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=2985,exports.ids=[2985],exports.modules={2117:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},19427:(a,b,c)=>{c.d(b,{A:()=>aa});var d,e,f=c(38301),g=c(43249),h=c(2783),i=c(37489),j=c(92869),k=c(55973),l=c(66335),m=c(62383),n=c(10005);function o(a){return a.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}let p=function(a={}){let{ignoreAccents:b=!0,ignoreCase:c=!0,limit:d,matchFrom:e="any",stringify:f,trim:g=!1}=a;return(a,{inputValue:h,getOptionLabel:i})=>{let j=g?h.trim():h;c&&(j=j.toLowerCase()),b&&(j=o(j));let k=j?a.filter(a=>{let d=(f||i)(a);return c&&(d=d.toLowerCase()),b&&(d=o(d)),"start"===e?d.startsWith(j):d.includes(j)}):a;return"number"==typeof d?k.slice(0,d):k}}(),q=a=>null!==a.current&&a.current.parentElement?.contains(document.activeElement),r=[];function s(a,b,c){if(b||null==a)return"";let d=c(a);return"string"==typeof d?d:""}let t=function(a){let{unstable_isActiveElementInListbox:b=q,unstable_classNamePrefix:c="Mui",autoComplete:d=!1,autoHighlight:e=!1,autoSelect:g=!1,blurOnSelect:h=!1,clearOnBlur:i=!a.freeSolo,clearOnEscape:o=!1,componentName:t="useAutocomplete",defaultValue:u=a.multiple?r:null,disableClearable:v=!1,disableCloseOnSelect:w=!1,disabled:x,disabledItemsFocusable:y=!1,disableListWrap:z=!1,filterOptions:A=p,filterSelectedOptions:B=!1,freeSolo:C=!1,getOptionDisabled:D,getOptionKey:E,getOptionLabel:F=a=>a.label??a,groupBy:G,handleHomeEndKeys:H=!a.freeSolo,id:I,includeInputInList:J=!1,inputValue:K,isOptionEqualToValue:L=(a,b)=>a===b,multiple:M=!1,onChange:N,onClose:O,onHighlightChange:P,onInputChange:Q,onOpen:R,open:S,openOnFocus:T=!1,options:U,readOnly:V=!1,selectOnFocus:W=!a.freeSolo,value:X}=a,Y=(0,j.A)(I),Z=F;Z=a=>{let b=F(a);return"string"!=typeof b?String(b):b};let $=f.useRef(!1),_=f.useRef(!0),aa=f.useRef(null),ab=f.useRef(null),[ac,ad]=f.useState(null),[ae,af]=f.useState(-1),ag=e?0:-1,ah=f.useRef(ag),ai=f.useRef(s(u??X,M,Z)).current,[aj,ak]=(0,k.A)({controlled:X,default:u,name:t}),[al,am]=(0,k.A)({controlled:K,default:ai,name:t,state:"inputValue"}),[an,ao]=f.useState(!1),ap=f.useCallback((a,b,c)=>{if(!(M?aj.length<b.length:null!==b)&&!i)return;let d=s(b,M,Z);al!==d&&(am(d),Q&&Q(a,d,c))},[Z,al,M,Q,am,i,aj]),[aq,ar]=(0,k.A)({controlled:S,default:!1,name:t,state:"open"}),[as,at]=f.useState(!0),au=!M&&null!=aj&&al===Z(aj),av=aq&&!V,aw=av?A(U.filter(a=>!(B&&(M?aj:[aj]).some(b=>null!==b&&L(a,b)))),{inputValue:au&&as?"":al,getOptionLabel:Z}):[],ax=(0,l.A)({filteredOptions:aw,value:aj,inputValue:al});f.useEffect(()=>{let a=aj!==ax.value;(!an||a)&&(!C||a)&&ap(null,aj,"reset")},[aj,ap,an,ax.value,C]);let ay=aq&&aw.length>0&&!V,az=(0,m.A)(a=>{-1===a?aa.current.focus():ac.querySelector(`[data-tag-index="${a}"]`).focus()});f.useEffect(()=>{M&&ae>aj.length-1&&(af(-1),az(-1))},[aj,M,ae,az]);let aA=(0,m.A)(({event:a,index:b,reason:d})=>{if(ah.current=b,-1===b?aa.current.removeAttribute("aria-activedescendant"):aa.current.setAttribute("aria-activedescendant",`${Y}-option-${b}`),P&&["mouse","keyboard","touch"].includes(d)&&P(a,-1===b?null:aw[b],d),!ab.current)return;let e=ab.current.querySelector(`[role="option"].${c}-focused`);e&&(e.classList.remove(`${c}-focused`),e.classList.remove(`${c}-focusVisible`));let f=ab.current;if("listbox"!==ab.current.getAttribute("role")&&(f=ab.current.parentElement.querySelector('[role="listbox"]')),!f)return;if(-1===b){f.scrollTop=0;return}let g=ab.current.querySelector(`[data-option-index="${b}"]`);if(g&&(g.classList.add(`${c}-focused`),"keyboard"===d&&g.classList.add(`${c}-focusVisible`),f.scrollHeight>f.clientHeight&&"mouse"!==d&&"touch"!==d)){let a=f.clientHeight+f.scrollTop,b=g.offsetTop+g.offsetHeight;b>a?f.scrollTop=b-f.clientHeight:g.offsetTop-g.offsetHeight*(1.3*!!G)<f.scrollTop&&(f.scrollTop=g.offsetTop-g.offsetHeight*(1.3*!!G))}}),aB=(0,m.A)(({event:a,diff:b,direction:c="next",reason:e})=>{if(!av)return;let f=function(a,b){if(!ab.current||a<0||a>=aw.length)return -1;let c=a;for(;;){let d=ab.current.querySelector(`[data-option-index="${c}"]`),e=!y&&(!d||d.disabled||"true"===d.getAttribute("aria-disabled"));if(d&&d.hasAttribute("tabindex")&&!e)return c;if((c="next"===b?(c+1)%aw.length:(c-1+aw.length)%aw.length)===a)return -1}}((()=>{let a=aw.length-1;if("reset"===b)return ag;if("start"===b)return 0;if("end"===b)return a;let c=ah.current+b;return c<0?-1===c&&J?-1:z&&-1!==ah.current||Math.abs(b)>1?0:a:c>a?c===a+1&&J?-1:z||Math.abs(b)>1?a:0:c})(),c);if(aA({index:f,reason:e,event:a}),d&&"reset"!==b)if(-1===f)aa.current.value=al;else{let a=Z(aw[f]);aa.current.value=a,0===a.toLowerCase().indexOf(al.toLowerCase())&&al.length>0&&aa.current.setSelectionRange(al.length,a.length)}}),aC=f.useCallback(()=>{if(!av)return;let a=(()=>{var a,b;if(-1!==ah.current&&ax.filteredOptions&&ax.filteredOptions.length!==aw.length&&ax.inputValue===al&&(M?aj.length===ax.value.length&&ax.value.every((a,b)=>Z(aj[b])===Z(a)):(a=ax.value,b=aj,(a?Z(a):"")===(b?Z(b):"")))){let a=ax.filteredOptions[ah.current];if(a)return aw.findIndex(b=>Z(b)===Z(a))}return -1})();if(-1!==a){ah.current=a;return}let b=M?aj[0]:aj;if(0===aw.length||null==b)return void aB({diff:"reset"});if(ab.current){if(null!=b){let a=aw[ah.current];if(M&&a&&-1!==aj.findIndex(b=>L(a,b)))return;let c=aw.findIndex(a=>L(a,b));-1===c?aB({diff:"reset"}):aA({index:c});return}if(ah.current>=aw.length-1)return void aA({index:aw.length-1});aA({index:ah.current})}},[aw.length,!M&&aj,B,aB,aA,av,al,M]),aD=(0,m.A)(a=>{(0,n.A)(ab,a),a&&aC()});f.useEffect(()=>{aC()},[aC]);let aE=a=>{!aq&&(ar(!0),at(!0),R&&R(a))},aF=(a,b)=>{aq&&(ar(!1),O&&O(a,b))},aG=(a,b,c,d)=>{if(M){if(aj.length===b.length&&aj.every((a,c)=>a===b[c]))return}else if(aj===b)return;N&&N(a,b,c,d),ak(b)},aH=f.useRef(!1),aI=(a,b,c="selectOption",d="options")=>{let e=c,f=b;if(M){let a=(f=Array.isArray(aj)?aj.slice():[]).findIndex(a=>L(b,a));-1===a?f.push(b):"freeSolo"!==d&&(f.splice(a,1),e="removeOption")}ap(a,f,e),aG(a,f,e,{option:b}),w||a&&(a.ctrlKey||a.metaKey)||aF(a,e),(!0===h||"touch"===h&&aH.current||"mouse"===h&&!aH.current)&&aa.current.blur()},aJ=(a,b)=>{if(!M)return;""===al&&aF(a,"toggleInput");let c=ae;-1===ae?""===al&&"previous"===b&&(c=aj.length-1):((c+="next"===b?1:-1)<0&&(c=0),c===aj.length&&(c=-1)),af(c=function(a,b){if(-1===a)return -1;let c=a;for(;;){if("next"===b&&c===aj.length||"previous"===b&&-1===c)return -1;let a=ac.querySelector(`[data-tag-index="${c}"]`);if(a&&a.hasAttribute("tabindex")&&!a.disabled&&"true"!==a.getAttribute("aria-disabled"))return c;c+="next"===b?1:-1}}(c,b)),az(c)},aK=a=>{$.current=!0,am(""),Q&&Q(a,"","clear"),aG(a,M?[]:null,"clear")},aL=a=>{ao(!0),T&&!$.current&&aE(a)},aM=a=>{if(b(ab))return void aa.current.focus();ao(!1),_.current=!0,$.current=!1,g&&-1!==ah.current&&av?aI(a,aw[ah.current],"blur"):g&&C&&""!==al?aI(a,al,"blur","freeSolo"):i&&ap(a,aj,"blur"),aF(a,"blur")},aN=a=>{let b=a.target.value;al!==b&&(am(b),at(!1),Q&&Q(a,b,"input")),""===b?v||M||aG(a,null,"clear"):aE(a)},aO=a=>{let b=Number(a.currentTarget.getAttribute("data-option-index"));ah.current!==b&&aA({event:a,index:b,reason:"mouse"})},aP=a=>{aA({event:a,index:Number(a.currentTarget.getAttribute("data-option-index")),reason:"touch"}),aH.current=!0},aQ=a=>{let b=Number(a.currentTarget.getAttribute("data-option-index"));aI(a,aw[b],"selectOption"),aH.current=!1},aR=a=>{aq?aF(a,"toggleInput"):aE(a)},aS=a=>{a.currentTarget.contains(a.target)&&a.target.getAttribute("id")!==Y&&a.preventDefault()},aT=a=>{a.currentTarget.contains(a.target)&&(aa.current.focus(),W&&_.current&&aa.current.selectionEnd-aa.current.selectionStart==0&&aa.current.select(),_.current=!1)},aU=a=>{x||""!==al&&aq||aR(a)},aV=C&&al.length>0;aV=aV||(M?aj.length>0:null!==aj);let aW=aw;return G&&(aW=aw.reduce((a,b,c)=>{let d=G(b);return a.length>0&&a[a.length-1].group===d?a[a.length-1].options.push(b):a.push({key:c,index:c,group:d,options:[b]}),a},[])),x&&an&&aM(),{getRootProps:(a={})=>({...a,onKeyDown:b=>{if(a.onKeyDown&&a.onKeyDown(b),!b.defaultMuiPrevented&&(-1===ae||["ArrowLeft","ArrowRight"].includes(b.key)||(af(-1),az(-1)),229!==b.which))switch(b.key){case"Home":av&&H&&(b.preventDefault(),aB({diff:"start",direction:"next",reason:"keyboard",event:b}));break;case"End":av&&H&&(b.preventDefault(),aB({diff:"end",direction:"previous",reason:"keyboard",event:b}));break;case"PageUp":b.preventDefault(),aB({diff:-5,direction:"previous",reason:"keyboard",event:b}),aE(b);break;case"PageDown":b.preventDefault(),aB({diff:5,direction:"next",reason:"keyboard",event:b}),aE(b);break;case"ArrowDown":b.preventDefault(),aB({diff:1,direction:"next",reason:"keyboard",event:b}),aE(b);break;case"ArrowUp":b.preventDefault(),aB({diff:-1,direction:"previous",reason:"keyboard",event:b}),aE(b);break;case"ArrowLeft":aJ(b,"previous");break;case"ArrowRight":aJ(b,"next");break;case"Enter":if(-1!==ah.current&&av){let a=aw[ah.current],c=!!D&&D(a);if(b.preventDefault(),c)return;aI(b,a,"selectOption"),d&&aa.current.setSelectionRange(aa.current.value.length,aa.current.value.length)}else C&&""!==al&&!1===au&&(M&&b.preventDefault(),aI(b,al,"createOption","freeSolo"));break;case"Escape":av?(b.preventDefault(),b.stopPropagation(),aF(b,"escape")):o&&(""!==al||M&&aj.length>0)&&(b.preventDefault(),b.stopPropagation(),aK(b));break;case"Backspace":if(M&&!V&&""===al&&aj.length>0){let a=-1===ae?aj.length-1:ae,c=aj.slice();c.splice(a,1),aG(b,c,"removeOption",{option:aj[a]})}break;case"Delete":if(M&&!V&&""===al&&aj.length>0&&-1!==ae){let a=aj.slice();a.splice(ae,1),aG(b,a,"removeOption",{option:aj[ae]})}}},onMouseDown:aS,onClick:aT}),getInputLabelProps:()=>({id:`${Y}-label`,htmlFor:Y}),getInputProps:()=>({id:Y,value:al,onBlur:aM,onFocus:aL,onChange:aN,onMouseDown:aU,"aria-activedescendant":av?"":null,"aria-autocomplete":d?"both":"list","aria-controls":ay?`${Y}-listbox`:void 0,"aria-expanded":ay,autoComplete:"off",ref:aa,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:x}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:aK}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:aR}),getTagProps:({index:a})=>({key:a,"data-tag-index":a,tabIndex:-1,...!V&&{onDelete:b=>{let c=aj.slice();c.splice(a,1),aG(b,c,"removeOption",{option:aj[a]})}}}),getListboxProps:()=>({role:"listbox",id:`${Y}-listbox`,"aria-labelledby":`${Y}-label`,ref:aD,onMouseDown:a=>{a.preventDefault()}}),getOptionProps:({index:a,option:b})=>{let c=(M?aj:[aj]).some(a=>null!=a&&L(b,a)),d=!!D&&D(b);return{key:E?.(b)??Z(b),tabIndex:-1,role:"option",id:`${Y}-option-${a}`,onMouseMove:aO,onClick:aQ,onTouchStart:aP,"data-option-index":a,"aria-disabled":d,"aria-selected":c}},id:Y,inputValue:al,value:aj,dirty:aV,expanded:av&&ac,popupOpen:av,focused:an||-1!==ae,anchorEl:ac,setAnchorEl:ad,focusedTag:ae,groupedOptions:aW}};var u=c(31605),v=c(18168),w=c(68333),x=c(6636),y=c(6638),z=c(29565),A=c(33105);function B(a){return(0,A.Ay)("MuiListSubheader",a)}(0,z.A)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);var C=c(21124);let D=(0,v.Ay)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,"default"!==c.color&&b[`color${(0,y.A)(c.color)}`],!c.disableGutters&&b.gutters,c.inset&&b.inset,!c.disableSticky&&b.sticky]}})((0,w.A)(({theme:a})=>({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(a.vars||a).palette.text.secondary,fontFamily:a.typography.fontFamily,fontWeight:a.typography.fontWeightMedium,fontSize:a.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(a.vars||a).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:({ownerState:a})=>!a.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:a})=>a.inset,style:{paddingLeft:72}},{props:({ownerState:a})=>!a.disableSticky,style:{position:"sticky",top:0,zIndex:1,backgroundColor:(a.vars||a).palette.background.paper}}]}))),E=f.forwardRef(function(a,b){let c=(0,x.b)({props:a,name:"MuiListSubheader"}),{className:d,color:e="default",component:f="li",disableGutters:i=!1,disableSticky:j=!1,inset:k=!1,...l}=c,m={...c,color:e,component:f,disableGutters:i,disableSticky:j,inset:k},n=(a=>{let{classes:b,color:c,disableGutters:d,inset:e,disableSticky:f}=a,g={root:["root","default"!==c&&`color${(0,y.A)(c)}`,!d&&"gutters",e&&"inset",!f&&"sticky"]};return(0,h.A)(g,B,b)})(m);return(0,C.jsx)(D,{as:f,className:(0,g.A)(n.root,d),ref:b,ownerState:m,...l})});E&&(E.muiSkipListHighlight=!0);var F=c(54573),G=c(44079),H=c(41893),I=c(88679),J=c(13763),K=c(91003),L=c(37659),M=c(88570),N=c(41606);function O(a){return(0,A.Ay)("MuiAutocomplete",a)}let P=(0,z.A)("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var Q=c(20385);let R=(0,v.Ay)("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a,{fullWidth:d,hasClearIcon:e,hasPopupIcon:f,inputFocused:g,size:h}=c;return[{[`& .${P.tag}`]:b.tag},{[`& .${P.tag}`]:b[`tagSize${(0,y.A)(h)}`]},{[`& .${P.inputRoot}`]:b.inputRoot},{[`& .${P.input}`]:b.input},{[`& .${P.input}`]:g&&b.inputFocused},b.root,d&&b.fullWidth,f&&b.hasPopupIcon,e&&b.hasClearIcon]}})({[`&.${P.focused} .${P.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${P.clearIndicator}`]:{visibility:"visible"}},[`& .${P.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${P.inputRoot}`]:{[`.${P.hasPopupIcon}&, .${P.hasClearIcon}&`]:{paddingRight:30},[`.${P.hasPopupIcon}.${P.hasClearIcon}&`]:{paddingRight:56},[`& .${P.input}`]:{width:0,minWidth:30}},[`& .${I.A.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${I.A.root}.${J.A.sizeSmall}`]:{[`& .${I.A.input}`]:{padding:"2px 4px 3px 0"}},[`& .${K.A.root}`]:{padding:9,[`.${P.hasPopupIcon}&, .${P.hasClearIcon}&`]:{paddingRight:39},[`.${P.hasPopupIcon}.${P.hasClearIcon}&`]:{paddingRight:65},[`& .${P.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${P.endAdornment}`]:{right:9}},[`& .${K.A.root}.${J.A.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${P.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${L.A.root}`]:{paddingTop:19,paddingLeft:8,[`.${P.hasPopupIcon}&, .${P.hasClearIcon}&`]:{paddingRight:39},[`.${P.hasPopupIcon}.${P.hasClearIcon}&`]:{paddingRight:65},[`& .${L.A.input}`]:{padding:"7px 4px"},[`& .${P.endAdornment}`]:{right:9}},[`& .${L.A.root}.${J.A.sizeSmall}`]:{paddingBottom:1,[`& .${L.A.input}`]:{padding:"2.5px 4px"}},[`& .${J.A.hiddenLabel}`]:{paddingTop:8},[`& .${L.A.root}.${J.A.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${P.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${L.A.root}.${J.A.hiddenLabel}.${J.A.sizeSmall}`]:{[`& .${P.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${P.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${P.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${P.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${P.inputRoot}`]:{flexWrap:"wrap"}}}]}),S=(0,v.Ay)("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(a,b)=>b.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),T=(0,v.Ay)(G.A,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(a,b)=>b.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),U=(0,v.Ay)(G.A,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.popupIndicator,c.popupOpen&&b.popupIndicatorOpen]}})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),V=(0,v.Ay)(u.A,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[{[`& .${P.option}`]:b.option},b.popper,c.disablePortal&&b.popperDisablePortal]}})((0,w.A)(({theme:a})=>({zIndex:(a.vars||a).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),W=(0,v.Ay)(F.A,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(a,b)=>b.paper})((0,w.A)(({theme:a})=>({...a.typography.body1,overflow:"auto"}))),X=(0,v.Ay)("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(a,b)=>b.loading})((0,w.A)(({theme:a})=>({color:(a.vars||a).palette.text.secondary,padding:"14px 16px"}))),Y=(0,v.Ay)("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(a,b)=>b.noOptions})((0,w.A)(({theme:a})=>({color:(a.vars||a).palette.text.secondary,padding:"14px 16px"}))),Z=(0,v.Ay)("ul",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(a,b)=>b.listbox})((0,w.A)(({theme:a})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${P.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[a.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${P.focused}`]:{backgroundColor:(a.vars||a).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(a.vars||a).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${P.focusVisible}`]:{backgroundColor:(a.vars||a).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / ${a.vars.palette.action.selectedOpacity})`:(0,i.X4)(a.palette.primary.main,a.palette.action.selectedOpacity),[`&.${P.focused}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.hoverOpacity}))`:(0,i.X4)(a.palette.primary.main,a.palette.action.selectedOpacity+a.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(a.vars||a).palette.action.selected}},[`&.${P.focusVisible}`]:{backgroundColor:a.vars?`rgba(${a.vars.palette.primary.mainChannel} / calc(${a.vars.palette.action.selectedOpacity} + ${a.vars.palette.action.focusOpacity}))`:(0,i.X4)(a.palette.primary.main,a.palette.action.selectedOpacity+a.palette.action.focusOpacity)}}}}))),$=(0,v.Ay)(E,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(a,b)=>b.groupLabel})((0,w.A)(({theme:a})=>({backgroundColor:(a.vars||a).palette.background.paper,top:-8}))),_=(0,v.Ay)("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(a,b)=>b.groupUl})({padding:0,[`& .${P.option}`]:{paddingLeft:24}}),aa=f.forwardRef(function(a,b){let c,i=(0,x.b)({props:a,name:"MuiAutocomplete"}),{autoComplete:j=!1,autoHighlight:k=!1,autoSelect:l=!1,blurOnSelect:m=!1,ChipProps:n,className:o,clearIcon:p=d||(d=(0,C.jsx)(M.A,{fontSize:"small"})),clearOnBlur:q=!i.freeSolo,clearOnEscape:r=!1,clearText:s="Clear",closeText:v="Close",componentsProps:w,defaultValue:z=i.multiple?[]:null,disableClearable:A=!1,disableCloseOnSelect:B=!1,disabled:D=!1,disabledItemsFocusable:E=!1,disableListWrap:G=!1,disablePortal:I=!1,filterOptions:J,filterSelectedOptions:K=!1,forcePopupIcon:L="auto",freeSolo:P=!1,fullWidth:aa=!1,getLimitTagsText:ab=a=>`+${a}`,getOptionDisabled:ac,getOptionKey:ad,getOptionLabel:ae,isOptionEqualToValue:af,groupBy:ag,handleHomeEndKeys:ah=!i.freeSolo,id:ai,includeInputInList:aj=!1,inputValue:ak,limitTags:al=-1,ListboxComponent:am,ListboxProps:an,loading:ao=!1,loadingText:ap="Loading…",multiple:aq=!1,noOptionsText:ar="No options",onChange:as,onClose:at,onHighlightChange:au,onInputChange:av,onOpen:aw,open:ax,openOnFocus:ay=!1,openText:az="Open",options:aA,PaperComponent:aB,PopperComponent:aC,popupIcon:aD=e||(e=(0,C.jsx)(N.A,{})),readOnly:aE=!1,renderGroup:aF,renderInput:aG,renderOption:aH,renderTags:aI,selectOnFocus:aJ=!i.freeSolo,size:aK="medium",slots:aL={},slotProps:aM={},value:aN,...aO}=i,{getRootProps:aP,getInputProps:aQ,getInputLabelProps:aR,getPopupIndicatorProps:aS,getClearProps:aT,getTagProps:aU,getListboxProps:aV,getOptionProps:aW,value:aX,dirty:aY,expanded:aZ,id:a$,popupOpen:a_,focused:a0,focusedTag:a1,anchorEl:a2,setAnchorEl:a3,inputValue:a4,groupedOptions:a5}=t({...i,componentName:"Autocomplete"}),a6=!A&&!D&&aY&&!aE,a7=(!P||!0===L)&&!1!==L,{onMouseDown:a8}=aQ(),{ref:a9,...ba}=aV(),bb=ae||(a=>a.label??a),bc={...i,disablePortal:I,expanded:aZ,focused:a0,fullWidth:aa,getOptionLabel:bb,hasClearIcon:a6,hasPopupIcon:a7,inputFocused:-1===a1,popupOpen:a_,size:aK},bd=(a=>{let{classes:b,disablePortal:c,expanded:d,focused:e,fullWidth:f,hasClearIcon:g,hasPopupIcon:i,inputFocused:j,popupOpen:k,size:l}=a,m={root:["root",d&&"expanded",e&&"focused",f&&"fullWidth",g&&"hasClearIcon",i&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",j&&"inputFocused"],tag:["tag",`tagSize${(0,y.A)(l)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",k&&"popupIndicatorOpen"],popper:["popper",c&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return(0,h.A)(m,O,b)})(bc),be={slots:{paper:aB,popper:aC,...aL},slotProps:{chip:n,listbox:an,...w,...aM}},[bf,bg]=(0,Q.A)("listbox",{elementType:Z,externalForwardedProps:be,ownerState:bc,className:bd.listbox,additionalProps:ba,ref:a9}),[bh,bi]=(0,Q.A)("paper",{elementType:F.A,externalForwardedProps:be,ownerState:bc,className:bd.paper}),[bj,bk]=(0,Q.A)("popper",{elementType:u.A,externalForwardedProps:be,ownerState:bc,className:bd.popper,additionalProps:{disablePortal:I,style:{width:a2?a2.clientWidth:null},role:"presentation",anchorEl:a2,open:a_}});if(aq&&aX.length>0){let a=a=>({className:bd.tag,disabled:D,...aU(a)});c=aI?aI(aX,a,bc):aX.map((b,c)=>{let{key:d,...e}=a({index:c});return(0,C.jsx)(H.A,{label:bb(b),size:aK,...e,...be.slotProps.chip},d)})}if(al>-1&&Array.isArray(c)){let a=c.length-al;!a0&&a>0&&(c=c.splice(0,al)).push((0,C.jsx)("span",{className:bd.tag,children:ab(a)},c.length))}let bl=aF||(a=>(0,C.jsxs)("li",{children:[(0,C.jsx)($,{className:bd.groupLabel,ownerState:bc,component:"div",children:a.group}),(0,C.jsx)(_,{className:bd.groupUl,ownerState:bc,children:a.children})]},a.key)),bm=aH||((a,b)=>{let{key:c,...d}=a;return(0,C.jsx)("li",{...d,children:bb(b)},c)}),bn=(a,b)=>{let c=aW({option:a,index:b});return bm({...c,className:bd.option},a,{selected:c["aria-selected"],index:b,inputValue:a4},bc)},bo=be.slotProps.clearIndicator,bp=be.slotProps.popupIndicator;return(0,C.jsxs)(f.Fragment,{children:[(0,C.jsx)(R,{ref:b,className:(0,g.A)(bd.root,o),ownerState:bc,...aP(aO),children:aG({id:a$,disabled:D,fullWidth:!0,size:"small"===aK?"small":void 0,InputLabelProps:aR(),InputProps:{ref:a3,className:bd.inputRoot,startAdornment:c,onMouseDown:a=>{a.target===a.currentTarget&&a8(a)},...(a6||a7)&&{endAdornment:(0,C.jsxs)(S,{className:bd.endAdornment,ownerState:bc,children:[a6?(0,C.jsx)(T,{...aT(),"aria-label":s,title:s,ownerState:bc,...bo,className:(0,g.A)(bd.clearIndicator,bo?.className),children:p}):null,a7?(0,C.jsx)(U,{...aS(),disabled:D,"aria-label":a_?v:az,title:a_?v:az,ownerState:bc,...bp,className:(0,g.A)(bd.popupIndicator,bp?.className),children:aD}):null]})}},inputProps:{className:bd.input,disabled:D,readOnly:aE,...aQ()}})}),a2?(0,C.jsx)(V,{as:bj,...bk,children:(0,C.jsxs)(W,{as:bh,...bi,children:[ao&&0===a5.length?(0,C.jsx)(X,{className:bd.loading,ownerState:bc,children:ap}):null,0!==a5.length||P||ao?null:(0,C.jsx)(Y,{className:bd.noOptions,ownerState:bc,role:"presentation",onMouseDown:a=>{a.preventDefault()},children:ar}),a5.length>0?(0,C.jsx)(bf,{as:am,...bg,children:a5.map((a,b)=>ag?bl({key:a.key,group:a.group,children:a.options.map((b,c)=>bn(b,a.index+c))}):bn(a,b))}):null]})}):null]})})},65343:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}),"Error")},66335:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(38301);let e=a=>{let b=d.useRef({});return d.useEffect(()=>{b.current=a}),b.current}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=3273,exports.ids=[3273],exports.modules={7503:(a,b,c)=>{c.d(b,{A:()=>p});var d=c(38301),e=c(43249),f=c(2783),g=c(41126),h=c(18168),i=c(6636),j=c(79515),k=c(29565),l=c(33105);function m(a){return(0,l.Ay)("MuiDialogContentText",a)}(0,k.A)("MuiDialogContentText",["root"]);var n=c(21124);let o=(0,h.Ay)(j.default,{shouldForwardProp:a=>(0,g.A)(a)||"classes"===a,name:"MuiDialogContentText",slot:"Root",overridesResolver:(a,b)=>b.root})({}),p=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiDialogContentText"}),{children:d,className:g,...h}=c,j=(a=>{let{classes:b}=a,c=(0,f.A)({root:["root"]},m,b);return{...b,...c}})(h);return(0,n.jsx)(o,{component:"p",variant:"body1",color:"textSecondary",ref:b,ownerState:h,className:(0,e.A)(j.root,g),...c,classes:j})})},22042:(a,b,c)=>{c.d(b,{A:()=>Q});var d=c(38301),e=c(43249),f=c(2783),g=c(38404),h=c(94633),i=c(18168),j=c(60839),k=c(68333),l=c(6636),m=c(74907);function n(a){return(1+Math.sin(Math.PI*a-Math.PI/2))/2}var o=c(14758),p=c(5141),q=c(21124);let r={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};var s=c(11801);let t=(0,s.A)((0,q.jsx)("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),u=(0,s.A)((0,q.jsx)("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");var v=c(14328),w=c(29565),x=c(33105);function y(a){return(0,x.Ay)("MuiTabScrollButton",a)}let z=(0,w.A)("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),A=(0,i.Ay)(v.A,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.orientation&&b[c.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${z.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),B=d.forwardRef(function(a,b){let c=(0,l.b)({props:a,name:"MuiTabScrollButton"}),{className:d,slots:i={},slotProps:j={},direction:k,orientation:m,disabled:n,...o}=c,p=(0,g.I)(),r={isRtl:p,...c},s=(a=>{let{classes:b,orientation:c,disabled:d}=a;return(0,f.A)({root:["root",c,d&&"disabled"]},y,b)})(r),v=i.StartScrollButtonIcon??t,w=i.EndScrollButtonIcon??u,x=(0,h.A)({elementType:v,externalSlotProps:j.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:r}),z=(0,h.A)({elementType:w,externalSlotProps:j.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:r});return(0,q.jsx)(A,{component:"div",className:(0,e.A)(s.root,d),ref:b,role:null,ownerState:r,tabIndex:null,...o,style:{...o.style,..."vertical"===m&&{"--TabScrollButton-svgRotate":`rotate(${p?-90:90}deg)`}},children:"left"===k?(0,q.jsx)(v,{...x}):(0,q.jsx)(w,{...z})})});var C=c(87974);function D(a){return(0,x.Ay)("MuiTabs",a)}let E=(0,w.A)("MuiTabs",["root","vertical","list","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]);var F=c(97896),G=c(20385);let H=(a,b)=>a===b?a.firstChild:b&&b.nextElementSibling?b.nextElementSibling:a.firstChild,I=(a,b)=>a===b?a.lastChild:b&&b.previousElementSibling?b.previousElementSibling:a.lastChild,J=(a,b,c)=>{let d=!1,e=c(a,b);for(;e;){if(e===a.firstChild){if(d)return;d=!0}let b=e.disabled||"true"===e.getAttribute("aria-disabled");if(e.hasAttribute("tabindex")&&!b)return void e.focus();e=c(a,e)}},K=(0,i.Ay)("div",{name:"MuiTabs",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[{[`& .${E.scrollButtons}`]:b.scrollButtons},{[`& .${E.scrollButtons}`]:c.scrollButtonsHideMobile&&b.scrollButtonsHideMobile},b.root,c.vertical&&b.vertical]}})((0,k.A)(({theme:a})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:a})=>a.vertical,style:{flexDirection:"column"}},{props:({ownerState:a})=>a.scrollButtonsHideMobile,style:{[`& .${E.scrollButtons}`]:{[a.breakpoints.down("sm")]:{display:"none"}}}}]}))),L=(0,i.Ay)("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.scroller,c.fixed&&b.fixed,c.hideScrollbar&&b.hideScrollbar,c.scrollableX&&b.scrollableX,c.scrollableY&&b.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:a})=>a.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:a})=>a.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:a})=>a.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:a})=>a.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),M=(0,i.Ay)("div",{name:"MuiTabs",slot:"List",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.list,b.flexContainer,c.vertical&&b.flexContainerVertical,c.centered&&b.centered]}})({display:"flex",variants:[{props:({ownerState:a})=>a.vertical,style:{flexDirection:"column"}},{props:({ownerState:a})=>a.centered,style:{justifyContent:"center"}}]}),N=(0,i.Ay)("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(a,b)=>b.indicator})((0,k.A)(({theme:a})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:a.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(a.vars||a).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(a.vars||a).palette.secondary.main}},{props:({ownerState:a})=>a.vertical,style:{height:"100%",width:2,right:0}}]}))),O=(0,i.Ay)(function(a){let{onChange:b,...c}=a,e=d.useRef(),f=d.useRef(null),g=()=>{e.current=f.current.offsetHeight-f.current.clientHeight};return(0,o.A)(()=>{let a=(0,m.A)(()=>{let a=e.current;g(),a!==e.current&&b(e.current)}),c=(0,p.A)(f.current);return c.addEventListener("resize",a),()=>{a.clear(),c.removeEventListener("resize",a)}},[b]),d.useEffect(()=>{g(),b(e.current)},[b]),(0,q.jsx)("div",{style:r,...c,ref:f})})({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),P={},Q=d.forwardRef(function(a,b){let c=(0,l.b)({props:a,name:"MuiTabs"}),i=(0,j.A)(),k=(0,g.I)(),{"aria-label":o,"aria-labelledby":r,action:s,centered:t=!1,children:u,className:v,component:w="div",allowScrollButtonsMobile:x=!1,indicatorColor:y="primary",onChange:z,orientation:A="horizontal",ScrollButtonComponent:E,scrollButtons:Q="auto",selectionFollowsFocus:R,slots:S={},slotProps:T={},TabIndicatorProps:U={},TabScrollButtonProps:V={},textColor:W="primary",value:X,variant:Y="standard",visibleScrollbar:Z=!1,...$}=c,_="scrollable"===Y,aa="vertical"===A,ab=aa?"scrollTop":"scrollLeft",ac=aa?"top":"left",ad=aa?"bottom":"right",ae=aa?"clientHeight":"clientWidth",af=aa?"height":"width",ag={...c,component:w,allowScrollButtonsMobile:x,indicatorColor:y,orientation:A,vertical:aa,scrollButtons:Q,textColor:W,variant:Y,visibleScrollbar:Z,fixed:!_,hideScrollbar:_&&!Z,scrollableX:_&&!aa,scrollableY:_&&aa,centered:t&&!_,scrollButtonsHideMobile:!x},ah=(a=>{let{vertical:b,fixed:c,hideScrollbar:d,scrollableX:e,scrollableY:g,centered:h,scrollButtonsHideMobile:i,classes:j}=a;return(0,f.A)({root:["root",b&&"vertical"],scroller:["scroller",c&&"fixed",d&&"hideScrollbar",e&&"scrollableX",g&&"scrollableY"],list:["list","flexContainer",b&&"flexContainerVertical",b&&"vertical",h&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",i&&"scrollButtonsHideMobile"],scrollableX:[e&&"scrollableX"],hideScrollbar:[d&&"hideScrollbar"]},D,j)})(ag),ai=(0,h.A)({elementType:S.StartScrollButtonIcon,externalSlotProps:T.startScrollButtonIcon,ownerState:ag}),aj=(0,h.A)({elementType:S.EndScrollButtonIcon,externalSlotProps:T.endScrollButtonIcon,ownerState:ag}),[ak,al]=d.useState(!1),[am,an]=d.useState(P),[ao,ap]=d.useState(!1),[aq,ar]=d.useState(!1),[as,at]=d.useState(!1),[au,av]=d.useState({overflow:"hidden",scrollbarWidth:0}),aw=new Map,ax=d.useRef(null),ay=d.useRef(null),az={slots:S,slotProps:{indicator:U,scrollButton:V,...T}},aA=()=>{let a,b,c=ax.current;if(c){let b=c.getBoundingClientRect();a={clientWidth:c.clientWidth,scrollLeft:c.scrollLeft,scrollTop:c.scrollTop,scrollWidth:c.scrollWidth,top:b.top,bottom:b.bottom,left:b.left,right:b.right}}if(c&&!1!==X){let a=ay.current.children;if(a.length>0){let c=a[aw.get(X)];b=c?c.getBoundingClientRect():null}}return{tabsMeta:a,tabMeta:b}},aB=(0,C.A)(()=>{let a,{tabsMeta:b,tabMeta:c}=aA(),d=0;aa?(a="top",c&&b&&(d=c.top-b.top+b.scrollTop)):(a=k?"right":"left",c&&b&&(d=(k?-1:1)*(c[a]-b[a]+b.scrollLeft)));let e={[a]:d,[af]:c?c[af]:0};if("number"!=typeof am[a]||"number"!=typeof am[af])an(e);else{let b=Math.abs(am[a]-e[a]),c=Math.abs(am[af]-e[af]);(b>=1||c>=1)&&an(e)}}),aC=(a,{animation:b=!0}={})=>{b?function(a,b,c,d={},e=()=>{}){let{ease:f=n,duration:g=300}=d,h=null,i=b[a],j=!1,k=d=>{if(j)return void e(Error("Animation cancelled"));null===h&&(h=d);let l=Math.min(1,(d-h)/g);if(b[a]=f(l)*(c-i)+i,l>=1)return void requestAnimationFrame(()=>{e(null)});requestAnimationFrame(k)};i===c?e(Error("Element already at target position")):requestAnimationFrame(k)}(ab,ax.current,a,{duration:i.transitions.duration.standard}):ax.current[ab]=a},aD=a=>{let b=ax.current[ab];aa?b+=a:b+=a*(k?-1:1),aC(b)},aE=()=>{let a=ax.current[ae],b=0,c=Array.from(ay.current.children);for(let d=0;d<c.length;d+=1){let e=c[d];if(b+e[ae]>a){0===d&&(b=a);break}b+=e[ae]}return b},aF=()=>{aD(-1*aE())},aG=()=>{aD(aE())},[aH,{onChange:aI,...aJ}]=(0,G.A)("scrollbar",{className:(0,e.A)(ah.scrollableX,ah.hideScrollbar),elementType:O,shouldForwardComponentProp:!0,externalForwardedProps:az,ownerState:ag}),aK=d.useCallback(a=>{aI?.(a),av({overflow:null,scrollbarWidth:a})},[aI]),[aL,aM]=(0,G.A)("scrollButtons",{className:(0,e.A)(ah.scrollButtons,V.className),elementType:B,externalForwardedProps:az,ownerState:ag,additionalProps:{orientation:A,slots:{StartScrollButtonIcon:S.startScrollButtonIcon||S.StartScrollButtonIcon,EndScrollButtonIcon:S.endScrollButtonIcon||S.EndScrollButtonIcon},slotProps:{startScrollButtonIcon:ai,endScrollButtonIcon:aj}}}),aN=(0,C.A)(a=>{let{tabsMeta:b,tabMeta:c}=aA();c&&b&&(c[ac]<b[ac]?aC(b[ab]+(c[ac]-b[ac]),{animation:a}):c[ad]>b[ad]&&aC(b[ab]+(c[ad]-b[ad]),{animation:a}))}),aO=(0,C.A)(()=>{_&&!1!==Q&&at(!as)});d.useEffect(()=>{let a,b,c=(0,m.A)(()=>{ax.current&&aB()}),d=(0,p.A)(ax.current);return d.addEventListener("resize",c),"undefined"!=typeof ResizeObserver&&(a=new ResizeObserver(c),Array.from(ay.current.children).forEach(b=>{a.observe(b)})),"undefined"!=typeof MutationObserver&&(b=new MutationObserver(b=>{b.forEach(b=>{b.removedNodes.forEach(b=>{a?.unobserve(b)}),b.addedNodes.forEach(b=>{a?.observe(b)})}),c(),aO()})).observe(ay.current,{childList:!0}),()=>{c.clear(),d.removeEventListener("resize",c),b?.disconnect(),a?.disconnect()}},[aB,aO]),d.useEffect(()=>{let a=Array.from(ay.current.children),b=a.length;if("undefined"!=typeof IntersectionObserver&&b>0&&_&&!1!==Q){let c=a[0],d=a[b-1],e={root:ax.current,threshold:.99},f=new IntersectionObserver(a=>{ap(!a[0].isIntersecting)},e);f.observe(c);let g=new IntersectionObserver(a=>{ar(!a[0].isIntersecting)},e);return g.observe(d),()=>{f.disconnect(),g.disconnect()}}},[_,Q,as,u?.length]),d.useEffect(()=>{al(!0)},[]),d.useEffect(()=>{aB()}),d.useEffect(()=>{aN(P!==am)},[aN,am]),d.useImperativeHandle(s,()=>({updateIndicator:aB,updateScrollButtons:aO}),[aB,aO]);let[aP,aQ]=(0,G.A)("indicator",{className:(0,e.A)(ah.indicator,U.className),elementType:N,externalForwardedProps:az,ownerState:ag,additionalProps:{style:am}}),aR=(0,q.jsx)(aP,{...aQ}),aS=0,aT=d.Children.map(u,a=>{if(!d.isValidElement(a))return null;let b=void 0===a.props.value?aS:a.props.value;aw.set(b,aS);let c=b===X;return aS+=1,d.cloneElement(a,{fullWidth:"fullWidth"===Y,indicator:c&&!ak&&aR,selected:c,selectionFollowsFocus:R,onChange:z,textColor:W,value:b,...1===aS&&!1===X&&!a.props.tabIndex?{tabIndex:0}:{}})}),aU=(()=>{let a={};a.scrollbarSizeListener=_?(0,q.jsx)(aH,{...aJ,onChange:aK}):null;let b=_&&("auto"===Q&&(ao||aq)||!0===Q);return a.scrollButtonStart=b?(0,q.jsx)(aL,{direction:k?"right":"left",onClick:aF,disabled:!ao,...aM}):null,a.scrollButtonEnd=b?(0,q.jsx)(aL,{direction:k?"left":"right",onClick:aG,disabled:!aq,...aM}):null,a})(),[aV,aW]=(0,G.A)("root",{ref:b,className:(0,e.A)(ah.root,v),elementType:K,externalForwardedProps:{...az,...$,component:w},ownerState:ag}),[aX,aY]=(0,G.A)("scroller",{ref:ax,className:ah.scroller,elementType:L,externalForwardedProps:az,ownerState:ag,additionalProps:{style:{overflow:au.overflow,[aa?`margin${k?"Left":"Right"}`:"marginBottom"]:Z?void 0:-au.scrollbarWidth}}}),[aZ,a$]=(0,G.A)("list",{ref:ay,className:(0,e.A)(ah.list,ah.flexContainer),elementType:M,externalForwardedProps:az,ownerState:ag,getSlotProps:a=>({...a,onKeyDown:b=>{(a=>{if(a.altKey||a.shiftKey||a.ctrlKey||a.metaKey)return;let b=ay.current,c=(0,F.A)(b).activeElement;if("tab"!==c.getAttribute("role"))return;let d="horizontal"===A?"ArrowLeft":"ArrowUp",e="horizontal"===A?"ArrowRight":"ArrowDown";switch("horizontal"===A&&k&&(d="ArrowRight",e="ArrowLeft"),a.key){case d:a.preventDefault(),J(b,c,I);break;case e:a.preventDefault(),J(b,c,H);break;case"Home":a.preventDefault(),J(b,null,H);break;case"End":a.preventDefault(),J(b,null,I)}})(b),a.onKeyDown?.(b)}})});return(0,q.jsxs)(aV,{...aW,children:[aU.scrollButtonStart,aU.scrollbarSizeListener,(0,q.jsxs)(aX,{...aY,children:[(0,q.jsx)(aZ,{"aria-label":o,"aria-labelledby":r,"aria-orientation":"vertical"===A?"vertical":null,role:"tablist",...a$,children:aT}),ak&&aR]}),aU.scrollButtonEnd]})})},30583:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(44548),e=c(22845);function f({props:a,name:b,defaultTheme:c,themeId:f}){let g=(0,e.A)(c);return f&&(g=g[f]||g),(0,d.A)({theme:g,name:b,props:a})}},34304:(a,b,c)=>{c.d(b,{A:()=>r});var d=c(38301),e=c(43249),f=c(2783),g=c(14328),h=c(6638),i=c(18168),j=c(68333),k=c(6636),l=c(29565),m=c(33105);function n(a){return(0,m.Ay)("MuiTab",a)}let o=(0,l.A)("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper","icon"]);var p=c(21124);let q=(0,i.Ay)(g.A,{name:"MuiTab",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.label&&c.icon&&b.labelIcon,b[`textColor${(0,h.A)(c.textColor)}`],c.fullWidth&&b.fullWidth,c.wrapped&&b.wrapped,{[`& .${o.iconWrapper}`]:b.iconWrapper},{[`& .${o.icon}`]:b.icon}]}})((0,j.A)(({theme:a})=>({...a.typography.button,maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center",lineHeight:1.25,variants:[{props:({ownerState:a})=>a.label&&("top"===a.iconPosition||"bottom"===a.iconPosition),style:{flexDirection:"column"}},{props:({ownerState:a})=>a.label&&"top"!==a.iconPosition&&"bottom"!==a.iconPosition,style:{flexDirection:"row"}},{props:({ownerState:a})=>a.icon&&a.label,style:{minHeight:72,paddingTop:9,paddingBottom:9}},{props:({ownerState:a,iconPosition:b})=>a.icon&&a.label&&"top"===b,style:{[`& > .${o.icon}`]:{marginBottom:6}}},{props:({ownerState:a,iconPosition:b})=>a.icon&&a.label&&"bottom"===b,style:{[`& > .${o.icon}`]:{marginTop:6}}},{props:({ownerState:a,iconPosition:b})=>a.icon&&a.label&&"start"===b,style:{[`& > .${o.icon}`]:{marginRight:a.spacing(1)}}},{props:({ownerState:a,iconPosition:b})=>a.icon&&a.label&&"end"===b,style:{[`& > .${o.icon}`]:{marginLeft:a.spacing(1)}}},{props:{textColor:"inherit"},style:{color:"inherit",opacity:.6,[`&.${o.selected}`]:{opacity:1},[`&.${o.disabled}`]:{opacity:(a.vars||a).palette.action.disabledOpacity}}},{props:{textColor:"primary"},style:{color:(a.vars||a).palette.text.secondary,[`&.${o.selected}`]:{color:(a.vars||a).palette.primary.main},[`&.${o.disabled}`]:{color:(a.vars||a).palette.text.disabled}}},{props:{textColor:"secondary"},style:{color:(a.vars||a).palette.text.secondary,[`&.${o.selected}`]:{color:(a.vars||a).palette.secondary.main},[`&.${o.disabled}`]:{color:(a.vars||a).palette.text.disabled}}},{props:({ownerState:a})=>a.fullWidth,style:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"}},{props:({ownerState:a})=>a.wrapped,style:{fontSize:a.typography.pxToRem(12)}}]}))),r=d.forwardRef(function(a,b){let c=(0,k.b)({props:a,name:"MuiTab"}),{className:g,disabled:i=!1,disableFocusRipple:j=!1,fullWidth:l,icon:m,iconPosition:o="top",indicator:r,label:s,onChange:t,onClick:u,onFocus:v,selected:w,selectionFollowsFocus:x,textColor:y="inherit",value:z,wrapped:A=!1,...B}=c,C={...c,disabled:i,disableFocusRipple:j,selected:w,icon:!!m,iconPosition:o,label:!!s,fullWidth:l,textColor:y,wrapped:A},D=(a=>{let{classes:b,textColor:c,fullWidth:d,wrapped:e,icon:g,label:i,selected:j,disabled:k}=a,l={root:["root",g&&i&&"labelIcon",`textColor${(0,h.A)(c)}`,d&&"fullWidth",e&&"wrapped",j&&"selected",k&&"disabled"],icon:["iconWrapper","icon"]};return(0,f.A)(l,n,b)})(C),E=m&&s&&d.isValidElement(m)?d.cloneElement(m,{className:(0,e.A)(D.icon,m.props.className)}):m;return(0,p.jsxs)(q,{focusRipple:!j,className:(0,e.A)(D.root,g),ref:b,role:"tab","aria-selected":w,disabled:i,onClick:a=>{!w&&t&&t(a,z),u&&u(a)},onFocus:a=>{x&&!w&&t&&t(a,z),v&&v(a)},ownerState:C,tabIndex:w?0:-1,...B,children:["top"===o||"start"===o?(0,p.jsxs)(d.Fragment,{children:[E,s]}):(0,p.jsxs)(d.Fragment,{children:[s,E]}),r]})})},38435:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(57931).Ay)()},44548:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(75575);function e(a){let{theme:b,name:c,props:e}=a;return b&&b.components&&b.components[c]&&b.components[c].defaultProps?(0,d.A)(b.components[c].defaultProps,e):e}},53773:(a,b,c)=>{c.d(b,{A:()=>v});var d=c(38301),e=c(43249),f=c(3253),g=c(33105),h=c(2783),i=c(38435),j=c(30583),k=c(69467),l=c(49103),m=c(80751),n=c(49939),o=c(21124);let p=(0,l.A)(),q=(0,i.A)("div",{name:"MuiStack",slot:"Root",overridesResolver:(a,b)=>b.root});function r(a){return(0,j.A)({props:a,name:"MuiStack",defaultTheme:p})}let s=({ownerState:a,theme:b})=>{let c={display:"flex",flexDirection:"column",...(0,m.NI)({theme:b},(0,m.kW)({values:a.direction,breakpoints:b.breakpoints.values}),a=>({flexDirection:a}))};if(a.spacing){let d=(0,n.LX)(b),e=Object.keys(b.breakpoints.values).reduce((b,c)=>(("object"==typeof a.spacing&&null!=a.spacing[c]||"object"==typeof a.direction&&null!=a.direction[c])&&(b[c]=!0),b),{}),g=(0,m.kW)({values:a.direction,base:e}),h=(0,m.kW)({values:a.spacing,base:e});"object"==typeof g&&Object.keys(g).forEach((a,b,c)=>{if(!g[a]){let d=b>0?g[c[b-1]]:"column";g[a]=d}}),c=(0,f.A)(c,(0,m.NI)({theme:b},h,(b,c)=>a.useFlexGap?{gap:(0,n._W)(d,b)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[c?g[c]:a.direction]}`]:(0,n._W)(d,b)}}))}return(0,m.iZ)(b.breakpoints,c)};var t=c(18168),u=c(6636);let v=function(a={}){let{createStyledComponent:b=q,useThemeProps:c=r,componentName:f="MuiStack"}=a,i=b(s);return d.forwardRef(function(a,b){let j=c(a),{component:l="div",direction:m="column",spacing:n=0,divider:p,children:q,className:r,useFlexGap:s=!1,...t}=(0,k.A)(j),u=(0,h.A)({root:["root"]},a=>(0,g.Ay)(f,a),{});return(0,o.jsx)(i,{as:l,ownerState:{direction:m,spacing:n,useFlexGap:s},ref:b,className:(0,e.A)(u.root,r),...t,children:p?function(a,b){let c=d.Children.toArray(a).filter(Boolean);return c.reduce((a,e,f)=>(a.push(e),f<c.length-1&&a.push(d.cloneElement(b,{key:`separator-${f}`})),a),[])}(q,p):q})})}({createStyledComponent:(0,t.Ay)("div",{name:"MuiStack",slot:"Root",overridesResolver:(a,b)=>b.root}),useThemeProps:a=>(0,u.b)({props:a,name:"MuiStack"})})}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=3304,exports.ids=[3304],exports.modules={231:(a,b,c)=>{var d=c(2269),e=c(76787);a.exports=function(a){return e(a)&&"[object Arguments]"==d(a)}},595:a=>{var b=Object.prototype.toString;a.exports=function(a){return b.call(a)}},598:(a,b,c)=>{var d=c(32390);a.exports=function(a,b){var c=b?d(a.buffer):a.buffer;return new a.constructor(c,a.byteOffset,a.length)}},1291:a=>{a.exports=function(a){var b=typeof a;return"string"==b||"number"==b||"symbol"==b||"boolean"==b?"__proto__"!==a:null===a}},2269:(a,b,c)=>{var d=c(97922),e=c(60112),f=c(595),g=d?d.toStringTag:void 0;a.exports=function(a){return null==a?void 0===a?"[object Undefined]":"[object Null]":g&&g in Object(a)?e(a):f(a)}},5113:(a,b,c)=>{var d=c(97922),e=d?d.prototype:void 0,f=e?e.valueOf:void 0;a.exports=function(a){return f?Object(f.call(a)):{}}},6616:(a,b,c)=>{var d=c(95158),e=c(34846),f=c(18388),g=c(71226),h=c(12875),i=c(79035),j=c(89108),k=c(55092),l=c(45905),m=c(62127),n=c(20413),o=c(78178),p=c(92642),q=c(96016),r=c(28418),s=c(34022),t=c(39545),u=c(38443),v=c(36774),w=c(68369),x=c(89095),y=c(37794),z="[object Arguments]",A="[object Function]",B="[object Object]",C={};C[z]=C["[object Array]"]=C["[object ArrayBuffer]"]=C["[object DataView]"]=C["[object Boolean]"]=C["[object Date]"]=C["[object Float32Array]"]=C["[object Float64Array]"]=C["[object Int8Array]"]=C["[object Int16Array]"]=C["[object Int32Array]"]=C["[object Map]"]=C["[object Number]"]=C[B]=C["[object RegExp]"]=C["[object Set]"]=C["[object String]"]=C["[object Symbol]"]=C["[object Uint8Array]"]=C["[object Uint8ClampedArray]"]=C["[object Uint16Array]"]=C["[object Uint32Array]"]=!0,C["[object Error]"]=C[A]=C["[object WeakMap]"]=!1,a.exports=function a(b,c,D,E,F,G){var H,I=1&c,J=2&c,K=4&c;if(D&&(H=F?D(b,E,F,G):D(b)),void 0!==H)return H;if(!v(b))return b;var L=s(b);if(L){if(H=p(b),!I)return j(b,H)}else{var M=o(b),N=M==A||"[object GeneratorFunction]"==M;if(t(b))return i(b,I);if(M==B||M==z||N&&!F){if(H=J||N?{}:r(b),!I)return J?l(b,h(H,b)):k(b,g(H,b))}else{if(!C[M])return F?b:{};H=q(b,M,I)}}G||(G=new d);var O=G.get(b);if(O)return O;G.set(b,H),w(b)?b.forEach(function(d){H.add(a(d,c,D,d,b,G))}):u(b)&&b.forEach(function(d,e){H.set(e,a(d,c,D,e,b,G))});var P=K?J?n:m:J?y:x,Q=L?void 0:P(b);return e(Q||b,function(d,e){Q&&(d=b[e=d]),f(H,e,a(d,c,D,e,b,G))}),H}},7898:(a,b,c)=>{a.exports=c(96918)["__core-js_shared__"]},8100:a=>{var b=Object.prototype;a.exports=function(a){var c=a&&a.constructor;return a===("function"==typeof c&&c.prototype||b)}},10110:(a,b,c)=>{a.exports=c(22271)(c(96918),"Set")},11045:(a,b,c)=>{a.exports=c(96918).Uint8Array},11782:(a,b,c)=>{var d=c(55e3),e=c(13356),f=c(62242);a.exports=function(a,b){var c=this.__data__;if(c instanceof d){var g=c.__data__;if(!e||g.length<199)return g.push([a,b]),this.size=++c.size,this;c=this.__data__=new f(g)}return c.set(a,b),this.size=c.size,this}},11956:(a,b,c)=>{var d=c(23966),e=c(16478),f=c(38798),g=f&&f.isTypedArray;a.exports=g?e(g):d},12875:(a,b,c)=>{var d=c(18376),e=c(37794);a.exports=function(a,b){return a&&d(b,e(b),a)}},13356:(a,b,c)=>{a.exports=c(22271)(c(96918),"Map")},13396:(a,b,c)=>{var d=c(43882);a.exports=function(a){var b=this.__data__,c=d(b,a);return c<0?void 0:b[c][1]}},15144:(a,b,c)=>{var d=c(96101),e=c(15385),f=c(34022),g=c(39545),h=c(51234),i=c(11956),j=Object.prototype.hasOwnProperty;a.exports=function(a,b){var c=f(a),k=!c&&e(a),l=!c&&!k&&g(a),m=!c&&!k&&!l&&i(a),n=c||k||l||m,o=n?d(a.length,String):[],p=o.length;for(var q in a)(b||j.call(a,q))&&!(n&&("length"==q||l&&("offset"==q||"parent"==q)||m&&("buffer"==q||"byteLength"==q||"byteOffset"==q)||h(q,p)))&&o.push(q);return o}},15385:(a,b,c)=>{var d=c(231),e=c(76787),f=Object.prototype,g=f.hasOwnProperty,h=f.propertyIsEnumerable;a.exports=d(function(){return arguments}())?d:function(a){return e(a)&&g.call(a,"callee")&&!h.call(a,"callee")}},16478:a=>{a.exports=function(a){return function(b){return a(b)}}},18117:(a,b,c)=>{var d=c(91704);a.exports=function(a,b,c){"__proto__"==b&&d?d(a,b,{configurable:!0,enumerable:!0,value:c,writable:!0}):a[b]=c}},18313:(a,b,c)=>{a.exports=c(22271)(c(96918),"DataView")},18376:(a,b,c)=>{var d=c(18388),e=c(18117);a.exports=function(a,b,c,f){var g=!c;c||(c={});for(var h=-1,i=b.length;++h<i;){var j=b[h],k=f?f(c[j],a[j],j,c,a):void 0;void 0===k&&(k=a[j]),g?e(c,j,k):d(c,j,k)}return c}},18388:(a,b,c)=>{var d=c(18117),e=c(38093),f=Object.prototype.hasOwnProperty;a.exports=function(a,b,c){var g=a[b];f.call(a,b)&&e(g,c)&&(void 0!==c||b in a)||d(a,b,c)}},20413:(a,b,c)=>{var d=c(70996),e=c(23400),f=c(37794);a.exports=function(a){return d(a,f,e)}},21211:(a,b,c)=>{var d=c(2269),e=c(36774);a.exports=function(a){if(!e(a))return!1;var b=d(a);return"[object Function]"==b||"[object GeneratorFunction]"==b||"[object AsyncFunction]"==b||"[object Proxy]"==b}},21432:(a,b,c)=>{a.exports=c(81008)(Object.getPrototypeOf,Object)},22271:(a,b,c)=>{var d=c(80179),e=c(78853);a.exports=function(a,b){var c=e(a,b);return d(c)?c:void 0}},23400:(a,b,c)=>{var d=c(25589),e=c(21432),f=c(71009),g=c(56338);a.exports=Object.getOwnPropertySymbols?function(a){for(var b=[];a;)d(b,f(a)),a=e(a);return b}:g},23854:(a,b,c)=>{var d=c(32390);a.exports=function(a,b){var c=b?d(a.buffer):a.buffer;return new a.constructor(c,a.byteOffset,a.byteLength)}},23966:(a,b,c)=>{var d=c(2269),e=c(68627),f=c(76787),g={};g["[object Float32Array]"]=g["[object Float64Array]"]=g["[object Int8Array]"]=g["[object Int16Array]"]=g["[object Int32Array]"]=g["[object Uint8Array]"]=g["[object Uint8ClampedArray]"]=g["[object Uint16Array]"]=g["[object Uint32Array]"]=!0,g["[object Arguments]"]=g["[object Array]"]=g["[object ArrayBuffer]"]=g["[object Boolean]"]=g["[object DataView]"]=g["[object Date]"]=g["[object Error]"]=g["[object Function]"]=g["[object Map]"]=g["[object Number]"]=g["[object Object]"]=g["[object RegExp]"]=g["[object Set]"]=g["[object String]"]=g["[object WeakMap]"]=!1,a.exports=function(a){return f(a)&&e(a.length)&&!!g[d(a)]}},24363:(a,b,c)=>{a.exports=c(81008)(Object.keys,Object)},25589:a=>{a.exports=function(a,b){for(var c=-1,d=b.length,e=a.length;++c<d;)a[e+c]=b[c];return a}},27907:a=>{a.exports=function(a){var b=this.has(a)&&delete this.__data__[a];return this.size-=!!b,b}},27950:a=>{a.exports=function(a){return this.__data__.has(a)}},28315:a=>{a.exports=function(a){var b=this.__data__,c=b.delete(a);return this.size=b.size,c}},28418:(a,b,c)=>{var d=c(55229),e=c(21432),f=c(8100);a.exports=function(a){return"function"!=typeof a.constructor||f(a)?{}:d(e(a))}},29584:(a,b,c)=>{var d=c(43882);a.exports=function(a){return d(this.__data__,a)>-1}},32390:(a,b,c)=>{var d=c(11045);a.exports=function(a){var b=new a.constructor(a.byteLength);return new d(b).set(new d(a)),b}},32444:(a,b,c)=>{var d=c(36774),e=c(8100),f=c(97198),g=Object.prototype.hasOwnProperty;a.exports=function(a){if(!d(a))return f(a);var b=e(a),c=[];for(var h in a)"constructor"==h&&(b||!g.call(a,h))||c.push(h);return c}},34022:a=>{a.exports=Array.isArray},34693:(a,b,c)=>{var d=c(55e3);a.exports=function(){this.__data__=new d,this.size=0}},34846:a=>{a.exports=function(a,b){for(var c=-1,d=null==a?0:a.length;++c<d&&!1!==b(a[c],c,a););return a}},36774:a=>{a.exports=function(a){var b=typeof a;return null!=a&&("object"==b||"function"==b)}},37624:(a,b,c)=>{var d=c(43882);a.exports=function(a,b){var c=this.__data__,e=d(c,a);return e<0?(++this.size,c.push([a,b])):c[e][1]=b,this}},37794:(a,b,c)=>{var d=c(15144),e=c(32444),f=c(56947);a.exports=function(a){return f(a)?d(a,!0):e(a)}},38093:a=>{a.exports=function(a,b){return a===b||a!=a&&b!=b}},38443:(a,b,c)=>{var d=c(46945),e=c(16478),f=c(38798),g=f&&f.isMap;a.exports=g?e(g):d},38798:(a,b,c)=>{a=c.nmd(a);var d=c(58009),e=b&&!b.nodeType&&b,f=e&&a&&!a.nodeType&&a,g=f&&f.exports===e&&d.process,h=function(){try{var a=f&&f.require&&f.require("util").types;if(a)return a;return g&&g.binding&&g.binding("util")}catch(a){}}();a.exports=h},39545:(a,b,c)=>{a=c.nmd(a);var d=c(96918),e=c(61852),f=b&&!b.nodeType&&b,g=f&&a&&!a.nodeType&&a,h=g&&g.exports===f?d.Buffer:void 0,i=h?h.isBuffer:void 0;a.exports=i||e},42082:a=>{a.exports=function(a){return this.__data__.get(a)}},42995:(a,b,c)=>{a.exports=c(22271)(Object,"create")},43304:(a,b,c)=>{var d=c(6616);a.exports=function(a){return d(a,5)}},43882:(a,b,c)=>{var d=c(38093);a.exports=function(a,b){for(var c=a.length;c--;)if(d(a[c][0],b))return c;return -1}},45905:(a,b,c)=>{var d=c(18376),e=c(23400);a.exports=function(a,b){return d(a,e(a),b)}},46945:(a,b,c)=>{var d=c(78178),e=c(76787);a.exports=function(a){return e(a)&&"[object Map]"==d(a)}},48173:(a,b,c)=>{var d=c(43882),e=Array.prototype.splice;a.exports=function(a){var b=this.__data__,c=d(b,a);return!(c<0)&&(c==b.length-1?b.pop():e.call(b,c,1),--this.size,!0)}},51234:a=>{var b=/^(?:0|[1-9]\d*)$/;a.exports=function(a,c){var d=typeof a;return!!(c=null==c?0x1fffffffffffff:c)&&("number"==d||"symbol"!=d&&b.test(a))&&a>-1&&a%1==0&&a<c}},51507:a=>{a.exports=function(){this.__data__=[],this.size=0}},51674:(a,b,c)=>{var d=c(61048);a.exports=function(a,b){var c=d(this,a),e=c.size;return c.set(a,b),this.size+=+(c.size!=e),this}},53346:a=>{var b=Function.prototype.toString;a.exports=function(a){if(null!=a){try{return b.call(a)}catch(a){}try{return a+""}catch(a){}}return""}},55e3:(a,b,c)=>{var d=c(51507),e=c(48173),f=c(13396),g=c(29584),h=c(37624);function i(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}i.prototype.clear=d,i.prototype.delete=e,i.prototype.get=f,i.prototype.has=g,i.prototype.set=h,a.exports=i},55092:(a,b,c)=>{var d=c(18376),e=c(71009);a.exports=function(a,b){return d(a,e(a),b)}},55229:(a,b,c)=>{var d=c(36774),e=Object.create;a.exports=function(){function a(){}return function(b){if(!d(b))return{};if(e)return e(b);a.prototype=b;var c=new a;return a.prototype=void 0,c}}()},56338:a=>{a.exports=function(){return[]}},56705:(a,b,c)=>{var d=c(7898),e=function(){var a=/[^.]+$/.exec(d&&d.keys&&d.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}();a.exports=function(a){return!!e&&e in a}},56947:(a,b,c)=>{var d=c(21211),e=c(68627);a.exports=function(a){return null!=a&&e(a.length)&&!d(a)}},58009:a=>{a.exports="object"==typeof global&&global&&global.Object===Object&&global},58279:a=>{a.exports=function(a,b){for(var c=-1,d=null==a?0:a.length,e=0,f=[];++c<d;){var g=a[c];b(g,c,a)&&(f[e++]=g)}return f}},60112:(a,b,c)=>{var d=c(97922),e=Object.prototype,f=e.hasOwnProperty,g=e.toString,h=d?d.toStringTag:void 0;a.exports=function(a){var b=f.call(a,h),c=a[h];try{a[h]=void 0;var d=!0}catch(a){}var e=g.call(a);return d&&(b?a[h]=c:delete a[h]),e}},61048:(a,b,c)=>{var d=c(1291);a.exports=function(a,b){var c=a.__data__;return d(b)?c["string"==typeof b?"string":"hash"]:c.map}},61852:a=>{a.exports=function(){return!1}},62127:(a,b,c)=>{var d=c(70996),e=c(71009),f=c(89095);a.exports=function(a){return d(a,f,e)}},62242:(a,b,c)=>{var d=c(93113),e=c(99303),f=c(98142),g=c(91362),h=c(51674);function i(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}i.prototype.clear=d,i.prototype.delete=e,i.prototype.get=f,i.prototype.has=g,i.prototype.set=h,a.exports=i},68369:(a,b,c)=>{var d=c(85787),e=c(16478),f=c(38798),g=f&&f.isSet;a.exports=g?e(g):d},68627:a=>{a.exports=function(a){return"number"==typeof a&&a>-1&&a%1==0&&a<=0x1fffffffffffff}},70318:(a,b,c)=>{var d=c(42995);a.exports=function(a,b){var c=this.__data__;return this.size+=+!this.has(a),c[a]=d&&void 0===b?"__lodash_hash_undefined__":b,this}},70996:(a,b,c)=>{var d=c(25589),e=c(34022);a.exports=function(a,b,c){var f=b(a);return e(a)?f:d(f,c(a))}},71009:(a,b,c)=>{var d=c(58279),e=c(56338),f=Object.prototype.propertyIsEnumerable,g=Object.getOwnPropertySymbols;a.exports=g?function(a){return null==a?[]:d(g(a=Object(a)),function(b){return f.call(a,b)})}:e},71226:(a,b,c)=>{var d=c(18376),e=c(89095);a.exports=function(a,b){return a&&d(b,e(b),a)}},74026:(a,b,c)=>{var d=c(42995),e=Object.prototype.hasOwnProperty;a.exports=function(a){var b=this.__data__;if(d){var c=b[a];return"__lodash_hash_undefined__"===c?void 0:c}return e.call(b,a)?b[a]:void 0}},74502:(a,b,c)=>{var d=c(42995),e=Object.prototype.hasOwnProperty;a.exports=function(a){var b=this.__data__;return d?void 0!==b[a]:e.call(b,a)}},74772:(a,b,c)=>{a.exports=c(22271)(c(96918),"WeakMap")},76787:a=>{a.exports=function(a){return null!=a&&"object"==typeof a}},78178:(a,b,c)=>{var d=c(18313),e=c(13356),f=c(86233),g=c(10110),h=c(74772),i=c(2269),j=c(53346),k="[object Map]",l="[object Promise]",m="[object Set]",n="[object WeakMap]",o="[object DataView]",p=j(d),q=j(e),r=j(f),s=j(g),t=j(h),u=i;(d&&u(new d(new ArrayBuffer(1)))!=o||e&&u(new e)!=k||f&&u(f.resolve())!=l||g&&u(new g)!=m||h&&u(new h)!=n)&&(u=function(a){var b=i(a),c="[object Object]"==b?a.constructor:void 0,d=c?j(c):"";if(d)switch(d){case p:return o;case q:return k;case r:return l;case s:return m;case t:return n}return b}),a.exports=u},78853:a=>{a.exports=function(a,b){return null==a?void 0:a[b]}},79035:(a,b,c)=>{a=c.nmd(a);var d=c(96918),e=b&&!b.nodeType&&b,f=e&&a&&!a.nodeType&&a,g=f&&f.exports===e?d.Buffer:void 0,h=g?g.allocUnsafe:void 0;a.exports=function(a,b){if(b)return a.slice();var c=a.length,d=h?h(c):new a.constructor(c);return a.copy(d),d}},80179:(a,b,c)=>{var d=c(21211),e=c(56705),f=c(36774),g=c(53346),h=/^\[object .+?Constructor\]$/,i=Object.prototype,j=Function.prototype.toString,k=i.hasOwnProperty,l=RegExp("^"+j.call(k).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");a.exports=function(a){return!(!f(a)||e(a))&&(d(a)?l:h).test(g(a))}},80782:(a,b,c)=>{var d=c(92349),e=c(27907),f=c(74026),g=c(74502),h=c(70318);function i(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}i.prototype.clear=d,i.prototype.delete=e,i.prototype.get=f,i.prototype.has=g,i.prototype.set=h,a.exports=i},81008:a=>{a.exports=function(a,b){return function(c){return a(b(c))}}},83246:a=>{var b=/\w*$/;a.exports=function(a){var c=new a.constructor(a.source,b.exec(a));return c.lastIndex=a.lastIndex,c}},85787:(a,b,c)=>{var d=c(78178),e=c(76787);a.exports=function(a){return e(a)&&"[object Set]"==d(a)}},86233:(a,b,c)=>{a.exports=c(22271)(c(96918),"Promise")},89095:(a,b,c)=>{var d=c(15144),e=c(90637),f=c(56947);a.exports=function(a){return f(a)?d(a):e(a)}},89108:a=>{a.exports=function(a,b){var c=-1,d=a.length;for(b||(b=Array(d));++c<d;)b[c]=a[c];return b}},90637:(a,b,c)=>{var d=c(8100),e=c(24363),f=Object.prototype.hasOwnProperty;a.exports=function(a){if(!d(a))return e(a);var b=[];for(var c in Object(a))f.call(a,c)&&"constructor"!=c&&b.push(c);return b}},91362:(a,b,c)=>{var d=c(61048);a.exports=function(a){return d(this,a).has(a)}},91704:(a,b,c)=>{var d=c(22271);a.exports=function(){try{var a=d(Object,"defineProperty");return a({},"",{}),a}catch(a){}}()},92349:(a,b,c)=>{var d=c(42995);a.exports=function(){this.__data__=d?d(null):{},this.size=0}},92642:a=>{var b=Object.prototype.hasOwnProperty;a.exports=function(a){var c=a.length,d=new a.constructor(c);return c&&"string"==typeof a[0]&&b.call(a,"index")&&(d.index=a.index,d.input=a.input),d}},93113:(a,b,c)=>{var d=c(80782),e=c(55e3),f=c(13356);a.exports=function(){this.size=0,this.__data__={hash:new d,map:new(f||e),string:new d}}},95158:(a,b,c)=>{var d=c(55e3),e=c(34693),f=c(28315),g=c(42082),h=c(27950),i=c(11782);function j(a){var b=this.__data__=new d(a);this.size=b.size}j.prototype.clear=e,j.prototype.delete=f,j.prototype.get=g,j.prototype.has=h,j.prototype.set=i,a.exports=j},96016:(a,b,c)=>{var d=c(32390),e=c(23854),f=c(83246),g=c(5113),h=c(598);a.exports=function(a,b,c){var i=a.constructor;switch(b){case"[object ArrayBuffer]":return d(a);case"[object Boolean]":case"[object Date]":return new i(+a);case"[object DataView]":return e(a,c);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return h(a,c);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(a);case"[object RegExp]":return f(a);case"[object Symbol]":return g(a)}}},96101:a=>{a.exports=function(a,b){for(var c=-1,d=Array(a);++c<a;)d[c]=b(c);return d}},96918:(a,b,c)=>{var d=c(58009),e="object"==typeof self&&self&&self.Object===Object&&self;a.exports=d||e||Function("return this")()},97198:a=>{a.exports=function(a){var b=[];if(null!=a)for(var c in Object(a))b.push(c);return b}},97922:(a,b,c)=>{a.exports=c(96918).Symbol},98142:(a,b,c)=>{var d=c(61048);a.exports=function(a){return d(this,a).get(a)}},99303:(a,b,c)=>{var d=c(61048);a.exports=function(a){var b=d(this,a).delete(a);return this.size-=!!b,b}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=346,exports.ids=[346],exports.modules={41527:(a,b,c)=>{c.d(b,{S$:()=>e,T9:()=>f,qW:()=>h});let d=/\$\{var:([^}]+)\}/g;function e(a,b){if("string"!=typeof a||0===a.length||!d.test(a))return a;let c=b??{};return a.replace(d,(a,b)=>{let d=b.trim(),e=c[d];return"string"==typeof e?e:(console.warn(`[resolveRunVars] unknown variable "${d}"; substituting empty string`),"")})}function f(a){let b;if("string"!=typeof a||0===a.length)return[];let c=new Set;for(d.lastIndex=0;null!==(b=d.exec(a));){let a=b[1].trim();a&&c.add(a)}return[...c]}let g=/^[A-Za-z_][\w-]*$/;function h(a){return"string"==typeof a&&g.test(a)}},49181:(a,b,c)=>{c.d(b,{A$:()=>g});let d="_-_-_",e=/^(tool|resource):(.+)$/,f=/\$\{((?:tool|resource):[^}]+|_-_-_[^}]+)\}/g;function g(a){let b,c=[];for(f.lastIndex=0;null!==(b=f.exec(a));){let a=function(a){let b=e.exec(a);if(b){let a=b[1],c=function(a){let b=a.indexOf("__");if(b<=0)return null;let c=a.slice(b+2);return c?{server:a.slice(0,b),name:c}:null}(b[2]);return c?{kind:a,server:c.server,name:c.name}:null}if(a.startsWith(d)){let b=a.split(d);if(3===b.length&&b[1]&&b[2])return{kind:"tool",server:b[1],name:b[2]}}return null}(b[1]);a&&c.push({...a,fullMatch:b[0],index:b.index})}return c}},58505:(a,b,c)=>{c.d(b,{Ul:()=>g,g2:()=>f,ng:()=>j,pf:()=>h});let d=/\$\{kv:([^}]+)\}/g,e=["global","flow","folder"];function f(a){let b=(a??"").trim(),c=b.indexOf("/");if(c>0){let a=b.slice(0,c);if(e.includes(a))return{scope:a,key:b.slice(c+1).trim()}}return{scope:"folder",key:b}}function g(a,b){if("string"!=typeof a||0===a.length||!d.test(a))return a;let c=b??{};return a.replace(d,(a,b)=>{let d=b.trim(),e=c[d];return"string"==typeof e?e:(console.warn(`[resolveKvRefs] unknown kv reference "${d}"; substituting empty string`),"")})}function h(a){let b;if("string"!=typeof a||0===a.length)return[];let c=new Set;for(d.lastIndex=0;null!==(b=d.exec(a));){let a=b[1].trim();a&&c.add(a)}return[...c]}let i=/^[A-Za-z_][\w-]*$/;function j(a){return"string"==typeof a&&i.test(a)}},67512:(a,b,c)=>{c.d(b,{C:()=>e,F9:()=>i,PP:()=>h,wM:()=>f});let d=["contains","regex","equals","always"];function e(a){return"string"==typeof a&&d.includes(a)}function f(a){try{return new RegExp(a),!0}catch{return!1}}function g(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>"string"==typeof a?a:a&&"object"==typeof a&&"text"in a&&"string"==typeof a.text?a.text:"").join(""):""}function h(a,b="last-assistant"){if(!Array.isArray(a)||0===a.length)return null;if("last-message"===b)return g(a[a.length-1]?.content);for(let b=a.length-1;b>=0;b--)if(a[b]?.role==="assistant")return g(a[b]?.content);return null}function i(a,b){let c;if(!a)return!1;let d="string"==typeof b?b:"",e="string"==typeof a.value?a.value:String(a.value??"");switch(a.kind){case"contains":c=a.ignoreCase?d.toLowerCase().includes(e.toLowerCase()):d.includes(e);break;case"equals":c=a.ignoreCase?d.toLowerCase()===e.toLowerCase():d===e;break;case"regex":{let b;try{b=new RegExp(e,a.ignoreCase?"i":void 0)}catch(a){return console.warn("[edgeConditions] invalid regex predicate; treating as no-match",e,a),!1}c=b.test(d);break}case"always":c=!0;break;default:return console.warn("[edgeConditions] unknown condition kind; treating as no-match",a.kind),!1}return a.negate?!c:c}},89224:(a,b,c)=>{c.d(b,{E9:()=>e});let d="handoff_to_";function e(a){let b=new Set,c=new Map;for(let e of a){if(c.has(e.id))continue;let a=function(a,b){let c=(a&&a.trim()||b&&b.trim()||"node").toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/_+/g,"_").replace(/^_+|_+$/g,"");return c.length>48&&(c=c.slice(0,48).replace(/_+$/g,"")),c||(c=b&&b.trim().toLowerCase().replace(/[^a-z0-9]+/g,"_")||"node"),c||"node"}(e.label,e.type),f=`${d}${a}`;if(b.has(f)){let c=2;for(;b.has(`${d}${a}_${c}`);)c++;f=`${d}${a}_${c}`}b.add(f),c.set(e.id,f)}return c}}};
|