flujo-ai 3.40.0 → 3.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +400 -384
- package/.next/app-path-routes-manifest.json +53 -53
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +33 -33
- package/.next/react-loadable-manifest.json +9 -9
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +3 -3
- package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/assist/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/generator/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/authoring/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/automation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/flows/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/resources/read/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/servers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/flujo/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/feedback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/packages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/setup/ai-cli/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/statistics/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/telemetry/daily-active/route.js +1 -1
- package/.next/server/app/api/telemetry/daily-active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/automation/triggers/page.js +1 -1
- package/.next/server/app/automation/triggers/page.js.nft.json +1 -1
- package/.next/server/app/automation/triggers/page_client-reference-manifest.js +1 -1
- package/.next/server/app/automation/triggers.html +1 -1
- package/.next/server/app/automation/triggers.rsc +4 -4
- package/.next/server/app/automation/waves/page_client-reference-manifest.js +1 -1
- package/.next/server/app/automation/waves.html +1 -1
- package/.next/server/app/automation/waves.rsc +4 -4
- package/.next/server/app/chat/page.js +2 -2
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +4 -4
- package/.next/server/app/docs/page.js +3 -3
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +4 -4
- package/.next/server/app/executions/page.js +1 -1
- package/.next/server/app/executions/page.js.nft.json +1 -1
- package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/executions.html +1 -1
- package/.next/server/app/executions.rsc +4 -4
- package/.next/server/app/flows/page.js +5 -3
- package/.next/server/app/flows/page.js.nft.json +1 -1
- package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/flows.html +1 -1
- package/.next/server/app/flows.rsc +4 -4
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/mcp/page.js +73 -44
- package/.next/server/app/mcp/page.js.nft.json +1 -1
- package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-flows/route.js +1 -1
- package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp.html +1 -1
- package/.next/server/app/mcp.rsc +4 -4
- package/.next/server/app/models/page.js +7 -7
- package/.next/server/app/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages/page.js +1 -1
- package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages.html +1 -1
- package/.next/server/app/packages.rsc +4 -4
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +2 -2
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +4 -4
- package/.next/server/app/statistics/page.js +2 -2
- package/.next/server/app/statistics/page_client-reference-manifest.js +1 -1
- package/.next/server/app/statistics.html +1 -1
- package/.next/server/app/statistics.rsc +4 -4
- package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
- package/.next/server/app/waves.html +1 -1
- package/.next/server/app/waves.rsc +4 -4
- package/.next/server/app-paths-manifest.json +53 -53
- package/.next/server/chunks/1227.js +1 -1
- package/.next/server/chunks/1403.js +2 -2
- package/.next/server/chunks/1539.js +1 -1
- package/.next/server/chunks/2069.js +1 -1
- package/.next/server/chunks/2372.js +1 -1
- package/.next/server/chunks/2828.js +2 -2
- package/.next/server/chunks/3422.js +1 -0
- package/.next/server/chunks/3945.js +3 -3
- package/.next/server/chunks/519.js +2 -2
- package/.next/server/chunks/5444.js +2 -2
- package/.next/server/chunks/5750.js +1 -1
- package/.next/server/chunks/5918.js +10 -10
- package/.next/server/chunks/6226.js +2 -2
- package/.next/server/chunks/9088.js +2 -2
- package/.next/server/chunks/9490.js +5 -0
- package/.next/server/chunks/9543.js +3 -3
- package/.next/server/chunks/9624.js +8 -8
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{1161-19176c3e7c655121.js → 1161-563a8028f59f00de.js} +1 -1
- package/.next/static/chunks/1521-9ad145dcb8e3abfc.js +1 -0
- package/.next/static/chunks/1576.06797b29a19fa26c.js +1 -0
- package/.next/static/chunks/{4386-e9621d3c94969a68.js → 2005-f9d38c39f10c321f.js} +1 -1
- package/.next/static/chunks/2493-da85c47ef972c066.js +1 -0
- package/.next/static/chunks/361.c88d43436e974006.js +1 -0
- package/.next/static/chunks/3731-c18f48522b159d7f.js +1 -0
- package/.next/static/chunks/3781.5086bce03aa281f7.js +1 -0
- package/.next/static/chunks/3969-15a32253b112652c.js +1 -0
- package/.next/static/chunks/4167.2ce97ca450815df1.js +1 -0
- package/.next/static/chunks/4814-52b7254ab573a455.js +1 -0
- package/.next/static/chunks/4965.d401547984d71b7a.js +1 -0
- package/.next/static/chunks/5148-9174ba300221fd1b.js +1 -0
- package/.next/static/chunks/5417-fb7d3760cc288ab1.js +1 -0
- package/.next/static/chunks/5967-34735763d1b03ccc.js +1 -0
- package/.next/static/chunks/7260-743e4b0cc4211dcb.js +1 -0
- package/.next/static/chunks/7711-7323dabe7dc02311.js +1 -0
- package/.next/static/chunks/8124-f99060fe1dfc119e.js +1 -0
- package/.next/static/chunks/8135-7fe07a34a8c49967.js +1 -0
- package/.next/static/chunks/8529.6187e01de8e9a692.js +1 -0
- package/.next/static/chunks/9136-e9ee57cc581ddd50.js +1 -0
- package/.next/static/chunks/9140.9180b569c4b26168.js +1 -0
- package/.next/static/chunks/9195-6a18a5867bb76c64.js +1 -0
- package/.next/static/chunks/app/automation/triggers/{page-594a6294c58344bf.js → page-34b9a8a2e6f28c2f.js} +1 -1
- package/.next/static/chunks/app/automation/waves/{page-ce2fef4996cad8e6.js → page-fd4929ea308183b2.js} +1 -1
- package/.next/static/chunks/app/chat/page-fb8a33db7628ecd0.js +1 -0
- package/.next/static/chunks/app/docs/page-3e21583b1cd5d7ca.js +1 -0
- package/.next/static/chunks/app/executions/{page-fcc848de86714386.js → page-56ecca56c17c05d7.js} +1 -1
- package/.next/static/chunks/app/flows/page-8c1a656197b15894.js +1 -0
- package/.next/static/chunks/app/layout-6e2756704ddc9f39.js +1 -0
- package/.next/static/chunks/app/mcp/page-4c4390354fdd94c8.js +1 -0
- package/.next/static/chunks/app/models/error-ea477f0ad52f4dcb.js +1 -0
- package/.next/static/chunks/app/models/page-e237ac64a0f62c3d.js +1 -0
- package/.next/static/chunks/app/packages/page-8680e4bea6b7ea45.js +1 -0
- package/.next/static/chunks/app/page-6dca06b6b7667181.js +1 -0
- package/.next/static/chunks/app/settings/page-a5f7fedcbf9e3a7f.js +1 -0
- package/.next/static/chunks/app/statistics/page-f9f9627d1c1ff963.js +1 -0
- package/.next/static/chunks/app/waves/{page-5b53af3eb9409414.js → page-7529febc48eb473d.js} +1 -1
- package/.next/static/chunks/{webpack-9fbd3587b9ef4dca.js → webpack-f3df493faa0bd612.js} +1 -1
- package/.next/static/css/{400b1b927c3ffaf6.css → 9f9b7f1374ac2d01.css} +1 -1
- package/.next/trace +11 -11
- package/README.md +1 -1
- package/mcp-servers/bash/package.json +1 -1
- package/mcp-servers/browser/package.json +1 -1
- package/mcp-servers/filesystem/package.json +1 -1
- package/mcp-servers/flujo/package.json +1 -1
- package/package.json +5 -5
- package/.next/server/chunks/7508.js +0 -5
- package/.next/server/chunks/8598.js +0 -1
- package/.next/static/chunks/1521-1c98c9a56726e053.js +0 -1
- package/.next/static/chunks/1576.bc6ae6c9e6d939d8.js +0 -1
- package/.next/static/chunks/2005.300528b5119c2d38.js +0 -1
- package/.next/static/chunks/2499-92cd97ce4993999f.js +0 -1
- package/.next/static/chunks/361.51d642c530c84295.js +0 -1
- package/.next/static/chunks/3731-64070760ae44448f.js +0 -1
- package/.next/static/chunks/4814-31eb5f3b10c651c1.js +0 -1
- package/.next/static/chunks/4965.39e24b54c3c6ca58.js +0 -1
- package/.next/static/chunks/5967-59fde8c214c9ca9f.js +0 -1
- package/.next/static/chunks/6417.70056fe81ca21682.js +0 -1
- package/.next/static/chunks/7711-4b017720ec49c96d.js +0 -1
- package/.next/static/chunks/8124-94140ee1dd8ed87c.js +0 -1
- package/.next/static/chunks/8135-5b975b9014f8920b.js +0 -1
- package/.next/static/chunks/8529.b5a43e728bb5bb8a.js +0 -1
- package/.next/static/chunks/9001-4c27a608feddb878.js +0 -1
- package/.next/static/chunks/9136-9c415453ec02519c.js +0 -1
- package/.next/static/chunks/9140.6502327a2c098d33.js +0 -1
- package/.next/static/chunks/9195-3c9c4300e7505d9e.js +0 -1
- package/.next/static/chunks/9524-b9d2c7e4426edd07.js +0 -1
- package/.next/static/chunks/app/chat/page-203cb7bf21638ada.js +0 -1
- package/.next/static/chunks/app/docs/page-c466a58caf5e3336.js +0 -1
- package/.next/static/chunks/app/flows/page-172c759ca81ba02f.js +0 -1
- package/.next/static/chunks/app/layout-a6ca531683a518a7.js +0 -1
- package/.next/static/chunks/app/mcp/page-0a96e6b30e45b1e6.js +0 -1
- package/.next/static/chunks/app/models/error-1964203c5c6e7d0e.js +0 -1
- package/.next/static/chunks/app/models/page-ad1cbea6d3324966.js +0 -1
- package/.next/static/chunks/app/packages/page-dda48425be9fc137.js +0 -1
- package/.next/static/chunks/app/page-04189aa1b1318c2d.js +0 -1
- package/.next/static/chunks/app/settings/page-906c229c87011ead.js +0 -1
- package/.next/static/chunks/app/statistics/page-9b13a95549f438c0.js +0 -1
- /package/.next/static/{b1aMk0634gkkiunttd1SQ → utOrEUSzguWncIosxgCeR}/_buildManifest.js +0 -0
- /package/.next/static/{b1aMk0634gkkiunttd1SQ → utOrEUSzguWncIosxgCeR}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";exports.id=2372,exports.ids=[2372],exports.modules={13516:(a,b,c)=>{c.d(b,{G:()=>d});let d={LOG_LEVEL:3,INCLUDE_TOOL_CALLS_IN_RESPONSE:!0,ENABLE_EXECUTION_TRACKER:!1,ENABLE_REVERT_TO_HERE:!1}},38844:(a,b,c)=>{c.d(b,{Z:()=>d.Z});var d=c(84653)},43326:(a,b,c)=>{c.r(b),c.d(b,{getAppDir:()=>h,getDataDir:()=>j,getHomeDir:()=>i,getInstallMode:()=>m,getOllamaUrl:()=>k,isLocalModelsEnabled:()=>l});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);function h(){return process.cwd()}function i(){return g().homedir()}function j(){let a=process.env.FLUJO_DATA_DIR;return a&&a.trim().length>0?e().resolve(a):h()}function k(){let a=process.env.FLUJO_OLLAMA_URL;return(a&&a.trim().length>0?a.trim():"http://localhost:11434").replace(/\/+$/,"")}function l(){let a=process.env.FLUJO_OLLAMA;return"1"===a||"true"===a||"yes"===a}function m(){return process.env.FLUJO_CONTAINER?"container":process.env.FLUJO_NPM?"npm":"git"}},50846:(a,b,c)=>{c.d(b,{h:()=>i});var d=c(13516);let e={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},f="number"==typeof d.G.LOG_LEVEL?d.G.LOG_LEVEL:e.ERROR;function g(a,b=0){if(b>6)return String(a);if(!(a instanceof Error))return a;let c={name:a.name,message:a.message};for(let d of Object.getOwnPropertyNames(a)){if("name"===d||"message"===d)continue;let e=a[d];"function"!=typeof e&&("stack"===d?c.stack=e:"cause"===d?c.cause=g(e,b+1):"errors"===d&&Array.isArray(e)?c.errors=e.map(a=>g(a,b+1)):c[d]=e)}return c}function h(a,b,c,d,h){if(a>=("number"==typeof h?h:f)){if("function"==typeof d)try{d=d()}catch{d="[lazy log data threw]"}let f=new Date().toISOString(),h=`[${f}] [${b}]`,i=`${h} ${c}`;if(void 0!==d)if(d instanceof Error||"object"==typeof d)try{let a=d instanceof Error?g(d):d,b=JSON.stringify(a,(a,b)=>b instanceof Error?g(b):b,2);i+=`:
|
|
2
|
-
${b}`}catch(a){i+=": [Object cannot be stringified]"}else i+=`: ${d}`;switch(a){case e.VERBOSE:console.debug(`[VERBOSE] ${i}`);break;case e.DEBUG:console.debug(i);break;case e.INFO:console.info(i);break;case e.WARN:console.warn(i);break;case e.ERROR:console.error(i);break;default:console.log(i)}}}function i(a,b){let c,d=((c=a.replace(/^src\//,"")).startsWith("/")&&(c=c.substring(1)),c);return{verbose:(a,c)=>{h(e.VERBOSE,d,a,c,b)},debug:(a,c)=>{h(e.DEBUG,d,a,c,b)},info:(a,c)=>{h(e.INFO,d,a,c,b)},warn:(a,c)=>{h(e.WARN,d,a,c,b)},error:(a,c)=>{h(e.ERROR,d,a,c,b)}}}},84653:(a,b,c)=>{c.d(b,{Z:()=>d});var d=function(a){return a.MODELS="models",a.FLOWS="flows",a.CHAT_HISTORY="history",a.THEME="theme",a.THEME_STYLE="theme_style",a.ENCRYPTION_KEY="encryption_key",a.MCP_SERVERS="mcp_servers",a.GLOBAL_ENV_VARS="global_env_vars",a.CURRENT_CONVERSATION_ID="current_conversation_id",a.SELECTED_FLOW_ID="selected_flow_id",a.LAST_PICKED_FLOW_ID="last_picked_flow_id",a.SPEECH_SETTINGS="speech_settings",a.SPOTLIGHT_SERVERS="spotlight_servers",a.PLANNED_EXECUTIONS="planned_executions",a.MCP_AUTO_INSTALL_SETTINGS="mcp_auto_install_settings",a.MCP_QUALITY_SETTINGS="mcp_quality_settings",a.RUN_RESOURCE_SETTINGS="run_resource_settings",a.KV_STORE_SETTINGS="kv_store_settings",a.PENDING_APPROVALS="pending_approvals",a.MCP_INTERNAL_OVERRIDES="mcp_internal_overrides",a.MCP_INTERNAL_SERVERS_MIGRATION_V1="mcp_internal_servers_migration_v1",a.MCP_INTERNAL_CAPABILITIES_MIGRATION_V2="mcp_internal_capabilities_migration_v2",a.MCP_INTERNAL_BROWSER_MIGRATION_V3="mcp_internal_browser_migration_v3",a.MCP_SHIPPED_SERVERS_MIGRATION_V4="mcp_shipped_servers_migration_v4",a.PACKAGE_INSTALLS="package_installs",a.EXPERIMENTAL_SETTINGS="experimental_settings",a.REGISTRY_ACCOUNT="registry_account",a.REGISTRY_SETTINGS="registry_settings",a.TELEMETRY_STATE="telemetry_state",a}({})},92372:(a,b,c)=>{c.d(b,{EI:()=>B,N2:()=>u,Pv:()=>o,VH:()=>s,Vt:()=>A,Zf:()=>r,av:()=>E,bB:()=>C,l_:()=>z,ln:()=>w,loadItem:()=>t,pL:()=>D,w5:()=>F});var d=c(29021),e=c(33873),f=c.n(e),g=c(38844),h=c(50846),i=c(43326);let j=(0,h.h)("utils/storage/backend"),k=f().join((0,i.getDataDir)(),"db"),l=f().join((0,i.getDataDir)(),".next","storage"),m=a=>f().join(k,`${a}.json`);async function n(){try{await d.promises.access(k),j.verbose(`Storage directory exists: ${k}`)}catch{j.debug(`Creating storage directory: ${k}`),await d.promises.mkdir(k,{recursive:!0})}try{await d.promises.access(l),j.warn(`Old storage directory found: ${l}. This may cause data inconsistency issues.`)}catch{}}async function o(){for(let a of(j.debug("Verifying storage system initialization"),await n(),Object.values(g.Z)))try{let b=m(a),c=!1;try{await d.promises.access(b),c=!0}catch{}j.debug(`Storage check: ${a} - ${c?"File exists":"File does not exist yet"}`);let e=f().join(l,`${a}.json`);try{await d.promises.access(e),c?j.warn(`Found ${a} in both old and new storage locations. This may cause data inconsistency.`):j.warn(`Found ${a} in old storage location but not in new location. This may cause data loss.`)}catch{}}catch(b){j.error(`Storage verification failed for ${a}:`,b)}j.debug("Storage verification completed")}let p=new Map,q=0;async function r(a,b){let c=f().dirname(a);await d.promises.mkdir(c,{recursive:!0});let e=`${a}.tmp.${process.pid}.${++q}`;try{await d.promises.writeFile(e,b),await d.promises.rename(e,a)}catch(a){try{await d.promises.unlink(e)}catch{}throw a}}async function s(a,b){let c=m(a),d=(p.get(a)??Promise.resolve()).catch(()=>{}).then(()=>r(c,JSON.stringify(b,null,2)));p.set(a,d);try{await d,j.verbose(`Successfully saved item to: ${c}`)}catch(b){throw j.error(`Error saving item with key "${a}" to ${c}:`,b),b}finally{p.get(a)===d&&p.delete(a)}}async function t(a,b){try{await n();let c=m(a),e=await d.promises.readFile(c,"utf-8");if(0===e.trim().length)return j.warn(`Item with key "${a}" at ${c} is empty; treating as missing and returning default.`),b;try{let a=JSON.parse(e);return j.verbose(`Successfully loaded item from: ${c}`),a}catch(b){j.error(`CRITICAL: Failed to parse JSON from ${c}:`,b);let a=`${c}.corrupted.${Date.now()}.bak`;try{await d.promises.writeFile(a,e),j.info(`Created backup of corrupted file at: ${a}`)}catch(a){j.error("Failed to create backup of corrupted file:",a)}throw Error(`Failed to parse JSON from ${c}. A backup has been created at ${a}. Original error: ${b.message}`)}}catch(c){if("ENOENT"===c.code)return j.verbose(`Item with key "${a}" not found at ${m(a)}, returning default.`),b;throw j.error(`CRITICAL: Error loading item with key "${a}" from ${m(a)}:`,c),c}}async function u(a){let b=m(a);try{await d.promises.unlink(b),j.verbose(`Successfully cleared item: ${b}`)}catch(c){"ENOENT"!==c.code?j.warn(`Error clearing item with key "${a}" at ${b}:`,c):j.verbose(`Item with key "${a}" not found at ${b}, nothing to clear.`)}}let v=/^[A-Za-z0-9_-]{1,64}$/;function w(a){if("string"!=typeof a||!v.test(a))throw Error(`Unsafe collection item id: ${JSON.stringify(a)}`)}let x=a=>f().join(k,a),y=(a,b)=>f().join(x(a),`${b}.json`);function z(a,b){let c=(p.get(a)??Promise.resolve()).catch(()=>{}).then(b);return p.set(a,c),c.catch(()=>{}).finally(()=>{p.get(a)===c&&p.delete(a)}),c}async function A(a,b,c){w(b);let d=y(a,b);try{await z(`${a}/${b}`,()=>r(d,JSON.stringify(c,null,2))),j.verbose(`Successfully saved collection item: ${d}`)}catch(c){throw j.error(`Error saving collection item "${a}/${b}" to ${d}:`,c),c}}async function B(a,b,c){w(b);let e=y(a,b);try{let f=await d.promises.readFile(e,"utf-8");if(0===f.trim().length)return j.warn(`Collection item "${a}/${b}" at ${e} is empty; treating as missing.`),c;try{return JSON.parse(f)}catch(b){j.error(`CRITICAL: Failed to parse JSON from ${e}:`,b);let a=`${e}.corrupted.${Date.now()}.bak`;try{await d.promises.writeFile(a,f),j.info(`Created backup of corrupted file at: ${a}`)}catch(a){j.error("Failed to create backup of corrupted file:",a)}throw Error(`Failed to parse JSON from ${e}. A backup has been created at ${a}. Original error: ${b.message}`)}}catch(d){if("ENOENT"===d.code)return j.verbose(`Collection item "${a}/${b}" not found at ${e}, returning default.`),c;throw j.error(`CRITICAL: Error loading collection item "${a}/${b}" from ${e}:`,d),d}}async function C(a,b){w(b);let c=y(a,b);await z(`${a}/${b}`,async()=>{try{await d.promises.unlink(c),j.verbose(`Successfully deleted collection item: ${c}`)}catch(d){if("ENOENT"!==d.code)throw d;j.verbose(`Collection item "${a}/${b}" not found at ${c}, nothing to delete.`)}})}async function D(a){let b,c=x(a);try{b=await d.promises.readdir(c)}catch(a){if("ENOENT"===a.code)return[];throw a}let e=[];for(let a of b){if(!a.endsWith(".json")||a.includes(".tmp.")||a.includes(".corrupted.")||a.endsWith(".bak"))continue;let b=f().join(c,a);try{let a=await d.promises.readFile(b,"utf-8");if(0===a.trim().length){j.warn(`Collection item file ${b} is empty; skipping.`);continue}e.push(JSON.parse(a))}catch(a){j.error(`Failed to read collection item ${b}; skipping.`,a)}}return e}async function E(a){let b,c=x(a);try{b=await d.promises.readdir(c)}catch(a){if("ENOENT"===a.code)return[];throw a}let e=[];for(let a of b){if(!a.endsWith(".json")||a.includes(".tmp.")||a.includes(".corrupted.")||a.endsWith(".bak"))continue;let b=f().join(c,a);try{let[a,c]=await Promise.all([d.promises.readFile(b,"utf-8"),d.promises.stat(b)]);if(0===a.trim().length){j.warn(`Collection item file ${b} is empty; skipping.`);continue}e.push({item:JSON.parse(a),mtimeMs:c.mtimeMs})}catch(a){j.error(`Failed to read collection item ${b}; skipping.`,a)}}return e}async function F(a,b,c){let e,f,g=m(a);try{e=await d.promises.readFile(g,"utf-8")}catch(a){if("ENOENT"===a.code)return 0;throw a}if(0===e.trim().length)return await d.promises.rename(g,`${g}.migrated-${Date.now()}.bak`),0;try{f=JSON.parse(e)}catch(b){return j.error(`Migration: legacy ${a}.json is not valid JSON; leaving it in place.`,b),0}if(!Array.isArray(f))return j.error(`Migration: legacy ${a}.json is not an array; leaving it in place.`),0;for(let a of(await d.promises.mkdir(x(b),{recursive:!0}),f)){let e;try{e=c(a),w(e)}catch(a){j.error(`Migration: skipping ${b} item with invalid/unsafe id`,a);continue}let f=y(b,e);try{await d.promises.access(f),j.debug(`Migration: ${b}/${e} already exists; keeping the existing file.`);continue}catch{}await r(f,JSON.stringify(a,null,2))}return await d.promises.rename(g,`${g}.migrated-${Date.now()}.bak`),j.info(`Migration: moved ${f.length} ${b} item(s) from ${a}.json to per-item storage.`),f.length}}};
|
|
2
|
+
${b}`}catch(a){i+=": [Object cannot be stringified]"}else i+=`: ${d}`;switch(a){case e.VERBOSE:console.debug(`[VERBOSE] ${i}`);break;case e.DEBUG:console.debug(i);break;case e.INFO:console.info(i);break;case e.WARN:console.warn(i);break;case e.ERROR:console.error(i);break;default:console.log(i)}}}function i(a,b){let c,d=((c=a.replace(/^src\//,"")).startsWith("/")&&(c=c.substring(1)),c);return{verbose:(a,c)=>{h(e.VERBOSE,d,a,c,b)},debug:(a,c)=>{h(e.DEBUG,d,a,c,b)},info:(a,c)=>{h(e.INFO,d,a,c,b)},warn:(a,c)=>{h(e.WARN,d,a,c,b)},error:(a,c)=>{h(e.ERROR,d,a,c,b)}}}},84653:(a,b,c)=>{c.d(b,{Z:()=>d});var d=function(a){return a.MODELS="models",a.FLOWS="flows",a.CHAT_HISTORY="history",a.THEME="theme",a.THEME_STYLE="theme_style",a.LIVING_WORLD_ENABLED="living_world_enabled",a.ENCRYPTION_KEY="encryption_key",a.MCP_SERVERS="mcp_servers",a.GLOBAL_ENV_VARS="global_env_vars",a.CURRENT_CONVERSATION_ID="current_conversation_id",a.SELECTED_FLOW_ID="selected_flow_id",a.LAST_PICKED_FLOW_ID="last_picked_flow_id",a.SPEECH_SETTINGS="speech_settings",a.SPOTLIGHT_SERVERS="spotlight_servers",a.PLANNED_EXECUTIONS="planned_executions",a.MCP_AUTO_INSTALL_SETTINGS="mcp_auto_install_settings",a.MCP_QUALITY_SETTINGS="mcp_quality_settings",a.RUN_RESOURCE_SETTINGS="run_resource_settings",a.KV_STORE_SETTINGS="kv_store_settings",a.PENDING_APPROVALS="pending_approvals",a.MCP_INTERNAL_OVERRIDES="mcp_internal_overrides",a.MCP_INTERNAL_SERVERS_MIGRATION_V1="mcp_internal_servers_migration_v1",a.MCP_INTERNAL_CAPABILITIES_MIGRATION_V2="mcp_internal_capabilities_migration_v2",a.MCP_INTERNAL_BROWSER_MIGRATION_V3="mcp_internal_browser_migration_v3",a.MCP_SHIPPED_SERVERS_MIGRATION_V4="mcp_shipped_servers_migration_v4",a.PACKAGE_INSTALLS="package_installs",a.EXPERIMENTAL_SETTINGS="experimental_settings",a.REGISTRY_ACCOUNT="registry_account",a.REGISTRY_SETTINGS="registry_settings",a.TELEMETRY_STATE="telemetry_state",a}({})},92372:(a,b,c)=>{c.d(b,{EI:()=>B,N2:()=>u,Pv:()=>o,VH:()=>s,Vt:()=>A,Zf:()=>r,av:()=>E,bB:()=>C,l_:()=>z,ln:()=>w,loadItem:()=>t,pL:()=>D,w5:()=>F});var d=c(29021),e=c(33873),f=c.n(e),g=c(38844),h=c(50846),i=c(43326);let j=(0,h.h)("utils/storage/backend"),k=f().join((0,i.getDataDir)(),"db"),l=f().join((0,i.getDataDir)(),".next","storage"),m=a=>f().join(k,`${a}.json`);async function n(){try{await d.promises.access(k),j.verbose(`Storage directory exists: ${k}`)}catch{j.debug(`Creating storage directory: ${k}`),await d.promises.mkdir(k,{recursive:!0})}try{await d.promises.access(l),j.warn(`Old storage directory found: ${l}. This may cause data inconsistency issues.`)}catch{}}async function o(){for(let a of(j.debug("Verifying storage system initialization"),await n(),Object.values(g.Z)))try{let b=m(a),c=!1;try{await d.promises.access(b),c=!0}catch{}j.debug(`Storage check: ${a} - ${c?"File exists":"File does not exist yet"}`);let e=f().join(l,`${a}.json`);try{await d.promises.access(e),c?j.warn(`Found ${a} in both old and new storage locations. This may cause data inconsistency.`):j.warn(`Found ${a} in old storage location but not in new location. This may cause data loss.`)}catch{}}catch(b){j.error(`Storage verification failed for ${a}:`,b)}j.debug("Storage verification completed")}let p=new Map,q=0;async function r(a,b){let c=f().dirname(a);await d.promises.mkdir(c,{recursive:!0});let e=`${a}.tmp.${process.pid}.${++q}`;try{await d.promises.writeFile(e,b),await d.promises.rename(e,a)}catch(a){try{await d.promises.unlink(e)}catch{}throw a}}async function s(a,b){let c=m(a),d=(p.get(a)??Promise.resolve()).catch(()=>{}).then(()=>r(c,JSON.stringify(b,null,2)));p.set(a,d);try{await d,j.verbose(`Successfully saved item to: ${c}`)}catch(b){throw j.error(`Error saving item with key "${a}" to ${c}:`,b),b}finally{p.get(a)===d&&p.delete(a)}}async function t(a,b){try{await n();let c=m(a),e=await d.promises.readFile(c,"utf-8");if(0===e.trim().length)return j.warn(`Item with key "${a}" at ${c} is empty; treating as missing and returning default.`),b;try{let a=JSON.parse(e);return j.verbose(`Successfully loaded item from: ${c}`),a}catch(b){j.error(`CRITICAL: Failed to parse JSON from ${c}:`,b);let a=`${c}.corrupted.${Date.now()}.bak`;try{await d.promises.writeFile(a,e),j.info(`Created backup of corrupted file at: ${a}`)}catch(a){j.error("Failed to create backup of corrupted file:",a)}throw Error(`Failed to parse JSON from ${c}. A backup has been created at ${a}. Original error: ${b.message}`)}}catch(c){if("ENOENT"===c.code)return j.verbose(`Item with key "${a}" not found at ${m(a)}, returning default.`),b;throw j.error(`CRITICAL: Error loading item with key "${a}" from ${m(a)}:`,c),c}}async function u(a){let b=m(a);try{await d.promises.unlink(b),j.verbose(`Successfully cleared item: ${b}`)}catch(c){"ENOENT"!==c.code?j.warn(`Error clearing item with key "${a}" at ${b}:`,c):j.verbose(`Item with key "${a}" not found at ${b}, nothing to clear.`)}}let v=/^[A-Za-z0-9_-]{1,64}$/;function w(a){if("string"!=typeof a||!v.test(a))throw Error(`Unsafe collection item id: ${JSON.stringify(a)}`)}let x=a=>f().join(k,a),y=(a,b)=>f().join(x(a),`${b}.json`);function z(a,b){let c=(p.get(a)??Promise.resolve()).catch(()=>{}).then(b);return p.set(a,c),c.catch(()=>{}).finally(()=>{p.get(a)===c&&p.delete(a)}),c}async function A(a,b,c){w(b);let d=y(a,b);try{await z(`${a}/${b}`,()=>r(d,JSON.stringify(c,null,2))),j.verbose(`Successfully saved collection item: ${d}`)}catch(c){throw j.error(`Error saving collection item "${a}/${b}" to ${d}:`,c),c}}async function B(a,b,c){w(b);let e=y(a,b);try{let f=await d.promises.readFile(e,"utf-8");if(0===f.trim().length)return j.warn(`Collection item "${a}/${b}" at ${e} is empty; treating as missing.`),c;try{return JSON.parse(f)}catch(b){j.error(`CRITICAL: Failed to parse JSON from ${e}:`,b);let a=`${e}.corrupted.${Date.now()}.bak`;try{await d.promises.writeFile(a,f),j.info(`Created backup of corrupted file at: ${a}`)}catch(a){j.error("Failed to create backup of corrupted file:",a)}throw Error(`Failed to parse JSON from ${e}. A backup has been created at ${a}. Original error: ${b.message}`)}}catch(d){if("ENOENT"===d.code)return j.verbose(`Collection item "${a}/${b}" not found at ${e}, returning default.`),c;throw j.error(`CRITICAL: Error loading collection item "${a}/${b}" from ${e}:`,d),d}}async function C(a,b){w(b);let c=y(a,b);await z(`${a}/${b}`,async()=>{try{await d.promises.unlink(c),j.verbose(`Successfully deleted collection item: ${c}`)}catch(d){if("ENOENT"!==d.code)throw d;j.verbose(`Collection item "${a}/${b}" not found at ${c}, nothing to delete.`)}})}async function D(a){let b,c=x(a);try{b=await d.promises.readdir(c)}catch(a){if("ENOENT"===a.code)return[];throw a}let e=[];for(let a of b){if(!a.endsWith(".json")||a.includes(".tmp.")||a.includes(".corrupted.")||a.endsWith(".bak"))continue;let b=f().join(c,a);try{let a=await d.promises.readFile(b,"utf-8");if(0===a.trim().length){j.warn(`Collection item file ${b} is empty; skipping.`);continue}e.push(JSON.parse(a))}catch(a){j.error(`Failed to read collection item ${b}; skipping.`,a)}}return e}async function E(a){let b,c=x(a);try{b=await d.promises.readdir(c)}catch(a){if("ENOENT"===a.code)return[];throw a}let e=[];for(let a of b){if(!a.endsWith(".json")||a.includes(".tmp.")||a.includes(".corrupted.")||a.endsWith(".bak"))continue;let b=f().join(c,a);try{let[a,c]=await Promise.all([d.promises.readFile(b,"utf-8"),d.promises.stat(b)]);if(0===a.trim().length){j.warn(`Collection item file ${b} is empty; skipping.`);continue}e.push({item:JSON.parse(a),mtimeMs:c.mtimeMs})}catch(a){j.error(`Failed to read collection item ${b}; skipping.`,a)}}return e}async function F(a,b,c){let e,f,g=m(a);try{e=await d.promises.readFile(g,"utf-8")}catch(a){if("ENOENT"===a.code)return 0;throw a}if(0===e.trim().length)return await d.promises.rename(g,`${g}.migrated-${Date.now()}.bak`),0;try{f=JSON.parse(e)}catch(b){return j.error(`Migration: legacy ${a}.json is not valid JSON; leaving it in place.`,b),0}if(!Array.isArray(f))return j.error(`Migration: legacy ${a}.json is not an array; leaving it in place.`),0;for(let a of(await d.promises.mkdir(x(b),{recursive:!0}),f)){let e;try{e=c(a),w(e)}catch(a){j.error(`Migration: skipping ${b} item with invalid/unsafe id`,a);continue}let f=y(b,e);try{await d.promises.access(f),j.debug(`Migration: ${b}/${e} already exists; keeping the existing file.`);continue}catch{}await r(f,JSON.stringify(a,null,2))}return await d.promises.rename(g,`${g}.migrated-${Date.now()}.bak`),j.info(`Migration: moved ${f.length} ${b} item(s) from ${a}.json to per-item storage.`),f.length}}};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.id=2828,exports.ids=[2828],exports.modules={2560:(a,b,c)=>{c.d(b,{Aq:()=>e,Xk:()=>g,vi:()=>f});var d=c(38301);function e(a,b){return b}function f(a,b){}function g(a,b){let[c,e]=(0,d.useState)(()=>b);return[c,(0,d.useCallback)(b=>{e(c=>{let d="function"==typeof b?b(c):b;return f(a,d),d})},[a])]}},13516:(a,b,c)=>{c.d(b,{G:()=>d});let d={LOG_LEVEL:3,INCLUDE_TOOL_CALLS_IN_RESPONSE:!0,ENABLE_EXECUTION_TRACKER:!1,ENABLE_REVERT_TO_HERE:!1}},49351:(a,b,c)=>{c.d(b,{A:()=>
|
|
2
|
-
${b}`}catch(a){i+=": [Object cannot be stringified]"}else i+=`: ${d}`;switch(a){case e.VERBOSE:console.debug(`[VERBOSE] ${i}`);break;case e.DEBUG:console.debug(i);break;case e.INFO:console.info(i);break;case e.WARN:console.warn(i);break;case e.ERROR:console.error(i);break;default:console.log(i)}}}function i(a,b){let c,d=((c=a.replace(/^src\//,"")).startsWith("/")&&(c=c.substring(1)),c);return{verbose:(a,c)=>{h(e.VERBOSE,d,a,c,b)},debug:(a,c)=>{h(e.DEBUG,d,a,c,b)},info:(a,c)=>{h(e.INFO,d,a,c,b)},warn:(a,c)=>{h(e.WARN,d,a,c,b)},error:(a,c)=>{h(e.ERROR,d,a,c,b)}}}},61560:(a,b,c)=>{c.d(b,{R:()=>e});var d=c(38301);function e(a,b={}){let{threshold:c=200,deps:f=[]}=b,g=(0,d.useRef)(null),[h,i]=(0,d.useState)(!1);(0,d.useRef)(!1);let j=(0,d.useCallback)(()=>{let a=g.current;return a&&a.scrollHeight>a.clientHeight+1?a:null},[]);return(0,d.useCallback)(()=>{let a=j();return a?a.scrollTop:0},[j]),(0,d.useCallback)(a=>{let b=j();b&&(b.scrollTop=a)},[j]),{ref:g,showBackToTop:h,scrollToTop:(0,d.useCallback)(()=>{let a=j();a&&a.scrollTo({top:0,behavior:"smooth"}),i(!1)},[j])}}c(2560)},71494:(a,b,c)=>{c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"C:\\\\Users\\\\Moe\\\\Documents\\\\GitHub\\\\FLUJO\\\\src\\\\app\\\\waves\\\\page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\waves\\page.tsx","default")},84896:(a,b,c)=>{c.r(b),c.d(b,{default:()=>W});var d=c(21124),e=c(38301),f=c(54573),g=c(79515),h=c(53773),i=c(41893),j=c(81637),k=c(8521),l=c(88745),m=c(91059),n=c(84099),o=c(98540),p=c(42819);let q=(0,p.h)("frontend/services/waves");class r{async list(){try{let a=await fetch("/api/waves");if(!a.ok)throw Error(`HTTP ${a.status}`);return await a.json()}catch(a){return q.warn("Failed to list waves",a),{paused:!1,generatedAt:new Date().toISOString(),waves:[],orphans:[]}}}}let s=new r;var t=c(61560),u=c(2560),v=c(49351),w=c(46973),x=c(95791);c(71763);var y=c(48317),z=c(7499),A=c(43312),B=c(88698),C=c(56492),D=c(23246);let E={schedule:{label:"Periodic",color:"#1976d2",timeline:!0},"mcp-poll":{label:"MCP Poll",color:"#7b1fa2",timeline:!0},"url-watch":{label:"URL Watch",color:"#0288d1",timeline:!0},webhook:{label:"Webhook",color:"#2e7d32",timeline:!1},"file-watch":{label:"File Watcher",color:"#ed6c02",timeline:!1},"flow-event":{label:"Event",color:"#616161",timeline:!1}};var F=c(19290);let G={"1h":36e5,"6h":216e5,"1d":864e5},H=["1h","6h","1d"];function I(a,b,c,d=24,e){if(!a||"string"!=typeof a||!a.trim()||!Number.isFinite(b)||!Number.isFinite(c)||c<=0)return[];let f=b+c,g=[];try{let c=e?new F.l4(a.trim(),{timezone:e}):new F.l4(a.trim()),h=new Date(b-1);for(let a=0;a<d;a++){let a=c.nextRun(h);if(!a)break;let b=a.getTime();if(b>f)break;g.push(b),h=a}}catch{return[]}return g}function J(a,b){if(null==a||!Number.isFinite(a))return"no scheduled run";let c=a-b;if(c<=0)return"due now";let d=Math.floor(c/6e4),e=Math.floor(d/1440),f=Math.floor(d%1440/60),g=d%60;return e>0?`in ${e}d ${f}h`:f>0?`in ${f}h ${String(g).padStart(2,"0")}m`:`in ${g}m`}var K=c(88970);function L({subflows:a,depth:b=0}){return a&&0!==a.length?(0,d.jsx)(j.default,{sx:{pl:1.5*(0!==b),mt:.25},children:a.map((a,c)=>(0,d.jsxs)(j.default,{sx:{borderLeft:b>0?"1px dashed rgba(0,0,0,0.2)":"none",pl:+(b>0)},children:[(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,d.jsx)(K.A,{sx:{fontSize:12,opacity:.6}}),(0,d.jsxs)(g.A,{variant:"caption",sx:{opacity:a.missing?.6:.85,fontStyle:a.missing?"italic":"normal"},children:[a.flowName??a.flowId,a.missing?" (missing)":"",a.truncated?" …":""]})]}),a.children.length>0&&(0,d.jsx)(L,{subflows:a.children,depth:b+1})]},`${a.flowId}-${c}`))}):null}var M=c(60610);function N(a,b){return`${a}#${b}`}let O={trigger:function({data:a}){var b;let{chainNode:c,now:e,runAt:f,isRoot:k,hasSuccessors:l,expanded:m,pinned:n}=a,o=E[b=c.triggerKind]??{label:b,color:"#616161",timeline:!1},p="";"timeline"===c.timing.mode?p=k?J(f,e):"on schedule":"fixed"===c.timing.mode?p="fires when it happens":"event"===c.timing.mode&&(p="signal"===c.timing.via?`on signal "${c.timing.topic??""}"`:"when its upstream runs");let q=c.emittedSignals??[];return(0,d.jsxs)(j.default,{sx:{minWidth:220,maxWidth:260,borderRadius:1,border:"1px solid rgba(0,0,0,0.15)",borderTop:`4px solid ${o.color}`,outline:n||m?`2px solid ${o.color}`:"none",outlineOffset:2*!!n,bgcolor:"background.paper",boxShadow:n?6:m?4:2,p:1,opacity:c.enabled?1:.55,transition:"box-shadow 120ms ease, outline-color 120ms ease"},children:[(0,d.jsx)(x.h7,{type:"target",position:w.yX.Left,style:{background:o.color}}),(0,d.jsx)(x.h7,{type:"target",position:w.yX.Top,id:"up",style:{background:o.color}}),(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:.5},children:[(0,d.jsx)(i.A,{label:o.label,size:"small",sx:{bgcolor:o.color,color:"#fff",height:18,fontSize:10}}),k&&(0,d.jsx)(g.A,{variant:"caption",sx:{opacity:.6},children:"root"})]}),(0,d.jsx)(g.A,{variant:"subtitle2",sx:{mt:.5,fontWeight:600,lineHeight:1.2},noWrap:!0,title:c.name,children:c.name}),(0,d.jsx)(g.A,{variant:"caption",sx:{display:"block",opacity:.75},noWrap:!0,title:c.flowName??c.flowId,children:c.flowName??c.flowId}),(0,d.jsx)(g.A,{variant:"caption",sx:{display:"block",mt:.25,color:o.color,fontWeight:500},children:p}),q.length>0&&(0,d.jsxs)(j.default,{sx:{mt:.5},children:[(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.25},children:[(0,d.jsx)(B.A,{sx:{fontSize:13,color:"#7b1fa2"}}),(0,d.jsx)(g.A,{variant:"caption",sx:{opacity:.7},children:"Signals"})]}),(0,d.jsx)(h.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,children:q.map(a=>(0,d.jsx)(A.A,{title:a.direct?"Emitted by this flow":"Emitted via a subflow",arrow:!0,children:(0,d.jsx)(i.A,{label:a.topic,size:"small",variant:a.direct?"filled":"outlined",sx:{height:18,fontSize:10,bgcolor:a.direct?"rgba(123,31,162,0.12)":"transparent",borderColor:"rgba(123,31,162,0.4)",color:"#7b1fa2"}})},a.topic))})]}),(0,d.jsx)(L,{subflows:c.subflows}),n&&(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:.25,mt:.5,color:o.color},children:[(0,d.jsx)(D.A,{sx:{fontSize:13}}),(0,d.jsx)(g.A,{variant:"caption",sx:{fontSize:10,fontWeight:600},children:"pinned"})]}),l&&!m&&!n&&(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:.25,mt:.5,opacity:.55},children:[(0,d.jsx)(C.A,{sx:{fontSize:13,transform:"rotate(90deg)"}}),(0,d.jsx)(g.A,{variant:"caption",sx:{fontSize:10},children:"hover to follow chain"})]}),(0,d.jsx)(x.h7,{type:"source",position:w.yX.Right,style:{background:o.color}}),(0,d.jsx)(x.h7,{type:"source",position:w.yX.Bottom,id:"down",style:{background:o.color}})]})},clock:function(){return(0,d.jsxs)(j.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:.25,width:84},children:[(0,d.jsx)(j.default,{sx:{width:56,height:56,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"primary.main",color:"primary.contrastText",boxShadow:3},children:(0,d.jsx)(M.A,{})}),(0,d.jsx)(g.A,{variant:"caption",sx:{fontWeight:600},children:"now"}),(0,d.jsx)(g.A,{variant:"caption",sx:{opacity:.6,fontSize:10,textAlign:"center"},children:"time →"})]})},tick:function({data:a}){let{label:b}=a;return(0,d.jsxs)(j.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",transform:"translateX(-50%)",pointerEvents:"none",userSelect:"none"},children:[(0,d.jsx)(g.A,{variant:"caption",sx:{fontSize:10,opacity:.55,whiteSpace:"nowrap"},children:b}),(0,d.jsx)(j.default,{sx:{width:"1px",height:14,bgcolor:"rgba(0,0,0,0.25)",mt:.25}})]})}};function P({wave:a,height:b=460}){let[c,f]=(0,e.useState)(()=>Date.now()),[h,i]=(0,e.useState)(()=>(function(a,b){let c=1/0;for(let d of a.nodes){if("timeline"!==d.timing.mode)continue;let a=d.timing.cron;if(!a)continue;let e=I(a,b,864e5,3);if(e.length>=2){let a=e[1]-e[0];a<c&&(c=a)}}if(!Number.isFinite(c))return"6h";let d=6*c;return d<=G["1h"]?"1h":d<=G["6h"]?"6h":"1d"})(a,Date.now())),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),o=(0,e.useRef)(null),p=m??k,q=(0,e.useMemo)(()=>a.nodes.some(a=>"timeline"===a.timing.mode),[a]),r=G[h],s=(0,e.useMemo)(()=>{let b=new Map;for(let c of a.nodes)b.set(c.executionId,c.name);return b},[a]),t=(0,e.useMemo)(()=>(function(a){let{wave:b,now:c,windowMs:d,hoveredKey:e,timezone:f}=a,{nodeById:g,succ:h,edgeByPair:i,rootIds:j,parentOf:k}=function(a){let b=new Map;for(let c of a.nodes)b.set(c.executionId,c);let c=new Map,d=new Map;for(let b of a.nodes)c.set(b.executionId,[]),d.set(b.executionId,[]);let e=new Map;for(let f of a.edges)b.has(f.fromExecutionId)&&b.has(f.toExecutionId)&&(c.get(f.fromExecutionId).push(f.toExecutionId),d.get(f.toExecutionId).push(f.fromExecutionId),e.set(`${f.fromExecutionId}->${f.toExecutionId}`,f));for(let[,a]of c)a.sort();let f=a.rootExecutionIds.filter(a=>b.has(a));0===f.length&&(f=a.nodes.filter(a=>(d.get(a.executionId)?.length??0)===0).map(a=>a.executionId)),f=[...f].sort();let g=new Map;{let a=new Set(f),b=[...f];for(;b.length>0;){let d=b.shift();for(let e of c.get(d)??[])a.has(e)||(a.add(e),g.set(e,d),b.push(e))}}return{nodeById:b,succ:c,preds:d,edgeByPair:e,rootIds:f,parentOf:g}}(b),l=[];for(let a of j){let b=g.get(a);if("timeline"===b.timing.mode){let e=I(b.timing.cron,c,d,void 0,f);if(e.length>0)e.forEach((b,c)=>l.push({baseId:a,occ:c,runAt:b}));else{let c=b.timing.nextRun?Date.parse(b.timing.nextRun):NaN;l.push({baseId:a,occ:0,runAt:Number.isFinite(c)?c:null})}}else l.push({baseId:a,occ:0,runAt:null})}let m=e?function(a){let b=a.lastIndexOf("#");return b>=0?a.slice(0,b):a}(e):null,n=e?function(a){let b=a.lastIndexOf("#");return b>=0?Number(a.slice(b+1)):0}(e):null,o=new Set,p=null;if(m){let a=m,b=new Set;for(;a&&!b.has(a);){b.add(a),o.add(a);let c=k.get(a);if(!c){p=a;break}a=c}}let q=new Map,r=a=>{if("timeline"!==g.get(a.baseId).timing.mode)return 0;if(null==a.runAt)return 1;var b=a.runAt;if(null==b||!Number.isFinite(b)||d<=0)return 0;let e=b-c;return e<=0?0:Math.min(1,e/d)},s=(a,b,c,d,e,f)=>{let i=N(a,b);if(q.has(i))return;let j=g.get(a);q.set(i,{key:i,baseId:a,occ:b,chainNode:j,isRoot:f,runAt:e,level:c,x:d,y:24+220*c,hasSuccessors:(h.get(a)?.length??0)>0,expanded:o.has(a)&&b===n})},t=(a,b,c,d)=>{if(!(o.has(a)&&b===n))return;let e=(h.get(a)??[]).filter(a=>!q.has(N(a,b)));if(0===e.length)return;let f=(e.length-1)*320;e.forEach((a,e)=>{let g=d-f/2+320*e;s(a,b,c+1,g,null,!1),t(a,b,c+1,g)})};for(let a of l){if(e&&(a.baseId!==p||a.occ!==n))continue;let b=160+620*r(a);s(a.baseId,a.occ,0,b,a.runAt,!0),t(a.baseId,a.occ,0,b)}let u=[];for(let[a,b]of q){let c=b.occ;for(let d of h.get(b.baseId)??[]){let e=N(d,c),f=q.get(e);if(!f)continue;let g=i.get(`${b.baseId}->${d}`);g&&u.push({id:`${a}->${e}`,source:a,target:e,chainEdge:g,recursive:f.level<=b.level})}}return{nodes:[...q.values()],edges:u}})({wave:a,now:c,windowMs:r,hoveredKey:p}),[a,c,r,p]),u=(0,e.useMemo)(()=>{let a=t.nodes.map(a=>({id:a.key,type:"trigger",position:{x:a.x,y:a.y},data:{chainNode:a.chainNode,now:c,runAt:a.runAt,isRoot:a.isRoot,hasSuccessors:a.hasSuccessors,expanded:a.expanded,pinned:a.key===m},draggable:!1,connectable:!1}));return[{id:"__clock__",type:"clock",position:{x:16,y:24},data:{},draggable:!1,selectable:!1,connectable:!1},...q?(function(a,b,c){if(!Number.isFinite(a)||!Number.isFinite(b)||b<=0)return[];let d=b<=G["1h"]?6e5:b<=G["6h"]?36e5:b<=G["1d"]?144e5:Math.max(6e4,Math.round(b/6)),e=[];for(let c=0;c<=b+1&&e.length<200;c+=d)e.push({atMs:a+c,fraction:Math.min(1,c/b),label:function(a){if(a<=0)return"now";let b=Math.round(a/6e4),c=Math.floor(b/60),d=b%60;return 0===c?`${d}m`:0===d?`${c}h`:`${c}h ${d}m`}(c)});return e})(c,r).map((a,b)=>({id:`__tick_${b}__`,type:"tick",position:{x:160+620*a.fraction,y:-24},data:{label:a.label},draggable:!1,selectable:!1,connectable:!1})):[],...a]},[t,c,m,q,r]),v=(0,e.useMemo)(()=>t.edges.map(a=>{let b=a.recursive?"#ed6c02":"signal"===a.chainEdge.via?"#7b1fa2":"#616161",c=`${a.recursive?"↻ ":""}${function(a,b){if("signal"===a.via)return`⚡ ${a.topic??"signal"}`;let c=a.on&&a.on.length>0?a.on.join(" / "):"completes",d=b?`${b} `:"";return`when ${d}${c}`}(a.chainEdge,s.get(a.chainEdge.fromExecutionId))}`;return{id:a.id,source:a.source,target:a.target,sourceHandle:"down",targetHandle:"up",label:c,animated:!a.recursive,markerEnd:{type:w.TG.ArrowClosed,color:b},style:{stroke:b,strokeDasharray:a.recursive?"6 4":void 0},labelStyle:{fontSize:10,fill:b},labelBgStyle:{fill:"#fff",fillOpacity:.85}}}),[t,s]);return(0,d.jsx)(j.default,{sx:{height:b,width:"100%",border:"1px solid rgba(0,0,0,0.1)",borderRadius:1},children:(0,d.jsxs)(x.Gc,{nodes:u,edges:v,nodeTypes:O,fitView:!0,fitViewOptions:{padding:.15},minZoom:.2,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,preventScrolling:!0,panOnDrag:!0,onNodeMouseEnter:(a,b)=>{if(o.current&&clearTimeout(o.current),"clock"===b.type||"tick"===b.type)return void l(null);l(b.id)},onNodeMouseLeave:()=>{o.current&&clearTimeout(o.current),o.current=setTimeout(()=>l(null),800)},onNodeClick:(a,b)=>{"clock"!==b.type&&"tick"!==b.type&&n(a=>a===b.id?null:b.id)},onPaneClick:()=>n(null),proOptions:{hideAttribution:!0},children:[(0,d.jsx)(x.VS,{}),(0,d.jsx)(x.H2,{showInteractive:!1}),q&&(0,d.jsx)(x.Zk,{position:"top-right",children:(0,d.jsx)(y.A,{size:"small",exclusive:!0,value:h,onChange:(a,b)=>b&&i(b),sx:{bgcolor:"background.paper",boxShadow:1},children:H.map(a=>(0,d.jsx)(z.A,{value:a,sx:{px:1,py:.25},children:a},a))})}),(0,d.jsx)(x.Zk,{position:"bottom-right",children:(0,d.jsx)(g.A,{variant:"caption",sx:{opacity:.55,bgcolor:"background.paper",px:.5,borderRadius:.5},children:m?"chain pinned — click the background to release":"hover a card to follow its chain \xb7 click to pin"})})]})})}function Q(a){return(0,d.jsx)(x.Ln,{children:(0,d.jsx)(P,{...a})})}function R(a){let b=a.nodes.filter(b=>a.rootExecutionIds.includes(b.executionId)).map(a=>a.name);return b.length>0?b.join(", "):"Wave"}function S({wave:a,selected:b,now:c,onSelect:e}){let k=a.nodes.some(a=>"timeline"===a.timing.mode),l=k?function(a){let b=null;for(let c of a.nodes)if("timeline"===c.timing.mode&&c.timing.nextRun){let a=Date.parse(c.timing.nextRun);Number.isFinite(a)&&(null===b||a<b)&&(b=a)}return b}(a):null;return(0,d.jsxs)(f.A,{variant:"outlined",onClick:e,sx:{p:1.25,cursor:"pointer",borderColor:b?"primary.main":void 0,borderWidth:b?2:1,bgcolor:b?"action.selected":"background.paper",transition:"border-color 120ms ease, background-color 120ms ease","&:hover":{borderColor:"primary.light"}},children:[(0,d.jsx)(g.A,{variant:"subtitle2",sx:{fontWeight:600,lineHeight:1.25},noWrap:!0,title:R(a),children:R(a)}),(0,d.jsxs)(h.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,sx:{mt:.75},children:[(0,d.jsx)(i.A,{label:`${a.nodes.length} trigger(s)`,size:"small",variant:"outlined"}),k&&(0,d.jsx)(i.A,{label:"time-based",size:"small",color:"info",variant:"outlined"}),a.hasCycle&&(0,d.jsx)(i.A,{label:"recursive",color:"warning",size:"small"})]}),k&&(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:.5,mt:.75,opacity:.75},children:[(0,d.jsx)(o.A,{sx:{fontSize:14}}),(0,d.jsxs)(g.A,{variant:"caption",children:["next run ",l?J(l,c):"not scheduled"]})]})]})}function T({height:a="100%"}){let[b,c]=(0,e.useState)(null),[o,p]=(0,e.useState)(!0),[q,r]=(0,e.useState)(()=>Date.now()),[w,x]=(0,u.Xk)("flujo-ui:waves:selected",null),{ref:y,showBackToTop:z,scrollToTop:A}=(0,t.R)("flujo-ui:scroll:waves",{deps:[b]});(0,e.useCallback)(async()=>{c(await s.list()),p(!1)},[]);let B=(0,e.useMemo)(()=>b?.waves??[],[b]),C=b?.orphans??[],D=(0,e.useMemo)(()=>0===B.length?null:B.find(a=>a.id===w)??B[0],[B,w]);return o?(0,d.jsx)(j.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:a,minHeight:0},children:(0,d.jsx)(k.default,{})}):(0,d.jsxs)(j.default,{sx:{p:3,height:a,boxSizing:"border-box",display:"flex",flexDirection:"column",minHeight:0},children:[(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1},children:[(0,d.jsx)(n.A,{color:"primary"}),(0,d.jsx)(g.A,{variant:"h5",sx:{fontWeight:600},children:"Waves"}),(0,d.jsx)(i.A,{label:"experimental",size:"small",color:"warning",variant:"outlined"}),b?.paused&&(0,d.jsx)(i.A,{label:"Scheduler paused",color:"warning",size:"small"})]}),(0,d.jsx)(g.A,{variant:"body2",sx:{opacity:.75,mb:2},children:"A read-only picture of how your Automation triggers chain together via signals and completion events. Pick a wave on the left to open it on the canvas — the clock on the left is “now”, and scheduled runs approach from the right. Hover a card to follow its chain, or click it to pin the chain open (click the background to release); use the window control to zoom the timeline out. Nothing here arms or fires anything."}),0===B.length&&0===C.length&&(0,d.jsx)(l.A,{severity:"info",children:"No triggers to visualize yet. Create some triggers (and link them with flow-event triggers or signal nodes) to see waves here."}),(B.length>0||C.length>0)&&(0,d.jsxs)(j.default,{sx:{flex:1,minHeight:0,display:"flex",gap:2},children:[(0,d.jsxs)(j.default,{ref:y,sx:{width:320,flexShrink:0,overflow:"auto",pr:.5},children:[(0,d.jsx)(h.A,{spacing:1,children:B.map(a=>(0,d.jsx)(S,{wave:a,now:q,selected:D?.id===a.id,onSelect:()=>x(a.id)},a.id))}),C.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(m.A,{sx:{my:2}}),(0,d.jsx)(g.A,{variant:"subtitle2",sx:{fontWeight:600,mb:.5},children:"Unlinked event triggers"}),(0,d.jsx)(g.A,{variant:"caption",sx:{display:"block",opacity:.75,mb:1},children:"These flow-event triggers reference a source that matches no known producer, so they never start from an organic trigger."}),(0,d.jsx)(h.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,children:C.map(a=>(0,d.jsx)(i.A,{label:`${a.name} → ${a.flowName??a.flowId}`,size:"small"},a.executionId))})]}),(0,d.jsx)(v.A,{show:z,onClick:A})]}),(0,d.jsx)(j.default,{sx:{flex:1,minHeight:0},children:D?(0,d.jsxs)(f.A,{variant:"outlined",sx:{p:1.5,height:"100%",display:"flex",flexDirection:"column",minHeight:0},children:[(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1},children:[(0,d.jsx)(g.A,{variant:"subtitle1",sx:{fontWeight:600},noWrap:!0,title:R(D),children:R(D)}),(0,d.jsx)(i.A,{label:`${D.nodes.length} trigger(s)`,size:"small",variant:"outlined"}),D.hasCycle&&(0,d.jsx)(i.A,{label:"recursive",color:"warning",size:"small"})]}),(0,d.jsx)(j.default,{sx:{flex:1,minHeight:0},children:(0,d.jsx)(Q,{wave:D,height:"100%"},D.id)})]}):(0,d.jsx)(j.default,{sx:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",opacity:.6},children:(0,d.jsx)(g.A,{variant:"body2",children:"Select a wave to open it."})})})]})]})}(0,p.h)("frontend/components/Waves");let U={xs:"calc(100dvh - var(--app-bar-height))",md:"calc(100dvh - var(--app-bar-height) - var(--active-subnav-height))"},V=(0,p.h)("app/waves/page");function W(){return V.debug("Rendering WavesPage"),(0,d.jsx)(T,{height:U})}}};
|
|
1
|
+
"use strict";exports.id=2828,exports.ids=[2828],exports.modules={2560:(a,b,c)=>{c.d(b,{Aq:()=>e,Xk:()=>g,vi:()=>f});var d=c(38301);function e(a,b){return b}function f(a,b){}function g(a,b){let[c,e]=(0,d.useState)(()=>b);return[c,(0,d.useCallback)(b=>{e(c=>{let d="function"==typeof b?b(c):b;return f(a,d),d})},[a])]}},13516:(a,b,c)=>{c.d(b,{G:()=>d});let d={LOG_LEVEL:3,INCLUDE_TOOL_CALLS_IN_RESPONSE:!0,ENABLE_EXECUTION_TRACKER:!1,ENABLE_REVERT_TO_HERE:!1}},49351:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(21124);c(38301);var e=c(49565),f=c(51100),g=c(73198),h=c(18305);function i({show:a,onClick:b,sx:c}){let{t:i}=(0,h.s9)();return(0,d.jsx)(e.A,{in:a,unmountOnExit:!0,children:(0,d.jsx)(f.A,{size:"small",color:"primary","aria-label":i("backToTop.action"),onClick:b,sx:{position:"fixed",bottom:24,right:24,zIndex:1200,...c},children:(0,d.jsx)(g.A,{})})})}},50846:(a,b,c)=>{c.d(b,{h:()=>i});var d=c(13516);let e={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},f="number"==typeof d.G.LOG_LEVEL?d.G.LOG_LEVEL:e.ERROR;function g(a,b=0){if(b>6)return String(a);if(!(a instanceof Error))return a;let c={name:a.name,message:a.message};for(let d of Object.getOwnPropertyNames(a)){if("name"===d||"message"===d)continue;let e=a[d];"function"!=typeof e&&("stack"===d?c.stack=e:"cause"===d?c.cause=g(e,b+1):"errors"===d&&Array.isArray(e)?c.errors=e.map(a=>g(a,b+1)):c[d]=e)}return c}function h(a,b,c,d,h){if(a>=("number"==typeof h?h:f)){if("function"==typeof d)try{d=d()}catch{d="[lazy log data threw]"}let f=new Date().toISOString(),h=`[${f}] [${b}]`,i=`${h} ${c}`;if(void 0!==d)if(d instanceof Error||"object"==typeof d)try{let a=d instanceof Error?g(d):d,b=JSON.stringify(a,(a,b)=>b instanceof Error?g(b):b,2);i+=`:
|
|
2
|
+
${b}`}catch(a){i+=": [Object cannot be stringified]"}else i+=`: ${d}`;switch(a){case e.VERBOSE:console.debug(`[VERBOSE] ${i}`);break;case e.DEBUG:console.debug(i);break;case e.INFO:console.info(i);break;case e.WARN:console.warn(i);break;case e.ERROR:console.error(i);break;default:console.log(i)}}}function i(a,b){let c,d=((c=a.replace(/^src\//,"")).startsWith("/")&&(c=c.substring(1)),c);return{verbose:(a,c)=>{h(e.VERBOSE,d,a,c,b)},debug:(a,c)=>{h(e.DEBUG,d,a,c,b)},info:(a,c)=>{h(e.INFO,d,a,c,b)},warn:(a,c)=>{h(e.WARN,d,a,c,b)},error:(a,c)=>{h(e.ERROR,d,a,c,b)}}}},61560:(a,b,c)=>{c.d(b,{R:()=>e});var d=c(38301);function e(a,b={}){let{threshold:c=200,deps:f=[]}=b,g=(0,d.useRef)(null),[h,i]=(0,d.useState)(!1);(0,d.useRef)(!1);let j=(0,d.useCallback)(()=>{let a=g.current;return a&&a.scrollHeight>a.clientHeight+1?a:null},[]);return(0,d.useCallback)(()=>{let a=j();return a?a.scrollTop:0},[j]),(0,d.useCallback)(a=>{let b=j();b&&(b.scrollTop=a)},[j]),{ref:g,showBackToTop:h,scrollToTop:(0,d.useCallback)(()=>{let a=j();a&&a.scrollTo({top:0,behavior:"smooth"}),i(!1)},[j])}}c(2560)},71494:(a,b,c)=>{c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"C:\\\\Users\\\\Moe\\\\Documents\\\\GitHub\\\\FLUJO\\\\src\\\\app\\\\waves\\\\page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\waves\\page.tsx","default")},84896:(a,b,c)=>{c.r(b),c.d(b,{default:()=>X});var d=c(21124),e=c(38301),f=c(54573),g=c(79515),h=c(53773),i=c(41893),j=c(81637),k=c(8521),l=c(88745),m=c(91059),n=c(84099),o=c(98540),p=c(42819);let q=(0,p.h)("frontend/services/waves");class r{async list(){try{let a=await fetch("/api/waves");if(!a.ok)throw Error(`HTTP ${a.status}`);return await a.json()}catch(a){return q.warn("Failed to list waves",a),{paused:!1,generatedAt:new Date().toISOString(),waves:[],orphans:[]}}}}let s=new r;var t=c(61560),u=c(2560),v=c(49351),w=c(46973),x=c(95791);c(71763);var y=c(48317),z=c(7499),A=c(43312),B=c(88698),C=c(56492),D=c(23246);let E={schedule:{label:"Periodic",labelKey:"waves.kind.schedule",color:"#1976d2",timeline:!0},"mcp-poll":{label:"MCP Poll",labelKey:"waves.kind.mcpPoll",color:"#7b1fa2",timeline:!0},"url-watch":{label:"URL Watch",labelKey:"waves.kind.urlWatch",color:"#0288d1",timeline:!0},webhook:{label:"Webhook",labelKey:"waves.kind.webhook",color:"#2e7d32",timeline:!1},"file-watch":{label:"File Watcher",labelKey:"waves.kind.fileWatch",color:"#ed6c02",timeline:!1},"flow-event":{label:"Event",labelKey:"waves.kind.event",color:"#616161",timeline:!1}};var F=c(19290);let G={"1h":36e5,"6h":216e5,"1d":864e5},H=["1h","6h","1d"];function I(a,b,c,d=24,e){if(!a||"string"!=typeof a||!a.trim()||!Number.isFinite(b)||!Number.isFinite(c)||c<=0)return[];let f=b+c,g=[];try{let c=e?new F.l4(a.trim(),{timezone:e}):new F.l4(a.trim()),h=new Date(b-1);for(let a=0;a<d;a++){let a=c.nextRun(h);if(!a)break;let b=a.getTime();if(b>f)break;g.push(b),h=a}}catch{return[]}return g}function J(a,b,c){if(null==a||!Number.isFinite(a))return c?c("waves.noScheduledRun"):"no scheduled run";let d=a-b;if(d<=0)return c?c("waves.dueNow"):"due now";let e=Math.floor(d/6e4),f=Math.floor(e/1440),g=Math.floor(e%1440/60),h=e%60;if(f>0)return c?c("waves.inDaysHours",{days:f,hours:g}):`in ${f}d ${g}h`;if(g>0){let a=String(h).padStart(2,"0");return c?c("waves.inHoursMinutes",{hours:g,minutes:a}):`in ${g}h ${a}m`}return c?c("waves.inMinutes",{minutes:h}):`in ${h}m`}var K=c(88970),L=c(18305);function M({subflows:a,depth:b=0}){let{t:c}=(0,L.s9)();return a&&0!==a.length?(0,d.jsx)(j.default,{sx:{pl:1.5*(0!==b),mt:.25},children:a.map((a,e)=>(0,d.jsxs)(j.default,{sx:{borderLeft:b>0?"1px dashed rgba(0,0,0,0.2)":"none",pl:+(b>0)},children:[(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,d.jsx)(K.A,{sx:{fontSize:12,opacity:.6}}),(0,d.jsxs)(g.A,{variant:"caption",sx:{opacity:a.missing?.6:.85,fontStyle:a.missing?"italic":"normal"},children:[a.flowName??a.flowId,a.missing?` (${c("waves.missing")})`:"",a.truncated?" …":""]})]}),a.children.length>0&&(0,d.jsx)(M,{subflows:a.children,depth:b+1})]},`${a.flowId}-${e}`))}):null}var N=c(60610);function O(a,b){return`${a}#${b}`}let P={trigger:function({data:a}){var b;let{t:c}=(0,L.s9)(),{chainNode:e,now:f,runAt:k,isRoot:l,hasSuccessors:m,expanded:n,pinned:o}=a,p=E[b=e.triggerKind]??{label:b,color:"#616161",timeline:!1},q="";"timeline"===e.timing.mode?q=l?J(k,f,c):c("waves.onSchedule"):"fixed"===e.timing.mode?q=c("waves.firesWhenHappens"):"event"===e.timing.mode&&(q="signal"===e.timing.via?c("waves.onSignal",{topic:e.timing.topic??""}):c("waves.whenUpstreamRuns"));let r=e.emittedSignals??[];return(0,d.jsxs)(j.default,{sx:{minWidth:220,maxWidth:260,borderRadius:1,border:"1px solid rgba(0,0,0,0.15)",borderTop:`4px solid ${p.color}`,outline:o||n?`2px solid ${p.color}`:"none",outlineOffset:2*!!o,bgcolor:"background.paper",boxShadow:o?6:n?4:2,p:1,opacity:e.enabled?1:.55,transition:"box-shadow 120ms ease, outline-color 120ms ease"},children:[(0,d.jsx)(x.h7,{type:"target",position:w.yX.Left,style:{background:p.color}}),(0,d.jsx)(x.h7,{type:"target",position:w.yX.Top,id:"up",style:{background:p.color}}),(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:.5},children:[(0,d.jsx)(i.A,{label:p.labelKey?c(p.labelKey):p.label,size:"small",sx:{bgcolor:p.color,color:"#fff",height:18,fontSize:10}}),l&&(0,d.jsx)(g.A,{variant:"caption",sx:{opacity:.6},children:c("waves.root")})]}),(0,d.jsx)(g.A,{variant:"subtitle2",sx:{mt:.5,fontWeight:600,lineHeight:1.2},noWrap:!0,title:e.name,children:e.name}),(0,d.jsx)(g.A,{variant:"caption",sx:{display:"block",opacity:.75},noWrap:!0,title:e.flowName??e.flowId,children:e.flowName??e.flowId}),(0,d.jsx)(g.A,{variant:"caption",sx:{display:"block",mt:.25,color:p.color,fontWeight:500},children:q}),r.length>0&&(0,d.jsxs)(j.default,{sx:{mt:.5},children:[(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.25},children:[(0,d.jsx)(B.A,{sx:{fontSize:13,color:"#7b1fa2"}}),(0,d.jsx)(g.A,{variant:"caption",sx:{opacity:.7},children:c("waves.signals")})]}),(0,d.jsx)(h.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,children:r.map(a=>(0,d.jsx)(A.A,{title:a.direct?c("waves.signalDirect"):c("waves.signalSubflow"),arrow:!0,children:(0,d.jsx)(i.A,{label:a.topic,size:"small",variant:a.direct?"filled":"outlined",sx:{height:18,fontSize:10,bgcolor:a.direct?"rgba(123,31,162,0.12)":"transparent",borderColor:"rgba(123,31,162,0.4)",color:"#7b1fa2"}})},a.topic))})]}),(0,d.jsx)(M,{subflows:e.subflows}),o&&(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:.25,mt:.5,color:p.color},children:[(0,d.jsx)(D.A,{sx:{fontSize:13}}),(0,d.jsx)(g.A,{variant:"caption",sx:{fontSize:10,fontWeight:600},children:c("waves.pinned")})]}),m&&!n&&!o&&(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:.25,mt:.5,opacity:.55},children:[(0,d.jsx)(C.A,{sx:{fontSize:13,transform:"rotate(90deg)"}}),(0,d.jsx)(g.A,{variant:"caption",sx:{fontSize:10},children:c("waves.hoverFollow")})]}),(0,d.jsx)(x.h7,{type:"source",position:w.yX.Right,style:{background:p.color}}),(0,d.jsx)(x.h7,{type:"source",position:w.yX.Bottom,id:"down",style:{background:p.color}})]})},clock:function(){let{t:a}=(0,L.s9)();return(0,d.jsxs)(j.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:.25,width:84},children:[(0,d.jsx)(j.default,{sx:{width:56,height:56,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"primary.main",color:"primary.contrastText",boxShadow:3},children:(0,d.jsx)(N.A,{})}),(0,d.jsx)(g.A,{variant:"caption",sx:{fontWeight:600},children:a("waves.now")}),(0,d.jsx)(g.A,{variant:"caption",sx:{opacity:.6,fontSize:10,textAlign:"center"},children:a("waves.timeDirection")})]})},tick:function({data:a}){let{label:b}=a;return(0,d.jsxs)(j.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",transform:"translateX(-50%)",pointerEvents:"none",userSelect:"none"},children:[(0,d.jsx)(g.A,{variant:"caption",sx:{fontSize:10,opacity:.55,whiteSpace:"nowrap"},children:b}),(0,d.jsx)(j.default,{sx:{width:"1px",height:14,bgcolor:"rgba(0,0,0,0.25)",mt:.25}})]})}};function Q({wave:a,height:b=460}){let{t:c}=(0,L.s9)(),[f,h]=(0,e.useState)(()=>Date.now()),[i,k]=(0,e.useState)(()=>(function(a,b){let c=1/0;for(let d of a.nodes){if("timeline"!==d.timing.mode)continue;let a=d.timing.cron;if(!a)continue;let e=I(a,b,864e5,3);if(e.length>=2){let a=e[1]-e[0];a<c&&(c=a)}}if(!Number.isFinite(c))return"6h";let d=6*c;return d<=G["1h"]?"1h":d<=G["6h"]?"6h":"1d"})(a,Date.now())),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),p=(0,e.useRef)(null),q=n??l,r=(0,e.useMemo)(()=>a.nodes.some(a=>"timeline"===a.timing.mode),[a]),s=G[i],t=(0,e.useMemo)(()=>{let b=new Map;for(let c of a.nodes)b.set(c.executionId,c.name);return b},[a]),u=(0,e.useMemo)(()=>(function(a){let{wave:b,now:c,windowMs:d,hoveredKey:e,timezone:f}=a,{nodeById:g,succ:h,edgeByPair:i,rootIds:j,parentOf:k}=function(a){let b=new Map;for(let c of a.nodes)b.set(c.executionId,c);let c=new Map,d=new Map;for(let b of a.nodes)c.set(b.executionId,[]),d.set(b.executionId,[]);let e=new Map;for(let f of a.edges)b.has(f.fromExecutionId)&&b.has(f.toExecutionId)&&(c.get(f.fromExecutionId).push(f.toExecutionId),d.get(f.toExecutionId).push(f.fromExecutionId),e.set(`${f.fromExecutionId}->${f.toExecutionId}`,f));for(let[,a]of c)a.sort();let f=a.rootExecutionIds.filter(a=>b.has(a));0===f.length&&(f=a.nodes.filter(a=>(d.get(a.executionId)?.length??0)===0).map(a=>a.executionId)),f=[...f].sort();let g=new Map;{let a=new Set(f),b=[...f];for(;b.length>0;){let d=b.shift();for(let e of c.get(d)??[])a.has(e)||(a.add(e),g.set(e,d),b.push(e))}}return{nodeById:b,succ:c,preds:d,edgeByPair:e,rootIds:f,parentOf:g}}(b),l=[];for(let a of j){let b=g.get(a);if("timeline"===b.timing.mode){let e=I(b.timing.cron,c,d,void 0,f);if(e.length>0)e.forEach((b,c)=>l.push({baseId:a,occ:c,runAt:b}));else{let c=b.timing.nextRun?Date.parse(b.timing.nextRun):NaN;l.push({baseId:a,occ:0,runAt:Number.isFinite(c)?c:null})}}else l.push({baseId:a,occ:0,runAt:null})}let m=e?function(a){let b=a.lastIndexOf("#");return b>=0?a.slice(0,b):a}(e):null,n=e?function(a){let b=a.lastIndexOf("#");return b>=0?Number(a.slice(b+1)):0}(e):null,o=new Set,p=null;if(m){let a=m,b=new Set;for(;a&&!b.has(a);){b.add(a),o.add(a);let c=k.get(a);if(!c){p=a;break}a=c}}let q=new Map,r=a=>{if("timeline"!==g.get(a.baseId).timing.mode)return 0;if(null==a.runAt)return 1;var b=a.runAt;if(null==b||!Number.isFinite(b)||d<=0)return 0;let e=b-c;return e<=0?0:Math.min(1,e/d)},s=(a,b,c,d,e,f)=>{let i=O(a,b);if(q.has(i))return;let j=g.get(a);q.set(i,{key:i,baseId:a,occ:b,chainNode:j,isRoot:f,runAt:e,level:c,x:d,y:24+220*c,hasSuccessors:(h.get(a)?.length??0)>0,expanded:o.has(a)&&b===n})},t=(a,b,c,d)=>{if(!(o.has(a)&&b===n))return;let e=(h.get(a)??[]).filter(a=>!q.has(O(a,b)));if(0===e.length)return;let f=(e.length-1)*320;e.forEach((a,e)=>{let g=d-f/2+320*e;s(a,b,c+1,g,null,!1),t(a,b,c+1,g)})};for(let a of l){if(e&&(a.baseId!==p||a.occ!==n))continue;let b=160+620*r(a);s(a.baseId,a.occ,0,b,a.runAt,!0),t(a.baseId,a.occ,0,b)}let u=[];for(let[a,b]of q){let c=b.occ;for(let d of h.get(b.baseId)??[]){let e=O(d,c),f=q.get(e);if(!f)continue;let g=i.get(`${b.baseId}->${d}`);g&&u.push({id:`${a}->${e}`,source:a,target:e,chainEdge:g,recursive:f.level<=b.level})}}return{nodes:[...q.values()],edges:u}})({wave:a,now:f,windowMs:s,hoveredKey:q}),[a,f,s,q]),v=(0,e.useMemo)(()=>{let a=u.nodes.map(a=>({id:a.key,type:"trigger",position:{x:a.x,y:a.y},data:{chainNode:a.chainNode,now:f,runAt:a.runAt,isRoot:a.isRoot,hasSuccessors:a.hasSuccessors,expanded:a.expanded,pinned:a.key===n},draggable:!1,connectable:!1}));return[{id:"__clock__",type:"clock",position:{x:16,y:24},data:{},draggable:!1,selectable:!1,connectable:!1},...r?(function(a,b,c,d){if(!Number.isFinite(a)||!Number.isFinite(b)||b<=0)return[];let e=c&&c>0?c:b<=G["1h"]?6e5:b<=G["6h"]?36e5:b<=G["1d"]?144e5:Math.max(6e4,Math.round(b/6)),f=[];for(let c=0;c<=b+1&&f.length<200;c+=e)f.push({atMs:a+c,fraction:Math.min(1,c/b),label:function(a,b){if(a<=0)return b?b("waves.now"):"now";let c=Math.round(a/6e4),d=Math.floor(c/60),e=c%60;return 0===d?`${e}m`:0===e?`${d}h`:`${d}h ${e}m`}(c,d)});return f})(f,s,void 0,c).map((a,b)=>({id:`__tick_${b}__`,type:"tick",position:{x:160+620*a.fraction,y:-24},data:{label:a.label},draggable:!1,selectable:!1,connectable:!1})):[],...a]},[u,f,n,r,s,c]),A=(0,e.useMemo)(()=>u.edges.map(a=>{let b=a.recursive?"#ed6c02":"signal"===a.chainEdge.via?"#7b1fa2":"#616161",d=`${a.recursive?"↻ ":""}${function(a,b,c){if("signal"===a.via)return`⚡ ${a.topic??(c?c("waves.signalFallback"):"signal")}`;let d=a.on&&a.on.length>0?a.on.map(a=>c?c("completed"===a?"waves.edgeCompleted":"waves.edgeError"):a).join(" / "):c?c("waves.edgeCompleted"):"completes",e=b?`${b} `:"";return c?c("waves.edgeWhen",{condition:`${e}${d}`}):`when ${e}${d}`}(a.chainEdge,t.get(a.chainEdge.fromExecutionId),c)}`;return{id:a.id,source:a.source,target:a.target,sourceHandle:"down",targetHandle:"up",label:d,animated:!a.recursive,markerEnd:{type:w.TG.ArrowClosed,color:b},style:{stroke:b,strokeDasharray:a.recursive?"6 4":void 0},labelStyle:{fontSize:10,fill:b},labelBgStyle:{fill:"#fff",fillOpacity:.85}}}),[u,t,c]);return(0,d.jsx)(j.default,{sx:{height:b,width:"100%",border:"1px solid rgba(0,0,0,0.1)",borderRadius:1},children:(0,d.jsxs)(x.Gc,{nodes:v,edges:A,nodeTypes:P,fitView:!0,fitViewOptions:{padding:.15},minZoom:.2,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,preventScrolling:!0,panOnDrag:!0,onNodeMouseEnter:(a,b)=>{if(p.current&&clearTimeout(p.current),"clock"===b.type||"tick"===b.type)return void m(null);m(b.id)},onNodeMouseLeave:()=>{p.current&&clearTimeout(p.current),p.current=setTimeout(()=>m(null),800)},onNodeClick:(a,b)=>{"clock"!==b.type&&"tick"!==b.type&&o(a=>a===b.id?null:b.id)},onPaneClick:()=>o(null),proOptions:{hideAttribution:!0},children:[(0,d.jsx)(x.VS,{}),(0,d.jsx)(x.H2,{showInteractive:!1}),r&&(0,d.jsx)(x.Zk,{position:"top-right",children:(0,d.jsx)(y.A,{size:"small",exclusive:!0,value:i,onChange:(a,b)=>b&&k(b),sx:{bgcolor:"background.paper",boxShadow:1},children:H.map(a=>(0,d.jsx)(z.A,{value:a,sx:{px:1,py:.25},children:a},a))})}),(0,d.jsx)(x.Zk,{position:"bottom-right",children:(0,d.jsx)(g.A,{variant:"caption",sx:{opacity:.55,bgcolor:"background.paper",px:.5,borderRadius:.5},children:n?c("waves.canvasPinnedHelp"):c("waves.canvasHoverHelp")})})]})})}function R(a){return(0,d.jsx)(x.Ln,{children:(0,d.jsx)(Q,{...a})})}function S(a,b="Wave"){let c=a.nodes.filter(b=>a.rootExecutionIds.includes(b.executionId)).map(a=>a.name);return c.length>0?c.join(", "):b}function T({wave:a,selected:b,now:c,onSelect:e}){let{t:k,tp:l}=(0,L.s9)(),m=a.nodes.some(a=>"timeline"===a.timing.mode),n=m?function(a){let b=null;for(let c of a.nodes)if("timeline"===c.timing.mode&&c.timing.nextRun){let a=Date.parse(c.timing.nextRun);Number.isFinite(a)&&(null===b||a<b)&&(b=a)}return b}(a):null,p=S(a,k("waves.fallbackName"));return(0,d.jsxs)(f.A,{variant:"outlined",onClick:e,sx:{p:1.25,cursor:"pointer",borderColor:b?"primary.main":void 0,borderWidth:b?2:1,bgcolor:b?"action.selected":"background.paper",transition:"border-color 120ms ease, background-color 120ms ease","&:hover":{borderColor:"primary.light"}},children:[(0,d.jsx)(g.A,{variant:"subtitle2",sx:{fontWeight:600,lineHeight:1.25},noWrap:!0,title:p,children:p}),(0,d.jsxs)(h.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,sx:{mt:.75},children:[(0,d.jsx)(i.A,{label:l("waves.triggerCount",a.nodes.length),size:"small",variant:"outlined"}),m&&(0,d.jsx)(i.A,{label:k("waves.timeBased"),size:"small",color:"info",variant:"outlined"}),a.hasCycle&&(0,d.jsx)(i.A,{label:k("waves.recursive"),color:"warning",size:"small"})]}),m&&(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:.5,mt:.75,opacity:.75},children:[(0,d.jsx)(o.A,{sx:{fontSize:14}}),(0,d.jsx)(g.A,{variant:"caption",children:k("waves.nextRun",{time:n?J(n,c,k):k("waves.notScheduled")})})]})]})}function U({height:a="100%"}){let{t:b,tp:c}=(0,L.s9)(),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(!0),[w,x]=(0,e.useState)(()=>Date.now()),[y,z]=(0,u.Xk)("flujo-ui:waves:selected",null),{ref:A,showBackToTop:B,scrollToTop:C}=(0,t.R)("flujo-ui:scroll:waves",{deps:[o]});(0,e.useCallback)(async()=>{p(await s.list()),r(!1)},[]);let D=(0,e.useMemo)(()=>o?.waves??[],[o]),E=o?.orphans??[],F=(0,e.useMemo)(()=>0===D.length?null:D.find(a=>a.id===y)??D[0],[D,y]);return q?(0,d.jsx)(j.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:a,minHeight:0},children:(0,d.jsx)(k.default,{})}):(0,d.jsxs)(j.default,{sx:{p:3,height:a,boxSizing:"border-box",display:"flex",flexDirection:"column",minHeight:0},children:[(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1},children:[(0,d.jsx)(n.A,{color:"primary"}),(0,d.jsx)(g.A,{variant:"h5",sx:{fontWeight:600},children:b("waves.title")}),(0,d.jsx)(i.A,{label:b("waves.experimental"),size:"small",color:"warning",variant:"outlined"}),o?.paused&&(0,d.jsx)(i.A,{label:b("waves.schedulerPaused"),color:"warning",size:"small"})]}),(0,d.jsx)(g.A,{variant:"body2",sx:{opacity:.75,mb:2},children:b("waves.description")}),0===D.length&&0===E.length&&(0,d.jsx)(l.A,{severity:"info",children:b("waves.empty")}),(D.length>0||E.length>0)&&(0,d.jsxs)(j.default,{sx:{flex:1,minHeight:0,display:"flex",gap:2},children:[(0,d.jsxs)(j.default,{ref:A,sx:{width:320,flexShrink:0,overflow:"auto",pr:.5},children:[(0,d.jsx)(h.A,{spacing:1,children:D.map(a=>(0,d.jsx)(T,{wave:a,now:w,selected:F?.id===a.id,onSelect:()=>z(a.id)},a.id))}),E.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(m.A,{sx:{my:2}}),(0,d.jsx)(g.A,{variant:"subtitle2",sx:{fontWeight:600,mb:.5},children:b("waves.unlinkedTitle")}),(0,d.jsx)(g.A,{variant:"caption",sx:{display:"block",opacity:.75,mb:1},children:b("waves.unlinkedDescription")}),(0,d.jsx)(h.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,children:E.map(a=>(0,d.jsx)(i.A,{label:`${a.name} → ${a.flowName??a.flowId}`,size:"small"},a.executionId))})]}),(0,d.jsx)(v.A,{show:B,onClick:C})]}),(0,d.jsx)(j.default,{sx:{flex:1,minHeight:0},children:F?(0,d.jsxs)(f.A,{variant:"outlined",sx:{p:1.5,height:"100%",display:"flex",flexDirection:"column",minHeight:0},children:[(0,d.jsxs)(j.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:1},children:[(0,d.jsx)(g.A,{variant:"subtitle1",sx:{fontWeight:600},noWrap:!0,title:S(F,b("waves.fallbackName")),children:S(F,b("waves.fallbackName"))}),(0,d.jsx)(i.A,{label:c("waves.triggerCount",F.nodes.length),size:"small",variant:"outlined"}),F.hasCycle&&(0,d.jsx)(i.A,{label:b("waves.recursive"),color:"warning",size:"small"})]}),(0,d.jsx)(j.default,{sx:{flex:1,minHeight:0},children:(0,d.jsx)(R,{wave:F,height:"100%"},F.id)})]}):(0,d.jsx)(j.default,{sx:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",opacity:.6},children:(0,d.jsx)(g.A,{variant:"body2",children:b("waves.selectPrompt")})})})]})]})}(0,p.h)("frontend/components/Waves");let V={xs:"calc(100dvh - var(--app-bar-height))",md:"calc(100dvh - var(--app-bar-height) - var(--active-subnav-height))"},W=(0,p.h)("app/waves/page");function X(){return W.debug("Rendering WavesPage"),(0,d.jsx)(U,{height:V})}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=3422,exports.ids=[3422],exports.modules={2173:(a,b,c)=>{c.d(b,{A:()=>t});var d=c(21124),e=c(38301),f=c(81637),g=c(79515),h=c(53773),i=c(37674),j=c(43312),k=c(44079),l=c(68730),m=c(47902),n=c(91034),o=c(30717),p=c(46410),q=c(32720),r=c(18305),s=c(24166);let t=({roots:a,onChange:b})=>{let{t:c}=(0,r.s9)(),t=Array.isArray(a)?a:[],[u,v]=(0,e.useState)(null),w=(a,c)=>{b(t.map((b,d)=>d===a?c:b))};return(0,d.jsxs)(f.default,{children:[(0,d.jsxs)(f.default,{sx:{display:"flex",alignItems:"center",mb:.5},children:[(0,d.jsx)(o.A,{fontSize:"small",sx:{mr:1,color:"text.secondary"}}),(0,d.jsx)(g.A,{variant:"subtitle1",children:c("mcp.local.roots.title")})]}),(0,d.jsx)(g.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:1.5},children:(0,d.jsx)(s.A,{message:"mcp.local.roots.help",values:{binding:(0,d.jsx)("code",{children:"${global:VAR}"})}})}),(0,d.jsx)(h.A,{spacing:1,children:t.map((a,e)=>(0,d.jsxs)(f.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,d.jsx)(i.A,{size:"small",fullWidth:!0,placeholder:"/path/to/folder or file:///path",value:a,onChange:a=>w(e,a.target.value)}),(0,d.jsx)(j.A,{title:c("mcp.local.roots.browse"),children:(0,d.jsx)(k.A,{size:"small",onClick:()=>v(e),"aria-label":c("mcp.local.roots.browse"),children:(0,d.jsx)(p.A,{fontSize:"small"})})}),(0,d.jsx)(j.A,{title:c("mcp.local.roots.remove"),children:(0,d.jsx)(k.A,{size:"small",onClick:()=>b(t.filter((a,b)=>b!==e)),"aria-label":c("mcp.local.roots.remove"),children:(0,d.jsx)(n.A,{fontSize:"small"})})})]},e))}),(0,d.jsx)(l.A,{size:"small",startIcon:(0,d.jsx)(m.A,{}),onClick:()=>b([...t,""]),sx:{mt:1},children:c("mcp.local.roots.add")}),(0,d.jsx)(q.A,{open:null!==u,title:c("mcp.local.roots.choose"),initialPath:null!==u&&t[u]||void 0,onClose:()=>v(null),onSelect:a=>{null!==u&&w(u,a)}})]})}},35406:(a,b,c)=>{c.d(b,{A:()=>x});var d=c(38301),e=c(43249),f=c(37489),g=c(2783),h=c(4007),i=c(6638),j=c(18168),k=c(60839),l=c(68333),m=c(54716),n=c(6636),o=c(79515),p=c(29565),q=c(33105);function r(a){return(0,q.Ay)("MuiLink",a)}let s=(0,p.A)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]);var t=c(97287),u=c(21124);let v={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},w=(0,j.Ay)(o.A,{name:"MuiLink",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[`underline${(0,i.A)(c.underline)}`],"button"===c.component&&b.button]}})((0,l.A)(({theme:a})=>({variants:[{props:{underline:"none"},style:{textDecoration:"none"}},{props:{underline:"hover"},style:{textDecoration:"none","&:hover":{textDecoration:"underline"}}},{props:{underline:"always"},style:{textDecoration:"underline","&:hover":{textDecorationColor:"inherit"}}},{props:({underline:a,ownerState:b})=>"always"===a&&"inherit"!==b.color,style:{textDecorationColor:"var(--Link-underlineColor)"}},...Object.entries(a.palette).filter((0,m.A)()).map(([b])=>({props:{underline:"always",color:b},style:{"--Link-underlineColor":a.vars?`rgba(${a.vars.palette[b].mainChannel} / 0.4)`:(0,f.X4)(a.palette[b].main,.4)}})),{props:{underline:"always",color:"textPrimary"},style:{"--Link-underlineColor":a.vars?`rgba(${a.vars.palette.text.primaryChannel} / 0.4)`:(0,f.X4)(a.palette.text.primary,.4)}},{props:{underline:"always",color:"textSecondary"},style:{"--Link-underlineColor":a.vars?`rgba(${a.vars.palette.text.secondaryChannel} / 0.4)`:(0,f.X4)(a.palette.text.secondary,.4)}},{props:{underline:"always",color:"textDisabled"},style:{"--Link-underlineColor":(a.vars||a).palette.text.disabled}},{props:{component:"button"},style:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${s.focusVisible}`]:{outline:"auto"}}}]}))),x=d.forwardRef(function(a,b){let c=(0,n.b)({props:a,name:"MuiLink"}),j=(0,k.A)(),{className:l,color:m="primary",component:o="a",onBlur:p,onFocus:q,TypographyClasses:s,underline:x="always",variant:y="inherit",sx:z,...A}=c,[B,C]=d.useState(!1),D={...c,color:m,component:o,focusVisible:B,underline:x,variant:y},E=(a=>{let{classes:b,component:c,focusVisible:d,underline:e}=a,f={root:["root",`underline${(0,i.A)(e)}`,"button"===c&&"button",d&&"focusVisible"]};return(0,g.A)(f,r,b)})(D);return(0,u.jsx)(w,{color:m,className:(0,e.A)(E.root,l),classes:s,component:o,onBlur:a=>{(0,h.A)(a.target)||C(!1),p&&p(a)},onFocus:a=>{(0,h.A)(a.target)&&C(!0),q&&q(a)},ref:b,ownerState:D,variant:y,...A,sx:[...void 0===v[m]?[{color:m}]:[],...Array.isArray(z)?z:[z]],style:{...A.style,..."always"===x&&"inherit"!==m&&!v[m]&&{"--Link-underlineColor":(({theme:a,ownerState:b})=>{let c=b.color,d=(0,t.Yn)(a,`palette.${c}.main`,!1)||(0,t.Yn)(a,`palette.${c}`,!1)||b.color,e=(0,t.Yn)(a,`palette.${c}.mainChannel`)||(0,t.Yn)(a,`palette.${c}Channel`);return"vars"in a&&e?`rgba(${e} / 0.4)`:(0,f.X4)(d,.4)})({theme:j,ownerState:D})}}})})},49351:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(21124);c(38301);var e=c(49565),f=c(51100),g=c(73198),h=c(18305);function i({show:a,onClick:b,sx:c}){let{t:i}=(0,h.s9)();return(0,d.jsx)(e.A,{in:a,unmountOnExit:!0,children:(0,d.jsx)(f.A,{size:"small",color:"primary","aria-label":i("backToTop.action"),onClick:b,sx:{position:"fixed",bottom:24,right:24,zIndex:1200,...c},children:(0,d.jsx)(g.A,{})})})}},58585:(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:"M8.4 18.2c.38.5.6 1.12.6 1.8 0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3c.44 0 .85.09 1.23.26l1.41-1.77c-.92-1.03-1.29-2.39-1.09-3.69l-2.03-.68c-.54.83-1.46 1.38-2.52 1.38-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3c0 .07 0 .14-.01.21l2.03.68c.64-1.21 1.82-2.09 3.22-2.32V5.91C9.96 5.57 9 4.4 9 3c0-1.66 1.34-3 3-3s3 1.34 3 3c0 1.4-.96 2.57-2.25 2.91v2.16c1.4.23 2.58 1.11 3.22 2.32L18 9.71V9.5c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3c-1.06 0-1.98-.55-2.52-1.37l-2.03.68c.2 1.29-.16 2.65-1.09 3.69l1.41 1.77Q17.34 17 18 17c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3c0-.68.22-1.3.6-1.8l-1.41-1.77c-1.35.75-3.01.76-4.37 0z"}),"HubRounded")},61560:(a,b,c)=>{c.d(b,{R:()=>e});var d=c(38301);function e(a,b={}){let{threshold:c=200,deps:f=[]}=b,g=(0,d.useRef)(null),[h,i]=(0,d.useState)(!1);(0,d.useRef)(!1);let j=(0,d.useCallback)(()=>{let a=g.current;return a&&a.scrollHeight>a.clientHeight+1?a:null},[]);return(0,d.useCallback)(()=>{let a=j();return a?a.scrollTop:0},[j]),(0,d.useCallback)(a=>{let b=j();b&&(b.scrollTop=a)},[j]),{ref:g,showBackToTop:h,scrollToTop:(0,d.useCallback)(()=>{let a=j();a&&a.scrollTo({top:0,behavior:"smooth"}),i(!1)},[j])}}c(2560)},63650:(a,b,c)=>{c.d(b,{v:()=>h});var d=c(38301),e=c(28055);let f=(0,c(42819).h)("frontend/hooks/useServerStatus");function g(a){return"stdio"===a.transport?a.args&&a.args.length>0?a.args[0]:"Unknown path":"websocket"===a.transport?a.websocketUrl||"Unknown URL":a.serverUrl||"Unknown URL"}function h(){let[a,b]=(0,d.useState)([]),[c,h]=(0,d.useState)(!0),[i,j]=(0,d.useState)(null),[k,l]=(0,d.useState)(new Set),m=(0,d.useCallback)(async()=>{f.debug("Loading servers"),h(!0),j(null);try{let a=await e.S.loadServerConfigs();if(!a||"error"in a){f.warn("Failed to load server configurations:",a?.error),j(a?.error||"Failed to load server configurations"),h(!1);return}let c=await Promise.all(a.map(async a=>{f.debug(`Getting status for server: ${a.name}`);let b=await e.S.getServerStatus(a.name),c="string"==typeof b?b:b.status,d="object"==typeof b&&b.message?b.message:void 0,h="object"==typeof b&&b.stderrOutput?b.stderrOutput:void 0,i=g(a);return{...a,path:i,status:c,error:d,stderrOutput:h}}));f.debug("Final server states:",c),b(c),h(!1)}catch(a){f.warn("Failed to load servers:",a),j("Failed to load servers"),h(!1)}},[]),n=(0,d.useCallback)(async(c,d)=>{f.debug(`Toggling server ${c} to ${d?"enabled":"disabled"}`);try{let g=a.find(a=>a.name===c);if(!g)return f.warn(`Server not found: ${c}`),!1;f.debug(`Found server ${c}, current disabled state: ${g.disabled}`);let h=await e.S.updateServerConfig(c,{disabled:!d});if(h.error)return f.warn("Failed to update server config:",[h.error,c]),!1;f.debug(`Updating server ${c} state in UI, new disabled state: ${!d}`),b(a=>a.map(a=>a.name===c?{...a,disabled:!d}:a)),f.info(`Successfully toggled server ${c} to ${d?"enabled":"disabled"}`);try{let a=await e.S.getServerStatus(c),d="string"==typeof a?a:a.status,f="object"==typeof a&&a.message?a.message:void 0,g="object"==typeof a&&a.stderrOutput?a.stderrOutput:void 0;b(a=>a.map(a=>a.name===c?{...a,status:d,error:f,stderrOutput:g}:a))}catch(a){f.warn(`Failed to get status for server ${c} after toggle:`,a)}return!0}catch(a){return f.warn("Failed to toggle server:",a),!1}},[a]),o=(0,d.useCallback)(async c=>{f.debug(`Deleting server: ${c}`);try{if(!a.find(a=>a.name===c))return f.warn("Server not found:",c),!1;let d=await e.S.deleteServerConfig(c);if(d.error)return f.warn("Failed to delete server config:",d.error),!1;return b(a=>a.filter(a=>a.name!==c)),!0}catch(a){return f.warn("Failed to delete server:",a),!1}},[a]),p=(0,d.useCallback)(async a=>{f.debug("Adding server:",a);try{let c=g(a),d={...a,path:c,status:"connecting",tools:[],env:a.env||{}};b(a=>[...a,d]),l(b=>new Set(b).add(a.name));let h=await e.S.updateServerConfig(a.name,a);if(h.error)return f.warn("Failed to update server config:",h.error),b(b=>b.map(b=>b.name===a.name?{...b,status:"error",error:h.error}:b)),l(b=>{let c=new Set(b);return c.delete(a.name),c}),!1;f.info(`Successfully added server ${a.name}`);try{let c=await e.S.getServerStatus(a.name),d="string"==typeof c?c:c.status,f="object"==typeof c&&c.message?c.message:void 0,g="object"==typeof c&&c.stderrOutput?c.stderrOutput:void 0;b(b=>b.map(b=>b.name===a.name?{...b,status:d,error:f,stderrOutput:g}:b))}catch(b){f.warn(`Failed to get status for server ${a.name} after adding:`,b)}return l(b=>{let c=new Set(b);return c.delete(a.name),c}),!0}catch(c){return f.warn("Failed to add server:",c),b(b=>b.map(b=>b.name===a.name?{...b,status:"error",error:c instanceof Error?c.message:"Unknown error during server addition"}:b)),l(b=>{let c=new Set(b);return c.delete(a.name),c}),!1}},[]),q=(0,d.useCallback)(async(a,c)=>{let d=c??a.name,h=d!==a.name;f.debug("Updating server:",a);try{b(b=>b.map(b=>b.name===d?{...a,path:g(a),status:b.status,error:b.error,stderrOutput:b.stderrOutput}:b));let c=await e.S.updateServerConfig(d,a);if(c.error){if(f.warn("Failed to update server config:",c.error),h)return await m(),!1;return b(b=>b.map(b=>b.name===a.name?{...b,status:"error",error:c.error}:b)),!1}f.info(`Successfully updated config for server ${a.name}`);try{let c=await e.S.getServerStatus(a.name),d="string"==typeof c?c:c.status,f="object"==typeof c&&c.message?c.message:void 0,g="object"==typeof c&&c.stderrOutput?c.stderrOutput:void 0;b(b=>b.map(b=>b.name===a.name?{...b,status:d,error:f,stderrOutput:g}:b))}catch(b){f.warn(`Failed to get status for server ${a.name} after config update:`,b)}return!0}catch(d){if(f.warn("Failed to update server:",d),h)return await m(),!1;let c=d instanceof Error?d.message:"Unknown error during update";return b(b=>b.map(b=>b.name===a.name?{...b,status:"error",error:c}:b)),!1}},[m]),r=(0,d.useCallback)(async(a,c)=>{let d=c&&c.trim()?c.trim():"";f.debug(`Setting folder for server ${a} to ${d||"(none)"}`);try{let c=await e.S.updateServerConfig(a,{folder:d});if("error"in c&&c.error)return f.warn("Failed to update server folder:",c.error),!1;return b(b=>b.map(b=>b.name===a?{...b,folder:d||void 0}:b)),!0}catch(a){return f.warn("Failed to set server folder:",a),!1}},[]),s=(0,d.useCallback)(async(a,c)=>{f.debug(`Setting favorite for server ${a} to ${c}`);try{let d=await e.S.updateServerConfig(a,{favorite:c});if("error"in d&&d.error)return f.warn("Failed to update server favorite:",d.error),!1;return b(b=>b.map(b=>b.name===a?{...b,favorite:c}:b)),!0}catch(a){return f.warn("Failed to set server favorite:",a),!1}},[]),t=(0,d.useCallback)(async(c,d)=>{f.debug(`Saving environment variables for server: ${c}`,d);try{if(!a.find(a=>a.name===c))return f.warn(`Server not found: ${c}`),!1;let g=await e.S.updateServerConfig(c,{env:d});if(g.error)return f.warn("Failed to update server config:",g.error),!1;return f.debug(`Updating environment variables in UI for server: ${c}`),b(a=>a.map(a=>a.name===c?{...a,env:d}:a)),f.info(`Successfully saved environment variables for server: ${c}`),!0}catch(a){return f.warn("Failed to save environment variables:",a),!1}},[a]);return{servers:a,isLoading:c,loadError:i,connectingServers:k,loadServers:m,toggleServer:n,retryServer:(0,d.useCallback)(async a=>{f.debug(`Retrying server status for: ${a}`);try{let c=await e.S.getServerStatus(a),d="string"==typeof c?c:c.status,f="object"==typeof c&&c.message?c.message:void 0,g="object"==typeof c&&c.stderrOutput?c.stderrOutput:void 0;return b(b=>b.map(b=>b.name===a?{...b,status:d,error:f,stderrOutput:g}:b)),!0}catch(a){return f.warn("Failed to retry server status:",a),!1}},[]),deleteServer:o,addServer:p,updateServer:q,setServerFolder:r,setServerFavorite:s,saveEnv:t}}},88117:(a,b,c)=>{c.d(b,{O:()=>g});var d=c(38301),e=c(28055);let f=(0,c(42819).h)("frontend/hooks/useServerTools");function g(a){let[b,c]=(0,d.useState)([]),[g,h]=(0,d.useState)(!1),[i,j]=(0,d.useState)(null),[k,l]=(0,d.useState)(null),[m,n]=(0,d.useState)(null),[o,p]=(0,d.useState)(0),[q,r]=(0,d.useState)(!1),s=(0,d.useRef)(null),t=(0,d.useCallback)(async(d=!1)=>{if(!a){c([]),j(null);return}if(n(a),!d&&k&&new Date().getTime()-k.getTime()<200&&b.length>0&&a===m)return void f.debug(`Rate limiting tool refresh for server: ${a}`);f.debug(`Loading tools for server: ${a}`),h(!0),j(null);try{let b=await e.S.listServerTools(a);if(a!==m)return void f.debug(`Server changed during tool loading from ${a} to ${m}`);if(b.error)f.warn(`Error loading tools for ${a}:`,b.error),j(b.error),c([]);else{let d=b.tools||[];f.debug(`Loaded ${d.length} tools for ${a}`),c(d),l(new Date),p(0)}}catch(b){if(a!==m)return void f.debug(`Server changed during tool loading from ${a} to ${m}`);f.warn(`Failed to load tools for server ${a}:`,b),j(`Failed to load tools: ${b instanceof Error?b.message:"Unknown error"}`),c([])}finally{a===m&&h(!1)}},[a,k,b.length,m]),u=(0,d.useCallback)(()=>{if(!a)return;s.current&&(clearTimeout(s.current),s.current=null),r(!0);let b=Math.min(1e3*Math.pow(2,o),1e4);return f.debug(`Retrying tool load for ${a} in ${b}ms (attempt ${o+1})`),s.current=setTimeout(()=>{p(a=>a+1),t(!0),r(!1)},b),()=>{s.current&&clearTimeout(s.current)}},[a,o,t]);return{tools:b,isLoading:g||q,error:i,loadTools:t,retryLoadTools:u,isRetrying:q,retryCount:o,testTool:(0,d.useCallback)(async(b,c,d)=>{if(!a)return{success:!1,output:"",error:"No server selected"};f.debug(`Testing tool ${b} on server ${a} with params:`,c);try{let g=await e.S.callTool(a,b,c,d);if(g.error)return f.warn(`Error calling tool ${b}:`,g.error),{success:!1,output:"",error:g.error};return f.debug(`Tool ${b} executed successfully:`,g),{success:!0,output:JSON.stringify(g,null,2)}}catch(a){return f.error(`Exception calling tool ${b}:`,a),{success:!1,output:"",error:a instanceof Error?a.message:"Unknown error occurred"}}},[a])}}}};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"use strict";exports.id=3945,exports.ids=[3945],exports.modules={11361:(a,b,c)=>{c.d(b,{IK:()=>ad,v2:()=>ae,Uw:()=>ac,nH:()=>L,z9:()=>ag,vp:()=>N,z3:()=>ah,vm:()=>ab,lA:()=>af,$Q:()=>P,C2:()=>Q,pF:()=>ai,M6:()=>X});var d=c(21124),e=c(38301),f=c(95791),g=c(46973),h=c(18168),i=c(37489),j=c(60839),k=c(54573),l=c(81637),m=c(79515),n=c(61628),o=c(19787),p=c(95803),q=c(48823),r=c(76159),s=c(83144),t=c(88970),u=c(87351),v=c(93995),w=c(88698),x=c(17332),y=c(90392);let z=/credential|token|authorization|secret|password|api[-_ ]?key|environment|(^|[_-])env($|[_-])/i,A={start:[{key:"promptTemplate",label:"Prompt template"}],process:[{key:"promptTemplate",label:"Prompt template"},{key:"boundModel",label:"Bound model"},{key:"modelName",label:"Model name"},{key:"inputMode",label:"Input mode",defaultValue:"full-history"},{key:"isolatedPrompt",label:"Isolated prompt",defaultValue:!1},{key:"allowCallerPrompt",label:"Allow caller prompt",defaultValue:!0},{key:"outputMode",label:"Output mode",defaultValue:"full-conversation"},{key:"excludeModelPrompt",label:"Exclude model prompt",defaultValue:!1},{key:"excludeStartNodePrompt",label:"Exclude start prompt",defaultValue:!1},{key:"excludeSystemPrompt",label:"Exclude system prompt",defaultValue:!1},{key:"enableTodoTool",label:"Enable todo tool",defaultValue:!1},{key:"captureVariable",label:"Capture variable"},{key:"captureResource",label:"Capture resource"},{key:"captureKv",label:"Capture key-value reference"},{key:"inputSchema",label:"Input schema"},{key:"outputSchema",label:"Output schema"},{key:"handoffTools",label:"Handoff tools"},{key:"mcpNodes",label:"Attached MCP nodes"}],finish:[{key:"successMessage",label:"Success message"},{key:"conditional",label:"Conditional completion",defaultValue:!1},{key:"condition",label:"Completion condition"}],mcp:[{key:"boundServer",label:"Bound server"},{key:"enabledTools",label:"Enabled tools"},{key:"toolTimeout",label:"Tool timeout"},{key:"roots",label:"Roots"},{key:"nameIsCustom",label:"Custom name",defaultValue:!1}],subflow:[{key:"subflowId",label:"Bound subflow"},{key:"parallelSubflowIds",label:"Parallel subflows"},{key:"parallelSubflowIdsVar",label:"Parallel subflow variable"},{key:"spawnBriefs",label:"Spawn briefs"},{key:"promptTemplate",label:"Prompt template"},{key:"inputMode",label:"Input mode",defaultValue:"full-history"},{key:"allowCallerPrompt",label:"Allow caller prompt",defaultValue:!0},{key:"allowCallerFanout",label:"Allow caller fan-out",defaultValue:!1},{key:"mapOverList",label:"Map over list",defaultValue:!1},{key:"itemSplit",label:"Item split",defaultValue:"json-array"},{key:"sequential",label:"Sequential",defaultValue:!1},{key:"concurrencyLimit",label:"Concurrency limit",defaultValue:4},{key:"errorStrategy",label:"Error strategy",defaultValue:"collect-all"},{key:"joinSeparator",label:"Join separator"},{key:"outputMode",label:"Output mode",defaultValue:"steps"},{key:"saveConversation",label:"Save conversation",defaultValue:!0}],resource:[{key:"scope",label:"Scope",defaultValue:"run"},{key:"boundServer",label:"Bound server"},{key:"uri",label:"Resource URI"},{key:"runName",label:"Run resource name"}],signal:[{key:"topic",label:"Topic"},{key:"payloadTemplate",label:"Payload template"}],trigger:[{key:"executionId",label:"Execution ID"},{key:"name",label:"Name"},{key:"enabled",label:"Enabled",defaultValue:!0},{key:"trigger",label:"Trigger configuration"},{key:"overlapStrategy",label:"Overlap strategy",defaultValue:"skip"},{key:"prompt",label:"Initial prompt"}]},B=a=>"object"==typeof a&&null!==a&&!Array.isArray(a),C=a=>a.replace(/\s+/g," ").trim(),D=(a,b)=>{if(a.length<=b)return a;let c=a.slice(0,Math.max(0,b-1)),d=c.lastIndexOf(" "),e=d>Math.floor(.6*b)?c.slice(0,d):c;return`${e.trimEnd()}…`},E=a=>{let b=(a=>"string"==typeof a?a:void 0)(a);if(void 0!==b)return C(b)||void 0},F=a=>Array.isArray(a)?a.filter(a=>"string"==typeof a).map(C).filter(Boolean):[],G=(a,b,c)=>{if(!Object.prototype.hasOwnProperty.call(a,b))return`${c} (default)`;let d=a[b];return"string"==typeof d?C(d)||"empty":null===d?"null":String(d)},H=a=>{if("string"!=typeof a)return;if(!a.trim())return"empty";let b=a.split(/\r?\n/).map(C).filter(Boolean).slice(0,3).map(a=>D(a,90));return b.length?b.join("\n"):"empty"},I=(a,b=0)=>{if("string"==typeof a)return D(a,500);if(null===a||"number"==typeof a||"boolean"==typeof a)return a;if(void 0===a)return"[absent]";if("bigint"==typeof a)return a.toString();if("object"!=typeof a)return String(a);if(b>=3)return"[depth limit]";if(Array.isArray(a)){let c=a.slice(0,12).map(a=>I(a,b+1));return a.length>12&&c.push(`[${a.length-12} more items]`),c}let c=Object.entries(a).sort(([a],[b])=>a.localeCompare(b)).slice(0,20),d={};for(let[a,e]of c)d[a]=z.test(a)?"[redacted]":I(e,b+1);let e=Object.keys(a).length;return e>20&&(d["…"]=`[${e-20} more fields]`),d},J=a=>{let b=I(a);return"string"==typeof b?b:JSON.stringify(b,null,2)},K=(a,b,c,d)=>{if(!Object.prototype.hasOwnProperty.call(c,a))return void 0!==d?{key:a,label:b,state:"default",value:`[default: ${J(d)}]`}:{key:a,label:b,state:"absent",value:"[absent]"};let e=c[a],f=""===e||Array.isArray(e)&&0===e.length;return{key:a,label:b,state:f?"empty":"configured",value:f?""===e?"[empty string]":"[empty array]":J(e)}},L=y.L.light.resource,M=y.Z.resource,N=y.L.light.signal,O=y.Z.signal,P=y.L.light.trigger,Q=y.Z.trigger,R={start:{main:()=>y.L.light.start,light:()=>y.L.dark.start},process:{main:a=>a.palette.primary.main,light:a=>a.palette.primary.light},finish:{main:a=>a.palette.success.main,light:a=>a.palette.success.light},mcp:{main:a=>a.palette.info.main,light:a=>a.palette.info.light},subflow:{main:a=>a.palette.warning.main,light:a=>a.palette.warning.light},resource:{main:()=>L,light:()=>M},signal:{main:()=>N,light:()=>O},trigger:{main:()=>P,light:()=>Q}},S=(a,b)=>(R[a]??R.start).main(b),T=(0,h.Ay)(k.A,{shouldForwardProp:a=>!["nodeType","selected"].includes(a)})(({theme:a,nodeType:b,selected:c})=>({padding:a.spacing(1.6),width:"210px",borderRadius:"16px",backgroundColor:a.palette.background.paper,backgroundImage:`linear-gradient(145deg, ${(0,i.X4)(S(b,a),.08)}, transparent 42%)`,border:`1px solid ${a.palette.divider}`,borderLeft:`3px solid ${S(b,a)}`,boxShadow:c?`0 0 0 3px ${(0,i.X4)(a.palette.secondary.main,.28)}, 0 18px 45px ${(0,i.X4)(S(b,a),.18)}`:`0 12px 34px ${(0,i.X4)(a.palette.common.black,"dark"===a.palette.mode?.28:.1)}`,transition:"transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease","&:hover":{borderColor:(0,i.X4)(S(b,a),.58),boxShadow:`0 0 0 1px ${(0,i.X4)(S(b,a),.35)}, 0 18px 45px ${(0,i.X4)(S(b,a),.16)}`,transform:"translateY(-2px)"}})),U=(0,h.Ay)(l.default,{shouldForwardProp:a=>"nodeType"!==a})(({theme:a,nodeType:b})=>({display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:`1px solid ${(0,i.X4)((R[b]??R.start).light(a),.28)}`,marginBottom:a.spacing(1),paddingBottom:a.spacing(.5)})),V=(0,h.Ay)(l.default)({display:"flex",alignItems:"center",gap:"8px"}),W=(0,h.Ay)(l.default)(({theme:a})=>({marginTop:a.spacing(1),fontSize:"0.8rem"})),X=(a,b)=>S(a,b),Y=a=>({backgroundColor:a.palette.info.main,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),Z=a=>({backgroundColor:a.palette.primary.main,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),$=a=>({backgroundColor:a.palette.primary.main,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),_=a=>({backgroundColor:L,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),aa=({id:a,data:b,nodeType:c,selected:h})=>{let i=(0,j.A)(),[k,y]=(0,e.useState)(!1),z=((a,b)=>{let c=a||{},d=B(c.properties)?c.properties:{},e="signal"===b?"Signal":"No Label",f=E(c.label)||e,g="signal"===b&&E(d.topic)||f,h=[],i=E(c.description);i&&h.push({key:"description",label:"Description",value:D(i,180)}),"process"===b?((a,b)=>{a.push({key:"modes",label:"Modes",value:`${G(b,"inputMode","full-history")} → ${G(b,"outputMode","full-conversation")}`});let c=H(b.promptTemplate);void 0!==c&&a.push({key:"prompt",label:"Prompt",value:c,multiline:!0})})(h,d):"subflow"===b?((a,b)=>{let c=E(b.subflowId),d=F(b.parallelSubflowIds),e=E(b.parallelSubflowIdsVar),f=F(b.spawnBriefs),g="Not bound";c?g=c:d.length?g=`${d.length} parallel flow${1===d.length?"":"s"}`:e&&(g=`Flows from ${e}`),a.push({key:"target",label:"Target",value:g}),a.push({key:"modes",label:"Modes",value:`${G(b,"inputMode","full-history")} → ${G(b,"outputMode","steps")}`});let h=[];!c&&(d.length>0||e)&&h.push(!0===b.sequential?"sequential fan-out":"parallel fan-out"),!0===b.mapOverList&&h.push(`map list (${G(b,"itemSplit","json-array")})`),f.length&&h.push(`${f.length} spawn brief${1===f.length?"":"s"}`),h.length&&a.push({key:"execution",label:"Execution",value:h.join(" \xb7 ")})})(h,d):"mcp"===b?((a,b)=>{a.push({key:"server",label:"Server",value:E(b.boundServer)||"Not bound"});let c=F(b.enabledTools);if(c.length){let b=c.slice(0,3),d=c.length-b.length;a.push({key:"tools",label:"Tools",value:`${b.join(", ")}${d>0?` +${d} more`:""} (${c.length})`})}else a.push({key:"tools",label:"Tools",value:"None enabled"})})(h,d):((a,b,c)=>{if("start"===b){let b=H(c.promptTemplate);void 0!==b&&a.push({key:"prompt",label:"Prompt",value:b,multiline:!0})}else if("resource"===b){let b=G(c,"scope","run");a.push({key:"scope",label:"Scope",value:b});let d=E(c.uri)||E(c.runName);d&&a.push({key:"resource",label:"Resource",value:D(d,100)})}else if("signal"===b){let b=H(c.payloadTemplate);void 0!==b&&a.push({key:"payload",label:"Payload",value:b,multiline:!0})}else if("trigger"===b){let b=B(c.trigger)?c.trigger:{};a.push({key:"trigger",label:"Trigger",value:E(b.type)||"Not configured"}),a.push({key:"enabled",label:"Status",value:!1===c.enabled?"Disabled":"Enabled"})}})(h,b,d);let j={type:"string"==typeof c.type&&c.type?c.type:b,label:g};Object.prototype.hasOwnProperty.call(c,"description")&&(j.description=c.description);let k=[K("type","Type",j),K("label","Label",j),K("description","Description",j)].map(a=>({...a,key:`metadata.${a.key}`}));for(let a of A[b])k.push(K(a.key,a.label,d,a.defaultValue));return{label:g,summary:h,technicalDetails:k,technicalText:(a=>{let b=a.filter(a=>a.key.startsWith("metadata.")),c=a.filter(a=>!a.key.startsWith("metadata.")),d=a=>`${a.label}: ${a.value}`;return["Node metadata",...b.map(d),"","Supported properties",...c.map(d)].join("\n")})(k)}})(b,c),C=a=>{a.stopPropagation()};return(0,d.jsx)(d.Fragment,{children:(0,d.jsxs)(T,{elevation:2,nodeType:c,selected:h,children:[(()=>{if("mcp"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"mcp-top",type:"target",position:g.yX.Top,style:Y(i)}),(0,d.jsx)(f.h7,{id:"mcp-right",type:"target",position:g.yX.Right,style:Y(i)}),(0,d.jsx)(f.h7,{id:"mcp-bottom",type:"source",position:g.yX.Bottom,style:Y(i)}),(0,d.jsx)(f.h7,{id:"mcp-left",type:"target",position:g.yX.Left,style:Y(i)})]});if("process"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"process-top",type:"target",position:g.yX.Top,style:Z(i)}),(0,d.jsx)(f.h7,{id:"process-bottom",type:"source",position:g.yX.Bottom,style:Z(i)}),(0,d.jsx)(f.h7,{id:"process-left-mcp",type:"source",position:g.yX.Left,style:{...$(i),top:"30%"}}),(0,d.jsx)(f.h7,{id:"process-right-mcp",type:"source",position:g.yX.Right,style:{...$(i),top:"30%"}}),(0,d.jsx)(f.h7,{id:"process-left-resource",type:"source",position:g.yX.Left,style:{..._(i),top:"70%"}}),(0,d.jsx)(f.h7,{id:"process-right-resource",type:"source",position:g.yX.Right,style:{..._(i),top:"70%"}})]});if("resource"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"resource-in",type:"target",position:g.yX.Left,style:_(i)}),(0,d.jsx)(f.h7,{id:"resource-out",type:"source",position:g.yX.Right,style:_(i)})]});if("start"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"start-top",type:"target",position:g.yX.Top,style:Z(i)}),(0,d.jsx)(f.h7,{id:"start-bottom",type:"source",position:g.yX.Bottom,style:Z(i)})]});if("finish"===c)return(0,d.jsx)(f.h7,{id:"finish-top",type:"target",position:g.yX.Top,style:Z(i)});else if("subflow"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"subflow-top",type:"target",position:g.yX.Top,style:Z(i)}),(0,d.jsx)(f.h7,{id:"subflow-bottom",type:"source",position:g.yX.Bottom,style:Z(i)})]});else if("signal"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"signal-top",type:"target",position:g.yX.Top,style:Z(i)}),(0,d.jsx)(f.h7,{id:"signal-bottom",type:"source",position:g.yX.Bottom,style:Z(i)})]});else if("trigger"===c)return(0,d.jsx)(f.h7,{id:"trigger-bottom",type:"source",position:g.yX.Bottom,style:{...Z(i),backgroundColor:P}});return null})(),(0,d.jsx)(U,{nodeType:c,children:(0,d.jsxs)(V,{children:[(a=>{switch(a){case"start":default:return(0,d.jsx)(q.A,{sx:{color:"#7E889E"}});case"process":return(0,d.jsx)(r.A,{color:"primary"});case"finish":return(0,d.jsx)(s.A,{color:"success"});case"mcp":return(0,d.jsx)(r.A,{color:"info"});case"subflow":return(0,d.jsx)(t.A,{sx:{color:"warning.main"}});case"resource":return(0,d.jsx)(u.A,{sx:{color:L}});case"signal":return(0,d.jsx)(v.A,{sx:{color:N}});case"trigger":return(0,d.jsx)(w.A,{sx:{color:P}})}})(c),(0,d.jsx)(m.A,{variant:"subtitle2",fontWeight:"bold",children:z.label})]})}),z.summary.length>0&&(0,d.jsx)(W,{"aria-label":"Node summary",children:z.summary.map(a=>(0,d.jsxs)(l.default,{sx:{mb:.5},children:[(0,d.jsxs)(m.A,{component:"span",variant:"caption",sx:{fontWeight:"bold",mr:.5},children:[a.label,":"]}),(0,d.jsx)(m.A,{component:"span",variant:"caption",color:"text.secondary",sx:{whiteSpace:a.multiline?"pre-line":"normal",overflowWrap:"anywhere"},children:a.value})]},a.key))}),(0,d.jsxs)(n.A,{disableGutters:!0,elevation:0,expanded:k,onChange:(a,b)=>{a.stopPropagation(),y(b)},onClick:C,onPointerDown:C,className:"nodrag nowheel",sx:{mt:1,backgroundColor:"transparent","&::before":{display:"none"}},children:[(0,d.jsx)(o.A,{expandIcon:(0,d.jsx)(x.A,{fontSize:"small"}),"aria-controls":`${a}-technical-details`,sx:{minHeight:28,px:0,"& .MuiAccordionSummary-content":{my:.25}},children:(0,d.jsx)(m.A,{variant:"caption",color:"text.secondary",children:"Technical details"})}),(0,d.jsx)(p.A,{id:`${a}-technical-details`,sx:{p:0},children:(0,d.jsx)(l.default,{component:"pre",sx:{m:0,p:1,maxHeight:220,overflow:"auto",whiteSpace:"pre-wrap",overflowWrap:"anywhere",fontSize:"0.7rem",lineHeight:1.35,backgroundColor:"action.hover",borderRadius:1},children:z.technicalText})})]})]})})},ab=(0,e.memo)(function(a){return(0,d.jsx)(aa,{...a,nodeType:"start",selected:a.selected})}),ac=(0,e.memo)(function(a){return(0,d.jsx)(aa,{...a,nodeType:"process",selected:a.selected})}),ad=(0,e.memo)(function(a){return(0,d.jsx)(aa,{...a,nodeType:"finish",selected:a.selected})}),ae=(0,e.memo)(function(a){return(0,d.jsx)(aa,{...a,nodeType:"mcp",selected:a.selected})}),af=(0,e.memo)(function(a){return(0,d.jsx)(aa,{...a,nodeType:"subflow",selected:a.selected})}),ag=(0,e.memo)(function(a){return(0,d.jsx)(aa,{...a,nodeType:"resource",selected:a.selected})}),ah=(0,e.memo)(function(a){return(0,d.jsx)(aa,{...a,nodeType:"signal",selected:a.selected})}),ai=(0,e.memo)(function(a){return(0,d.jsx)(aa,{...a,nodeType:"trigger",selected:a.selected})})},21570:(a,b,c)=>{c.d(b,{A:()=>p});var d=c(21124);c(38301);var e=c(40512),f=c(83899),g=c(81637),h=c(79515),i=c(44079),j=c(91059),k=c(52327),l=c(19925),m=c(68730),n=c(30137),o=c(24330);let p=({open:a,onClose:b,title:c,description:p,maxWidth:q="md",...r})=>(0,d.jsxs)(e.A,{open:a,onClose:b,maxWidth:q,fullWidth:!0,children:[(0,d.jsx)(f.A,{component:"div",children:(0,d.jsxs)(g.default,{display:"flex",alignItems:"center",justifyContent:"space-between",children:[(0,d.jsx)(h.A,{variant:"h6",children:c}),(0,d.jsx)(i.A,{edge:"end",color:"inherit",onClick:b,"aria-label":"close",children:(0,d.jsx)(n.A,{})})]})}),(0,d.jsx)(j.A,{}),(0,d.jsxs)(k.A,{sx:{p:3},children:[p&&(0,d.jsx)(h.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:p}),(0,d.jsx)(o.A,{...r})]}),(0,d.jsx)(l.A,{children:(0,d.jsx)(m.A,{onClick:b,children:"Cancel"})})]})},24330:(a,b,c)=>{c.d(b,{A:()=>o});var d=c(21124),e=c(38301),f=c(82666),g=c(81637),h=c(37674),i=c(67101),j=c(8521),k=c(79515),l=c(40973),m=c(59737);let n={xs:12,sm:6,md:4},o=({isLoading:a=!1,error:b=null,emptyMessage:c="Nothing to choose from.",loadingMessage:o="Loading…",skeleton:p,skeletonCount:q=4,columns:r=n,items:s,searchable:t=!1,searchPlaceholder:u="Search…",searchTerm:v,onSearchChange:w,groups:x,collapsedKeys:y,onToggleGroup:z})=>{let A={...n,...r},[B,C]=(0,e.useState)(""),D=void 0!==v,E=D?v:B,[F,G]=(0,e.useState)(new Set),H=y??F,I=a=>(0,d.jsx)(f.Ay,{container:!0,spacing:2,alignItems:"stretch",children:a.map(a=>(0,d.jsx)(f.Ay,{item:!0,xs:A.xs,sm:A.sm,md:A.md,lg:A.lg,sx:{display:"flex"},children:(0,d.jsx)(g.default,{sx:{width:"100%"},children:a.content})},a.key))}),J=t?(0,d.jsx)(h.A,{placeholder:u,variant:"outlined",size:"small",fullWidth:!0,value:E,onChange:a=>(a=>{w?.(a),D||C(a)})(a.target.value),sx:{mb:2},InputProps:{startAdornment:(0,d.jsx)(i.A,{position:"start",children:(0,d.jsx)(l.A,{fontSize:"small"})})}}):null,K=a=>(0,d.jsxs)(g.default,{children:[J,a]});if(a)return K(p?(0,d.jsx)(f.Ay,{container:!0,spacing:2,children:Array.from({length:q}).map((a,b)=>(0,d.jsx)(f.Ay,{item:!0,xs:A.xs,sm:A.sm,md:A.md,lg:A.lg,children:p},`skeleton-${b}`))}):(0,d.jsxs)(g.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2},children:[(0,d.jsx)(j.default,{size:20}),(0,d.jsx)(k.A,{variant:"body2",color:"text.secondary",children:o})]}));if(b)return K((0,d.jsx)(k.A,{color:"error",variant:"body2",sx:{py:2},children:b}));let L=D?"":E.trim().toLowerCase(),M=a=>!L||(a.searchText??"").toLowerCase().includes(L),N=(0,d.jsx)(k.A,{variant:"body2",color:"text.secondary",sx:{py:2},children:c});if(x){let a=x.map(a=>({...a,items:a.items.filter(M)})).filter(a=>a.items.length>0);return K(0===a.length?N:(0,d.jsx)(d.Fragment,{children:a.map(a=>(0,d.jsx)(m.A,{label:a.label,count:a.items.length,expanded:!H.has(a.key),onToggle:()=>(a=>{if(z)return void z(a);G(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})})(a.key),children:I(a.items)},a.key))}))}let O=(s??[]).filter(M);return K(0===O.length?N:I(O))}},32640:(a,b,c)=>{c.d(b,{CR:()=>j,Lg:()=>g,eZ:()=>i,fC:()=>f});var d=c(76133),e=c(7329);let f={"name-asc":"Name (A-Z)","name-desc":"Name (Z-A)",provider:"Provider","context-desc":"Context (largest)","context-asc":"Context (smallest)"},g=a=>a.displayName||a.name||"",h=a=>(0,d.T_)(a.provider,a.adapter).label;function i(a,b){switch(b){case"provider":{let b=h(a);return{key:`provider:${b}`,label:b}}case"context-asc":case"context-desc":var c;return"number"!=typeof(c=a.contextWindow)||Number.isNaN(c)?{key:"ctx:unknown",label:"Unknown context"}:c<=8e3?{key:"ctx:<=8k",label:"≤ 8K tokens"}:c<=32e3?{key:"ctx:8k-32k",label:"8K–32K tokens"}:c<=128e3?{key:"ctx:32k-128k",label:"32K–128K tokens"}:c<=1e6?{key:"ctx:128k-1m",label:"128K–1M tokens"}:{key:"ctx:>1m",label:"> 1M tokens"};default:return(0,e.po)(g(a))}}function j(a,b){let c=(a,c)=>{switch(b){case"name-asc":return g(a).localeCompare(g(c));case"name-desc":return g(c).localeCompare(g(a));case"provider":return h(a).localeCompare(h(c))||g(a).localeCompare(g(c));case"context-desc":case"context-asc":{let d="number"!=typeof a.contextWindow||Number.isNaN(a.contextWindow)?void 0:a.contextWindow,e="number"!=typeof c.contextWindow||Number.isNaN(c.contextWindow)?void 0:c.contextWindow;if(void 0===d&&void 0===e)return g(a).localeCompare(g(c));if(void 0===d)return 1;if(void 0===e)return -1;let f="context-desc"===b?e-d:d-e;return 0!==f?f:g(a).localeCompare(g(c))}default:return 0}};return[...a].sort((a,b)=>{let d=Number(!!b.favorite)-Number(!!a.favorite);return 0!==d?d:c(a,b)})}},36627:(a,b,c)=>{function d(a){return!!a&&a.includes("mcp")}function e(a){return!!a&&a.includes("resource")}function f(a){let b=a?.data?.edgeType;return"mcp"===b||"resource"===b}function g(a,b,c,f){if("trigger"===a&&"start"===c)return b&&"trigger-bottom"!==b?"Trigger nodes must connect via their bottom handle":f&&"start-top"!==f?"Trigger nodes must connect to the top handle of the Start node":null;if("trigger"===c)return"Trigger nodes cannot have incoming connections";if("trigger"===a&&"start"!==c)return"Trigger nodes can only connect to the Start node";if("start"===c)return"Start nodes cannot have incoming connections";if("finish"===a)return"Finish nodes cannot have outgoing connections";if("mcp"===a||"mcp"===c||d(b)||d(f))return("mcp"!==a||"process"!==c)&&("process"!==a||"mcp"!==c)?"MCP connections must link an MCP node to a Process node via MCP handles":"process"!==a||d(b)?null:"Connect MCP nodes from the Process node's left/right MCP handles";if("resource"===a||"resource"===c||e(b)||e(f)){if(("resource"!==a||"process"!==c)&&("process"!==a||"resource"!==c))return"Resource connections must link a Resource node to a Process node via resource handles";if("process"===a&&!e(b))return"Connect Resource nodes from the Process node's left/right resource handles"}return null}function h(a,b){return"resource"===a?"resource-in":"process"===a&&e(b)?"process-left-resource":"process"===a&&d(b)?"process-left-mcp":"start"===a?"start-top":`${a}-top`}function i(a,b){if("trigger"===a)return["start"];let c=["process","finish","mcp","subflow","resource","signal","trigger"];return a&&b?c.filter(c=>null===g(a,b,c,h(c,b))):c}c.d(b,{BY:()=>f,CW:()=>h,_w:()=>i,vC:()=>g,vM:()=>e,z5:()=>d})},45231:(a,b,c)=>{c.d(b,{E:()=>k});var d=c(38301),e=c(2560),f=c(7329),g=c(32640),h=c(61160),i=c(66675);let j={models:{defaultSort:"name-asc",sort:(a,b)=>(0,g.CR)(a,b),deriveSortGroup:(a,b)=>(0,g.eZ)(a,b),getFolder:a=>a.folder,getSearchText:a=>`${(0,g.Lg)(a)} ${a.name??""}`},mcp:{defaultSort:"name-asc",sort:(a,b)=>(0,h.oO)(a,b),deriveSortGroup:(a,b)=>(0,h.mO)(a,b),getFolder:a=>a.folder,getSearchText:a=>`${a.name??""} ${a.rootPath??a.path??""}`},flows:{defaultSort:"name-asc",sort:(a,b)=>(0,i.NP)(a,b),deriveSortGroup:(a,b)=>(0,i.ts)(a,b),getFolder:a=>a.folder,getSearchText:a=>a.name??""}};function k(a,b){let c=j[a],[g,h]=(0,d.useState)(""),[i]=(0,e.Xk)(`flujo-ui:${a}:sort`,c.defaultSort),[k]=(0,e.Xk)(`flujo-ui:${a}:group`,f.FM),[l,m]=(0,e.Xk)(`flujo-ui:${a}:collapsed`,[]),n=(0,d.useMemo)(()=>new Set(l),[l]),o=(0,d.useMemo)(()=>{let a=g.trim().toLowerCase(),d=a?b.filter(b=>c.getSearchText(b).toLowerCase().includes(a)):b;return c.sort([...d],i)},[b,g,i,c]),p=(0,d.useMemo)(()=>"folder"===k?(0,f.Je)(o,a=>c.getFolder(a)):"sort"===k?(0,f.Az)(o,a=>c.deriveSortGroup(a,i)):null,[k,o,i,c]);return{searchTerm:g,setSearchTerm:h,sortOption:i,groupMode:k,items:o,groups:p,collapsedKeys:n,toggleGroup:(0,d.useCallback)(a=>{m(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a])},[m])}}},63654:(a,b,c)=>{c.d(b,{P:()=>f});let d=(0,c(42819).h)("frontend/services/plannedExecutions");class e{async list(){try{let a=await fetch("/api/planned-executions");if(!a.ok)throw Error(`HTTP ${a.status}`);return await a.json()}catch(a){return d.warn("Failed to list planned executions",a),{paused:!1,executions:[]}}}async create(a){try{let b=await fetch("/api/planned-executions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json();if(!b.ok)return{success:!1,error:c?.error||`HTTP ${b.status}`};return{success:!0,execution:c.execution}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async update(a,b){try{let c=await fetch(`/api/planned-executions/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json();if(!c.ok)return{success:!1,error:d?.error||`HTTP ${c.status}`};return{success:!0,execution:d.execution}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async delete(a){try{let b=await fetch(`/api/planned-executions/${a}`,{method:"DELETE"});if(!b.ok){let a=await b.json().catch(()=>null);return{success:!1,error:a?.error||`HTTP ${b.status}`}}return{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async setPaused(a){try{let b=await fetch("/api/planned-executions",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({paused:a})});if(!b.ok){let a=await b.json().catch(()=>null);return{success:!1,error:a?.error||`HTTP ${b.status}`}}return{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async runNow(a){try{let b=await fetch(`/api/planned-executions/${a}/run`,{method:"POST"}),c=await b.json();if(!b.ok)return{success:!1,error:c?.error||`HTTP ${b.status}`};return{success:!0,record:c.record}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async loadRuns(a){try{let b=await fetch(`/api/planned-executions/${a}/runs`);if(!b.ok)throw Error(`HTTP ${b.status}`);let c=await b.json();return Array.isArray(c?.runs)?c.runs:[]}catch(b){return d.warn(`Failed to load runs for ${a}`,b),[]}}async previewSchedule(a,b){try{let c=await fetch("/api/planned-executions/preview-schedule",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cron:a,timezone:b})});if(!c.ok)throw Error(`HTTP ${c.status}`);return await c.json()}catch(a){return{valid:!1,error:a instanceof Error?a.message:"Preview failed",nextRuns:[]}}}}let f=new e},66675:(a,b,c)=>{c.d(b,{K:()=>f,NP:()=>i,ts:()=>g});var d=c(7329);function e(a){return a.updatedAt??a.createdAt??0}function f(a,b=Date.now()){if(!a)return{key:"recency:unknown",label:"No date"};let c=b-a;return c<864e5?{key:"recency:today",label:"Today"}:c<6048e5?{key:"recency:week",label:"This week"}:c<2592e6?{key:"recency:month",label:"This month"}:{key:"recency:older",label:"Older"}}function g(a,b){switch(b){case"name-asc":case"name-desc":return(0,d.po)(a.name);case"most-nodes":case"least-nodes":var c;return 0===(c=a.nodes.length)?{key:"nodes:0",label:"0 nodes"}:c<=2?{key:"nodes:1-2",label:"1–2 nodes"}:c<=5?{key:"nodes:3-5",label:"3–5 nodes"}:c<=10?{key:"nodes:6-10",label:"6–10 nodes"}:{key:"nodes:11+",label:"11+ nodes"};case"newest":case"oldest":return f(e(a));default:return{key:"all",label:"All flows"}}}function h(a,b){return a.name.localeCompare(b.name)||a.id.localeCompare(b.id)}function i(a,b){let c=(a,c)=>{switch(b){case"name-asc":return a.name.localeCompare(c.name);case"name-desc":return c.name.localeCompare(a.name);case"most-nodes":return c.nodes.length-a.nodes.length;case"least-nodes":return a.nodes.length-c.nodes.length;case"newest":{let b=e(c)-e(a);return 0!==b?b:h(a,c)}case"oldest":{let b=e(a)-e(c);return 0!==b?b:h(a,c)}default:return 0}};return[...a].sort((a,b)=>{let d=Number(!!b.favorite)-Number(!!a.favorite);return 0!==d?d:c(a,b)})}},76133:(a,b,c)=>{c.d(b,{T_:()=>i,g3:()=>g,xx:()=>h});let d=/(^|[/_-])(o[1-9]|gpt-5)(?:[./_-]|$)/i,e=/claude-(?:fable|mythos)-5|claude-opus-4-(?:[7-9]|\d{2,})|claude-sonnet-5/i,f=/^(?:opus|sonnet|fable)$|claude-(?:fable|mythos)-5|claude-opus-4-(?:[6-9]|\d{2,})|claude-sonnet-4-6/i;function g(a,b,c=""){let h=b||"openai",i=c.trim();if("codex-cli"===h)return{effortLevels:/^gpt-5\.6-(?:sol|terra)$/i.test(i)?["low","medium","high","xhigh","max","ultra"]:/^gpt-5\.6-/i.test(i)?["low","medium","high","xhigh","max"]:["low","medium","high","xhigh"],priority:!/(?:mini|spark|review)/i.test(i),maxOutputTokens:!1};if("claude-cli"===h)return{...f.test(i)?{effortLevels:["low","medium","high","xhigh","max"]}:{},maxOutputTokens:!1};if("anthropic"===h)return{...!e.test(i)?{creativity:{min:0,max:1,step:.1}}:{},...f.test(i)?{effortLevels:["low","medium","high","xhigh","max"]}:{},maxOutputTokens:!0};if("gemini"===h)return{creativity:{min:0,max:2,step:.1},.../^gemini-2\.5/i.test(i)?{thinkingBudget:!0}:!/^gemini-2\.0/i.test(i)?{thinkingLevels:["minimal","low","medium","high"]}:{},maxOutputTokens:!0};let j="openai"===(a||"openai")&&d.test(i);return{...!j?{creativity:{min:0,max:2,step:.1}}:{},...j?{effortLevels:["low","medium","high"]}:{},maxOutputTokens:!0}}let h=[{id:"openai",label:"OpenAI",provider:"openai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.openai.com/v1",showBaseUrl:!0},{id:"openai-responses",label:"OpenAI (Responses API)",provider:"openai",adapter:"openai-responses",sdkLabel:"OpenAI SDK (Responses)",baseUrl:"https://api.openai.com/v1",showBaseUrl:!0,defaultModels:["gpt-5","gpt-5-mini","o4-mini","o3"]},{id:"openrouter",label:"OpenRouter",provider:"openrouter",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://openrouter.ai/api/v1",showBaseUrl:!0},{id:"requesty",label:"Requesty",provider:"requesty",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://router.requesty.ai/v1",showBaseUrl:!0},{id:"xai",label:"X.ai",provider:"xai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.x.ai/v1",showBaseUrl:!0},{id:"ollama",label:"Ollama",provider:"ollama",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"http://localhost:11434/v1",showBaseUrl:!0},{id:"litellm",label:"LiteLLM",provider:"litellm",adapter:"openai",sdkLabel:"OpenAI SDK (via LiteLLM Proxy)",baseUrl:"http://localhost:4000/v1",showBaseUrl:!0},{id:"gemini-openai",label:"Gemini (OpenAI Format)",provider:"gemini",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai/",showBaseUrl:!0},{id:"gemini-native",label:"Gemini (Native)",provider:"gemini",adapter:"gemini",sdkLabel:"GenAI SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite","gemini-2.0-flash"]},{id:"anthropic-openai",label:"Anthropic (OpenAI Format)",provider:"anthropic",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.anthropic.com/v1/",showBaseUrl:!0},{id:"anthropic-native",label:"Anthropic (Native)",provider:"anthropic",adapter:"anthropic",sdkLabel:"Anthropic SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["claude-opus-4-8","claude-sonnet-4-6","claude-haiku-4-5-20251001","claude-fable-5"]},{id:"claude-subscription",label:"Claude Subscription",provider:"claude-subscription",adapter:"claude-cli",sdkLabel:"Claude CLI",baseUrl:"",showBaseUrl:!1,defaultModels:["opus","sonnet","haiku","fable"]},{id:"codex",label:"Codex (OpenAI)",provider:"codex",adapter:"codex-cli",sdkLabel:"Codex SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.5","gpt-5.4","gpt-5.4-mini"]}];function i(a,b){let c=a||"openai",d=b||"openai";return h.find(a=>a.provider===c&&a.adapter===d)||h.find(a=>a.provider===c)||h[0]}},95329:(a,b,c)=>{c.d(b,{o:()=>K,A:()=>L});var d=c(21124),e=c(38301),f=c(18168),g=c(30818),h=c(37489),i=c(81637),j=c(60839),k=c(79515),l=c(43312),m=c(44079),n=c(423),o=c(27114),p=c(41893),q=c(98463),r=c(68730),s=c(72197),t=c(91034),u=c(38941),v=c(12033),w=c(1312),x=c(5501),y=c(99587),z=c(48823),A=c(22797),B=c(21358),C=c(11361),D=c(36627);function E(a){return String(a?.data?.type??a?.type??"")}function F(a){return a.data?.bidirectional===!0}var G=c(78352);let H=(0,c(42819).h)("components/Flow/FlowDashboard/FlowCard"),I=(0,f.Ay)(g.A,{shouldForwardProp:a=>"selected"!==a})(({theme:a,selected:b})=>({display:"grid",gridTemplateColumns:"minmax(138px, 1.05fr) minmax(0, 0.95fr)",gridTemplateRows:"auto minmax(0, 1fr) auto auto",gridTemplateAreas:`
|
|
1
|
+
"use strict";exports.id=3945,exports.ids=[3945],exports.modules={11361:(a,b,c)=>{c.d(b,{IK:()=>ah,v2:()=>ai,Uw:()=>ag,nH:()=>P,z9:()=>ak,vp:()=>R,z3:()=>al,vm:()=>af,lA:()=>aj,$Q:()=>T,C2:()=>U,pF:()=>am,M6:()=>_});var d=c(21124),e=c(38301),f=c(95791),g=c(46973),h=c(18168),i=c(37489),j=c(60839),k=c(54573),l=c(81637),m=c(79515),n=c(61628),o=c(19787),p=c(95803),q=c(48823),r=c(76159),s=c(83144),t=c(88970),u=c(87351),v=c(93995),w=c(88698),x=c(17332),y=c(90392);let z=/credential|token|authorization|secret|password|api[-_ ]?key|environment|(^|[_-])env($|[_-])/i,A=(a,b,c,d)=>a?a.t(b,d):c,B=(a,b,c,d)=>a?a.tp(b,c):d,C={start:[{key:"promptTemplate",label:"Prompt template"}],process:[{key:"promptTemplate",label:"Prompt template"},{key:"boundModel",label:"Bound model"},{key:"modelName",label:"Model name"},{key:"inputMode",label:"Input mode",defaultValue:"full-history"},{key:"isolatedPrompt",label:"Isolated prompt",defaultValue:!1},{key:"allowCallerPrompt",label:"Allow caller prompt",defaultValue:!0},{key:"outputMode",label:"Output mode",defaultValue:"full-conversation"},{key:"excludeModelPrompt",label:"Exclude model prompt",defaultValue:!1},{key:"excludeStartNodePrompt",label:"Exclude start prompt",defaultValue:!1},{key:"excludeSystemPrompt",label:"Exclude system prompt",defaultValue:!1},{key:"enableTodoTool",label:"Enable todo tool",defaultValue:!1},{key:"captureVariable",label:"Capture variable"},{key:"captureResource",label:"Capture resource"},{key:"captureKv",label:"Capture key-value reference"},{key:"inputSchema",label:"Input schema"},{key:"outputSchema",label:"Output schema"},{key:"handoffTools",label:"Handoff tools"},{key:"mcpNodes",label:"Attached MCP nodes"}],finish:[{key:"successMessage",label:"Success message"},{key:"conditional",label:"Conditional completion",defaultValue:!1},{key:"condition",label:"Completion condition"}],mcp:[{key:"boundServer",label:"Bound server"},{key:"enabledTools",label:"Enabled tools"},{key:"toolTimeout",label:"Tool timeout"},{key:"roots",label:"Roots"},{key:"nameIsCustom",label:"Custom name",defaultValue:!1}],subflow:[{key:"subflowId",label:"Bound subflow"},{key:"parallelSubflowIds",label:"Parallel subflows"},{key:"parallelSubflowIdsVar",label:"Parallel subflow variable"},{key:"spawnBriefs",label:"Spawn briefs"},{key:"promptTemplate",label:"Prompt template"},{key:"inputMode",label:"Input mode",defaultValue:"full-history"},{key:"allowCallerPrompt",label:"Allow caller prompt",defaultValue:!0},{key:"allowCallerFanout",label:"Allow caller fan-out",defaultValue:!1},{key:"mapOverList",label:"Map over list",defaultValue:!1},{key:"itemSplit",label:"Item split",defaultValue:"json-array"},{key:"sequential",label:"Sequential",defaultValue:!1},{key:"concurrencyLimit",label:"Concurrency limit",defaultValue:4},{key:"errorStrategy",label:"Error strategy",defaultValue:"collect-all"},{key:"joinSeparator",label:"Join separator"},{key:"outputMode",label:"Output mode",defaultValue:"steps"},{key:"saveConversation",label:"Save conversation",defaultValue:!0}],resource:[{key:"scope",label:"Scope",defaultValue:"run"},{key:"boundServer",label:"Bound server"},{key:"uri",label:"Resource URI"},{key:"runName",label:"Run resource name"}],signal:[{key:"topic",label:"Topic"},{key:"payloadTemplate",label:"Payload template"}],trigger:[{key:"executionId",label:"Execution ID"},{key:"name",label:"Name"},{key:"enabled",label:"Enabled",defaultValue:!0},{key:"trigger",label:"Trigger configuration"},{key:"overlapStrategy",label:"Overlap strategy",defaultValue:"skip"},{key:"prompt",label:"Initial prompt"}]},D=a=>"object"==typeof a&&null!==a&&!Array.isArray(a),E=a=>a.replace(/\s+/g," ").trim(),F=(a,b)=>{if(a.length<=b)return a;let c=a.slice(0,Math.max(0,b-1)),d=c.lastIndexOf(" "),e=d>Math.floor(.6*b)?c.slice(0,d):c;return`${e.trimEnd()}…`},G=a=>{let b=(a=>"string"==typeof a?a:void 0)(a);if(void 0!==b)return E(b)||void 0},H=a=>Array.isArray(a)?a.filter(a=>"string"==typeof a).map(E).filter(Boolean):[],I=(a,b,c)=>{if(!Object.prototype.hasOwnProperty.call(a,b))return`${c} (default)`;let d=a[b];return"string"==typeof d?E(d)||"empty":null===d?"null":String(d)},J=a=>{if("string"!=typeof a)return;if(!a.trim())return"empty";let b=a.split(/\r?\n/).map(E).filter(Boolean).slice(0,3).map(a=>F(a,90));return b.length?b.join("\n"):"empty"},K=(a,b=0)=>{if("string"==typeof a)return F(a,500);if(null===a||"number"==typeof a||"boolean"==typeof a)return a;if(void 0===a)return"[absent]";if("bigint"==typeof a)return a.toString();if("object"!=typeof a)return String(a);if(b>=3)return"[depth limit]";if(Array.isArray(a)){let c=a.slice(0,12).map(a=>K(a,b+1));return a.length>12&&c.push(`[${a.length-12} more items]`),c}let c=Object.entries(a).sort(([a],[b])=>a.localeCompare(b)).slice(0,20),d={};for(let[a,e]of c)d[a]=z.test(a)?"[redacted]":K(e,b+1);let e=Object.keys(a).length;return e>20&&(d["…"]=`[${e-20} more fields]`),d},L=a=>{let b=K(a);return"string"==typeof b?b:JSON.stringify(b,null,2)},M=(a,b,c,d)=>{if(!Object.prototype.hasOwnProperty.call(c,a))return void 0!==d?{key:a,label:b,state:"default",value:`[default: ${L(d)}]`}:{key:a,label:b,state:"absent",value:"[absent]"};let e=c[a],f=""===e||Array.isArray(e)&&0===e.length;return{key:a,label:b,state:f?"empty":"configured",value:f?""===e?"[empty string]":"[empty array]":L(e)}};var N=c(15863),O=c(18305);let P=y.L.light.resource,Q=y.Z.resource,R=y.L.light.signal,S=y.Z.signal,T=y.L.light.trigger,U=y.Z.trigger,V={start:{main:()=>y.L.light.start,light:()=>y.L.dark.start},process:{main:a=>a.palette.primary.main,light:a=>a.palette.primary.light},finish:{main:a=>a.palette.success.main,light:a=>a.palette.success.light},mcp:{main:a=>a.palette.info.main,light:a=>a.palette.info.light},subflow:{main:a=>a.palette.warning.main,light:a=>a.palette.warning.light},resource:{main:()=>P,light:()=>Q},signal:{main:()=>R,light:()=>S},trigger:{main:()=>T,light:()=>U}},W=(a,b)=>(V[a]??V.start).main(b),X=(0,h.Ay)(k.A,{shouldForwardProp:a=>!["nodeType","selected"].includes(a)})(({theme:a,nodeType:b,selected:c})=>({padding:a.spacing(1.6),width:"210px",borderRadius:"16px",backgroundColor:a.palette.background.paper,backgroundImage:`linear-gradient(145deg, ${(0,i.X4)(W(b,a),.08)}, transparent 42%)`,border:`1px solid ${a.palette.divider}`,borderLeft:`3px solid ${W(b,a)}`,boxShadow:c?`0 0 0 3px ${(0,i.X4)(a.palette.secondary.main,.28)}, 0 18px 45px ${(0,i.X4)(W(b,a),.18)}`:`0 12px 34px ${(0,i.X4)(a.palette.common.black,"dark"===a.palette.mode?.28:.1)}`,transition:"transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease","&:hover":{borderColor:(0,i.X4)(W(b,a),.58),boxShadow:`0 0 0 1px ${(0,i.X4)(W(b,a),.35)}, 0 18px 45px ${(0,i.X4)(W(b,a),.16)}`,transform:"translateY(-2px)"}})),Y=(0,h.Ay)(l.default,{shouldForwardProp:a=>"nodeType"!==a})(({theme:a,nodeType:b})=>({display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:`1px solid ${(0,i.X4)((V[b]??V.start).light(a),.28)}`,marginBottom:a.spacing(1),paddingBottom:a.spacing(.5)})),Z=(0,h.Ay)(l.default)({display:"flex",alignItems:"center",gap:"8px"}),$=(0,h.Ay)(l.default)(({theme:a})=>({marginTop:a.spacing(1),fontSize:"0.8rem"})),_=(a,b)=>W(a,b),aa=a=>({backgroundColor:a.palette.info.main,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),ab=a=>({backgroundColor:a.palette.primary.main,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),ac=a=>({backgroundColor:a.palette.primary.main,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),ad=a=>({backgroundColor:P,borderColor:"dark"===a.palette.mode?a.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),ae=({id:a,data:b,nodeType:c,selected:h})=>{let i=(0,j.A)(),{t:k,tp:y,formatList:z}=(0,O.s9)(),E=(0,e.useContext)(N.G),[K,L]=(0,e.useState)(!1),Q=((a,b,c,d)=>{let e=a||{},f=D(e.properties)?e.properties:{},g="signal"===b?A(c,"flows.nodeInfo.signal","Signal"):A(c,"flows.nodeInfo.noLabel","No Label"),h=G(e.label)||g,i="signal"===b&&G(f.topic)||h,j=[],k=G(e.description);k&&j.push({key:"description",label:A(c,"flows.nodeInfo.description","Description"),value:F(k,180)}),"process"===b?((a,b,c)=>{a.push({key:"modes",label:A(c,"flows.nodeInfo.modes","Modes"),value:`${I(b,"inputMode","full-history")} → ${I(b,"outputMode","full-conversation")}`});let d=J(b.promptTemplate);void 0!==d&&a.push({key:"prompt",label:A(c,"flows.nodeInfo.prompt","Prompt"),value:d,multiline:!0})})(j,f,c):"subflow"===b?((a,b,c,d)=>{let e=G(b.subflowId),f=H(b.parallelSubflowIds),g=G(b.parallelSubflowIdsVar),h=H(b.spawnBriefs),i=A(c,"flows.nodeInfo.notBound","Not bound");e?i=d?.get(e)||e:f.length?i=B(c,"flows.nodeInfo.parallelFlow",f.length,`${f.length} parallel flow${1===f.length?"":"s"}`):g&&(i=A(c,"flows.nodeInfo.flowsFrom",`Flows from ${g}`,{variable:g})),a.push({key:"target",label:A(c,"flows.nodeInfo.target","Target"),value:i}),a.push({key:"modes",label:A(c,"flows.nodeInfo.modes","Modes"),value:`${I(b,"inputMode","full-history")} → ${I(b,"outputMode","steps")}`});let j=[];if(!e&&(f.length>0||g)&&j.push(!0===b.sequential?A(c,"flows.nodeInfo.sequentialFanout","sequential fan-out"):A(c,"flows.nodeInfo.parallelFanout","parallel fan-out")),!0===b.mapOverList){let a=I(b,"itemSplit","json-array");j.push(A(c,"flows.nodeInfo.mapList",`map list (${a})`,{mode:a}))}h.length&&j.push(B(c,"flows.nodeInfo.spawnBrief",h.length,`${h.length} spawn brief${1===h.length?"":"s"}`)),j.length&&a.push({key:"execution",label:A(c,"flows.nodeInfo.execution","Execution"),value:j.join(" \xb7 ")})})(j,f,c,d):"mcp"===b?((a,b,c)=>{a.push({key:"server",label:A(c,"flows.nodeInfo.server","Server"),value:G(b.boundServer)||A(c,"flows.nodeInfo.notBound","Not bound")});let d=H(b.enabledTools);if(d.length){let b=d.slice(0,3),e=d.length-b.length;a.push({key:"tools",label:A(c,"flows.nodeInfo.tools","Tools"),value:`${c?c.formatList(b):b.join(", ")}${e>0?` ${A(c,"flows.nodeInfo.more",`+${e} more`,{count:e})}`:""} (${d.length})`})}else a.push({key:"tools",label:A(c,"flows.nodeInfo.tools","Tools"),value:A(c,"flows.nodeInfo.noneEnabled","None enabled")})})(j,f,c):((a,b,c,d)=>{if("start"===b){let b=J(c.promptTemplate);void 0!==b&&a.push({key:"prompt",label:A(d,"flows.nodeInfo.prompt","Prompt"),value:b,multiline:!0})}else if("resource"===b){let b=I(c,"scope","run");a.push({key:"scope",label:A(d,"flows.nodeInfo.scope","Scope"),value:b});let e=G(c.uri)||G(c.runName);e&&a.push({key:"resource",label:A(d,"flows.nodeInfo.resource","Resource"),value:F(e,100)})}else if("signal"===b){let b=J(c.payloadTemplate);void 0!==b&&a.push({key:"payload",label:A(d,"flows.nodeInfo.payload","Payload"),value:b,multiline:!0})}else if("trigger"===b){let b=D(c.trigger)?c.trigger:{};a.push({key:"trigger",label:A(d,"flows.nodeInfo.trigger","Trigger"),value:G(b.type)||A(d,"flows.nodeInfo.notConfigured","Not configured")}),a.push({key:"enabled",label:A(d,"flows.nodeInfo.status","Status"),value:!1===c.enabled?A(d,"flows.nodeInfo.disabled","Disabled"):A(d,"flows.nodeInfo.enabled","Enabled")})}})(j,b,f,c);let l={type:"string"==typeof e.type&&e.type?e.type:b,label:i};Object.prototype.hasOwnProperty.call(e,"description")&&(l.description=e.description);let m=[M("type",c?"type":"Type",l),M("label",c?"label":"Label",l),M("description",c?"description":"Description",l)].map(a=>({...a,key:`metadata.${a.key}`}));for(let a of C[b])m.push(M(a.key,c?a.key:a.label,f,a.defaultValue));return{label:i,summary:j,technicalDetails:m,technicalText:((a,b)=>{let c=a.filter(a=>a.key.startsWith("metadata.")),d=a.filter(a=>!a.key.startsWith("metadata.")),e=a=>`${a.label}: ${a.value}`;return[A(b,"flows.nodeInfo.nodeMetadata","Node metadata"),...c.map(e),"",A(b,"flows.nodeInfo.supportedProperties","Supported properties"),...d.map(e)].join("\n")})(m,c)}})(b,c,{t:k,tp:y,formatList:z},E),S=a=>{a.stopPropagation()};return(0,d.jsx)(d.Fragment,{children:(0,d.jsxs)(X,{elevation:2,nodeType:c,selected:h,children:[(()=>{if("mcp"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"mcp-top",type:"target",position:g.yX.Top,style:aa(i)}),(0,d.jsx)(f.h7,{id:"mcp-right",type:"target",position:g.yX.Right,style:aa(i)}),(0,d.jsx)(f.h7,{id:"mcp-bottom",type:"source",position:g.yX.Bottom,style:aa(i)}),(0,d.jsx)(f.h7,{id:"mcp-left",type:"target",position:g.yX.Left,style:aa(i)})]});if("process"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"process-top",type:"target",position:g.yX.Top,style:ab(i)}),(0,d.jsx)(f.h7,{id:"process-bottom",type:"source",position:g.yX.Bottom,style:ab(i)}),(0,d.jsx)(f.h7,{id:"process-left-mcp",type:"source",position:g.yX.Left,style:{...ac(i),top:"30%"}}),(0,d.jsx)(f.h7,{id:"process-right-mcp",type:"source",position:g.yX.Right,style:{...ac(i),top:"30%"}}),(0,d.jsx)(f.h7,{id:"process-left-resource",type:"source",position:g.yX.Left,style:{...ad(i),top:"70%"}}),(0,d.jsx)(f.h7,{id:"process-right-resource",type:"source",position:g.yX.Right,style:{...ad(i),top:"70%"}})]});if("resource"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"resource-in",type:"target",position:g.yX.Left,style:ad(i)}),(0,d.jsx)(f.h7,{id:"resource-out",type:"source",position:g.yX.Right,style:ad(i)})]});if("start"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"start-top",type:"target",position:g.yX.Top,style:ab(i)}),(0,d.jsx)(f.h7,{id:"start-bottom",type:"source",position:g.yX.Bottom,style:ab(i)})]});if("finish"===c)return(0,d.jsx)(f.h7,{id:"finish-top",type:"target",position:g.yX.Top,style:ab(i)});else if("subflow"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"subflow-top",type:"target",position:g.yX.Top,style:ab(i)}),(0,d.jsx)(f.h7,{id:"subflow-bottom",type:"source",position:g.yX.Bottom,style:ab(i)})]});else if("signal"===c)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.h7,{id:"signal-top",type:"target",position:g.yX.Top,style:ab(i)}),(0,d.jsx)(f.h7,{id:"signal-bottom",type:"source",position:g.yX.Bottom,style:ab(i)})]});else if("trigger"===c)return(0,d.jsx)(f.h7,{id:"trigger-bottom",type:"source",position:g.yX.Bottom,style:{...ab(i),backgroundColor:T}});return null})(),(0,d.jsx)(Y,{nodeType:c,children:(0,d.jsxs)(Z,{children:[(a=>{switch(a){case"start":default:return(0,d.jsx)(q.A,{sx:{color:"#7E889E"}});case"process":return(0,d.jsx)(r.A,{color:"primary"});case"finish":return(0,d.jsx)(s.A,{color:"success"});case"mcp":return(0,d.jsx)(r.A,{color:"info"});case"subflow":return(0,d.jsx)(t.A,{sx:{color:"warning.main"}});case"resource":return(0,d.jsx)(u.A,{sx:{color:P}});case"signal":return(0,d.jsx)(v.A,{sx:{color:R}});case"trigger":return(0,d.jsx)(w.A,{sx:{color:T}})}})(c),(0,d.jsx)(m.A,{variant:"subtitle2",fontWeight:"bold",children:Q.label})]})}),Q.summary.length>0&&(0,d.jsx)($,{"aria-label":k("flows.nodeInfo.summary"),children:Q.summary.map(a=>(0,d.jsxs)(l.default,{sx:{mb:.5},children:[(0,d.jsxs)(m.A,{component:"span",variant:"caption",sx:{fontWeight:"bold",mr:.5},children:[a.label,":"]}),(0,d.jsx)(m.A,{component:"span",variant:"caption",color:"text.secondary",sx:{whiteSpace:a.multiline?"pre-line":"normal",overflowWrap:"anywhere"},children:a.value})]},a.key))}),(0,d.jsxs)(n.A,{disableGutters:!0,elevation:0,expanded:K,onChange:(a,b)=>{a.stopPropagation(),L(b)},onClick:S,onPointerDown:S,className:"nodrag nowheel",sx:{mt:1,backgroundColor:"transparent","&::before":{display:"none"}},children:[(0,d.jsx)(o.A,{expandIcon:(0,d.jsx)(x.A,{fontSize:"small"}),"aria-controls":`${a}-technical-details`,sx:{minHeight:28,px:0,"& .MuiAccordionSummary-content":{my:.25}},children:(0,d.jsx)(m.A,{variant:"caption",color:"text.secondary",children:k("flows.nodeInfo.technical")})}),(0,d.jsx)(p.A,{id:`${a}-technical-details`,sx:{p:0},children:(0,d.jsx)(l.default,{component:"pre",sx:{m:0,p:1,maxHeight:220,overflow:"auto",whiteSpace:"pre-wrap",overflowWrap:"anywhere",fontSize:"0.7rem",lineHeight:1.35,backgroundColor:"action.hover",borderRadius:1},children:Q.technicalText})})]})]})})},af=(0,e.memo)(function(a){return(0,d.jsx)(ae,{...a,nodeType:"start",selected:a.selected})}),ag=(0,e.memo)(function(a){return(0,d.jsx)(ae,{...a,nodeType:"process",selected:a.selected})}),ah=(0,e.memo)(function(a){return(0,d.jsx)(ae,{...a,nodeType:"finish",selected:a.selected})}),ai=(0,e.memo)(function(a){return(0,d.jsx)(ae,{...a,nodeType:"mcp",selected:a.selected})}),aj=(0,e.memo)(function(a){return(0,d.jsx)(ae,{...a,nodeType:"subflow",selected:a.selected})}),ak=(0,e.memo)(function(a){return(0,d.jsx)(ae,{...a,nodeType:"resource",selected:a.selected})}),al=(0,e.memo)(function(a){return(0,d.jsx)(ae,{...a,nodeType:"signal",selected:a.selected})}),am=(0,e.memo)(function(a){return(0,d.jsx)(ae,{...a,nodeType:"trigger",selected:a.selected})})},15863:(a,b,c)=>{c.d(b,{G:()=>d});let d=(0,c(38301).createContext)(new Map)},21570:(a,b,c)=>{c.d(b,{A:()=>q});var d=c(21124);c(38301);var e=c(40512),f=c(83899),g=c(81637),h=c(79515),i=c(44079),j=c(91059),k=c(52327),l=c(19925),m=c(68730),n=c(30137),o=c(24330),p=c(18305);let q=({open:a,onClose:b,title:c,ariaLabel:q,description:r,maxWidth:s="md",...t})=>{let{t:u}=(0,p.s9)();return(0,d.jsxs)(e.A,{open:a,onClose:b,maxWidth:s,fullWidth:!0,PaperProps:q?{"aria-label":q}:void 0,children:[null!=c&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.A,{component:"div",children:(0,d.jsxs)(g.default,{display:"flex",alignItems:"center",justifyContent:"space-between",children:[(0,d.jsx)(h.A,{variant:"h6",children:c}),(0,d.jsx)(i.A,{edge:"end",color:"inherit",onClick:b,"aria-label":u("common.close"),children:(0,d.jsx)(n.A,{})})]})}),(0,d.jsx)(j.A,{})]}),(0,d.jsxs)(k.A,{sx:{p:3},children:[r&&(0,d.jsx)(h.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:r}),(0,d.jsx)(o.A,{...t})]}),(0,d.jsx)(l.A,{children:(0,d.jsx)(m.A,{onClick:b,children:u("common.cancel")})})]})}},24330:(a,b,c)=>{c.d(b,{A:()=>p});var d=c(21124),e=c(38301),f=c(82666),g=c(81637),h=c(37674),i=c(67101),j=c(8521),k=c(79515),l=c(40973),m=c(59737),n=c(18305);let o={xs:12,sm:6,md:4},p=({isLoading:a=!1,error:b=null,emptyMessage:c,loadingMessage:p,skeleton:q,skeletonCount:r=4,columns:s=o,items:t,searchable:u=!1,searchPlaceholder:v,searchTerm:w,onSearchChange:x,groups:y,collapsedKeys:z,onToggleGroup:A})=>{let{t:B}=(0,n.s9)(),C=c??B("cardPicker.empty"),D=p??B("common.loading"),E=v??B("common.search"),F={...o,...s},[G,H]=(0,e.useState)(""),I=void 0!==w,J=I?w:G,[K,L]=(0,e.useState)(new Set),M=z??K,N=a=>(0,d.jsx)(f.Ay,{container:!0,spacing:2,alignItems:"stretch",children:a.map(a=>(0,d.jsx)(f.Ay,{item:!0,xs:F.xs,sm:F.sm,md:F.md,lg:F.lg,sx:{display:"flex"},children:(0,d.jsx)(g.default,{sx:{width:"100%"},children:a.content})},a.key))}),O=u?(0,d.jsx)(h.A,{placeholder:E,variant:"outlined",size:"small",fullWidth:!0,value:J,onChange:a=>(a=>{x?.(a),I||H(a)})(a.target.value),sx:{mb:2},InputProps:{startAdornment:(0,d.jsx)(i.A,{position:"start",children:(0,d.jsx)(l.A,{fontSize:"small"})})}}):null,P=a=>(0,d.jsxs)(g.default,{children:[O,a]});if(a)return P(q?(0,d.jsx)(f.Ay,{container:!0,spacing:2,children:Array.from({length:r}).map((a,b)=>(0,d.jsx)(f.Ay,{item:!0,xs:F.xs,sm:F.sm,md:F.md,lg:F.lg,children:q},`skeleton-${b}`))}):(0,d.jsxs)(g.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2},children:[(0,d.jsx)(j.default,{size:20}),(0,d.jsx)(k.A,{variant:"body2",color:"text.secondary",children:D})]}));if(b)return P((0,d.jsx)(k.A,{color:"error",variant:"body2",sx:{py:2},children:b}));let Q=I?"":J.trim().toLowerCase(),R=a=>!Q||(a.searchText??"").toLowerCase().includes(Q),S=(0,d.jsx)(k.A,{variant:"body2",color:"text.secondary",sx:{py:2},children:C});if(y){let a=y.map(a=>({...a,items:a.items.filter(R)})).filter(a=>a.items.length>0);return P(0===a.length?S:(0,d.jsx)(d.Fragment,{children:a.map(a=>(0,d.jsx)(m.A,{label:a.label,count:a.items.length,expanded:!M.has(a.key),onToggle:()=>(a=>{if(A)return void A(a);L(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})})(a.key),children:N(a.items)},a.key))}))}let T=(t??[]).filter(R);return P(0===T.length?S:N(T))}},27305:(a,b,c)=>{c.d(b,{z:()=>e});let d={"no-start-node":"validation.noStart","multiple-start-nodes":"validation.multipleStart","no-finish-node":"validation.noFinish","process-missing-model":"validation.processNoModel","process-model-missing":"validation.processModelMissing","mcp-missing-server":"validation.mcpNoServer","mcp-server-missing":"validation.serverMissing","mcp-server-disconnected":"validation.serverDisconnected","mcp-node-unconnected":"validation.nodeUnconnected","resource-missing-binding":"validation.resourceIncomplete","resource-run-name":"validation.invalidName","resource-server-missing":"validation.serverMissing","resource-node-unconnected":"validation.nodeUnconnected","resource-produce-static":"validation.staticResourceProduced","resource-multiple-producers":"validation.multipleProducers","resource-consumed-never-produced":"validation.neverProduced","signal-missing-topic":"validation.signalNoTopic","start-no-outgoing":"validation.startNoOutgoing","unreachable-node":"validation.unreachable","subflow-multiple-outgoing":"validation.subflowOneOutgoing","subflow-both-targets":"validation.incompatibleOptions","subflow-map-and-parallel":"validation.incompatibleOptions","subflow-map-no-child":"validation.subflowNoChild","subflow-spawn-no-child":"validation.subflowNoChild","subflow-spawn-and-parallel":"validation.incompatibleOptions","subflow-spawn-and-map":"validation.incompatibleOptions","subflow-parallel-var-name":"validation.invalidName","subflow-map-and-parallel-var":"validation.incompatibleOptions","subflow-parallel-var-uncaptured":"validation.dynamicTargetsMissing","subflow-map-and-caller-fanout":"validation.incompatibleOptions","subflow-concurrency-limit":"validation.concurrency","edge-condition-non-process":"validation.conditionWrongNode","edge-condition-kind":"validation.invalidCondition","edge-condition-value":"validation.invalidCondition","edge-condition-regex":"validation.invalidCondition","edge-condition-no-fallback":"validation.noFallback","capture-var-name":"validation.invalidName","var-ref-uncaptured":"validation.missingReference","capture-kv-name":"validation.invalidName","kv-ref-name":"validation.invalidName","handoff-pill-obsolete":"validation.handoffObsolete","tool-pill-disconnected":"validation.toolDisconnected","tool-unavailable":"validation.toolUnavailable","handoff-target-unreferenced":"validation.handoffUnused","mcp-server-no-tools":"validation.serverNoTools"};function e(a,b){let c=d[a.code];return c?b(c,{node:a.nodeLabel??a.nodeId??""}):a.message}},32640:(a,b,c)=>{c.d(b,{CR:()=>i,Lg:()=>f,eZ:()=>h});var d=c(76133),e=c(7329);let f=a=>a.displayName||a.name||"",g=a=>(0,d.T_)(a.provider,a.adapter).label;function h(a,b){switch(b){case"provider":{let b=g(a);return{key:`provider:${b}`,label:b}}case"context-asc":case"context-desc":var c;return"number"!=typeof(c=a.contextWindow)||Number.isNaN(c)?{key:"ctx:unknown",label:"Unknown context"}:c<=8e3?{key:"ctx:<=8k",label:"≤ 8K tokens"}:c<=32e3?{key:"ctx:8k-32k",label:"8K–32K tokens"}:c<=128e3?{key:"ctx:32k-128k",label:"32K–128K tokens"}:c<=1e6?{key:"ctx:128k-1m",label:"128K–1M tokens"}:{key:"ctx:>1m",label:"> 1M tokens"};default:return(0,e.po)(f(a))}}function i(a,b){let c=(a,c)=>{switch(b){case"name-asc":return f(a).localeCompare(f(c));case"name-desc":return f(c).localeCompare(f(a));case"provider":return g(a).localeCompare(g(c))||f(a).localeCompare(f(c));case"context-desc":case"context-asc":{let d="number"!=typeof a.contextWindow||Number.isNaN(a.contextWindow)?void 0:a.contextWindow,e="number"!=typeof c.contextWindow||Number.isNaN(c.contextWindow)?void 0:c.contextWindow;if(void 0===d&&void 0===e)return f(a).localeCompare(f(c));if(void 0===d)return 1;if(void 0===e)return -1;let g="context-desc"===b?e-d:d-e;return 0!==g?g:f(a).localeCompare(f(c))}default:return 0}};return[...a].sort((a,b)=>{let d=Number(!!b.favorite)-Number(!!a.favorite);return 0!==d?d:c(a,b)})}},36627:(a,b,c)=>{function d(a){return!!a&&a.includes("mcp")}function e(a){return!!a&&a.includes("resource")}function f(a){let b=a?.data?.edgeType;return"mcp"===b||"resource"===b}function g(a,b,c,f){if("trigger"===a&&"start"===c)return b&&"trigger-bottom"!==b?"Trigger nodes must connect via their bottom handle":f&&"start-top"!==f?"Trigger nodes must connect to the top handle of the Start node":null;if("trigger"===c)return"Trigger nodes cannot have incoming connections";if("trigger"===a&&"start"!==c)return"Trigger nodes can only connect to the Start node";if("start"===c)return"Start nodes cannot have incoming connections";if("finish"===a)return"Finish nodes cannot have outgoing connections";if("mcp"===a||"mcp"===c||d(b)||d(f))return("mcp"!==a||"process"!==c)&&("process"!==a||"mcp"!==c)?"MCP connections must link an MCP node to a Process node via MCP handles":"process"!==a||d(b)?null:"Connect MCP nodes from the Process node's left/right MCP handles";if("resource"===a||"resource"===c||e(b)||e(f)){if(("resource"!==a||"process"!==c)&&("process"!==a||"resource"!==c))return"Resource connections must link a Resource node to a Process node via resource handles";if("process"===a&&!e(b))return"Connect Resource nodes from the Process node's left/right resource handles"}return null}function h(a,b){return"resource"===a?"resource-in":"process"===a&&e(b)?"process-left-resource":"process"===a&&d(b)?"process-left-mcp":"start"===a?"start-top":`${a}-top`}function i(a,b){if("trigger"===a)return["start"];let c=["process","finish","mcp","subflow","resource","signal","trigger"];return a&&b?c.filter(c=>null===g(a,b,c,h(c,b))):c}c.d(b,{BY:()=>f,CW:()=>h,_w:()=>i,vC:()=>g,vM:()=>e,z5:()=>d})},45231:(a,b,c)=>{c.d(b,{E:()=>k});var d=c(38301),e=c(2560),f=c(7329),g=c(32640),h=c(61160),i=c(66675);let j={models:{defaultSort:"name-asc",sort:(a,b)=>(0,g.CR)(a,b),deriveSortGroup:(a,b)=>(0,g.eZ)(a,b),getFolder:a=>a.folder,getSearchText:a=>`${(0,g.Lg)(a)} ${a.name??""}`},mcp:{defaultSort:"name-asc",sort:(a,b)=>(0,h.oO)(a,b),deriveSortGroup:(a,b)=>(0,h.mO)(a,b),getFolder:a=>a.folder,getSearchText:a=>`${a.name??""} ${a.rootPath??a.path??""}`},flows:{defaultSort:"name-asc",sort:(a,b)=>(0,i.NP)(a,b),deriveSortGroup:(a,b)=>(0,i.ts)(a,b),getFolder:a=>a.folder,getSearchText:a=>a.name??""}};function k(a,b){let c=j[a],[g,h]=(0,d.useState)(""),[i]=(0,e.Xk)(`flujo-ui:${a}:sort`,c.defaultSort),[k]=(0,e.Xk)(`flujo-ui:${a}:group`,f.FM),[l,m]=(0,e.Xk)(`flujo-ui:${a}:collapsed`,[]),n=(0,d.useMemo)(()=>new Set(l),[l]),o=(0,d.useMemo)(()=>{let a=g.trim().toLowerCase(),d=a?b.filter(b=>c.getSearchText(b).toLowerCase().includes(a)):b;return c.sort([...d],i)},[b,g,i,c]),p=(0,d.useMemo)(()=>"folder"===k?(0,f.Je)(o,a=>c.getFolder(a)):"sort"===k?(0,f.Az)(o,a=>c.deriveSortGroup(a,i)):null,[k,o,i,c]);return{searchTerm:g,setSearchTerm:h,sortOption:i,groupMode:k,items:o,groups:p,collapsedKeys:n,toggleGroup:(0,d.useCallback)(a=>{m(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a])},[m])}}},61160:(a,b,c)=>{c.d(b,{mO:()=>f,oO:()=>g});var d=c(7329);let e=["stdio","websocket","sse","streamable"];function f(a,b){switch(b){case"name-asc":case"name-desc":return(0,d.po)(a.name);case"status-connected":case"status-disconnected":{let b=a.status;if("connected"===b)return{key:"status:connected",label:"Connected"};if("error"===b)return{key:"status:error",label:"Error"};if("requires_authentication"===b)return{key:"status:auth",label:"Requires authentication"};return{key:"status:disconnected",label:"Disconnected"}}case"transport":{let b=a.transport||"unknown";return{key:`transport:${b}`,label:({stdio:"Stdio",websocket:"WebSocket",sse:"SSE",streamable:"Streamable HTTP"})[b]||b}}default:return{key:"all",label:"All servers"}}}function g(a,b){let c=(a,c)=>{switch(b){case"name-asc":return a.name.localeCompare(c.name);case"name-desc":return c.name.localeCompare(a.name);case"status-connected":if("connected"===a.status&&"connected"!==c.status)return -1;if("connected"!==a.status&&"connected"===c.status)return 1;return a.name.localeCompare(c.name);case"status-disconnected":if("disconnected"===a.status&&"disconnected"!==c.status)return -1;if("disconnected"!==a.status&&"disconnected"===c.status)return 1;return a.name.localeCompare(c.name);case"transport":{let b=e.indexOf(a.transport??""),d=e.indexOf(c.transport??"");if(b!==d)return b-d;return a.name.localeCompare(c.name)}default:return 0}};return[...a].sort((a,b)=>{let d=Number(!!b.favorite)-Number(!!a.favorite);return 0!==d?d:c(a,b)})}},63654:(a,b,c)=>{c.d(b,{P:()=>f});let d=(0,c(42819).h)("frontend/services/plannedExecutions");class e{async list(){try{let a=await fetch("/api/planned-executions");if(!a.ok)throw Error(`HTTP ${a.status}`);return await a.json()}catch(a){return d.warn("Failed to list planned executions",a),{paused:!1,executions:[]}}}async create(a){try{let b=await fetch("/api/planned-executions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json();if(!b.ok)return{success:!1,error:c?.error||`HTTP ${b.status}`};return{success:!0,execution:c.execution}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async update(a,b){try{let c=await fetch(`/api/planned-executions/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json();if(!c.ok)return{success:!1,error:d?.error||`HTTP ${c.status}`};return{success:!0,execution:d.execution}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async delete(a){try{let b=await fetch(`/api/planned-executions/${a}`,{method:"DELETE"});if(!b.ok){let a=await b.json().catch(()=>null);return{success:!1,error:a?.error||`HTTP ${b.status}`}}return{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async setPaused(a){try{let b=await fetch("/api/planned-executions",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({paused:a})});if(!b.ok){let a=await b.json().catch(()=>null);return{success:!1,error:a?.error||`HTTP ${b.status}`}}return{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async runNow(a){try{let b=await fetch(`/api/planned-executions/${a}/run`,{method:"POST"}),c=await b.json();if(!b.ok)return{success:!1,error:c?.error||`HTTP ${b.status}`};return{success:!0,record:c.record}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async loadRuns(a){try{let b=await fetch(`/api/planned-executions/${a}/runs`);if(!b.ok)throw Error(`HTTP ${b.status}`);let c=await b.json();return Array.isArray(c?.runs)?c.runs:[]}catch(b){return d.warn(`Failed to load runs for ${a}`,b),[]}}async previewSchedule(a,b){try{let c=await fetch("/api/planned-executions/preview-schedule",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cron:a,timezone:b})});if(!c.ok)throw Error(`HTTP ${c.status}`);return await c.json()}catch(a){return{valid:!1,error:a instanceof Error?a.message:"Preview failed",nextRuns:[]}}}}let f=new e},66675:(a,b,c)=>{c.d(b,{K:()=>f,NP:()=>i,ts:()=>g});var d=c(7329);function e(a){return a.updatedAt??a.createdAt??0}function f(a,b=Date.now()){if(!a)return{key:"recency:unknown",label:"No date"};let c=b-a;return c<864e5?{key:"recency:today",label:"Today"}:c<6048e5?{key:"recency:week",label:"This week"}:c<2592e6?{key:"recency:month",label:"This month"}:{key:"recency:older",label:"Older"}}function g(a,b){switch(b){case"name-asc":case"name-desc":return(0,d.po)(a.name);case"most-nodes":case"least-nodes":var c;return 0===(c=a.nodes.length)?{key:"nodes:0",label:"0 nodes"}:c<=2?{key:"nodes:1-2",label:"1–2 nodes"}:c<=5?{key:"nodes:3-5",label:"3–5 nodes"}:c<=10?{key:"nodes:6-10",label:"6–10 nodes"}:{key:"nodes:11+",label:"11+ nodes"};case"newest":case"oldest":return f(e(a));default:return{key:"all",label:"All flows"}}}function h(a,b){return a.name.localeCompare(b.name)||a.id.localeCompare(b.id)}function i(a,b){let c=(a,c)=>{switch(b){case"name-asc":return a.name.localeCompare(c.name);case"name-desc":return c.name.localeCompare(a.name);case"most-nodes":return c.nodes.length-a.nodes.length;case"least-nodes":return a.nodes.length-c.nodes.length;case"newest":{let b=e(c)-e(a);return 0!==b?b:h(a,c)}case"oldest":{let b=e(a)-e(c);return 0!==b?b:h(a,c)}default:return 0}};return[...a].sort((a,b)=>{let d=Number(!!b.favorite)-Number(!!a.favorite);return 0!==d?d:c(a,b)})}},76133:(a,b,c)=>{c.d(b,{T_:()=>i,g3:()=>g,xx:()=>h});let d=/(^|[/_-])(o[1-9]|gpt-5)(?:[./_-]|$)/i,e=/claude-(?:fable|mythos)-5|claude-opus-4-(?:[7-9]|\d{2,})|claude-sonnet-5/i,f=/^(?:opus|sonnet|fable)$|claude-(?:fable|mythos)-5|claude-opus-4-(?:[6-9]|\d{2,})|claude-sonnet-4-6/i;function g(a,b,c=""){let h=b||"openai",i=c.trim();if("codex-cli"===h)return{effortLevels:/^gpt-5\.6-(?:sol|terra)$/i.test(i)?["low","medium","high","xhigh","max","ultra"]:/^gpt-5\.6-/i.test(i)?["low","medium","high","xhigh","max"]:["low","medium","high","xhigh"],priority:!/(?:mini|spark|review)/i.test(i),maxOutputTokens:!1};if("claude-cli"===h)return{...f.test(i)?{effortLevels:["low","medium","high","xhigh","max"]}:{},maxOutputTokens:!1};if("anthropic"===h)return{...!e.test(i)?{creativity:{min:0,max:1,step:.1}}:{},...f.test(i)?{effortLevels:["low","medium","high","xhigh","max"]}:{},maxOutputTokens:!0};if("gemini"===h)return{creativity:{min:0,max:2,step:.1},.../^gemini-2\.5/i.test(i)?{thinkingBudget:!0}:!/^gemini-2\.0/i.test(i)?{thinkingLevels:["minimal","low","medium","high"]}:{},maxOutputTokens:!0};let j="openai"===(a||"openai")&&d.test(i);return{...!j?{creativity:{min:0,max:2,step:.1}}:{},...j?{effortLevels:["low","medium","high"]}:{},maxOutputTokens:!0}}let h=[{id:"openai",label:"OpenAI",provider:"openai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.openai.com/v1",showBaseUrl:!0},{id:"openai-responses",label:"OpenAI (Responses API)",provider:"openai",adapter:"openai-responses",sdkLabel:"OpenAI SDK (Responses)",baseUrl:"https://api.openai.com/v1",showBaseUrl:!0,defaultModels:["gpt-5","gpt-5-mini","o4-mini","o3"]},{id:"openrouter",label:"OpenRouter",provider:"openrouter",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://openrouter.ai/api/v1",showBaseUrl:!0},{id:"requesty",label:"Requesty",provider:"requesty",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://router.requesty.ai/v1",showBaseUrl:!0},{id:"xai",label:"X.ai",provider:"xai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.x.ai/v1",showBaseUrl:!0},{id:"ollama",label:"Ollama",provider:"ollama",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"http://localhost:11434/v1",showBaseUrl:!0},{id:"litellm",label:"LiteLLM",provider:"litellm",adapter:"openai",sdkLabel:"OpenAI SDK (via LiteLLM Proxy)",baseUrl:"http://localhost:4000/v1",showBaseUrl:!0},{id:"gemini-openai",label:"Gemini (OpenAI Format)",provider:"gemini",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai/",showBaseUrl:!0},{id:"gemini-native",label:"Gemini (Native)",provider:"gemini",adapter:"gemini",sdkLabel:"GenAI SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite","gemini-2.0-flash"]},{id:"anthropic-openai",label:"Anthropic (OpenAI Format)",provider:"anthropic",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.anthropic.com/v1/",showBaseUrl:!0},{id:"anthropic-native",label:"Anthropic (Native)",provider:"anthropic",adapter:"anthropic",sdkLabel:"Anthropic SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["claude-opus-4-8","claude-sonnet-4-6","claude-haiku-4-5-20251001","claude-fable-5"]},{id:"claude-subscription",label:"Claude Subscription",provider:"claude-subscription",adapter:"claude-cli",sdkLabel:"Claude CLI",baseUrl:"",showBaseUrl:!1,defaultModels:["opus","sonnet","haiku","fable"]},{id:"codex",label:"Codex (OpenAI)",provider:"codex",adapter:"codex-cli",sdkLabel:"Codex SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.5","gpt-5.4","gpt-5.4-mini"]}];function i(a,b){let c=a||"openai",d=b||"openai";return h.find(a=>a.provider===c&&a.adapter===d)||h.find(a=>a.provider===c)||h[0]}},95329:(a,b,c)=>{c.d(b,{o:()=>N,A:()=>O});var d=c(21124),e=c(38301),f=c(18168),g=c(30818),h=c(37489),i=c(81637),j=c(60839),k=c(79515),l=c(43312),m=c(44079),n=c(423),o=c(27114),p=c(41893),q=c(98463),r=c(68730),s=c(72197),t=c(91034),u=c(38941),v=c(12033),w=c(1312),x=c(5501),y=c(99587),z=c(48823),A=c(22797),B=c(21358),C=c(11361),D=c(36627);function E(a){return String(a?.data?.type??a?.type??"")}function F(a){return a.data?.bidirectional===!0}var G=c(78352),H=c(42819),I=c(18305),J=c(27305);let K=(0,H.h)("components/Flow/FlowDashboard/FlowCard"),L=(0,f.Ay)(g.A,{shouldForwardProp:a=>"selected"!==a})(({theme:a,selected:b})=>({display:"grid",gridTemplateColumns:"minmax(138px, 1.05fr) minmax(0, 0.95fr)",gridTemplateRows:"auto minmax(0, 1fr) auto auto",gridTemplateAreas:`
|
|
2
2
|
"title title"
|
|
3
3
|
"preview details"
|
|
4
4
|
"preview primary"
|
|
5
5
|
"preview footer"
|
|
6
|
-
`,height:"100%",minHeight:286,position:"relative",overflow:"hidden",border:`1px solid ${b?a.palette.primary.main:a.palette.divider}`,boxShadow:b?`0 0 0 3px ${(0,h.X4)(a.palette.primary.main,.14)}, 0 24px 70px ${(0,h.X4)(a.palette.primary.main,.18)}`:`0 16px 45px ${(0,h.X4)(a.palette.common.black,"dark"===a.palette.mode?.18:.07)}`,transition:"transform 220ms cubic-bezier(0.2, 0.75, 0.2, 1), border-color 220ms ease, box-shadow 220ms ease","&:hover":{borderColor:(0,h.X4)(a.palette.primary.main,.42),boxShadow:`0 26px 70px ${(0,h.X4)(a.palette.primary.main,"dark"===a.palette.mode?.16:.12)}`,transform:"translateY(-4px)"},"&::before":{content:'""',position:"absolute",zIndex:2,top:0,left:0,width:"100%",height:b?"3px":"1px",opacity:b?1:.5,background:`linear-gradient(90deg, ${a.palette.primary.main}, ${a.palette.secondary.main}, transparent)`}})),
|
|
6
|
+
`,height:"100%",minHeight:286,position:"relative",overflow:"hidden",border:`1px solid ${b?a.palette.primary.main:a.palette.divider}`,boxShadow:b?`0 0 0 3px ${(0,h.X4)(a.palette.primary.main,.14)}, 0 24px 70px ${(0,h.X4)(a.palette.primary.main,.18)}`:`0 16px 45px ${(0,h.X4)(a.palette.common.black,"dark"===a.palette.mode?.18:.07)}`,transition:"transform 220ms cubic-bezier(0.2, 0.75, 0.2, 1), border-color 220ms ease, box-shadow 220ms ease","&:hover":{borderColor:(0,h.X4)(a.palette.primary.main,.42),boxShadow:`0 26px 70px ${(0,h.X4)(a.palette.primary.main,"dark"===a.palette.mode?.16:.12)}`,transform:"translateY(-4px)"},"&::before":{content:'""',position:"absolute",zIndex:2,top:0,left:0,width:"100%",height:b?"3px":"1px",opacity:b?1:.5,background:`linear-gradient(90deg, ${a.palette.primary.main}, ${a.palette.secondary.main}, transparent)`}})),M=(0,f.Ay)(i.default)(({theme:a})=>({gridArea:"preview",flex:1,minWidth:0,height:236,backgroundColor:(0,h.X4)(a.palette.background.default,.82),backgroundImage:`
|
|
7
7
|
linear-gradient(${(0,h.X4)(a.palette.divider,.55)} 1px, transparent 1px),
|
|
8
8
|
linear-gradient(90deg, ${(0,h.X4)(a.palette.divider,.55)} 1px, transparent 1px),
|
|
9
9
|
radial-gradient(circle at 25% 0%, ${(0,h.X4)(a.palette.primary.main,.12)}, transparent 52%)
|
|
10
|
-
`,backgroundSize:"22px 22px, 22px 22px, auto",border:`1px solid ${a.palette.divider}`,borderRadius:14,display:"flex",alignItems:"center",justifyContent:"center",margin:a.spacing(1.25),marginRight:a.spacing(0),overflow:"hidden",position:"relative"})),
|
|
10
|
+
`,backgroundSize:"22px 22px, 22px 22px, auto",border:`1px solid ${a.palette.divider}`,borderRadius:14,display:"flex",alignItems:"center",justifyContent:"center",margin:a.spacing(1.25),marginRight:a.spacing(0),overflow:"hidden",position:"relative"})),N=()=>(0,d.jsxs)(g.A,{sx:{height:"100%",minHeight:286,display:"grid",gridTemplateColumns:"minmax(138px, 1.05fr) minmax(0, 0.95fr)",gridTemplateRows:"auto 1fr auto auto"},children:[(0,d.jsx)(i.default,{sx:{gridColumn:"1 / -1",px:1.5,py:1.25,borderBottom:1,borderColor:"divider"},children:(0,d.jsx)(s.A,{variant:"text",width:"55%",height:30})}),(0,d.jsx)(i.default,{sx:{gridColumn:1,gridRow:"2 / 5",p:1.25,pr:0},children:(0,d.jsx)(s.A,{variant:"rounded",height:"100%",sx:{minHeight:220}})}),(0,d.jsxs)(o.A,{sx:{gridColumn:2,gridRow:2,p:1.5},children:[(0,d.jsx)(s.A,{variant:"text"}),(0,d.jsx)(s.A,{variant:"text",width:"85%"}),(0,d.jsxs)(i.default,{sx:{display:"flex",gap:.5,mt:1},children:[(0,d.jsx)(s.A,{variant:"rectangular",width:60,height:20}),(0,d.jsx)(s.A,{variant:"rectangular",width:55,height:20})]})]}),(0,d.jsxs)(q.A,{sx:{gridColumn:2,gridRow:3,px:1.25,pb:1},children:[(0,d.jsx)(s.A,{variant:"rounded",width:"48%",height:30}),(0,d.jsx)(s.A,{variant:"rounded",width:"48%",height:30})]}),(0,d.jsxs)(q.A,{sx:{gridColumn:2,gridRow:4,justifyContent:"flex-end",p:.75,borderTop:1,borderColor:"divider"},children:[(0,d.jsx)(s.A,{variant:"circular",width:28,height:28}),(0,d.jsx)(s.A,{variant:"circular",width:28,height:28}),(0,d.jsx)(s.A,{variant:"circular",width:28,height:28})]})]}),O=({flow:a,selected:b,onSelect:c,onDelete:f,onCopy:g,onEdit:s,onOpenInChat:H,onSetFolder:N,onToggleFavorite:O,folders:P=[],validation:Q,pickerMode:R=!1})=>{K.debug("Rendering FlowCard",{flowId:a.id,flowName:a.name});let S=(0,j.A)(),{t:T,tp:U,formatNumber:V}=(0,I.s9)(),[W,X]=(0,e.useState)(null),Y=Q?.errorCount??0,Z=Q?.warningCount??0,{stepCount:$,subagentCount:_,signalCount:aa}=function(a){let b=Array.isArray(a.nodes)?a.nodes:[],c=Array.isArray(a.edges)?a.edges:[],d=new Map(b.map(a=>[a.id,a])),e=c.filter(a=>!(0,D.BY)(a)),f=0,g=0,h=0;for(let a of b){let b=E(a);if("process"===b){f+=1;continue}if("signal"===b){let b=a.data?.properties?.topic;"string"==typeof b&&b.trim()&&(h+=1);continue}if("subflow"!==b)continue;let c=e.filter(b=>b.source===a.id||b.target===a.id),i=c.some(b=>{if(!F(b))return!1;let c=b.source===a.id?b.target:b.source;return"process"===E(d.get(c))}),j=c.filter(b=>!F(b)&&b.target===a.id),k=c.filter(b=>!F(b)&&b.source===a.id),l=j.some(a=>k.some(b=>a.source!==b.target));i||1===j.length&&0===k.length?g+=1:l&&(f+=1)}return{stepCount:f,subagentCount:g,signalCount:h}}(a),ab=Y>0?"error":Z>0?"warning":null,ac=Q?(0,d.jsxs)(i.default,{children:[(0,d.jsx)(k.A,{variant:"caption",sx:{fontWeight:600,display:"block",mb:.5},children:Y>0?U("flows.card.problem",Y):U("flows.card.warning",Z)}),Q.issues.slice(0,5).map((a,b)=>(0,d.jsxs)(k.A,{variant:"caption",sx:{display:"block"},children:["• ",(0,J.z)(a,T)]},b)),Q.issues.length>5&&(0,d.jsx)(k.A,{variant:"caption",sx:{display:"block",fontStyle:"italic"},children:T("flows.card.more",{count:V(Q.issues.length-5)})})]}):null;return(0,d.jsxs)(L,{selected:b,children:[O&&(0,d.jsx)(l.A,{title:a.favorite?T("flows.card.favoriteRemove"):T("flows.card.favoriteAdd"),arrow:!0,placement:"top",children:(0,d.jsx)(m.A,{size:"small",onClick:b=>{b.stopPropagation(),O&&O(a.id)},sx:{position:"absolute",top:4,left:4,zIndex:2,color:a.favorite?S.palette.warning.main:S.palette.text.secondary,backgroundColor:(0,h.X4)(S.palette.background.paper,.6),"&:hover":{backgroundColor:(0,h.X4)(S.palette.background.paper,.9)}},children:a.favorite?(0,d.jsx)(x.A,{fontSize:"small"}):(0,d.jsx)(y.A,{fontSize:"small"})})}),ab&&(0,d.jsx)(l.A,{title:ac,arrow:!0,placement:"top",children:(0,d.jsxs)(i.default,{sx:{position:"absolute",top:8,right:8,zIndex:2,display:"flex",alignItems:"center",gap:.5,px:.75,py:.25,borderRadius:1,color:"#fff",backgroundColor:"error"===ab?S.palette.error.main:S.palette.warning.main,boxShadow:S.shadows[2],pointerEvents:"auto"},children:["error"===ab?(0,d.jsx)(A.A,{sx:{fontSize:16}}):(0,d.jsx)(B.A,{sx:{fontSize:16}}),(0,d.jsx)(k.A,{variant:"caption",sx:{fontWeight:700,lineHeight:1},children:"error"===ab?Y:Z})]})}),(0,d.jsx)(n.A,{onClick:()=>c(a.id),sx:{gridArea:"title",display:"block",minWidth:0,px:1.5,py:1.25,pl:O?5.5:1.5,pr:ab?7:1.5,borderBottom:`1px solid ${S.palette.divider}`},children:(0,d.jsx)(k.A,{variant:"h6",component:"div",noWrap:!0,title:a.name,children:a.name})}),(0,d.jsx)(n.A,{onClick:()=>c(a.id),"aria-label":T("flows.card.open",{name:a.name}),sx:{gridArea:"preview",minWidth:0,height:256,display:"flex",alignItems:"stretch"},children:(0,d.jsx)(M,{children:(()=>{if(0===a.nodes.length)return(0,d.jsx)(i.default,{sx:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,d.jsx)(k.A,{color:"textSecondary",align:"center",children:T("flows.card.nothing")})});let b=a.nodes.map(a=>a.position?.x??0),c=a.nodes.map(a=>a.position?.y??0),e=Math.min(...b),f=Math.min(...c),g=Math.max(...b)+180,h=Math.max(...c)+70,j=`${e-40} ${f-40} ${g-e+80} ${h-f+80}`,l=a=>({cx:(a.position?.x??0)+90,cy:(a.position?.y??0)+35});return(0,d.jsx)(i.default,{sx:{width:"100%",height:"100%",p:1},children:(0,d.jsxs)("svg",{width:"100%",height:"100%",viewBox:j,preserveAspectRatio:"xMidYMid meet",style:{display:"block"},children:[a.edges.map((b,c)=>{let e=a.nodes.find(a=>a.id===b.source),f=a.nodes.find(a=>a.id===b.target);if(!e||!f)return null;let g=l(e),h=l(f);return(0,d.jsx)("line",{x1:g.cx,y1:g.cy,x2:h.cx,y2:h.cy,stroke:S.palette.text.secondary,strokeWidth:2,opacity:.5,vectorEffect:"non-scaling-stroke"},b.id||c)}),a.nodes.map(a=>{let b=a.position?.x??0,c=a.position?.y??0,e=a.data?.type??"process",f=(0,C.M6)(e,S);return(0,d.jsxs)("g",{children:[(0,d.jsx)("rect",{x:b,y:c,width:180,height:70,rx:12,fill:f,opacity:.85,stroke:S.palette.background.paper,strokeWidth:2,vectorEffect:"non-scaling-stroke"}),(0,d.jsx)("text",{x:b+90,y:c+35,textAnchor:"middle",dominantBaseline:"central",fill:"#fff",fontSize:35,fontWeight:"bold",children:e.substring(0,1).toUpperCase()})]},a.id)})]})})})()})}),(0,d.jsx)(n.A,{onClick:()=>c(a.id),sx:{gridArea:"details",gridRow:R?"2 / 5":void 0,minWidth:0,display:"flex",alignItems:"stretch"},children:(0,d.jsxs)(o.A,{sx:{width:"100%",minWidth:0,p:1.5,"&:last-child":{pb:1.25}},children:[a.description?(0,d.jsx)(l.A,{title:a.description,placement:"bottom-start",children:(0,d.jsx)(k.A,{variant:"body2",color:"text.secondary",sx:{display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:a.description})}):(0,d.jsx)(k.A,{variant:"body2",color:"text.secondary",sx:{fontStyle:"italic"},children:T("flows.card.noDescription")}),(0,d.jsxs)(i.default,{sx:{display:"flex",gap:.5,mt:1.25,flexWrap:"wrap"},children:[(0,d.jsx)(p.A,{size:"small",label:U("flows.card.step",$),color:"primary",variant:"outlined",sx:{fontSize:"0.7rem",height:20}}),_>0&&(0,d.jsx)(p.A,{size:"small",label:U("flows.card.subagent",_),color:"secondary",variant:"outlined",sx:{fontSize:"0.7rem",height:20}}),(0,d.jsx)(p.A,{size:"small",label:U("flows.card.signal",aa),variant:"outlined",sx:{fontSize:"0.7rem",height:20}})]})]})}),!R&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(q.A,{sx:{gridArea:"primary",gap:.75,px:1.25,pb:1,pt:0},children:[H&&(0,d.jsx)(r.A,{size:"small",variant:"contained",startIcon:(0,d.jsx)(z.A,{fontSize:"small"}),onClick:b=>{b.stopPropagation(),H&&H(a.id)},sx:{flex:1,minWidth:0},children:T("flows.card.use")}),(0,d.jsx)(r.A,{size:"small",variant:"outlined",startIcon:(0,d.jsx)(v.A,{fontSize:"small"}),onClick:b=>{b.stopPropagation(),s?s(a.id):c(a.id)},sx:{flex:1,minWidth:0},children:T("flows.card.edit")})]}),(0,d.jsxs)(q.A,{sx:{gridArea:"footer",justifyContent:"flex-end",gap:.25,px:1,py:.625,minHeight:42,borderTop:`1px solid ${S.palette.divider}`,backgroundColor:(0,h.X4)(S.palette.background.default,.55)},children:[g&&(0,d.jsx)(l.A,{title:T("flows.card.copy"),children:(0,d.jsx)(m.A,{size:"small",onClick:b=>{b.stopPropagation(),g&&g(a.id)},"aria-label":T("flows.card.copy"),children:(0,d.jsx)(u.A,{fontSize:"small"})})}),N&&(0,d.jsx)(l.A,{title:a.folder?T("flows.card.folder",{folder:a.folder}):T("flows.card.organize"),children:(0,d.jsx)(m.A,{size:"small",onClick:a=>{a.stopPropagation(),X(a.currentTarget)},color:a.folder?"primary":"default","aria-label":T("flows.card.move"),children:(0,d.jsx)(w.A,{fontSize:"small"})})}),f&&(0,d.jsx)(l.A,{title:T("flows.card.delete"),children:(0,d.jsx)(m.A,{size:"small",onClick:b=>{b.stopPropagation(),f&&f(a.id)},color:"error","aria-label":T("flows.card.delete"),children:(0,d.jsx)(t.A,{fontSize:"small"})})})]})]}),!R&&N&&(0,d.jsx)(G.A,{anchorEl:W,open:!!W,currentFolder:a.folder,folders:P,onClose:()=>X(null),onAssign:b=>N(a.id,b)})]})}}};
|