flujo-ai 3.44.0 → 3.45.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-path-routes-manifest.json +7 -7
- package/.next/build-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/approvals/[id]/route.js +1 -1
- package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/route.js +1 -1
- package/.next/server/app/api/approvals/route.js.nft.json +1 -1
- package/.next/server/app/api/backup/route.js.nft.json +1 -1
- package/.next/server/app/api/bugs/enhance/route.js +1 -1
- package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
- package/.next/server/app/api/encryption/secure/route.js +1 -1
- package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/assist/route.js +1 -1
- package/.next/server/app/api/flow/assist/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/compile/route.js +1 -1
- package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generate/route.js +1 -1
- package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generate/visual/route.js +2 -2
- package/.next/server/app/api/flow/generate/visual/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generator/route.js +1 -1
- package/.next/server/app/api/flow/generator/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/improve/route.js +1 -1
- package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/repair/route.js +1 -1
- package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/route.js.nft.json +1 -1
- package/.next/server/app/api/init/route.js +1 -1
- package/.next/server/app/api/init/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/app-consent/route.js +1 -1
- package/.next/server/app/api/mcp/app-consent/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/app-sandbox/route.js +2 -2
- package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/assistant/route.js +1 -1
- package/.next/server/app/api/mcp/assistant/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/cancel/route.js +1 -1
- package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/authoring/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/authoring/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/automation/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/automation/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/flows/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/flows/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/resources/read/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/resources/read/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/resources/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/resources/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/servers/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/servers/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/state/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/state/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/tools/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/confirm/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/confirm/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/start/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/start/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/route.js +1 -1
- package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp-registry/route.js +1 -1
- package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
- package/.next/server/app/api/model/[id]/route.js +1 -1
- package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/model/provider/route.js +1 -1
- package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
- package/.next/server/app/api/model/route.js +1 -1
- package/.next/server/app/api/model/route.js.nft.json +1 -1
- package/.next/server/app/api/model/test/route.js +1 -1
- package/.next/server/app/api/model/test/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/reset/route.js +1 -1
- package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/install/route.js +1 -1
- package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/install/status/route.js +1 -1
- package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/installed/route.js +1 -1
- package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/uninstall/route.js +1 -1
- package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/route.js +1 -1
- package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
- package/.next/server/app/api/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/runs/active/route.js +1 -1
- package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
- package/.next/server/app/api/telemetry/daily-active/route.js +1 -1
- package/.next/server/app/api/waves/route.js +1 -1
- package/.next/server/app/api/waves/route.js.nft.json +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.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 +3 -3
- package/.next/server/app/automation/triggers.segments/_full.segment.rsc +3 -3
- package/.next/server/app/automation/triggers.segments/_head.segment.rsc +1 -1
- package/.next/server/app/automation/triggers.segments/_index.segment.rsc +2 -2
- package/.next/server/app/automation/triggers.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/automation/triggers.segments/automation/triggers/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/automation/triggers.segments/automation/triggers.segment.rsc +1 -1
- package/.next/server/app/automation/triggers.segments/automation.segment.rsc +1 -1
- 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 +3 -3
- package/.next/server/app/automation/waves.segments/_full.segment.rsc +3 -3
- package/.next/server/app/automation/waves.segments/_head.segment.rsc +1 -1
- package/.next/server/app/automation/waves.segments/_index.segment.rsc +2 -2
- package/.next/server/app/automation/waves.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/automation/waves.segments/automation/waves/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/automation/waves.segments/automation/waves.segment.rsc +1 -1
- package/.next/server/app/automation/waves.segments/automation.segment.rsc +1 -1
- package/.next/server/app/chain-chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chain-chat.html +1 -1
- package/.next/server/app/chain-chat.rsc +3 -3
- package/.next/server/app/chain-chat.segments/_full.segment.rsc +3 -3
- package/.next/server/app/chain-chat.segments/_head.segment.rsc +1 -1
- package/.next/server/app/chain-chat.segments/_index.segment.rsc +2 -2
- package/.next/server/app/chain-chat.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/chain-chat.segments/chain-chat/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/chain-chat.segments/chain-chat.segment.rsc +1 -1
- package/.next/server/app/chat/page.js +4 -4
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +3 -3
- package/.next/server/app/chat.segments/_full.segment.rsc +3 -3
- package/.next/server/app/chat.segments/_head.segment.rsc +1 -1
- package/.next/server/app/chat.segments/_index.segment.rsc +2 -2
- package/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/chat.segments/chat.segment.rsc +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +3 -3
- package/.next/server/app/docs.segments/_full.segment.rsc +3 -3
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/executions.html +1 -1
- package/.next/server/app/executions.rsc +3 -3
- package/.next/server/app/executions.segments/_full.segment.rsc +3 -3
- package/.next/server/app/executions.segments/_head.segment.rsc +1 -1
- package/.next/server/app/executions.segments/_index.segment.rsc +2 -2
- package/.next/server/app/executions.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/executions.segments/executions/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/executions.segments/executions.segment.rsc +1 -1
- package/.next/server/app/flows/page.js +5 -5
- package/.next/server/app/flows/page.js.nft.json +1 -1
- package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/flows.html +1 -1
- package/.next/server/app/flows.rsc +3 -3
- package/.next/server/app/flows.segments/_full.segment.rsc +3 -3
- package/.next/server/app/flows.segments/_head.segment.rsc +1 -1
- package/.next/server/app/flows.segments/_index.segment.rsc +2 -2
- package/.next/server/app/flows.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/flows.segments/flows/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/flows.segments/flows.segment.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/mcp/page.js +1 -1
- package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-flows/route.js +1 -1
- package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
- package/.next/server/app/mcp.html +1 -1
- package/.next/server/app/mcp.rsc +3 -3
- package/.next/server/app/mcp.segments/_full.segment.rsc +3 -3
- package/.next/server/app/mcp.segments/_head.segment.rsc +1 -1
- package/.next/server/app/mcp.segments/_index.segment.rsc +2 -2
- package/.next/server/app/mcp.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/mcp.segments/mcp/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/mcp.segments/mcp.segment.rsc +1 -1
- package/.next/server/app/meetings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/meetings.html +1 -1
- package/.next/server/app/meetings.rsc +3 -3
- package/.next/server/app/meetings.segments/_full.segment.rsc +3 -3
- package/.next/server/app/meetings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/meetings.segments/_index.segment.rsc +2 -2
- package/.next/server/app/meetings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/meetings.segments/meetings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/meetings.segments/meetings.segment.rsc +1 -1
- package/.next/server/app/models/page.js +3 -3
- package/.next/server/app/models/page_client-reference-manifest.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 +3 -3
- package/.next/server/app/packages.segments/_full.segment.rsc +3 -3
- package/.next/server/app/packages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/packages.segments/_index.segment.rsc +2 -2
- package/.next/server/app/packages.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/packages.segments/packages/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/packages.segments/packages.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +2 -2
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +3 -3
- package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- 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 +3 -3
- package/.next/server/app/statistics.segments/_full.segment.rsc +3 -3
- package/.next/server/app/statistics.segments/_head.segment.rsc +1 -1
- package/.next/server/app/statistics.segments/_index.segment.rsc +2 -2
- package/.next/server/app/statistics.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/statistics.segments/statistics/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/statistics.segments/statistics.segment.rsc +1 -1
- package/.next/server/app/v1/chat/completions/route.js +1 -1
- package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversation-chains/route.js +1 -1
- package/.next/server/app/v1/chat/conversation-chains/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/attach/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/attach/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/state/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/state/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/recovery/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/recovery/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/events/route.js +1 -1
- package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/cancel/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/start/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/start/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/route.js +1 -1
- package/.next/server/app/v1/meetings/route.js.nft.json +1 -1
- package/.next/server/app/v1/models/route.js +1 -1
- package/.next/server/app/v1/models/route.js.nft.json +1 -1
- package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
- package/.next/server/app/waves.html +1 -1
- package/.next/server/app/waves.rsc +3 -3
- package/.next/server/app/waves.segments/_full.segment.rsc +3 -3
- package/.next/server/app/waves.segments/_head.segment.rsc +1 -1
- package/.next/server/app/waves.segments/_index.segment.rsc +2 -2
- package/.next/server/app/waves.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/waves.segments/waves/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/waves.segments/waves.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +7 -7
- package/.next/server/chunks/1114.js +1 -1
- package/.next/server/chunks/{4271.js → 2126.js} +13 -13
- package/.next/server/chunks/2425.js +1 -1
- package/.next/server/chunks/244.js +1 -1
- package/.next/server/chunks/2728.js +1 -1
- package/.next/server/chunks/2970.js +1 -1
- package/.next/server/chunks/3133.js +2 -2
- package/.next/server/chunks/4558.js +1 -1
- package/.next/server/chunks/4779.js +1 -0
- package/.next/server/chunks/531.js +1 -1
- package/.next/server/chunks/5354.js +1 -1
- package/.next/server/chunks/5831.js +1 -1
- package/.next/server/chunks/609.js +1 -1
- package/.next/server/chunks/75.js +1 -1
- package/.next/server/chunks/7513.js +1 -1
- package/.next/server/chunks/7754.js +60 -60
- package/.next/server/chunks/811.js +1 -1
- package/.next/server/chunks/8542.js +1 -1
- package/.next/server/chunks/87.js +1 -1
- package/.next/server/chunks/8767.js +1 -1
- package/.next/server/middleware-build-manifest.js +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/{8851-1ea4bbf9945c7b34.js → 2375-af6ebf80d9cb9975.js} +2 -2
- package/.next/static/chunks/{4742-e151939b0ae7ba74.js → 3841-0e4a10c621cac0e6.js} +1 -1
- package/.next/static/chunks/{5147-d239d0147237bb58.js → 5147-ec07dd70c20ec0b5.js} +1 -1
- package/.next/static/chunks/5212-898f308c44a32c22.js +2 -0
- package/.next/static/chunks/7401-cffc7c5fa1f5f06e.js +10 -0
- package/.next/static/chunks/app/chat/page-5b6d507b576cea9c.js +7 -0
- package/.next/static/chunks/app/flows/page-9b16d049d43ac817.js +9 -0
- package/.next/static/chunks/app/mcp/{page-70535f4bce57edbe.js → page-e4c284466c17fe32.js} +1 -1
- package/.next/static/chunks/app/models/page-2891efa80c126790.js +11 -0
- package/.next/static/chunks/{webpack-7efb2620f630c7d5.js → webpack-d9f1e56ee69d988f.js} +1 -1
- package/.next/trace +104 -104
- package/.next/trace-build +1 -1
- package/README.md +6 -3
- package/mcp-servers/bash/package.json +1 -1
- package/mcp-servers/browser/dist/resources.js +29 -3
- package/mcp-servers/browser/dist/resources.js.map +1 -1
- package/mcp-servers/browser/package.json +1 -1
- package/mcp-servers/filesystem/dist/resources.js +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/387.js +0 -1
- package/.next/static/chunks/5212-fa397222d5251b43.js +0 -2
- package/.next/static/chunks/7401-b0f0d4a7b2597302.js +0 -10
- package/.next/static/chunks/app/chat/page-3db891cc7ba29084.js +0 -7
- package/.next/static/chunks/app/flows/page-6b6748bc74604103.js +0 -9
- package/.next/static/chunks/app/models/page-e3430501cd05ff1f.js +0 -11
- /package/.next/static/{yjYCceqlIl4V9blcEb5AK → 4x_Vc1-WtJtqgqFZnCq3D}/_buildManifest.js +0 -0
- /package/.next/static/{yjYCceqlIl4V9blcEb5AK → 4x_Vc1-WtJtqgqFZnCq3D}/_ssgManifest.js +0 -0
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7401],{16909:(e,t,i)=>{i.d(t,{A:()=>m});var a=i(95155);i(12115);var r=i(66808),o=i(85876),n=i(83793),l=i(64924),s=i(85930),d=i(89852),c=i(71031),p=i(40245),u=i(6310);let m=({open:e,onClose:t,title:i,ariaLabel:m,description:h,maxWidth:x="md",fullScreen:g=!1,autoFocusSearch:f,autoFocusDelayMs:v,...b})=>{let{t:w}=(0,u.s9)(),y=f??e;return(0,a.jsxs)(r.A,{open:e,onClose:t,maxWidth:x,fullWidth:!0,fullScreen:g,PaperProps:m?{"aria-label":m}:void 0,children:[null!=i&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{title:i,onClose:t}),(0,a.jsx)(o.A,{})]}),(0,a.jsxs)(n.A,{sx:{p:3},children:[h&&(0,a.jsx)(l.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:h}),(0,a.jsx)(p.A,{...b,autoFocusSearch:y,autoFocusDelayMs:v??120})]}),(0,a.jsx)(s.A,{children:(0,a.jsx)(d.A,{onClick:t,children:w("common.cancel")})})]})}},19800:(e,t,i)=>{i.d(t,{E:()=>c});var a=i(12115),r=i(90015),o=i(29598),n=i(30711),l=i(24111),s=i(72968);let d={models:{defaultSort:"name-asc",sort:(e,t)=>(0,n.CR)(e,t),deriveSortGroup:(e,t)=>(0,n.eZ)(e,t),getFolder:e=>e.folder,getSearchText:e=>`${(0,n.Lg)(e)} ${e.name??""}`},mcp:{defaultSort:"name-asc",sort:(e,t)=>(0,l.oO)(e,t),deriveSortGroup:(e,t)=>(0,l.mO)(e,t),getFolder:e=>e.folder,getSearchText:e=>`${e.name??""} ${e.rootPath??e.path??""}`},flows:{defaultSort:"name-asc",sort:(e,t)=>(0,s.NP)(e,t),deriveSortGroup:(e,t)=>(0,s.ts)(e,t),getFolder:e=>e.folder,getSearchText:e=>e.name??""}};function c(e,t){let i=d[e],[n,l]=(0,a.useState)(""),[s]=(0,r.Io)(`flujo-ui:${e}:sort`,i.defaultSort),[c]=(0,r.Io)(`flujo-ui:${e}:group`,o.FM),[p,u]=(0,r.Io)(`flujo-ui:${e}:collapsed`,[]),m=(0,a.useMemo)(()=>new Set(p),[p]),h=(0,a.useMemo)(()=>{let e=n.trim().toLowerCase(),a=e?t.filter(t=>i.getSearchText(t).toLowerCase().includes(e)):t;return i.sort([...a],s)},[t,n,s,i]),x=(0,a.useMemo)(()=>"folder"===c?(0,o.Je)(h,e=>i.getFolder(e)):"sort"===c?(0,o.Az)(h,e=>i.deriveSortGroup(e,s)):null,[c,h,s,i]);return{searchTerm:n,setSearchTerm:l,sortOption:s,groupMode:c,items:h,groups:x,collapsedKeys:m,toggleGroup:(0,a.useCallback)(e=>{u(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[u])}}},30711:(e,t,i)=>{i.d(t,{CR:()=>s,Lg:()=>o,eZ:()=>l});var a=i(89238),r=i(29598);let o=e=>e.displayName||e.name||"",n=e=>(0,a.T_)(e.provider,e.adapter).label;function l(e,t){switch(t){case"provider":{let t=n(e);return{key:`provider:${t}`,label:t}}case"context-asc":case"context-desc":var i;return"number"!=typeof(i=e.contextWindow)||Number.isNaN(i)?{key:"ctx:unknown",label:"Unknown context"}:i<=8e3?{key:"ctx:<=8k",label:"≤ 8K tokens"}:i<=32e3?{key:"ctx:8k-32k",label:"8K–32K tokens"}:i<=128e3?{key:"ctx:32k-128k",label:"32K–128K tokens"}:i<=1e6?{key:"ctx:128k-1m",label:"128K–1M tokens"}:{key:"ctx:>1m",label:"> 1M tokens"};default:return(0,r.po)(o(e))}}function s(e,t){let i=(e,i)=>{switch(t){case"name-asc":return o(e).localeCompare(o(i));case"name-desc":return o(i).localeCompare(o(e));case"provider":return n(e).localeCompare(n(i))||o(e).localeCompare(o(i));case"context-desc":case"context-asc":{let a="number"!=typeof e.contextWindow||Number.isNaN(e.contextWindow)?void 0:e.contextWindow,r="number"!=typeof i.contextWindow||Number.isNaN(i.contextWindow)?void 0:i.contextWindow;if(void 0===a&&void 0===r)return o(e).localeCompare(o(i));if(void 0===a)return 1;if(void 0===r)return -1;let n="context-desc"===t?r-a:a-r;return 0!==n?n:o(e).localeCompare(o(i))}default:return 0}};return[...e].sort((e,t)=>{let a=Number(!!t.favorite)-Number(!!e.favorite);return 0!==a?a:i(e,t)})}},40245:(e,t,i)=>{i.d(t,{A:()=>f});var a=i(95155),r=i(12115),o=i(26576),n=i(76010),l=i(91216),s=i(45483),d=i(93385),c=i(64924),p=i(83550),u=i(17842),m=i(57643),h=i(43409),x=i(6310);let g={xs:12,sm:6,md:4},f=({isLoading:e=!1,error:t=null,emptyMessage:i,loadingMessage:f,skeleton:v,skeletonCount:b=4,columns:w=g,items:y,searchable:A=!1,searchPlaceholder:k,searchTerm:j,onSearchChange:C,groups:S,collapsedKeys:I,onToggleGroup:z,autoFocusSearch:M,autoFocusDelayMs:O=0,stickySearch:N,searchInputRef:L})=>{let{t:T}=(0,x.s9)(),U=i??T("cardPicker.empty"),P=f??T("common.loading"),$=k??T("common.search"),W={...g,...w},R=N??A,F=(0,h.j)({enabled:M??A,delayMs:O}),B=(0,r.useCallback)(e=>{F.current=e,"function"==typeof L?L(e):L&&(L.current=e)},[F,L]),[D,K]=(0,r.useState)(""),X=void 0!==j,_=X?j:D,[G,E]=(0,r.useState)(new Set),H=I??G,q=e=>(0,a.jsx)(o.Ay,{container:!0,spacing:2,alignItems:"stretch",children:e.map(e=>(0,a.jsx)(o.Ay,{item:!0,xs:W.xs,sm:W.sm,md:W.md,lg:W.lg,sx:{display:"flex"},children:(0,a.jsx)(n.default,{sx:{width:"100%"},children:e.content})},e.key))}),Y=A?(0,a.jsx)(l.A,{placeholder:$,variant:"outlined",size:"small",fullWidth:!0,value:_,onChange:e=>{var t;return t=e.target.value,void(C?.(t),!X&&K(t))},inputRef:B,InputProps:{startAdornment:(0,a.jsx)(s.A,{position:"start",children:(0,a.jsx)(p.A,{fontSize:"small"})})},inputProps:{"aria-label":$}}):null,Z=A?(0,a.jsx)(m.A,{mode:"container",disableSticky:!R,sx:{mb:2},children:Y}):null,J=e=>(0,a.jsxs)(n.default,{children:[Z,e]});if(e)return J(v?(0,a.jsx)(o.Ay,{container:!0,spacing:2,children:Array.from({length:b}).map((e,t)=>(0,a.jsx)(o.Ay,{item:!0,xs:W.xs,sm:W.sm,md:W.md,lg:W.lg,children:v},`skeleton-${t}`))}):(0,a.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2},children:[(0,a.jsx)(d.default,{size:20}),(0,a.jsx)(c.A,{variant:"body2",color:"text.secondary",children:P})]}));if(t)return J((0,a.jsx)(c.A,{color:"error",variant:"body2",sx:{py:2},children:t}));let Q=X?"":_.trim().toLowerCase(),V=e=>!Q||(e.searchText??"").toLowerCase().includes(Q),ee=(0,a.jsx)(c.A,{variant:"body2",color:"text.secondary",sx:{py:2},children:U});if(S){let e=S.map(e=>({...e,items:e.items.filter(V)})).filter(e=>e.items.length>0);return J(0===e.length?ee:(0,a.jsx)(a.Fragment,{children:e.map(e=>(0,a.jsx)(u.A,{label:e.label,count:e.items.length,expanded:!H.has(e.key),onToggle:()=>{var t;return t=e.key,void(z?z(t):E(e=>{let i=new Set(e);return i.has(t)?i.delete(t):i.add(t),i}))},children:q(e.items)},e.key))}))}let et=(y??[]).filter(V);return J(0===et.length?ee:q(et))}},67471:(e,t,i)=>{i.d(t,{o:()=>B,A:()=>D});var a=i(95155),r=i(12115),o=i(42131),n=i(99084),l=i(5704),s=i(76010),d=i(37156),c=i(64924),p=i(6302),u=i(40323),m=i(32782),h=i(47667),x=i(83063),g=i(95473),f=i(60294),v=i(89852),b=i(57518),w=i(72133),y=i(18190),A=i(6950),k=i(25279),j=i(43018),C=i(1756),S=i(82300),I=i(19418),z=i(8349),M=i(21129),O=i(81680);function N(e){return String(e?.data?.type??e?.type??"")}function L(e){return e.data?.bidirectional===!0}var T=i(83219),U=i(49103),P=i(6310),$=i(90186);let W=(0,U.h)("components/Flow/FlowDashboard/FlowCard"),R=(0,o.Ay)(n.A,{shouldForwardProp:e=>"selected"!==e})(({theme:e,selected:t})=>({display:"grid",gridTemplateColumns:"minmax(138px, 1.05fr) minmax(0, 0.95fr)",gridTemplateRows:"auto minmax(0, 1fr) auto auto",gridTemplateAreas:`
|
|
2
|
-
"title title"
|
|
3
|
-
"preview details"
|
|
4
|
-
"preview primary"
|
|
5
|
-
"preview footer"
|
|
6
|
-
`,height:"100%",minHeight:286,position:"relative",overflow:"hidden",border:`1px solid ${t?e.palette.primary.main:e.palette.divider}`,boxShadow:t?`0 0 0 3px ${(0,l.X4)(e.palette.primary.main,.14)}, 0 24px 70px ${(0,l.X4)(e.palette.primary.main,.18)}`:`0 16px 45px ${(0,l.X4)(e.palette.common.black,"dark"===e.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,l.X4)(e.palette.primary.main,.42),boxShadow:`0 26px 70px ${(0,l.X4)(e.palette.primary.main,"dark"===e.palette.mode?.16:.12)}`,transform:"translateY(-4px)"},"&::before":{content:'""',position:"absolute",zIndex:2,top:0,left:0,width:"100%",height:t?"3px":"1px",opacity:t?1:.5,background:`linear-gradient(90deg, ${e.palette.primary.main}, ${e.palette.secondary.main}, transparent)`}})),F=(0,o.Ay)(s.default)(({theme:e})=>({gridArea:"preview",flex:1,minWidth:0,height:236,backgroundColor:(0,l.X4)(e.palette.background.default,.82),backgroundImage:`
|
|
7
|
-
linear-gradient(${(0,l.X4)(e.palette.divider,.55)} 1px, transparent 1px),
|
|
8
|
-
linear-gradient(90deg, ${(0,l.X4)(e.palette.divider,.55)} 1px, transparent 1px),
|
|
9
|
-
radial-gradient(circle at 25% 0%, ${(0,l.X4)(e.palette.primary.main,.12)}, transparent 52%)
|
|
10
|
-
`,backgroundSize:"22px 22px, 22px 22px, auto",border:`1px solid ${e.palette.divider}`,borderRadius:14,display:"flex",alignItems:"center",justifyContent:"center",margin:e.spacing(1.25),marginRight:e.spacing(0),overflow:"hidden",position:"relative"})),B=()=>(0,a.jsxs)(n.A,{sx:{height:"100%",minHeight:286,display:"grid",gridTemplateColumns:"minmax(138px, 1.05fr) minmax(0, 0.95fr)",gridTemplateRows:"auto 1fr auto auto"},children:[(0,a.jsx)(s.default,{sx:{gridColumn:"1 / -1",px:1.5,py:1.25,borderBottom:1,borderColor:"divider"},children:(0,a.jsx)(b.A,{variant:"text",width:"55%",height:30})}),(0,a.jsx)(s.default,{sx:{gridColumn:1,gridRow:"2 / 5",p:1.25,pr:0},children:(0,a.jsx)(b.A,{variant:"rounded",height:"100%",sx:{minHeight:220}})}),(0,a.jsxs)(x.A,{sx:{gridColumn:2,gridRow:2,p:1.5},children:[(0,a.jsx)(b.A,{variant:"text"}),(0,a.jsx)(b.A,{variant:"text",width:"85%"}),(0,a.jsxs)(s.default,{sx:{display:"flex",gap:.5,mt:1},children:[(0,a.jsx)(b.A,{variant:"rectangular",width:60,height:20}),(0,a.jsx)(b.A,{variant:"rectangular",width:55,height:20})]})]}),(0,a.jsxs)(f.A,{sx:{gridColumn:2,gridRow:3,px:1.25,pb:1},children:[(0,a.jsx)(b.A,{variant:"rounded",width:"48%",height:30}),(0,a.jsx)(b.A,{variant:"rounded",width:"48%",height:30})]}),(0,a.jsxs)(f.A,{sx:{gridColumn:2,gridRow:4,justifyContent:"flex-end",p:.75,borderTop:1,borderColor:"divider"},children:[(0,a.jsx)(b.A,{variant:"circular",width:28,height:28}),(0,a.jsx)(b.A,{variant:"circular",width:28,height:28}),(0,a.jsx)(b.A,{variant:"circular",width:28,height:28})]})]}),D=({flow:e,selected:t,onSelect:i,onDelete:o,onCopy:n,onEdit:b,onOpenInChat:U,onSetFolder:B,onToggleFavorite:D,folders:K=[],validation:X,pickerMode:_=!1,selectionMode:G=!1})=>{W.debug("Rendering FlowCard",{flowId:e.id,flowName:e.name});let E=(0,d.A)(),{t:H,tp:q,formatNumber:Y}=(0,P.s9)(),[Z,J]=(0,r.useState)(null),Q=X?.errorCount??0,V=X?.warningCount??0,{stepCount:ee,subagentCount:et,signalCount:ei}=function(e){let t=Array.isArray(e.nodes)?e.nodes:[],i=Array.isArray(e.edges)?e.edges:[],a=new Map(t.map(e=>[e.id,e])),r=i.filter(e=>!(0,O.BY)(e)),o=0,n=0,l=0;for(let e of t){let t=N(e);if("process"===t){o+=1;continue}if("signal"===t){let t=e.data?.properties?.topic;"string"==typeof t&&t.trim()&&(l+=1);continue}if("subflow"!==t)continue;let i=r.filter(t=>t.source===e.id||t.target===e.id),s=i.some(t=>{if(!L(t))return!1;let i=t.source===e.id?t.target:t.source;return"process"===N(a.get(i))}),d=i.filter(t=>!L(t)&&t.target===e.id),c=i.filter(t=>!L(t)&&t.source===e.id),p=d.some(e=>c.some(t=>e.source!==t.target));s||1===d.length&&0===c.length?n+=1:p&&(o+=1)}return{stepCount:o,subagentCount:n,signalCount:l}}(e),ea=Q>0?"error":V>0?"warning":null,er=X?(0,a.jsxs)(s.default,{children:[(0,a.jsx)(c.A,{variant:"caption",sx:{fontWeight:600,display:"block",mb:.5},children:Q>0?q("flows.card.problem",Q):q("flows.card.warning",V)}),X.issues.slice(0,5).map((e,t)=>(0,a.jsxs)(c.A,{variant:"caption",sx:{display:"block"},children:["• ",(0,$.z)(e,H)]},t)),X.issues.length>5&&(0,a.jsx)(c.A,{variant:"caption",sx:{display:"block",fontStyle:"italic"},children:H("flows.card.more",{count:Y(X.issues.length-5)})})]}):null;return(0,a.jsxs)(R,{selected:t,children:[G&&(0,a.jsx)(p.A,{checked:t,onChange:()=>i(e.id),onClick:e=>e.stopPropagation(),inputProps:{"aria-label":H("flows.card.select",{name:e.name})},sx:{position:"absolute",top:2,left:2,zIndex:3,bgcolor:(0,l.X4)(E.palette.background.paper,.78),borderRadius:1.5}}),D&&!G&&(0,a.jsx)(u.A,{title:e.favorite?H("flows.card.favoriteRemove"):H("flows.card.favoriteAdd"),arrow:!0,placement:"top",children:(0,a.jsx)(m.A,{size:"small",onClick:t=>{t.stopPropagation(),D&&D(e.id)},sx:{position:"absolute",top:4,left:4,zIndex:2,color:e.favorite?E.palette.warning.main:E.palette.text.secondary,backgroundColor:(0,l.X4)(E.palette.background.paper,.6),"&:hover":{backgroundColor:(0,l.X4)(E.palette.background.paper,.9)}},children:e.favorite?(0,a.jsx)(j.A,{fontSize:"small"}):(0,a.jsx)(C.A,{fontSize:"small"})})}),ea&&(0,a.jsx)(u.A,{title:er,arrow:!0,placement:"top",children:(0,a.jsxs)(s.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"===ea?E.palette.error.main:E.palette.warning.main,boxShadow:E.shadows[2],pointerEvents:"auto"},children:["error"===ea?(0,a.jsx)(I.A,{sx:{fontSize:16}}):(0,a.jsx)(z.A,{sx:{fontSize:16}}),(0,a.jsx)(c.A,{variant:"caption",sx:{fontWeight:700,lineHeight:1},children:"error"===ea?Q:V})]})}),(0,a.jsx)(h.A,{onClick:()=>i(e.id),sx:{gridArea:"title",display:"block",minWidth:0,px:1.5,py:1.25,pl:D||G?5.5:1.5,pr:ea?7:1.5,borderBottom:`1px solid ${E.palette.divider}`},children:(0,a.jsx)(c.A,{variant:"h6",component:"div",noWrap:!0,title:e.name,children:e.name})}),(0,a.jsx)(h.A,{onClick:()=>i(e.id),"aria-label":H("flows.card.open",{name:e.name}),sx:{gridArea:"preview",minWidth:0,height:256,display:"flex",alignItems:"stretch"},children:(0,a.jsx)(F,{children:(()=>{if(0===e.nodes.length)return(0,a.jsx)(s.default,{sx:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,a.jsx)(c.A,{color:"textSecondary",align:"center",children:H("flows.card.nothing")})});let t=e.nodes.map(e=>e.position?.x??0),i=e.nodes.map(e=>e.position?.y??0),r=Math.min(...t),o=Math.min(...i),n=Math.max(...t)+180,l=Math.max(...i)+70,d=`${r-40} ${o-40} ${n-r+80} ${l-o+80}`,p=e=>({cx:(e.position?.x??0)+90,cy:(e.position?.y??0)+35});return(0,a.jsx)(s.default,{sx:{width:"100%",height:"100%",p:1},children:(0,a.jsxs)("svg",{width:"100%",height:"100%",viewBox:d,preserveAspectRatio:"xMidYMid meet",style:{display:"block"},children:[e.edges.map((t,i)=>{let r=e.nodes.find(e=>e.id===t.source),o=e.nodes.find(e=>e.id===t.target);if(!r||!o)return null;let n=p(r),l=p(o);return(0,a.jsx)("line",{x1:n.cx,y1:n.cy,x2:l.cx,y2:l.cy,stroke:E.palette.text.secondary,strokeWidth:2,opacity:.5,vectorEffect:"non-scaling-stroke"},t.id||i)}),e.nodes.map(e=>{let t=e.position?.x??0,i=e.position?.y??0,r=e.data?.type??"process",o=(0,M.M6)(r,E);return(0,a.jsxs)("g",{children:[(0,a.jsx)("rect",{x:t,y:i,width:180,height:70,rx:12,fill:o,opacity:.85,stroke:E.palette.background.paper,strokeWidth:2,vectorEffect:"non-scaling-stroke"}),(0,a.jsx)("text",{x:t+90,y:i+35,textAnchor:"middle",dominantBaseline:"central",fill:"#fff",fontSize:35,fontWeight:"bold",children:r.substring(0,1).toUpperCase()})]},e.id)})]})})})()})}),(0,a.jsx)(h.A,{onClick:()=>i(e.id),sx:{gridArea:"details",gridRow:_||G?"2 / 5":void 0,minWidth:0,display:"flex",alignItems:"stretch"},children:(0,a.jsxs)(x.A,{sx:{width:"100%",minWidth:0,p:1.5,"&:last-child":{pb:1.25}},children:[e.description?(0,a.jsx)(u.A,{title:e.description,placement:"bottom-start",children:(0,a.jsx)(c.A,{variant:"body2",color:"text.secondary",sx:{display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:e.description})}):(0,a.jsx)(c.A,{variant:"body2",color:"text.secondary",sx:{fontStyle:"italic"},children:H("flows.card.noDescription")}),(0,a.jsxs)(s.default,{sx:{display:"flex",gap:.5,mt:1.25,flexWrap:"wrap"},children:[(0,a.jsx)(g.A,{size:"small",label:q("flows.card.step",ee),color:"primary",variant:"outlined",sx:{fontSize:"0.7rem",height:20}}),et>0&&(0,a.jsx)(g.A,{size:"small",label:q("flows.card.subagent",et),color:"secondary",variant:"outlined",sx:{fontSize:"0.7rem",height:20}}),(0,a.jsx)(g.A,{size:"small",label:q("flows.card.signal",ei),variant:"outlined",sx:{fontSize:"0.7rem",height:20}})]})]})}),!_&&!G&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(f.A,{sx:{gridArea:"primary",gap:.75,px:1.25,pb:1,pt:0},children:[U&&(0,a.jsx)(v.A,{size:"small",variant:"contained",startIcon:(0,a.jsx)(S.A,{fontSize:"small"}),onClick:t=>{t.stopPropagation(),U&&U(e.id)},sx:{flex:1,minWidth:0},children:H("flows.card.use")}),(0,a.jsx)(v.A,{size:"small",variant:"outlined",startIcon:(0,a.jsx)(A.A,{fontSize:"small"}),onClick:t=>{t.stopPropagation(),b?b(e.id):i(e.id)},sx:{flex:1,minWidth:0},children:H("flows.card.edit")})]}),(0,a.jsxs)(f.A,{sx:{gridArea:"footer",justifyContent:"flex-end",gap:.25,px:1,py:.625,minHeight:42,borderTop:`1px solid ${E.palette.divider}`,backgroundColor:(0,l.X4)(E.palette.background.default,.55)},children:[n&&(0,a.jsx)(u.A,{title:H("flows.card.copy"),children:(0,a.jsx)(m.A,{size:"small",onClick:t=>{t.stopPropagation(),n&&n(e.id)},"aria-label":H("flows.card.copy"),children:(0,a.jsx)(y.A,{fontSize:"small"})})}),B&&(0,a.jsx)(u.A,{title:e.folder?H("flows.card.folder",{folder:e.folder}):H("flows.card.organize"),children:(0,a.jsx)(m.A,{size:"small",onClick:e=>{e.stopPropagation(),J(e.currentTarget)},color:e.folder?"primary":"default","aria-label":H("flows.card.move"),children:(0,a.jsx)(k.A,{fontSize:"small"})})}),o&&(0,a.jsx)(u.A,{title:H("flows.card.delete"),children:(0,a.jsx)(m.A,{size:"small",onClick:t=>{t.stopPropagation(),o&&o(e.id)},color:"error","aria-label":H("flows.card.delete"),children:(0,a.jsx)(w.A,{fontSize:"small"})})})]})]}),!_&&B&&(0,a.jsx)(T.A,{anchorEl:Z,open:!!Z,currentFolder:e.folder,folders:K,onClose:()=>J(null),onAssign:t=>B(e.id,t)})]})}},72968:(e,t,i)=>{i.d(t,{K:()=>o,NP:()=>s,ts:()=>n});var a=i(29598);function r(e){return e.updatedAt??e.createdAt??0}function o(e,t=Date.now()){if(!e)return{key:"recency:unknown",label:"No date"};let i=t-e;return i<864e5?{key:"recency:today",label:"Today"}:i<6048e5?{key:"recency:week",label:"This week"}:i<2592e6?{key:"recency:month",label:"This month"}:{key:"recency:older",label:"Older"}}function n(e,t){switch(t){case"name-asc":case"name-desc":return(0,a.po)(e.name);case"most-nodes":case"least-nodes":var i;return 0===(i=e.nodes.length)?{key:"nodes:0",label:"0 nodes"}:i<=2?{key:"nodes:1-2",label:"1–2 nodes"}:i<=5?{key:"nodes:3-5",label:"3–5 nodes"}:i<=10?{key:"nodes:6-10",label:"6–10 nodes"}:{key:"nodes:11+",label:"11+ nodes"};case"newest":case"oldest":return o(r(e));default:return{key:"all",label:"All flows"}}}function l(e,t){return e.name.localeCompare(t.name)||e.id.localeCompare(t.id)}function s(e,t){let i=(e,i)=>{switch(t){case"name-asc":return e.name.localeCompare(i.name);case"name-desc":return i.name.localeCompare(e.name);case"most-nodes":return i.nodes.length-e.nodes.length;case"least-nodes":return e.nodes.length-i.nodes.length;case"newest":{let t=r(i)-r(e);return 0!==t?t:l(e,i)}case"oldest":{let t=r(e)-r(i);return 0!==t?t:l(e,i)}default:return 0}};return[...e].sort((e,t)=>{let a=Number(!!t.favorite)-Number(!!e.favorite);return 0!==a?a:i(e,t)})}},81680:(e,t,i)=>{function a(e){return!!e&&e.includes("mcp")}function r(e){return!!e&&e.includes("resource")}function o(e){let t=e?.data?.edgeType;return"mcp"===t||"resource"===t}function n(e,t,i,o){if("trigger"===e&&"start"===i)return t&&"trigger-bottom"!==t?"Trigger nodes must connect via their bottom handle":o&&"start-top"!==o?"Trigger nodes must connect to the top handle of the Start node":null;if("trigger"===i)return"Trigger nodes cannot have incoming connections";if("trigger"===e&&"start"!==i)return"Trigger nodes can only connect to the Start node";if("start"===i)return"Start nodes cannot have incoming connections";if("finish"===e)return"Finish nodes cannot have outgoing connections";if("mcp"===e||"mcp"===i||a(t)||a(o))return("mcp"!==e||"process"!==i)&&("process"!==e||"mcp"!==i)?"MCP connections must link an MCP node to a Process node via MCP handles":"process"!==e||a(t)?null:"Connect MCP nodes from the Process node's left/right MCP handles";if("resource"===e||"resource"===i||r(t)||r(o)){if(("resource"!==e||"process"!==i)&&("process"!==e||"resource"!==i))return"Resource connections must link a Resource node to a Process node via resource handles";if("process"===e&&!r(t))return"Connect Resource nodes from the Process node's left/right resource handles"}return null}function l(e,t){return"mcp"===e&&"process-left-mcp"===t?"mcp-right":"mcp"===e&&"process-right-mcp"===t?"mcp-left":"resource"===e?"resource-in":"process"===e&&r(t)?"process-left-resource":"process"===e&&a(t)?"process-left-mcp":"start"===e?"start-top":`${e}-top`}function s(e,t){if("trigger"===e)return["start"];let i=["process","finish","mcp","subflow","resource","signal","trigger","static"];return e&&t?i.filter(i=>null===n(e,t,i,l(i,t))):i}i.d(t,{BY:()=>o,CW:()=>l,_w:()=>s,vC:()=>n,vM:()=>r,z5:()=>a})},89238:(e,t,i)=>{i.d(t,{T_:()=>s,g3:()=>n,xx:()=>l});let a=/(^|[/_-])(o[1-9]|gpt-5)(?:[./_-]|$)/i,r=/claude-(?:fable|mythos)-5|claude-opus-4-(?:[7-9]|\d{2,})|claude-sonnet-5/i,o=/^(?:opus|sonnet|fable)$|claude-(?:fable|mythos)-5|claude-opus-4-(?:[6-9]|\d{2,})|claude-sonnet-4-6/i;function n(e,t,i=""){let l=t||"openai",s=i.trim();if("codex-cli"===l)return{effortLevels:/^gpt-5\.6-(?:sol|terra)$/i.test(s)?["low","medium","high","xhigh","max","ultra"]:/^gpt-5\.6-/i.test(s)?["low","medium","high","xhigh","max"]:["low","medium","high","xhigh"],priority:!/(?:mini|spark|review)/i.test(s),maxOutputTokens:!1};if("claude-cli"===l)return{...o.test(s)?{effortLevels:["low","medium","high","xhigh","max"]}:{},maxOutputTokens:!1};if("anthropic"===l)return{...!r.test(s)?{creativity:{min:0,max:1,step:.1}}:{},...o.test(s)?{effortLevels:["low","medium","high","xhigh","max"]}:{},maxOutputTokens:!0};if("gemini"===l)return{creativity:{min:0,max:2,step:.1},.../^gemini-2\.5/i.test(s)?{thinkingBudget:!0}:!/^gemini-2\.0/i.test(s)?{thinkingLevels:["minimal","low","medium","high"]}:{},maxOutputTokens:!0};let d="openai"===(e||"openai")&&a.test(s);return{...!d?{creativity:{min:0,max:2,step:.1}}:{},...d?{effortLevels:["low","medium","high"]}:{},maxOutputTokens:!0}}let l=[{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 s(e,t){let i=e||"openai",a=t||"openai";return l.find(e=>e.provider===i&&e.adapter===a)||l.find(e=>e.provider===i)||l[0]}},90186:(e,t,i)=>{i.d(t,{z:()=>r});let a={"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","static-invalid-injectonce":"validation.staticInjectOnce"};function r(e,t){let i=a[e.code];return i?t(i,{node:e.nodeLabel??e.nodeId??""}):e.message}}}]);
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8457],{609:(e,t,a)=>{"use strict";a.d(t,{A:()=>f});var n=a(95155),r=a(12115),o=a(76010),l=a(64924),s=a(93385),i=a(89852),d=a(79935),c=a(65614),u=a(16909),h=a(67471),p=a(19800),g=a(6310);let f=({selectedFlowId:e,onSelectFlow:t,disabled:a=!1,hideLabel:f=!1,compact:m=!1,fullScreenPicker:x})=>{let{t:b}=(0,g.s9)(),[y,v]=(0,r.useState)([]),[w,A]=(0,r.useState)(!0),[j,k]=(0,r.useState)(null),[S,I]=(0,r.useState)(!1);(0,r.useEffect)(()=>{(async()=>{A(!0),k(null);try{let e=await c.g.loadFlows();v(e)}catch(e){console.error("Error loading flows:",e),k(b("chat.selector.loadFailed"))}finally{A(!1)}})()},[b]);let C=e=>{t(e),I(!1)},$=async e=>{let t=y.find(t=>t.id===e);if(!t)return;let a=!t.favorite,n={...t,favorite:a||void 0};try{(await c.g.updateFlow(n)).success&&v(t=>t.map(t=>t.id===e?n:t))}catch(e){console.error("Error toggling flow favorite:",e)}},M=(0,p.E)("flows",y),z=t=>({key:t.id,content:(0,n.jsx)(h.A,{flow:t,selected:t.id===e,onSelect:C,onToggleFavorite:$,pickerMode:!0})}),E=M.items.map(z),T=M.groups?M.groups.map(e=>({...e,items:e.items.map(z)})):null,N=(()=>{if(!e)return"";let t=y.find(t=>t.id===e);return t?t.name:""})();return(0,n.jsxs)(o.default,{sx:{minWidth:0},children:[!f&&!m&&(0,n.jsx)(l.A,{variant:"subtitle1",gutterBottom:!0,children:b("chat.selector.title")}),w?(0,n.jsxs)(o.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,n.jsx)(s.default,{size:20}),(0,n.jsx)(l.A,{variant:"body2",color:"text.secondary",children:b("chat.selector.loading")})]}):j?(0,n.jsx)(l.A,{color:"error",variant:"body2",children:j}):0===y.length?(0,n.jsx)(l.A,{variant:"body2",color:"text.secondary",children:b("chat.selector.empty")}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.A,{variant:"outlined",size:m?"small":"medium",startIcon:(0,n.jsx)(d.A,{}),onClick:()=>I(!0),disabled:a,sx:{textTransform:"none",maxWidth:"100%",minWidth:0,...m&&{minHeight:36,px:1.25}},children:(0,n.jsx)(o.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e&&N||b("chat.selector.title")})}),!m&&(0,n.jsx)(l.A,{variant:"caption",color:"text.secondary",display:"block",sx:{mt:.5},children:e?b("chat.selector.using",{agent:N}):b("chat.selector.help")}),(0,n.jsx)(u.A,{open:S,onClose:()=>I(!1),fullScreen:x??m,title:b("chat.selector.title"),description:b("chat.selector.dialogHelp"),skeleton:(0,n.jsx)(h.o,{}),emptyMessage:b("chat.selector.empty"),searchable:!0,searchPlaceholder:b("flows.dashboard.search"),searchTerm:M.searchTerm,onSearchChange:M.setSearchTerm,items:E,groups:T,collapsedKeys:M.collapsedKeys,onToggleGroup:M.toggleGroup})]})]})}},13658:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(95155),r=a(12115);let o=(0,a(49103).h)("frontend/components/ClientOnly");function l({children:e}){let[t,a]=(0,r.useState)(!1);return((0,r.useEffect)(()=>(o.debug("ClientOnly component mounted"),a(!0),()=>{o.debug("ClientOnly component unmounted")}),[]),t)?(o.debug("ClientOnly component rendering children"),(0,n.jsx)(n.Fragment,{children:e})):(o.debug("ClientOnly component rendering null (not yet mounted)"),null)}},24111:(e,t,a)=>{"use strict";a.d(t,{mO:()=>o,oO:()=>l});var n=a(29598);let r=["stdio","websocket","sse","streamable"];function o(e,t){switch(t){case"name-asc":case"name-desc":return(0,n.po)(e.name);case"status-connected":case"status-disconnected":{let t=e.status;if("connected"===t)return{key:"status:connected",label:"Connected"};if("error"===t)return{key:"status:error",label:"Error"};if("requires_authentication"===t)return{key:"status:auth",label:"Requires authentication"};return{key:"status:disconnected",label:"Disconnected"}}case"transport":{let t=e.transport||"unknown";return{key:`transport:${t}`,label:({stdio:"Stdio",websocket:"WebSocket",sse:"SSE",streamable:"Streamable HTTP"})[t]||t}}default:return{key:"all",label:"All servers"}}}function l(e,t){let a=(e,a)=>{switch(t){case"name-asc":return e.name.localeCompare(a.name);case"name-desc":return a.name.localeCompare(e.name);case"status-connected":if("connected"===e.status&&"connected"!==a.status)return -1;if("connected"!==e.status&&"connected"===a.status)return 1;return e.name.localeCompare(a.name);case"status-disconnected":if("disconnected"===e.status&&"disconnected"!==a.status)return -1;if("disconnected"!==e.status&&"disconnected"===a.status)return 1;return e.name.localeCompare(a.name);case"transport":{let t=r.indexOf(e.transport??""),n=r.indexOf(a.transport??"");if(t!==n)return t-n;return e.name.localeCompare(a.name)}default:return 0}};return[...e].sort((e,t)=>{let n=Number(!!t.favorite)-Number(!!e.favorite);return 0!==n?n:a(e,t)})}},79415:(e,t,a)=>{Promise.resolve().then(a.bind(a,87653))},87653:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>ni});var n=a(95155),r=a(12115),o=a(32020),l=a(73321),s=a(44469),i=a(76010),d=a(89852),c=a(93385),u=a(72636),h=a(64924),p=a(40323),g=a(32782),f=a(12502),m=a(91216),x=a(95473),b=a(66808),y=a(25404),v=a(83793),w=a(69288),A=a(85930),j=a(37156),k=a(4061),S=a(74786),I=a(66301);let C=["top","up","bottom"];var $=a(2501),M=a(99637),z=a(56358),E=a(19418),T=a(95462),N=a(45941),D=a(6950),R=a(97533),O=a(79935),P=a(81163),F=a(17776),W=a(16079),_=a(82150),q=a(7880),H=a(6438),B=a(85876),L=a(45483),U=a(87696),K=a(1507),X=a(61281),J=a(61775),G=a(78674),V=a(72133),Y=a(82325),Q=a(83550),Z=a(59035),ee=a(47863),et=a(78487),ea=a(76628),en=a(97131),er=a(61041),eo=a(47208),el=a(63514),es=a(39612),ei=a(68263),ed=a(10600),ec=a(33801),eu=a(21223),eh=a(82998),ep=a(18298),eg=a(89848),ef=a(38065),em=a(33228),ex=a(46508);function eb(e){return"string"==typeof e&&e.startsWith("quickchat-")}a(77483);var ey=a(62510),ev=a(72968),ew=a(29598);let eA="wave:__adhoc__",ej="wave:__archived__";var ek=a(90015),eS=a(5704),eI=a(6310);function eC({nodes:e,childrenByParent:t,renderItem:a,expanded:r,onToggle:o,depth:l=0,visited:s,maxDepth:d=20,parent:c}){let{t:u}=(0,eI.s9)(),f=(0,j.A)();if(!e||0===e.length||l>d)return null;let m=s??new Set;return(0,n.jsx)(n.Fragment,{children:e.map((s,x)=>{if(m.has(s.id))return null;let b=t.get(s.id)??[],y=b.length>0&&l<d,v=!1!==r[s.id],w=new Set(m);w.add(s.id);let A=x===e.length-1,j=(0,eS.X4)(f.palette.primary.main,"dark"===f.palette.mode?.5:.34);return(0,n.jsxs)(i.default,{"data-tree-depth":l,sx:{position:"relative",pl:3.25*(l>0),...l>0?{"&::before":{content:'""',position:"absolute",left:12,top:0,bottom:A?"calc(100% - 31px)":0,borderLeft:`2px solid ${j}`},"&::after":{content:'""',position:"absolute",left:12,top:30,width:14,borderTop:`2px solid ${j}`,borderTopLeftRadius:6}}:{}},children:[l>0&&c&&(0,n.jsx)(p.A,{title:u("chat.chain.childOf",{title:c.title}),children:(0,n.jsxs)(h.A,{variant:"caption",color:"text.secondary",noWrap:!0,sx:{display:"block",ml:4.25,mb:.15,maxWidth:"calc(100% - 40px)",fontWeight:650},children:["↳ ",u("chat.chain.childOf",{title:c.title})]})}),(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"flex-start"},children:[y?(0,n.jsx)(g.A,{size:"small",onClick:()=>o(s.id),"aria-label":v?u("chat.chain.collapse"):u("chat.chain.expand"),sx:{mt:.5,flexShrink:0,zIndex:1,border:"1px solid",borderColor:j,bgcolor:"background.paper","&:hover":{bgcolor:"action.hover"}},children:v?(0,n.jsx)(et.A,{fontSize:"small"}):(0,n.jsx)(ee.A,{fontSize:"small"})}):(0,n.jsx)(i.default,{sx:{width:34,flexShrink:0}}),(0,n.jsx)(i.default,{sx:{flex:1,minWidth:0},children:a(s,l)})]}),y&&(0,n.jsx)(J.A,{in:v,timeout:"auto",unmountOnExit:!0,children:(0,n.jsx)(eC,{nodes:b,childrenByParent:t,renderItem:a,expanded:r,onToggle:o,depth:l+1,visited:w,maxDepth:d,parent:s})})]},s.id)})})}var e$=a(89228),eM=a(94370);let ez={chat:{label:"User chat",description:"Started interactively from the chat workspace"},api:{label:"API",description:"Started through the chat completions API"},schedule:{label:"Automation",description:"Started by a planned execution or automation trigger"},trigger:{label:"Trigger",description:"Started by an unattended runtime trigger"},subflow:{label:"Subagent",description:"Spawned as a subagent by another conversation"},mcp:{label:"MCP run",description:"Started through FLUJO's MCP interface"},internal:{label:"Internal",description:"Started by an internal FLUJO tool"},meeting:{label:"Meeting",description:"Participated in a multi-flow meeting"},unknown:{label:"Unknown origin",description:"Origin metadata was not recorded for this older conversation"}};function eE(e,t){return{key:e,...ez[e],inferred:t}}function eT(e){return e.source&&e.source in ez?eE(e.source,!1):e.parentConversationId?eE("subflow",!0):e.plannedExecutionId?eE("schedule",!0):eE("unknown",!0)}var eN=a(94111),eD=a(18540),eR=a(57643),eO=a(43409);let eP=["all","running","awaiting_tool_approval","paused_debug","completed","error"],eF=["all","today","7d","30d"],eW=["none","date","flow","origin","wave","chain"],e_=["all","chat","schedule","subflow","meeting"],eq={chat:er.A,api:ei.A,schedule:eo.A,trigger:es.A,subflow:el.A,mcp:ed.A,internal:ec.A,meeting:eu.A,unknown:eh.A},eH=r.memo(({conversations:e,totalConversations:t=e.length,hasMoreConversations:a=!1,isLoadingMore:o=!1,onLoadMore:l,onLoadAll:s,currentConversationId:u,revealRequest:f=null,onSelectConversation:k,onDeleteConversation:S,onBulkDelete:I,onStopConversation:C,onNewConversation:M,onQuickChat:z,onCollapse:E,collapsed:D=!1,flowNames:R={}})=>{let{t:O,tp:P,formatDate:F}=(0,eI.s9)(),W=(0,j.A)(),{visualStyle:er}=(0,eM.useTheme)(),eo="modern"===er,[el,es]=r.useState(""),ei=(0,eO.j)(),[ed,ec]=r.useState({open:!1,ids:[],label:""}),[eu,eh]=r.useState(!1),[ez,eE]=r.useState(null),[eH,eB]=r.useState({open:!1,parent:null,descendantIds:[],lookupFailed:!1}),[eL,eU]=(0,ek.Io)("flujo-ui:chat-sidebar:search-dim","title"),[eK,eX]=r.useState(null),[eJ,eG]=r.useState(!1),[eV,eY]=r.useState(!1),[eQ,eZ]=r.useState(null),e0=r.useRef(null),[e1,e2]=(0,ek.Io)("flujo-ui:chat-sidebar:group","none"),[e5,e4]=(0,ek.Io)("flujo-ui:chat-sidebar:status","all"),[e6,e3]=(0,ek.Io)("flujo-ui:chat-sidebar:flow","all"),[e8,e7]=(0,ek.Io)("flujo-ui:chat-sidebar:date","all"),[e9,te]=(0,ek.Io)("flujo-ui:chat-sidebar:origin","all"),[tt,ta]=(0,ek.Io)("flujo-ui:chat-sidebar:filters-open",!1),[tn,tr]=(0,ek.Io)("flujo-ui:chat-sidebar:collapsed",{}),to=el.trim(),tl=`${eL}\u0000${e9}\u0000${to}`,ts=to.length>0&&eK?.key===tl?eK:null,ti=to.length>0?ts?.items??[]:e,[td,tc]=r.useState(null),tu=(0,r.useMemo)(()=>ti.map(e=>`${e.id}:${e.plannedExecutionId??""}`).join("\0"),[ti]);r.useEffect(()=>{if("wave"!==e1)return;let e=!1;return fetch("/api/waves").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&tc(t)}).catch(()=>{}),()=>{e=!0}},[e1,tu]);let th=(0,r.useMemo)(()=>(function(e){let t=new Map;if(!e?.waves)return t;for(let a of e.waves){let e=a.rootExecutionIds?.[0],n=e&&a.nodes.find(t=>t.executionId===e)||a.nodes[0],r=n?.name||n?.flowName||a.id;for(let e of a.nodes)t.set(e.executionId,{waveId:a.id,label:r})}return t})(td),[td]);r.useEffect(()=>{if(0===to.length){e0.current?.abort(),e0.current=null,eX(null),eZ(null),eG(!1),eY(!1);return}let e=`${eL}\u0000${e9}\u0000${to}`,t=new AbortController;e0.current?.abort(),e0.current=t,eX(null),eZ(null),eG(!0),eY(!1);let a=setTimeout(()=>{eD.O.listConversationPage({limit:50,search:to,dimension:eL,..."all"!==e9?{origin:e9}:{},signal:t.signal}).then(a=>{t.signal.aborted||eX({key:e,...a})}).catch(a=>{t.signal.aborted||a?.name==="AbortError"||(eX({key:e,items:[],total:0,hasMore:!1}),eZ(e))}).finally(()=>{e0.current!==t||t.signal.aborted||eG(!1)})},300);return()=>{clearTimeout(a),t.abort(),e0.current===t&&(e0.current=null)}},[to,eL,e9]);let tp=r.useCallback(async()=>{let e=e0.current;if(ts?.hasMore&&ts.nextCursor&&e&&!e.signal.aborted&&!eV){eY(!0),eZ(null);try{let t=await eD.O.listConversationPage({limit:50,cursor:ts.nextCursor,search:to,dimension:eL,..."all"!==e9?{origin:e9}:{},signal:e.signal});if(e.signal.aborted)return;eX(e=>{if(!e||e.key!==tl)return e;let a=new Set(e.items.map(e=>e.id)),n=t.items.filter(e=>!a.has(e.id));return{key:tl,...t,items:[...e.items,...n]}})}catch(t){if(e.signal.aborted||t?.name==="AbortError")return;eZ(tl)}finally{e0.current!==e||e.signal.aborted||eY(!1)}}},[ts,eV,e9,eL,tl,to]),tg=r.useCallback(e=>O(`chat.origin.${e}`),[O]),tf=r.useCallback(e=>O(`chat.origin.description.${e}`),[O]),tm=r.useCallback(e=>"all"===e?O("chat.history.anyOrigin"):"subflow"===e?O("chat.history.originSubflow"):tg(e),[tg,O]),tx=r.useCallback(e=>e?eb(e)?{key:"flow:__quickchat__",label:O("chat.quick.title")}:{key:`flow:${e}`,label:R[e]??O("chat.history.unknownAgent")}:{key:"flow:__none__",label:O("chat.history.noAgent")},[R,O]),tb=(0,r.useMemo)(()=>{let e=new Map;for(let t of ti){let a=tx(t.flowId);e.has(a.key)||e.set(a.key,a.label)}return Array.from(e.entries()).map(([e,t])=>({key:e,label:t})).sort((e,t)=>e.label.localeCompare(t.label))},[ti,tx]),ty=r.useCallback(e=>{let t=Date.now(),a="today"===e8?t-864e5:"7d"===e8?t-6048e5:"30d"===e8?t-2592e6:0;return e.filter(e=>("all"===e5||e.status===e5)&&("all"===e6||tx(e.flowId).key===e6)&&("all"===e9||eT(e).key===e9)&&(!a||!(e.updatedAt<a))).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))},[e5,e6,e9,e8,tx]),tv=(0,r.useMemo)(()=>ty(ti),[ty,ti]),tw=(0,r.useMemo)(()=>{if("none"===e1)return[{key:"all",label:"",items:tv}];if("wave"===e1){var e;let t;return(e=(0,ew.Az)(tv,e=>(function(e,t){if(!e)return{key:eA,label:"Ad-hoc"};let a=t.get(e);return a?{key:`wave:${a.waveId}`,label:a.label}:{key:ej,label:"Archived / no longer scheduled"}})(e.plannedExecutionId,th)),t=new Set([eA,ej]),[...e.filter(e=>!t.has(e.key)),...e.filter(e=>t.has(e.key))]).map(e=>({...e,label:"wave:__adhoc__"===e.key?O("chat.group.adhoc"):"wave:__archived__"===e.key?O("chat.group.archived"):e.label}))}return(0,ew.Az)(tv,e=>{if("date"===e1){let t=(0,ev.K)(e.updatedAt),a={"recency:unknown":O("flows.group.noDate"),"recency:today":O("flows.group.today"),"recency:week":O("flows.group.week"),"recency:month":O("flows.group.month"),"recency:older":O("flows.group.older")};return{...t,label:a[t.key]??t.label}}if("origin"===e1){let t=eT(e);return{key:`origin:${t.key}`,label:tg(t.key)}}return tx(e.flowId)})},[tv,e1,tx,th,tg,O]),tA=(0,r.useMemo)(()=>"chain"===e1?(0,e$.C)(tv):{roots:[],childrenByParent:new Map,detachedIds:new Set},[e1,tv]),[tj,tk]=r.useState({}),tS=r.useCallback(e=>{tk(t=>({...t,[e]:!1===t[e]}))},[]),tI=(0,r.useMemo)(()=>{let e=new Map;if("wave"!==e1)return e;for(let t of tw)e.set(t.key,(0,e$.C)(t.items));return e},[e1,tw]),tC=(0,r.useMemo)(()=>{let e=new Set;return"chain"===e1?tA.childrenByParent.forEach((t,a)=>e.add(a)):"wave"===e1&&tI.forEach(t=>{t.childrenByParent.forEach((t,a)=>e.add(a))}),[...e]},[tA,e1,tI]),t$=r.useCallback(e=>{tk(t=>{let a={...t};return tC.forEach(t=>{a[t]=e}),a}),"wave"===e1&&tr(t=>{let a={...t};return tw.forEach(t=>{a[t.key]=!e}),a})},[tC,e1,tw,tr]),tM="chain"===e1&&tC.length>0||"wave"===e1&&tw.length>0,tz=r.useRef(null),tE=r.useRef(null),tT=r.useRef(null),tN=r.useRef(0),[tD,tR]=r.useState(0);r.useEffect(()=>{if(!f)return;let{id:e,requestKey:t}=f;if(tE.current===t||e!==u||(tT.current!==t&&(tT.current=t,tN.current=0),!tv.some(t=>t.id===e)))return;let a="none"!==e1&&"chain"!==e1?tw.find(t=>t.items.some(t=>t.id===e)):void 0;if(a&&tn[a.key])return void tr(e=>e[a.key]?{...e,[a.key]:!1}:e);let n="chain"===e1?tA:a?tI.get(a.key):void 0;if(n){let t=new Map;for(let[e,a]of n.childrenByParent)for(let n of a)t.set(n.id,e);let a=[],r=new Set([e]),o=t.get(e);for(;o&&!r.has(o);)r.add(o),!1===tj[o]&&a.push(o),o=t.get(o);if(a.length>0)return void tk(e=>{let t={...e};for(let e of a)t[e]=!0;return t})}let r=window.requestAnimationFrame(()=>{let a=tz.current?Array.from(tz.current.querySelectorAll("[data-conversation-id]")).find(t=>t.getAttribute("data-conversation-id")===e):void 0;if(a){tE.current=t,a.scrollIntoView({block:"nearest",behavior:"auto"});return}if(tN.current+=1,tN.current>=10){tE.current=t;return}tR(e=>e+1)});return()=>window.cancelAnimationFrame(r)},[f,u,tv,tw,e1,tn,tr,tA,tI,tj,tD]);let tO=+("all"!==e5)+ +("all"!==e6)+ +("all"!==e9)+ +("all"!==e8),tP=tO+ +("none"!==e1),tF=(e,t)=>{let a,r,o=t?.detached===!0,l=!!C&&("running"===e.status||"awaiting_tool_approval"===e.status),s=tx(e.flowId),d="flow:__quickchat__"===s.key,f=e.id===u,m=eT(e),b=tg(m.key),y=tf(m.key),v=eq[m.key],w=function(e,t){switch(e){case"subflow":return t.palette.warning.main;case"schedule":case"trigger":return eN.L.light.signal;case"mcp":return t.palette.info.main;case"meeting":return t.palette.secondary.main;default:return t.palette.primary.main}}(m.key,W),A=function(e,t){switch(e){case"running":return t.palette.primary.main;case"awaiting_tool_approval":return t.palette.warning.main;case"paused_debug":return t.palette.secondary.main;case"completed":return t.palette.success.main;case"capped":return t.palette.info.main;case"error":return t.palette.error.main;default:return t.palette.text.disabled}}(e.status,W),j=f?"dark"===W.palette.mode?.38:.3:"dark"===W.palette.mode?.3:.23;return(0,n.jsx)(_.Ay,{"data-conversation-id":e.id,"data-conversation-origin":m.key,disablePadding:!0,secondaryAction:(0,n.jsxs)(i.default,{className:"conversation-card-actions",sx:eo?{display:"flex",zIndex:2,gap:.25,opacity:+!!f,transition:"opacity 160ms ease",bgcolor:(0,eS.X4)(W.palette.background.paper,.72),borderRadius:2,backdropFilter:"blur(12px)","& .MuiIconButton-root":{width:30,height:30}}:{display:"flex"},children:[l&&(0,n.jsx)(p.A,{title:O("chat.history.stop"),children:(0,n.jsx)(g.A,{edge:"end",size:"small","aria-label":O("chat.history.stop"),onClick:t=>{t.stopPropagation(),C(e.id)},children:(0,n.jsx)(T.A,{color:"error",fontSize:"small"})})}),(0,n.jsx)(ey.A,{target:{kind:"conversation",id:e.id}}),(0,n.jsx)(p.A,{title:O("chat.history.delete"),children:(0,n.jsx)(g.A,{edge:"end",size:"small","aria-label":O("chat.history.delete"),disabled:ez===e.id,onClick:t=>{t.stopPropagation(),tL(e)},children:ez===e.id?(0,n.jsx)(c.default,{size:16}):(0,n.jsx)(V.A,{fontSize:"small"})})})]}),sx:eo?{position:"relative",mb:.9,border:"1px solid",borderColor:f?(0,eS.X4)(w,.68):(0,eS.X4)(w,.32),borderRadius:2.5,overflow:"hidden",opacity:1,bgcolor:(0,eS.X4)(W.palette.background.paper,"dark"===W.palette.mode?.72:.82),backgroundImage:(a=(0,eS.X4)(w,j),r=(0,eS.X4)(A,j),`linear-gradient(90deg, ${a} 0%, ${a} 90%, ${r} 90%, ${r} 100%)`),boxShadow:f?`0 10px 30px ${(0,eS.X4)(w,.24)}`:`0 5px 20px ${(0,eS.X4)(w,"dark"===W.palette.mode?.12:.08)}`,transition:"transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease","&::before":{content:'""',position:"absolute",inset:"10px auto 10px 0",width:f?4:3,borderRadius:"0 4px 4px 0",bgcolor:w},"&::after":{content:'""',position:"absolute",zIndex:0,top:0,bottom:0,left:"90%",width:1,bgcolor:(0,eS.X4)(A,.5),pointerEvents:"none"},"&:hover":{transform:"translateY(-1px)",borderColor:(0,eS.X4)(w,.58),boxShadow:`0 10px 28px ${(0,eS.X4)(w,"dark"===W.palette.mode?.2:.14)}`,"& .conversation-card-actions":{opacity:1}},"&:focus-within .conversation-card-actions":{opacity:1},"@media (hover: none)":{"& .conversation-card-actions":{opacity:1}},"& > .MuiListItemSecondaryAction-root":{zIndex:2}}:{opacity:f?1:.7,"& > .MuiListItemSecondaryAction-root":{zIndex:2}},children:(0,n.jsx)(q.A,{selected:f,onClick:()=>k(e.id),"aria-label":O("chat.history.openAria",{title:e.title,origin:b,status:(e=>{switch(e){case"running":return O("chat.status.processing");case"awaiting_tool_approval":return O("chat.status.waitingTooltip");case"paused_debug":return O("chat.status.pausedTooltip");case"completed":return O("chat.status.completed");case"capped":return O("chat.status.capped");case"error":return O("chat.status.error");default:return""}})(e.status)||O("chat.history.unknown")}),sx:{position:"relative",zIndex:1,pr:l?12:7,px:eo?1.5:2,py:eo?1.25:1,alignItems:"flex-start",borderRadius:"inherit","&.Mui-selected":{bgcolor:"transparent"},"&.Mui-selected:hover":{bgcolor:(0,eS.X4)(W.palette.primary.main,.04)}},children:(0,n.jsx)(H.A,{sx:{my:0,minWidth:0},primary:(0,n.jsx)(i.default,{sx:{display:"flex",alignItems:"center"},children:(0,n.jsx)(p.A,{title:e.title,enterDelay:500,children:(0,n.jsx)(h.A,{component:"span",fontWeight:f?760:eo?650:"normal",sx:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",wordBreak:"break-word",fontSize:eo?"0.9rem":void 0,lineHeight:eo?1.35:void 0},children:e.title})})}),secondary:(0,n.jsxs)(i.default,{component:"span",sx:{display:"flex",alignItems:"center",gap:.75,mt:.8,flexWrap:"wrap"},children:["origin"!==e1&&(0,n.jsx)(p.A,{title:`${y}${m.inferred?` (${O("chat.history.inferred")})`:""}`,children:(0,n.jsx)(x.A,{icon:(0,n.jsx)(v,{}),label:b,size:"small",variant:"outlined",sx:{height:eo?22:20,color:eo?w:void 0,borderColor:eo?(0,eS.X4)(w,.72):void 0,bgcolor:eo?(0,eS.X4)(w,.13):void 0,"& .MuiChip-icon":{fontSize:14,color:eo?w:void 0},"& .MuiChip-label":{px:.75,fontSize:"0.68rem",fontWeight:eo?700:500}}})}),o&&(0,n.jsx)(p.A,{title:O("chat.chain.detachedHelp"),children:(0,n.jsx)(x.A,{icon:(0,n.jsx)(eg.A,{}),label:O("chat.chain.detached"),size:"small",variant:"outlined",sx:{height:eo?22:20,color:W.palette.text.secondary,borderColor:(0,eS.X4)(W.palette.text.secondary,.45),borderStyle:"dashed","& .MuiChip-icon":{fontSize:14,color:W.palette.text.secondary},"& .MuiChip-label":{px:.75,fontSize:"0.68rem",fontWeight:eo?700:500}}})}),"flow"!==e1&&(0,n.jsx)(p.A,{title:d?O("chat.history.quickNoAgent"):O("chat.history.agentNamed",{agent:s.label}),children:(0,n.jsx)(x.A,{icon:d?(0,n.jsx)($.A,{}):void 0,label:s.label,size:"small",variant:"outlined",color:d?"secondary":"default",sx:{maxWidth:"100%",height:eo?22:20,"& .MuiChip-icon":{fontSize:14},"& .MuiChip-label":{px:.75,fontSize:"0.68rem"}}})}),(0,n.jsxs)(i.default,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.35,ml:"auto"},children:[eo&&(0,n.jsx)(ep.A,{"aria-hidden":"true",sx:{fontSize:13,color:"text.disabled"}}),(0,n.jsx)(h.A,{component:"span",variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:F(e.updatedAt,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})]})]}),secondaryTypographyProps:{component:"div"}})})},e.id)},tW=to.length>0,t_=eQ===tl,tq=tW&&!ts&&!t_,tH=tW?ts?.total??0:t,tB=tv.length,tL=async n=>{if(ez)return;eE(n.id);let r=new Set(function(e,t){let a=new Map;for(let t of e){let e=t.parentConversationId;if(!e||e===t.id)continue;let n=a.get(e)??[];n.push(t.id),a.set(e,n)}let n=new Set,r=[...a.get(t)??[]];for(;r.length>0;){let e=r.pop();e===t||n.has(e)||(n.add(e),r.push(...a.get(e)??[]))}return[...n]}(Array.from(new Map([...e,...ti].map(e=>[e.id,e])).values()),n.id)),o=!a&&e.length>=t;try{o||(await eD.O.listAllConversationPages({descendantsOf:n.id})).forEach(e=>r.add(e.id));let e=[...r];if(0===e.length)return void S(n.id);eB({open:!0,parent:n,descendantIds:e,lookupFailed:!1})}catch{eB({open:!0,parent:n,descendantIds:[...r],lookupFailed:!0})}finally{eE(null)}},tU=async()=>{eh(!0);try{let t=s?await s():e;ec({open:!0,ids:t.map(e=>e.id),label:P("chat.history.deleteAllQuestion",t.length)})}finally{eh(!1)}},tK=async()=>{eh(!0);try{let t=tW?await eD.O.listAllConversationPages({search:to,dimension:eL,..."all"!==e9?{origin:e9}:{}}):s?await s():e,a=ty(t);ec({open:!0,ids:a.map(e=>e.id),label:P("chat.history.deleteVisibleQuestion",a.length)})}finally{eh(!1)}};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(i.default,{sx:{p:eo?2:1.5,display:"flex",justifyContent:"space-between",alignItems:"center",gap:eo?1:.7,background:eo?`linear-gradient(135deg, ${(0,eS.X4)(W.palette.primary.main,.14)}, ${(0,eS.X4)(W.palette.secondary.main,.05)} 58%, transparent)`:"linear-gradient(120deg, rgba(139,124,255,.09), transparent 62%)"},children:[E&&(0,n.jsx)(p.A,{title:D?O("chat.history.expand"):O("chat.history.collapse"),children:(0,n.jsx)(g.A,{size:"small",onClick:E,"aria-label":D?O("chat.history.expand"):O("chat.history.collapse"),children:(0,n.jsx)(N.A,{})})}),(0,n.jsxs)(i.default,{sx:{flex:1,minWidth:0},children:[(0,n.jsx)(h.A,{variant:"caption",sx:{display:"block",color:"primary.light",fontWeight:760,letterSpacing:".1em"},children:O("chat.history.agentRuns")}),(0,n.jsx)(h.A,{variant:"h6",noWrap:!0,children:O("chat.history.title")})]}),t>0&&(0,n.jsx)(p.A,{title:O("chat.history.deleteAll"),children:(0,n.jsx)("span",{children:(0,n.jsx)(g.A,{size:"small",color:"error","aria-label":O("chat.history.deleteAll"),disabled:eu,onClick:()=>void tU(),children:(0,n.jsx)(ea.A,{fontSize:"small"})})})}),tv.length>0&&(tW||tO>0)&&(0,n.jsx)(p.A,{title:O("chat.history.deleteVisible"),children:(0,n.jsx)("span",{children:(0,n.jsx)(g.A,{size:"small",color:"error","aria-label":O("chat.history.deleteVisible"),disabled:eu,onClick:()=>void tK(),children:(0,n.jsx)(en.A,{fontSize:"small"})})})}),z&&(0,n.jsx)(p.A,{title:O("chat.history.quickHelp"),children:(0,n.jsx)(d.A,{variant:"outlined",color:"primary",startIcon:(0,n.jsx)($.A,{}),onClick:z,size:"small",children:O("chat.history.quick")})}),(0,n.jsx)(d.A,{variant:"contained",color:"primary",startIcon:(0,n.jsx)(Y.A,{}),onClick:M,size:"small",children:O("chat.history.new")})]}),(0,n.jsx)(B.A,{}),(0,n.jsxs)(i.default,{sx:{px:1.5,pt:1.5,pb:1.2,display:"flex",flexDirection:"column",gap:1,bgcolor:eo?(0,eS.X4)(W.palette.background.paper,.22):"rgba(127,127,160,.035)"},children:[(0,n.jsx)(eR.A,{mode:"container",children:(0,n.jsxs)(i.default,{sx:{display:"flex",gap:1},children:[(0,n.jsx)(m.A,{size:"small",sx:{flex:1},inputRef:ei,placeholder:"content"===eL?O("chat.history.searchContent"):O("chat.history.searchTitle"),value:el,onChange:e=>es(e.target.value),InputProps:{startAdornment:(0,n.jsx)(L.A,{position:"start",children:(0,n.jsx)(Q.A,{fontSize:"small"})}),endAdornment:el||eJ?(0,n.jsxs)(L.A,{position:"end",children:[eJ&&(0,n.jsx)(c.default,{size:16,"aria-label":O("chat.history.searching")}),el&&(0,n.jsx)(g.A,{size:"small","aria-label":O("chat.history.clearSearch"),onClick:()=>es(""),children:(0,n.jsx)(Z.A,{fontSize:"small"})})]}):void 0}}),(0,n.jsx)(U.A,{size:"small",sx:{minWidth:100},children:(0,n.jsxs)(K.A,{value:eL,onChange:e=>eU(e.target.value),inputProps:{"aria-label":O("chat.history.searchDimension")},children:[(0,n.jsx)(X.A,{value:"title",children:O("chat.history.searchTitleOption")}),(0,n.jsx)(X.A,{value:"content",children:O("chat.history.searchContentOption")})]})})]})}),(0,n.jsxs)(d.A,{size:"small",color:"inherit",startIcon:(0,n.jsx)(ef.A,{}),endIcon:tt?(0,n.jsx)(et.A,{}):(0,n.jsx)(ee.A,{}),"aria-expanded":tt,"aria-controls":"chat-sidebar-filter-controls",onClick:()=>ta(e=>!e),sx:{alignSelf:"stretch",justifyContent:"flex-start",color:"text.secondary"},children:[O("chat.history.filters"),tP>0&&(0,n.jsx)(x.A,{label:tP,size:"small",color:"primary",sx:{ml:1,height:20,"& .MuiChip-label":{px:.75}}})]}),(0,n.jsx)(J.A,{in:tt,timeout:"auto",children:(0,n.jsxs)(i.default,{id:"chat-sidebar-filter-controls",sx:{display:"flex",flexWrap:"wrap",gap:1},children:[(0,n.jsx)(U.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,n.jsx)(K.A,{value:e1,onChange:e=>e2(e.target.value),inputProps:{"aria-label":O("chat.history.groupAria")},children:eW.map(e=>(0,n.jsx)(X.A,{value:e,children:{none:O("chat.group.none"),date:O("chat.group.date"),flow:O("chat.group.agent"),origin:O("chat.group.origin"),wave:O("chat.group.wave"),chain:O("chat.group.chain")}[e]},e))})}),(0,n.jsx)(U.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,n.jsx)(K.A,{value:e5,onChange:e=>e4(e.target.value),inputProps:{"aria-label":O("chat.history.filterStatus")},children:eP.map(e=>(0,n.jsx)(X.A,{value:e,children:{all:O("chat.status.any"),running:O("chat.status.processing"),awaiting_tool_approval:O("chat.status.awaiting"),paused_debug:O("chat.status.paused"),completed:O("chat.status.completed"),capped:O("chat.status.capped"),error:O("chat.status.error")}[e]},e))})}),(0,n.jsx)(U.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,n.jsxs)(K.A,{value:tb.some(e=>e.key===e6)?e6:"all",onChange:e=>e3(e.target.value),inputProps:{"aria-label":O("chat.history.filterAgent")},children:[(0,n.jsx)(X.A,{value:"all",children:O("chat.history.anyAgent")}),tb.map(e=>(0,n.jsx)(X.A,{value:e.key,children:e.label},e.key))]})}),(0,n.jsx)(U.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,n.jsx)(K.A,{value:e9,onChange:e=>te(e.target.value),inputProps:{"aria-label":O("chat.history.filterOrigin")},children:e_.map(e=>(0,n.jsx)(X.A,{value:e,children:tm(e)},e))})}),(0,n.jsx)(U.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,n.jsx)(K.A,{value:e8,onChange:e=>e7(e.target.value),inputProps:{"aria-label":O("chat.history.filterDate")},children:eF.map(e=>(0,n.jsx)(X.A,{value:e,children:{all:O("chat.date.any"),today:O("chat.date.day"),"7d":O("chat.date.week"),"30d":O("chat.date.month")}[e]},e))})})]})}),(tW||tO>0)&&(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(h.A,{variant:"caption",color:"text.secondary",children:tq||eJ?O("chat.history.searching"):t_?O("chat.history.searchFailed"):O("chat.history.matchCount",{shown:tB,total:tH})}),(0,n.jsx)(d.A,{size:"small",onClick:()=>{es(""),e4("all"),e3("all"),te("all"),e7("all")},children:O("chat.history.clearFilters")})]})]}),(0,n.jsx)(B.A,{}),tM&&(0,n.jsxs)(i.default,{sx:{px:1.5,py:.75,display:"flex",alignItems:"center",justifyContent:"space-between",gap:1,bgcolor:(0,eS.X4)(W.palette.primary.main,eo?.055:.025)},children:[(0,n.jsx)(h.A,{variant:"caption",color:"text.secondary",sx:{fontWeight:700},children:O("chat.chain.hierarchy")}),(0,n.jsxs)(i.default,{sx:{display:"flex",gap:.5},children:[(0,n.jsx)(d.A,{size:"small",startIcon:(0,n.jsx)(em.A,{}),onClick:()=>t$(!0),children:O("chat.chain.expandAll")}),(0,n.jsx)(d.A,{size:"small",startIcon:(0,n.jsx)(ex.A,{}),onClick:()=>t$(!1),children:O("chat.chain.collapseAll")})]})]}),(0,n.jsxs)(G.A,{ref:tz,"aria-label":O("chat.history.title"),"aria-busy":tq||eJ||eV,sx:{overflow:"auto",flex:1,px:eo?1.25:1,py:eo?1.5:1,scrollbarGutter:"stable"},children:[tq||eJ?(0,n.jsxs)(_.Ay,{sx:{justifyContent:"center",gap:1,py:3},children:[(0,n.jsx)(c.default,{size:18}),(0,n.jsx)(h.A,{variant:"body2",color:"text.secondary",children:O("chat.history.searching")})]}):t_&&0===ti.length?(0,n.jsx)(_.Ay,{children:(0,n.jsx)(H.A,{primary:O("chat.history.searchFailed"),secondary:O("chat.history.searchFailedHelp"),primaryTypographyProps:{align:"center"},secondaryTypographyProps:{align:"center"}})}):tW||0!==tH?0===tB?(0,n.jsx)(_.Ay,{children:(0,n.jsx)(H.A,{primary:O("chat.history.noMatch"),secondary:O("chat.history.noMatchHelp"),primaryTypographyProps:{align:"center"},secondaryTypographyProps:{align:"center"}})}):"chain"===e1?(0,n.jsx)(eC,{nodes:tA.roots,childrenByParent:tA.childrenByParent,renderItem:e=>tF(e,{detached:tA.detachedIds.has(e.id)}),expanded:tj,onToggle:tS}):"none"===e1?tv.map(e=>tF(e)):tw.map(e=>{let t=!!tn[e.key],a="wave"===e1?tI.get(e.key):void 0;return(0,n.jsxs)(i.default,{children:[(0,n.jsxs)(q.A,{onClick:()=>{var t;return t=e.key,void tr(e=>({...e,[t]:!e[t]}))},sx:{py:.5,bgcolor:"action.hover"},children:[t?(0,n.jsx)(ee.A,{fontSize:"small"}):(0,n.jsx)(et.A,{fontSize:"small"}),(0,n.jsx)(h.A,{variant:"overline",sx:{ml:.5,flex:1,lineHeight:1.6},noWrap:!0,children:e.label}),(0,n.jsx)(x.A,{label:e.items.length,size:"small",sx:{height:18,"& .MuiChip-label":{px:.75,fontSize:"0.7rem"}}})]}),(0,n.jsx)(J.A,{in:!t,timeout:"auto",unmountOnExit:!0,children:a?(0,n.jsx)(eC,{nodes:a.roots,childrenByParent:a.childrenByParent,renderItem:e=>tF(e,{detached:a.detachedIds.has(e.id)}),expanded:tj,onToggle:tS}):e.items.map(e=>tF(e))})]},e.key)}):(0,n.jsx)(_.Ay,{children:(0,n.jsx)(H.A,{primary:O("chat.history.empty"),secondary:O("chat.history.emptyHelp"),primaryTypographyProps:{align:"center"},secondaryTypographyProps:{align:"center"}})}),tW&&ts?.hasMore&&(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",py:1.5},children:(0,n.jsx)(d.A,{size:"small",variant:"outlined",disabled:eV,startIcon:eV?(0,n.jsx)(c.default,{size:14}):void 0,onClick:()=>void tp(),children:O("chat.history.loadMore")})}),!tW&&a&&l&&(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",py:1.5},children:(0,n.jsx)(d.A,{size:"small",variant:"outlined",disabled:o,startIcon:o?(0,n.jsx)(c.default,{size:14}):void 0,onClick:()=>void l(),children:O("chat.history.loadMore")})})]}),(0,n.jsxs)(b.A,{open:eH.open,onClose:()=>eB(e=>({...e,open:!1})),"aria-labelledby":"delete-family-dialog-title",children:[(0,n.jsx)(y.A,{id:"delete-family-dialog-title",children:O("chat.history.deleteFamilyTitle")}),(0,n.jsx)(v.A,{children:(0,n.jsx)(w.A,{children:eH.lookupFailed?O("chat.history.deleteFamilyLookupFailed"):O("chat.history.deleteFamilyQuestion",{title:eH.parent?.title??"",count:eH.descendantIds.length})})}),(0,n.jsxs)(A.A,{children:[(0,n.jsx)(d.A,{onClick:()=>eB(e=>({...e,open:!1})),children:O("common.cancel")}),!eH.lookupFailed&&eH.parent&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.A,{color:"error",onClick:()=>{let e=eH.parent.id;eB(e=>({...e,open:!1})),S(e)},children:O("chat.history.deleteParentOnly")}),(0,n.jsx)(d.A,{variant:"contained",color:"error",onClick:()=>{let e=[eH.parent.id,...eH.descendantIds];eB(e=>({...e,open:!1})),I(e)},children:O("chat.history.deleteFamilyAction",{count:eH.descendantIds.length})})]})]})]}),(0,n.jsxs)(b.A,{open:ed.open,onClose:()=>ec(e=>({...e,open:!1})),"aria-labelledby":"bulk-delete-dialog-title",children:[(0,n.jsx)(y.A,{id:"bulk-delete-dialog-title",children:O("chat.history.confirmDelete")}),(0,n.jsx)(v.A,{children:(0,n.jsxs)(w.A,{children:[ed.label," ",O("chat.history.cannotUndo")]})}),(0,n.jsxs)(A.A,{children:[(0,n.jsx)(d.A,{onClick:()=>ec(e=>({...e,open:!1})),children:O("common.cancel")}),(0,n.jsx)(d.A,{color:"error",onClick:async()=>{ec(e=>({...e,open:!1})),await I(ed.ids)},autoFocus:!0,children:O("chat.history.deleteAction")})]})]})]})});var eB=a(46455),eL=a(55601),eU=a(47186),eK=a(94437),eX=a(15147);function eJ(e,t){if(!(t in e))return e;let a={...e};return delete a[t],a}function eG(e,t,a){let n=e[t]??[],r=n.filter(e=>e.id!==a);if(r.length===n.length)return e;let o={...e};return r.length>0?o[t]=r:delete o[t],o}var eV=a(81326),eY=a(82360),eQ=a(44683);let eZ={byIndex:{}};function e0(e,t,a){for(let n=0;n<t;n++)e[n]||(e[n]={laneIndex:n,laneCount:t,label:`Lane ${n+1}/${t}`,status:"pending",lastEventAt:a})}let e1=["the moon janitor","a time-hopping intern","three union pigeons","the office wizard","a skeptical goldfish","the museum ghost","an off-duty oracle","the last polite pirate","a raccoon committee","the cryptid expert","a calm astronaut","the royal beekeeper","the lighthouse cat","a future detective","the backup dragon","a jetpack accountant","the submarine butler","a retired villain","the support goose","a help-desk knight","an imaginary conductor","an archaeology intern","the weather crow","a receipt philosopher"],e2=["the moon ladder","a diplomatic sock","the royal stapler","an indoor umbrella","the lunch compass","a warm snow globe","the last teaspoon","a fictional map","the folding napkin","a jar of thunder","the Wi-Fi wand","a lawyered sandwich","the spare sun","a jar of silence","the haunted printer","a load-bearing baguette","the tiny drawbridge","the wrong key","the inflatable anvil","a prophecy coupon","the reverse telescope","classified confetti","the nervous pendulum","a pocket volcano"],e5=["on the Moon","at the seafloor post office","at the Bermuda gift shop","at the Wi-Fi castle","behind the second attic","at North Pole support","on platform nine-ish","beside a black hole","inside the mood library","under the cloud","in the office kitchen","inside spreadsheet forest","at volcano reception","behind the old clock","in Lost Luggage","on the snack balcony","in the shallow moat","at the desert hotel","inside the failed museum","in lab number two","at tomorrow station","inside dragon training","on Tuesday Island","past the supply closet"],e4=["sorting moon rocks","looking for lunch","testing the fire alarm","folding space-time","counting invisible sheep","polishing the eclipse","fixing yesterday","mapping the snack drawer","questioning the compass","training the pigeons","debugging the horoscope","watering plastic plants","auditing the pirates","rewinding the sundial","interviewing a shadow","filing dragon taxes","calibrating breakfast","alphabetizing fog","measuring gossip","rehearsing the alibi","charging the crystal ball","untangling gravity","translating whale mail","backing up the Moon"],e6=["fold a fitted sheet","whistle in binary","park a gondola","alphabetize fog","moonwalk quietly","invoice a dragon","juggle theories","read the room","argue with a door","brew orbital tea","translate sarcasm","defeat a sundial","smuggle daylight","assemble a prophecy","locate north","interview tomorrow","budget on a unicycle","write in zero gravity","herd digital cats","repair a metaphor","land a paper plane","greet the abyss","exit a time loop","explain medieval taxes"],e3=["the Moon’s back door","Wednesday’s location","gravity’s fine print","the missing socks","the Morse-code plant","the speakerphone echo","the pigeon payroll","the painted horizon","the absent staircase","Tuesday’s sequel","the Gary compass","the second ocean","the dramatic copier","tomorrow’s mail","the extra five minutes","the licensed ghost","the reviewed treasure map","the hungry plot hole","the sorted stars","the sighing elevator","the thunder receipts","the lunch eclipse","the freelance mirror","the exit to 1843"],e8=["a bent paperclip","a rubber chicken","the good magnifier","one brave teaspoon","a future abacus","a cat laser","an accordion","a dishonest ruler","a memo compass","the royal whisk","a pocket sundial","two magnets","a Latin wrench","the tiny hammer","tenured tape","a crystal ball","a haunted slide rule","the backup kazoo","a gloomy spirit level","the left telescope","a stern clipboard","emergency string","a weather vane","the manual page"],e7=["the eclipse rehearsal","emergency teatime","the gravity inspection","the office moon landing","the password ceremony","yesterday’s reopening","the hiding finals","the underwater fire drill","the time-traveler meeting","the lighthouse picnic","the backup launch","the horizon retirement","the expedition talent show","bring-your-ghost night","Coincidence Day","Small Ben’s unveiling","the silent concert","the endless ribbon-cutting","the volcano open house","breakfast rehearsal","the maritime spelling bee","the ancient Wi-Fi demo","the alibi parade","the surprise-party audit"],e9=["the inspector walks in","the inventor denies it","the footnote calls","the lights blink in Morse","tomorrow asks for help","the witness appears","the smoke alarm passes","the prophecy arrives","every clock coughs","the fire drill gets real","the squirrels object","the Moon calls back","the red lever starts counting","the alibi walks past","next door repeats it","the backup plan resigns","the weather apologizes","the map says “you first”","the missing page falls out","Coincidence Day is canceled","the goose takes charge","the empty box takes notes","a comet arrives early","the narrator gets fired"],te=["the goose approves","the timeline objects","the manual shrugs","lunch takes priority","the pigeons demand credit","the chart looks worried","the calendar resigns","history asks for a redo","the printer applauds","gravity clocks out","the map denies everything","the ghost files a claim","the budget grows a moat","the experiment gets renewed","the floor adds a door","the ducks peer-review it","management calls it tradition","confetti is deployed","the loop requests closure","a plaque is ordered","physics grants an exception","the cupboard applauds","the conclusion needs edits","the universe closes the ticket"],tt=(e,t)=>({count:e.reduce((e,t)=>e*t.length,1),render:a=>{let n=a,r=e.map(e=>{let t=e[n%e.length];return n=Math.floor(n/e.length),t});return`${t(...r)}…`}}),ta=e=>`${e[0].toUpperCase()}${e.slice(1)}`,tn=[tt([e1,e6],(e,t)=>`Teaching ${e} to ${t}`),tt([e2,e5],(e,t)=>`Finding ${e} ${t}`),tt([e4,te],(e,t)=>`${ta(e)}; ${t}`),tt([e3,e8],(e,t)=>`Solving ${e} with ${t}`),tt([e2,e8],(e,t)=>`Repairing ${e} with ${t}`),tt([e7,e1],(e,t)=>`Rehearsing ${e} with ${t}`),tt([e1,e4],(e,t)=>`Helping ${e} finish ${t}`),tt([e2,te],(e,t)=>`Showing off ${e}; ${t}`),tt([e3,e5],(e,t)=>`Investigating ${e} ${t}`),tt([e6,e8],(e,t)=>`Trying to ${e} with ${t}`),tt([e2,e9],(e,t)=>`Hiding ${e} just as ${t}`),tt([e7,e9],(e,t)=>`Starting ${e} as ${t}`),tt([e1,e2],(e,t)=>`${ta(e)} arrives carrying ${t}`),tt([e4,e9],(e,t)=>`While ${e}, ${t}`),tt([e3,e1],(e,t)=>`Discovering ${e}; ${t} takes credit`),tt([e2,te],(e,t)=>`Testing ${e}; ${t}`),tt([e5,e1],(e,t)=>`Arriving ${e}; ${t} was already there`),tt([e7,e9],(e,t)=>`${ta(e)} begins moments before ${t}`),tt([e1,e3],(e,t)=>`Asking ${e} about ${t}`),tt([e6,e9],(e,t)=>`Learning to ${e} seconds before ${t}`),tt([e2,e1],(e,t)=>`Returning ${e} to ${t}`),tt([e7,e5],(e,t)=>`Booking ${e} ${t}`),tt([e3,e9],(e,t)=>`Checking ${e} when ${t}`),tt([e4,e1],(e,t)=>`${ta(e)} with ${t}`),tt([e2,te],(e,t)=>`Calibrating ${e}; ${t}`),tt([e7,e8],(e,t)=>`Running ${e} with ${t}`),tt([e1,e5],(e,t)=>`Following ${e} ${t}`),tt([e3,te],(e,t)=>`Explaining ${e}; ${t}`),tt([e4,e8],(e,t)=>`${ta(e)} with ${t}`),tt([e2,e7],(e,t)=>`Preparing ${e} for ${t}`),tt([e5,e8],(e,t)=>`Taking notes ${e} with ${t}`),tt([e1,e7],(e,t)=>`Briefing ${e} on ${t}`),tt([e2,e3],(e,t)=>`Checking ${e} against ${t}`),tt([e5,te],(e,t)=>`Mapping ${e}; ${t}`),tt([e1,e8],(e,t)=>`Helping ${e} use ${t}`),tt([e7,e3],(e,t)=>`Linking ${e} to ${t}`),tt([e6,e1],(e,t)=>`Watching ${t} learn to ${e}`),tt([e4,e7],(e,t)=>`${ta(e)} before ${t}`),tt([e2,e5],(e,t)=>`Delivering ${e} ${t}`),tt([e1,e5],(e,t)=>`Meeting ${e} ${t}`),tt([e3,e7],(e,t)=>`Discussing ${e} at ${t}`),tt([e6,e5],(e,t)=>`Trying to ${e} ${t}`),tt([e4,e2],(e,t)=>`${ta(e)} around ${t}`),tt([e7,e5],(e,t)=>`Hosting ${e} ${t}`),tt([e2,e3],(e,t)=>`Comparing ${e} with ${t}`),tt([e1,e9],(e,t)=>`Meeting ${e} just as ${t}`),tt([e8,te],(e,t)=>`Pointing ${e} north; ${t}`),tt([e6,e7],(e,t)=>`Practicing how to ${e} at ${t}`)];tn.reduce((e,t)=>e+t.count,0);let tr=(e,t)=>{let a=Math.abs(e),n=Math.abs(t);for(;0!==n;)[a,n]=[n,a%n];return a},to=e=>{let t=0|e;return((t=Math.imul((t=Math.imul(t^t>>>16,0x21f0aaad))^t>>>15,0x735a2d97))^t>>>15)>>>0},tl=(e,t)=>{let a=to(t)%(e-1)+1;for(;1!==tr(a,e);)a=a%(e-1)+1;return a},ts=({lane:e,onOpenLane:t})=>{let{t:a}=(0,eI.s9)(),r=!!e.laneConversationId&&!!t,o="pending"===e.status;return(0,n.jsxs)(i.default,{onClick:r?()=>t(e.laneConversationId):void 0,sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.25,borderRadius:1,...r&&{cursor:"pointer","&:hover":{bgcolor:"action.hover",textDecoration:"underline"}}},children:["running"===e.status&&(0,n.jsx)(c.default,{size:14,sx:{flexShrink:0}}),"completed"===e.status&&(0,n.jsx)(z.A,{sx:{fontSize:16,flexShrink:0},color:"success"}),"error"===e.status&&(0,n.jsx)(eY.A,{sx:{fontSize:16,flexShrink:0},color:"error"}),o&&(0,n.jsx)(eQ.A,{sx:{fontSize:16,flexShrink:0},color:"disabled"}),(0,n.jsxs)(h.A,{variant:"caption",color:o?"text.disabled":"textSecondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.label,o&&` — ${a("chat.live.queued")}`,"running"===e.status&&e.activity&&(0,n.jsxs)(h.A,{component:"span",variant:"caption",color:"text.disabled",children:[" \xb7 ",e.activity]})]})]})},ti=({liveStats:e,onStop:t,stopDisabled:a,awaitingApproval:o,lanes:l,onOpenLane:s,retryWait:u,compact:f=!1})=>{let m,x,b,y,v,w,A,{locale:j,t:k,tp:S,formatNumber:I,formatList:C}=(0,eI.s9)(),[$,M]=(0,r.useState)(()=>Date.now()),[z]=(0,r.useState)(()=>Date.now()),[E,T]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=setInterval(()=>M(Date.now()),1e3);return()=>clearInterval(e)},[]);let N=e?Math.max(0,Math.round(($-e.startedAt)/1e3)):0,D=e?Math.round(($-e.lastEventAt)/1e3):0,R=!o&&!u&&!!e&&D>=60,O=e?.startedAt??z,P=Math.floor(Math.max(0,$-O)/1e4),F="en"===j?(m=Math.max(0,Math.floor(P)),x=Math.floor(O),b=tn.length,v=tn[y=(to(x)%b+m*tl(b,0x6d2b79f5^x))%b],w=Math.floor(m/b),A=(to(x^Math.imul(y+1,0x9e3779b1))%v.count+w*tl(v.count,x^Math.imul(y+1,0x85ebca6b)))%v.count,v.render(A)):k(`chat.live.working.${P%6}`),W=u?Math.max(0,Math.ceil((u.retryAt-$)/1e3)):0,_=u?u.maxAttempts?k("chat.live.retryWaitAttempt",{seconds:I(W),attempt:I(u.attempt),total:I(u.maxAttempts)}):k("chat.live.retryWait",{seconds:I(W)}):null,q=l?Object.values(l.byIndex).sort((e,t)=>e.laneIndex-t.laneIndex):[],H=q.length>0?(()=>{let e=q.filter(e=>"running"===e.status).length,t=q.filter(e=>"pending"===e.status).length,a=q.filter(e=>"completed"===e.status).length,n=q.filter(e=>"error"===e.status).length;if(0===e&&0===t&&n>0)return{text:k("chat.live.partialFailure",{failed:I(n),total:I(q.length)}),warning:!0};let r=[e>0?S("chat.live.laneRunning",e):"",t>0?S("chat.live.laneQueued",t):"",a>0?S("chat.live.laneDone",a):"",n>0?S("chat.live.laneFailed",n):""].filter(Boolean);return{text:S("chat.live.lanes",q.length,{states:C(r)}),warning:n>0}})():null;if(f){let r=o?k("chat.live.waitingApproval"):e?.activeNode?k("chat.live.running",{node:e.activeNode}):k("chat.live.working");return(0,n.jsxs)(i.default,{"data-testid":"compact-live-run",sx:{flexShrink:0,bgcolor:"background.paper",borderTop:1,borderBottom:1,borderColor:"divider",boxShadow:"0 -8px 24px rgba(0,0,0,.10)",position:"relative",zIndex:3},children:[(0,n.jsxs)(i.default,{sx:{minHeight:44,px:1,display:"flex",alignItems:"center",gap:.75},children:[o?(0,n.jsx)(eV.A,{fontSize:"small",color:"warning"}):(0,n.jsx)(c.default,{size:18,color:R?"warning":"primary"}),(0,n.jsx)(h.A,{variant:"body2",noWrap:!0,role:"status","aria-live":"polite","aria-atomic":"true","data-testid":_?"retry-wait":"run-status",color:_?"warning.main":void 0,sx:{flex:1,minWidth:0},children:_??r}),!o&&(0,n.jsxs)(h.A,{variant:"caption",color:R?"warning.main":"text.secondary",sx:{whiteSpace:"nowrap"},children:[I(e?.totalTokens??0)," \xb7 ",I(N),"s"]}),H&&(0,n.jsx)(p.A,{title:H.text,children:(0,n.jsx)(g.A,{size:"small",onClick:()=>T(e=>!e),"aria-label":H.text,"aria-expanded":E,children:E?(0,n.jsx)(et.A,{}):(0,n.jsx)(ee.A,{})})}),(0,n.jsx)(d.A,{variant:"outlined",color:"secondary",size:"small",onClick:t,disabled:a,sx:{minWidth:"auto",px:1},children:k("chat.live.stop")})]}),!o&&(0,n.jsx)(h.A,{"data-testid":"compact-working-message",variant:"body2",color:"text.primary","aria-hidden":"true",sx:{px:1.5,pb:.75,fontSize:"0.8125rem",fontWeight:500,lineHeight:1.35,textAlign:"center",overflowWrap:"anywhere"},children:F}),H&&(0,n.jsx)(J.A,{in:E,unmountOnExit:!0,children:(0,n.jsxs)(i.default,{sx:{px:1,pb:1},children:[(0,n.jsx)(h.A,{variant:"caption",color:H.warning?"warning.main":"text.secondary",sx:{display:"block",mb:.25},children:H.text}),q.map(e=>(0,n.jsx)(ts,{lane:e,onOpenLane:s},e.laneIndex))]})})]})}return(0,n.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",my:2,gap:.5},children:[(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:2},children:[o?(0,n.jsx)(eV.A,{fontSize:"small",color:"warning"}):(0,n.jsx)(c.default,{size:20,color:R?"warning":"primary"}),(0,n.jsx)(h.A,{variant:"body2",color:_?"warning.main":"textSecondary","data-testid":_?"retry-wait":"run-status",role:"status","aria-live":"polite","aria-atomic":"true",children:_??(o?k("chat.live.waitingApproval"):e?.activeNode?k("chat.live.running",{node:e.activeNode}):k("chat.live.working"))}),(0,n.jsx)(d.A,{variant:"outlined",color:"secondary",size:"small",onClick:t,disabled:a,children:k("chat.live.stop")})]}),!o&&(0,n.jsx)(h.A,{"data-testid":"working-message",variant:"body2",color:"text.primary",sx:{maxWidth:680,px:2,py:.5,borderRadius:1,bgcolor:"action.hover",fontSize:"0.875rem",fontWeight:500,lineHeight:1.45,textAlign:"center",overflowWrap:"anywhere"},"aria-hidden":"true",children:F}),H&&(0,n.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",alignItems:"stretch",minWidth:280,maxWidth:520},children:[(0,n.jsx)(h.A,{variant:"caption",color:H.warning?"warning.main":"textSecondary",sx:{px:1,fontWeight:500},children:H.text}),q.map(e=>(0,n.jsx)(ts,{lane:e,onOpenLane:s},e.laneIndex))]}),!o&&(0,n.jsxs)(h.A,{variant:"caption",color:R?"warning.main":"textSecondary",children:[S("chat.live.elapsed",N,{tokens:k("chat.stats.tokens",{count:I(e?.totalTokens??0)})}),R?` \xb7 ${S("chat.live.inactive",D)}`:""]})]})};var td=a(95877),tc=a(53157),tu=a(92042);let th=({todos:e})=>{let{t,formatNumber:a}=(0,eI.s9)();if(!e||0===e.length)return null;let r=e.filter(e=>"done"===e.status).length,o=e.length>0?Math.round(r/e.length*100):0;return(0,n.jsxs)(td.A,{variant:"outlined",sx:{mt:2,p:1.5,borderRadius:2},children:[(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1},children:[(0,n.jsx)(h.A,{variant:"subtitle2",sx:{fontWeight:600},children:t("chat.todo.title")}),(0,n.jsx)(h.A,{variant:"caption",color:"text.secondary",children:t("chat.todo.progress",{done:a(r),total:a(e.length)})})]}),(0,n.jsx)(tc.A,{variant:"determinate",value:o,sx:{mb:1,borderRadius:1}}),(0,n.jsx)(i.default,{component:"ul",sx:{listStyle:"none",m:0,p:0},children:e.map(e=>(0,n.jsxs)(i.default,{component:"li",sx:{display:"flex",alignItems:"center",gap:1,py:.25},children:[function(e){switch(e){case"done":return(0,n.jsx)(z.A,{fontSize:"small",color:"success"});case"in_progress":return(0,n.jsx)(tu.A,{fontSize:"small",color:"info"});case"cancelled":return(0,n.jsx)(eY.A,{fontSize:"small",color:"disabled"});default:return(0,n.jsx)(eQ.A,{fontSize:"small",color:"disabled"})}}(e.status),(0,n.jsx)(h.A,{variant:"body2",sx:{textDecoration:"done"===e.status||"cancelled"===e.status?"line-through":"none",color:"done"===e.status||"cancelled"===e.status?"text.secondary":"text.primary"},children:e.content})]},e.id))})]})};var tp=a(86403),tg=a(72852),tf=a(29586),tm=a(8682),tx=a(30902),tb=a(73039),ty=a(79377),tv=a(25601);let tw=e=>e>=1e3?`${(e/1e3).toFixed(e>=1e5?0:1)}k`:`${e}`,tA=({usage:e,contextInfo:t,availableNodes:a,compact:o=!1})=>{let{t:l,formatNumber:s}=(0,eI.s9)(),[d,c]=(0,r.useState)(null);if(!e&&!t)return null;let u=e?.byNode?Object.entries(e.byNode):[],g=e?(0,tv.g)(e):void 0,f=g?.cacheReadTokens??0,m=g?.cacheWriteTokens??0,b=g?.freshPromptTokens??0,y=g?.meterTotalTokens??0,v=t?.contextWindow&&t.contextWindow>0?Math.min(100,Math.round(t.promptTokens/t.contextWindow*100)):void 0;return(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:o?.5:1.5,flexShrink:0},children:[e&&y>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(p.A,{title:l("chat.stats.tooltip",{prompt:s(b),completion:s(e.completionTokens),cached:f>0?l("chat.stats.cached",{count:s(f)}):"",written:m>0?l("chat.stats.written",{count:s(m)}):""}),children:(0,n.jsx)(x.A,{icon:(0,n.jsx)(ty.A,{}),label:o?tw(y):l("chat.stats.tokens",{count:tw(y)}),size:"small",variant:"outlined",onClick:e=>c(e.currentTarget),sx:{cursor:"pointer"}})}),(0,n.jsx)(tp.Ay,{open:!!d,anchorEl:d,onClose:()=>c(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:(0,n.jsxs)(i.default,{sx:{p:2,maxWidth:"min(680px, calc(100vw - 24px))",overflowX:"auto"},children:[(0,n.jsx)(h.A,{variant:"subtitle2",sx:{mb:1},children:l("chat.stats.title")}),(0,n.jsxs)(tg.A,{size:"small",children:[(0,n.jsx)(tf.A,{children:(0,n.jsxs)(tm.A,{children:[(0,n.jsx)(tx.A,{children:l("chat.stats.node")}),(0,n.jsx)(tx.A,{align:"right",children:l("chat.stats.prompt")}),(0,n.jsx)(tx.A,{align:"right",children:l("chat.stats.completion")}),(0,n.jsx)(tx.A,{align:"right",children:l("chat.stats.cachedRead")}),(0,n.jsx)(tx.A,{align:"right",children:l("chat.stats.cacheWrite")}),(0,n.jsx)(tx.A,{align:"right",children:l("chat.stats.total")})]})}),(0,n.jsxs)(tb.A,{children:[u.map(([e,t])=>{let r=(0,tv.g)(t);return(0,n.jsxs)(tm.A,{children:[(0,n.jsx)(tx.A,{children:(0,n.jsx)(p.A,{title:e,children:(0,n.jsx)("span",{children:a.find(t=>t.id===e)?.label||`${e.substring(0,8)}…`})})}),(0,n.jsx)(tx.A,{align:"right",children:s(r.freshPromptTokens)}),(0,n.jsx)(tx.A,{align:"right",children:s(r.completionTokens)}),(0,n.jsx)(tx.A,{align:"right",children:s(r.cacheReadTokens)}),(0,n.jsx)(tx.A,{align:"right",children:s(r.cacheWriteTokens)}),(0,n.jsx)(tx.A,{align:"right",children:s(r.meterTotalTokens)})]},e)}),(0,n.jsxs)(tm.A,{children:[(0,n.jsx)(tx.A,{sx:{fontWeight:"bold"},children:l("chat.stats.total")}),(0,n.jsx)(tx.A,{align:"right",sx:{fontWeight:"bold"},children:s(b)}),(0,n.jsx)(tx.A,{align:"right",sx:{fontWeight:"bold"},children:s(e.completionTokens)}),(0,n.jsx)(tx.A,{align:"right",sx:{fontWeight:"bold"},children:s(f)}),(0,n.jsx)(tx.A,{align:"right",sx:{fontWeight:"bold"},children:s(m)}),(0,n.jsx)(tx.A,{align:"right",sx:{fontWeight:"bold"},children:s(y)})]})]})]}),f>0&&(0,n.jsx)(h.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:1},children:l("chat.stats.cacheHelp",{cached:s(f),fresh:s(y)})}),m>0&&(0,n.jsx)(h.A,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.5},children:l("chat.stats.cacheWriteHelp",{written:s(m)})})]})})]}),t&&void 0!==v&&!o&&(0,n.jsx)(p.A,{title:l("chat.stats.context",{model:t.modelDisplayName?l("chat.stats.model",{model:t.modelDisplayName}):"",used:s(t.promptTokens),total:s(t.contextWindow)}),children:(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1,minWidth:140},children:[(0,n.jsx)(tc.A,{variant:"determinate",value:v,color:v>=90?"error":v>=70?"warning":"primary",sx:{flex:1,height:6,borderRadius:3}}),(0,n.jsxs)(h.A,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:[tw(t.promptTokens),"/",tw(t.contextWindow)," (",v,"%)"]})]})}),t&&void 0!==v&&o&&(0,n.jsx)(p.A,{title:l("chat.stats.context",{model:t.modelDisplayName?l("chat.stats.model",{model:t.modelDisplayName}):"",used:s(t.promptTokens),total:s(t.contextWindow)}),children:(0,n.jsxs)(h.A,{variant:"caption",color:v>=90?"error.main":"text.secondary",sx:{whiteSpace:"nowrap"},children:["ctx ",v,"%"]})}),t&&void 0===v&&(0,n.jsx)(p.A,{title:l("chat.stats.noWindow",{model:t.modelDisplayName?l("chat.stats.model",{model:t.modelDisplayName}):""}),children:(0,n.jsxs)(h.A,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:["ctx ",tw(t.promptTokens)]})})]})};var tj=a(609),tk=a(15344),tS=a(25422),tI=a(6302),tC=a(71031),t$=a(32897),tM=a(60756),tz=a(49103);let tE=(0,tz.h)("frontend/components/Chat/QuickChatDialog"),tT=({open:e,onClose:t,onStart:a})=>{let{t:o,tp:l}=(0,eI.s9)(),[s,p]=(0,r.useState)([]),[f,y]=(0,r.useState)([]),[w,j]=(0,r.useState)(!1),[k,S]=(0,r.useState)(null),[I,C]=(0,r.useState)(""),[$,M]=(0,r.useState)(""),[z,E]=(0,r.useState)({}),[T,N]=(0,r.useState)(!1),[D,R]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(!e)return;let t=!1;return j(!0),S(null),(async()=>{try{let[e,a]=await Promise.all([t$.N.loadModels(),tM.S.loadServerConfigs()]);if(t)return;p(e);let n=Array.isArray(a)?a.filter(e=>!e.disabled).map(e=>e.name):[];y(n),C(t=>t||e[0]?.id||"")}catch(e){t||(tE.warn("Failed to load models/servers for quick chat",e),S(o("chat.quick.loadFailed")))}finally{t||j(!1)}})(),()=>{t=!0}},[e,o]),(0,r.useEffect)(()=>{e||(M(""),E({}),R(null),N(!1))},[e]);let O=(0,r.useCallback)(e=>{E(t=>{let a=t[e];return a?.selected?{...t,[e]:{...a,selected:!1}}:{...t,[e]:{...a??{tools:null,expanded:!1},selected:!0}}})},[]),P=(0,r.useCallback)(async e=>{E(t=>{let a=t[e]??{selected:!1,tools:null,expanded:!1};return{...t,[e]:{...a,expanded:!a.expanded}}});let t=z[e];if(!t?.available&&!t?.loading){E(t=>({...t,[e]:{...t[e]??{selected:!1,tools:null,expanded:!0},loading:!0}}));try{let{tools:t}=await tM.S.listServerTools(e),a=Array.isArray(t)?t.map(e=>e.name).filter(Boolean):[];E(t=>({...t,[e]:{...t[e]??{selected:!1,tools:null,expanded:!0},available:a,loading:!1}}))}catch(t){tE.warn(`Failed to load tools for ${e}`,t),E(t=>({...t,[e]:{...t[e]??{selected:!1,tools:null,expanded:!0},available:[],loading:!1}}))}}},[z]),F=(0,r.useCallback)((e,t,a)=>{E(n=>{let r=n[e]??{selected:!0,tools:null,expanded:!0},o=new Set(r.tools??new Set(a));return o.has(t)?o.delete(t):o.add(t),{...n,[e]:{...r,selected:!0,tools:o}}})},[]),W=!!I&&!T&&!w,_=async()=>{if(!I)return void R(o("chat.quick.pickModel"));N(!0),R(null);let e=f.filter(e=>z[e]?.selected).map(e=>{let t=z[e];return!t.tools||t.available&&t.tools.size===t.available.length?{name:e}:{name:e,enabledTools:[...t.tools]}});try{await a({modelId:I,servers:e,systemPrompt:$.trim()||void 0})}catch(e){tE.warn("Quick chat failed to start",e),R(e instanceof Error?e.message:o("chat.quick.startFailed")),N(!1)}};return(0,n.jsxs)(b.A,{open:e,onClose:T?void 0:t,maxWidth:"sm",fullWidth:!0,children:[(0,n.jsx)(tC.A,{title:o("chat.quick.title"),onClose:t}),(0,n.jsxs)(v.A,{children:[(0,n.jsx)(h.A,{variant:"body2",color:"text.secondary",sx:{mb:2},children:o("chat.quick.help")}),k&&(0,n.jsx)(u.A,{severity:"error",sx:{mb:2},children:k}),(0,n.jsxs)(U.A,{fullWidth:!0,size:"small",sx:{mb:2},disabled:w,children:[(0,n.jsx)(tk.A,{id:"quick-chat-model-label",children:o("chat.quick.model")}),(0,n.jsxs)(K.A,{labelId:"quick-chat-model-label",label:o("chat.quick.model"),value:I,onChange:e=>C(e.target.value),children:[0===s.length&&(0,n.jsx)(X.A,{value:"",disabled:!0,children:w?o("common.loading"):o("chat.quick.noModels")}),s.map(e=>(0,n.jsx)(X.A,{value:e.id,children:e.displayName||e.name},e.id))]})]}),(0,n.jsx)(m.A,{fullWidth:!0,size:"small",multiline:!0,minRows:2,maxRows:6,label:o("chat.quick.systemPrompt"),placeholder:o("chat.quick.systemPlaceholder"),value:$,onChange:e=>M(e.target.value),sx:{mb:2}}),(0,n.jsx)(B.A,{sx:{mb:1}}),(0,n.jsx)(h.A,{variant:"subtitle2",gutterBottom:!0,children:o("chat.quick.servers")}),w?(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,n.jsx)(c.default,{size:22})}):0===f.length?(0,n.jsx)(h.A,{variant:"body2",color:"text.secondary",children:o("chat.quick.noServers")}):f.map(e=>{let t=z[e],a=!!t?.selected,r=t?.available,s=t?.tools;return(0,n.jsxs)(i.default,{sx:{mb:.5},children:[(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center"},children:[(0,n.jsx)(tS.A,{sx:{flexGrow:1,mr:0},control:(0,n.jsx)(tI.A,{size:"small",checked:a,onChange:()=>O(e)}),label:(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,n.jsx)(h.A,{variant:"body2",children:e}),a&&(0,n.jsx)(x.A,{size:"small",variant:"outlined",label:s?l("chat.quick.tool",s.size):o("chat.quick.allTools")})]})}),(0,n.jsx)(g.A,{size:"small",onClick:()=>P(e),"aria-label":o("chat.quick.customize",{server:e}),children:t?.expanded?(0,n.jsx)(et.A,{fontSize:"small"}):(0,n.jsx)(ee.A,{fontSize:"small"})})]}),(0,n.jsx)(J.A,{in:!!t?.expanded,unmountOnExit:!0,children:(0,n.jsx)(i.default,{sx:{pl:4,pb:1},children:t?.loading?(0,n.jsx)(c.default,{size:16}):r&&r.length>0?r.map(t=>{let a=!s||s.has(t);return(0,n.jsx)(tS.A,{sx:{display:"flex"},control:(0,n.jsx)(tI.A,{size:"small",checked:a,onChange:()=>F(e,t,r)}),label:(0,n.jsx)(h.A,{variant:"caption",children:t})},t)}):(0,n.jsx)(h.A,{variant:"caption",color:"text.secondary",children:r?o("chat.quick.noTools"):""})})})]},e)}),D&&(0,n.jsx)(u.A,{severity:"error",sx:{mt:2},children:D})]}),(0,n.jsxs)(A.A,{children:[(0,n.jsx)(d.A,{onClick:t,disabled:T,children:o("common.cancel")}),(0,n.jsx)(d.A,{variant:"contained",onClick:_,disabled:!W,startIcon:T?(0,n.jsx)(c.default,{size:16,color:"inherit"}):void 0,children:T?o("chat.quick.starting"):o("chat.quick.start")})]})]})};var tN=a(10550),tD=a(10286),tR=a(9160),tO=a(73212),tP=a(44493),tF=a(33790),tW=a(73032),t_=a(30537),tq=a(82183),tH=a(32391),tB=a(33065),tL=a(36048),tU=a(14879),tK=a(96848),tX=a(18109),tJ=a(19500),tG=a(42131),tV=a(81750),tY=a(65614),tQ=a(21129),tZ=a(42727);let t0={byNode:{},byResource:{},byResourceName:{},resourceVersion:0},t1="root",t2=e=>"subflow:start"===e.type||"subflow:done"===e.type?e.depth??1:e.depth??0,t5=(e,t)=>null==t.laneIndex||null==e.laneIndex||e.laneIndex===t.laneIndex,t4=(e,t)=>{for(let a=e.order.length-1;a>=0;a-=1){let n=e.frames[e.order[a]];if(n&&t(n))return n}},t6=(e,t,a)=>a<=1?e.frames[e.rootKey]:t4(e,e=>"active"===e.status&&e.depth===a-1&&t5(e,t))??e.frames[e.rootKey],t3=(e,t)=>{let a=t2(t);return a<=0?e.frames[e.rootKey]:t4(e,e=>"active"===e.status&&e.depth===a&&t5(e,t))??e.frames[e.rootKey]},t8=e=>"node"in e?e.node?.nodeId:void 0,t7=e=>"resource:read"===e.type?"resource-read":"resource:write"===e.type?"resource-write":"active",t9="tool:",ae="tool-node:",at="tool:*",aa=e=>(e??[]).filter(e=>"*"!==e&&!(e.startsWith(t9)||e.startsWith(ae)));var an=a(83216),ar=a(4099),ao=a(20967),al=a(42546);let as=(0,tz.h)("frontend/components/Chat/RunResourcesPanel"),ai=({conversationId:e,refreshToken:t})=>{let{t:a,formatNumber:o}=(0,eI.s9)(),[l,s]=(0,r.useState)(null),[d,u]=(0,r.useState)(null);return((0,r.useEffect)(()=>{if(!e)return;let t=!1;return fetch(`/v1/chat/conversations/${encodeURIComponent(e)}/resources`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(e=>{t||(s(Array.isArray(e.resources)?e.resources:[]),u(null))}).catch(e=>{t||(as.warn("Failed to load run resources",e),u(e instanceof Error?e.message:String(e)))}),()=>{t=!0}},[e,t]),d)?(0,n.jsx)(h.A,{variant:"caption",color:"text.secondary",children:a("chat.resources.unavailable",{error:d})}):null===l?(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",p:1},children:(0,n.jsx)(c.default,{size:16})}):0===l.length?(0,n.jsx)(h.A,{variant:"caption",color:"text.secondary",children:a("chat.resources.empty")}):(0,n.jsx)(G.A,{dense:!0,disablePadding:!0,children:[...l].sort((e,t)=>t.createdAt-e.createdAt).map(e=>{var t;return(0,n.jsxs)(_.Ay,{disableGutters:!0,sx:{alignItems:"flex-start"},children:[(0,n.jsx)(tD.A,{sx:{minWidth:30,mt:.5},children:function(e){switch(e){case"image":return(0,n.jsx)(ar.A,{fontSize:"small",sx:{color:"#009688"}});case"audio":return(0,n.jsx)(ao.A,{fontSize:"small",sx:{color:"#009688"}});case"link":return(0,n.jsx)(al.A,{fontSize:"small",sx:{color:"#009688"}});default:return(0,n.jsx)(an.A,{fontSize:"small",sx:{color:"#009688"}})}}(e.kind)}),(0,n.jsx)(H.A,{primary:(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap"},children:[(0,n.jsx)(h.A,{variant:"body2",sx:{fontWeight:500},children:e.name??`${e.kind}-${e.id.slice(0,8)}`}),e.mimeType&&(0,n.jsx)(x.A,{label:e.mimeType,size:"small",variant:"outlined",sx:{height:18,fontSize:"0.65rem"}}),e.archive&&(0,n.jsx)(x.A,{label:"page"===e.archive.role?a("chat.resources.archivePage",{page:(e.archive.pageIndex??0)+1,total:e.archive.pageCount??"?"}):a("chat.resources.archiveSource"),size:"small",color:"info",variant:"outlined",sx:{height:18,fontSize:"0.65rem"}}),(0,n.jsx)(h.A,{variant:"caption",color:"text.secondary",children:(t=e.size)<1024?`${o(t)} B`:t<1048576?`${o(Math.round(t/1024))} KB`:`${o(t/1048576,{maximumFractionDigits:1})} MB`})]}),secondary:(0,n.jsxs)(h.A,{variant:"caption",color:"text.secondary",component:"span",sx:{wordBreak:"break-all"},children:[a("chat.resources.by",{producer:(e=>{let t=e.producedBy;switch(t.source){case"tool-result":return a("chat.resources.producer.toolResult",{server:t.server??"?",tool:t.toolName??"?"});case"tool-args":return a("chat.resources.producer.toolArgs",{server:t.server??"?",tool:t.toolName??"?"});case"capture":return a("chat.resources.producer.step",{step:t.nodeName??t.nodeId??"?"});case"mcp-link":return a("chat.resources.producer.link",{server:t.server??"?"});case"visual-archive":return a("chat.resources.producer.archive");default:return a("chat.resources.producer.run")}})(e)}),e.readBy.length>0?` \xb7 ${a("chat.resources.read",{count:e.readBy.length})}`:"",(e.verifications?.length??0)>0?` \xb7 ${a("chat.resources.verified",{ok:e.verifications.filter(e=>e.ok).length,total:e.verifications.length})}`:"",e.sha256?` \xb7 sha256 ${e.sha256.slice(0,12)}…`:""," \xb7 ",e.uri]})})]},e.id)})})};var ad=a(51048),ac=a(49414);let au={system:{color:"secondary"},sent:{color:"success"},folded:{color:"warning"},"scoped-out":{color:"info"},"handoff-stripped":{color:"default"}},ah={whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:"0.75rem",fontFamily:"inherit"},ap=({role:e,content:t,toolCallNames:a,status:r,faded:o})=>{let{t:l}=(0,eI.s9)(),s="user"===e?l("chat.messages.you"):"assistant"===e?l("chat.messages.agent"):"tool"===e?l("chat.messages.tool"):"system"===e?l("chat.messages.system"):e,d=l("system"===r?"chat.debug.status.system":"sent"===r?"chat.debug.status.sent":"folded"===r?"chat.debug.status.folded":"scoped-out"===r?"chat.debug.status.scoped":"chat.debug.status.handoff");return(0,n.jsxs)(td.A,{variant:"outlined",sx:{p:1,mb:.75,opacity:o?.55:1,borderStyle:o?"dashed":"solid"},children:[(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.5,flexWrap:"wrap"},children:[(0,n.jsx)(x.A,{size:"small",label:s,color:function(e){switch(e){case"system":return"secondary";case"user":return"primary";case"assistant":return"success";case"tool":return"info";default:return"default"}}(e),variant:"outlined"}),a&&a.length>0&&(0,n.jsx)(x.A,{size:"small",variant:"outlined",label:`🔧 ${a.join(", ")}`,sx:{maxWidth:"100%"}}),r&&"sent"!==r&&"system"!==r&&(0,n.jsx)(x.A,{size:"small",color:au[r].color,label:d})]}),t.trim().length>0?(0,n.jsx)("pre",{style:ah,children:t}):(0,n.jsx)(h.A,{variant:"caption",color:"textSecondary",children:l("chat.debug.noText")})]})},ag=({provenance:e})=>{let{t}=(0,eI.s9)();return(0,n.jsxs)(i.default,{children:[(0,n.jsx)(h.A,{variant:"caption",color:"textSecondary",sx:{display:"block",mb:.5},children:t("chat.debug.historyHelp")}),e.map((e,t)=>(0,n.jsx)(ap,{role:e.role,content:e.preview??"",toolCallNames:e.toolCallNames,status:e.status,faded:"sent"!==e.status&&"system"!==e.status},e.id??`hist-${t}`)),e.some(e=>"sent"!==e.status&&"system"!==e.status)&&(0,n.jsx)(h.A,{variant:"caption",color:"textSecondary",sx:{display:"block",mt:1},children:t("chat.debug.badgeHelp")})]})},af=()=>{},am=({modelInput:e,conversationId:t})=>{let{t:a}=(0,eI.s9)(),[o,l]=(0,r.useState)("wire"),{systemMessage:s,wireMessages:d,provenance:c,counts:u,inputMode:p}=e,g=(0,r.useMemo)(()=>(d||[]).filter(e=>"system"!==e.role),[d]);return(0,n.jsxs)(i.default,{sx:{height:"100%",display:"flex",flexDirection:"column",p:1},children:[(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap",mb:1},children:[(0,n.jsx)(h.A,{variant:"caption",color:"textSecondary",children:a?[a("chat.debug.summary",{history:u.threaded,sent:u.sent}),u.folded?a("chat.debug.foldedCount",{count:u.folded}):"",u.scopedOut?a("chat.debug.scopedCount",{count:u.scopedOut}):"",u.handoffStripped?a("chat.debug.handoffCount",{count:u.handoffStripped}):""].filter(Boolean).join(" \xb7 "):`${u.threaded} in history → ${u.sent} sent`+(u.folded?` \xb7 ${u.folded} folded`:"")+(u.scopedOut?` \xb7 ${u.scopedOut} scoped out`:"")+(u.handoffStripped?` \xb7 ${u.handoffStripped} handoff-stripped`:"")}),p&&"full-history"!==p&&(0,n.jsx)(x.A,{size:"small",variant:"outlined",label:`inputMode: ${p}`})]}),(0,n.jsxs)(tR.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,n.jsx)(tO.A,{expandIcon:(0,n.jsx)(ee.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,n.jsx)(h.A,{variant:"caption",children:(0,n.jsx)("b",{children:a("chat.debug.systemMessage")})})}),(0,n.jsx)(tP.A,{sx:{p:0},children:s&&s.content.trim().length>0?(0,n.jsx)(td.A,{variant:"outlined",sx:{p:1,maxHeight:220,overflowY:"auto"},children:(0,n.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:"0.75rem",fontFamily:"inherit"},children:s.content})}):(0,n.jsx)(h.A,{variant:"caption",color:"textSecondary",children:a("chat.debug.noSystem")})})]}),(0,n.jsxs)(ad.A,{size:"small",exclusive:!0,value:o,onChange:(e,t)=>{t&&l(t)},sx:{my:1},children:[(0,n.jsx)(ac.A,{value:"wire",children:a("chat.debug.modelView")}),(0,n.jsx)(ac.A,{value:"annotated",children:a("chat.debug.fullHistory")})]}),(0,n.jsx)(i.default,{sx:{flexGrow:1,overflowY:"auto",minHeight:0},children:"wire"===o?0===g.length?(0,n.jsx)(h.A,{variant:"body2",color:"textSecondary",sx:{p:1},children:a("chat.debug.noConversation")}):(0,n.jsx)(eB.Ay,{messages:g,conversationId:t?`debug-${t}`:void 0,onToggleDisabled:af,onSplitConversation:af}):(0,n.jsx)(ag,{provenance:c})})]})},ax=(0,tz.h)("frontend/components/Chat/DebuggerCanvas"),ab={start:tQ.vm,process:tQ.Uw,finish:tQ.IK,mcp:tQ.v2,subflow:tQ.lA,resource:tQ.z9},ay={custom:tZ.jY,mcpEdge:tZ.oY,resourceEdge:tZ.sZ},av=[],aw=["conversation","tracker","detail"],aA="flujo-debugger-section-order",aj="flujo-debugger-section-visible",ak="flujo-debugger-conv-width",aS="flujo-debugger-detail-width";function aI(e,t){let a=Number(window.localStorage.getItem(e));return Number.isFinite(a)&&a>=240?a:t}let aC=(0,tG.Ay)(td.A)(({theme:e})=>({display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",padding:e.spacing(1)})),a$=(0,tG.Ay)(i.default)(({theme:e})=>({padding:e.spacing(1,2),borderBottom:`1px solid ${e.palette.divider}`})),aM=(0,tG.Ay)(i.default)({flexGrow:1,display:"flex",overflow:"hidden",minHeight:0}),az=(0,tG.Ay)(i.default)(({theme:e})=>({width:"200px",flexShrink:0,borderRight:`1px solid ${e.palette.divider}`,overflowY:"auto",padding:e.spacing(1)})),aE=(0,tG.Ay)(i.default)({flexGrow:1,position:"relative",height:"100%"}),aT=(0,tG.Ay)(i.default)(({theme:e})=>({padding:e.spacing(1,2),borderTop:`1px solid ${e.palette.divider}`,display:"flex",gap:e.spacing(1),justifyContent:"center"})),aN=(0,tG.Ay)(i.default)(({theme:e})=>({width:"6px",flexShrink:0,cursor:"col-resize",backgroundColor:e.palette.divider,transition:"background-color 120ms",touchAction:"none","&:hover":{backgroundColor:e.palette.primary.main}})),aD=({debugState:e,conversationId:t,onStep:a,onStepOver:o,onContinue:l,onCancel:s,isLoading:f,breakpoints:m,onToggleBreakpoint:b,onSetBreakpoints:y,onClose:v,isExpanded:w,onToggleExpand:A,liveActivity:k,executionEvents:S=av})=>{let I=(0,j.A)(),{t:C,tp:$,formatDate:M}=(0,eI.s9)(),z={conversation:C("chat.debug.section.conversation"),tracker:C("chat.debug.section.tracker"),detail:C("chat.debug.section.detail")},[E,T]=(0,r.useState)(e.executionTrace&&e.executionTrace.length>0?e.executionTrace.length-1:-1),[N,D]=(0,r.useState)(()=>(function(){try{let e=JSON.parse(window.localStorage.getItem(aA)||"null");if(Array.isArray(e)){let t=e.filter(e=>aw.includes(e)),a=aw.filter(e=>!t.includes(e));if(t.length+a.length===aw.length)return[...t,...a]}}catch{}return[...aw]})()),[R,P]=(0,r.useState)(()=>(function(){let e={conversation:!0,tracker:!0,detail:!0};try{let t=JSON.parse(window.localStorage.getItem(aj)||"null");if(t&&"object"==typeof t)for(let a of aw)"boolean"==typeof t[a]&&(e[a]=t[a])}catch{}return e})()),[F,W]=(0,r.useState)(()=>aI(ak,480)),[B,L]=(0,r.useState)(()=>aI(aS,320)),U=(0,r.useMemo)(()=>(function(e,t){let a={key:t1,parentKey:null,flowId:e,displayName:"Root flow",depth:0,status:"active",startedSeq:0,nodeActivity:{}},n={rootKey:a.key,activeFrameKey:a.key,frames:{[a.key]:a},order:[a.key]};for(let e of t){let t=t2(e);if(t<0||t>8)continue;if("run:start"===e.type){n.activeFrameKey=a.key;continue}if("subflow:start"===e.type){if(!e.subflowId||t<=0)continue;let a=t6(n,e,t),r=null==e.laneIndex?"":`:lane-${e.laneIndex}`,o=`${a.key}:${e.node?.nodeId??"subflow"}:${e.subflowId}${r}:seq-${e.seq}`,l={key:o,parentKey:a.key,flowId:e.subflowId,invokingNodeId:e.node?.nodeId,displayName:e.laneTitle||e.subflowName||e.subflowId,depth:t,laneIndex:e.laneIndex,laneCount:e.laneCount,laneTitle:e.laneTitle,status:"active",startedSeq:e.seq,nodeActivity:{}};n.frames[o]=l,n.order.push(o),n.activeFrameKey=o,e.node?.nodeId&&(a.nodeActivity[e.node.nodeId]={kind:"active",ts:e.timestamp});continue}if("subflow:done"===e.type){let r=t4(n,a=>"active"===a.status&&a.depth===t&&a.flowId===e.subflowId&&(e.node?.nodeId==null||a.invokingNodeId===e.node.nodeId)&&t5(a,e));if(!r)continue;r.status=e.status,r.endedSeq=e.seq,n.activeFrameKey=r.parentKey??a.key;let o=n.frames[r.parentKey??a.key];r.invokingNodeId&&o&&(o.nodeActivity[r.invokingNodeId]={kind:"active",ts:e.timestamp});continue}let r=t3(n,e);n.activeFrameKey=r.key;let o=t8(e);o&&(r.nodeActivity[o]={kind:t7(e),ts:e.timestamp})}return n})(e.flowId??"",S),[e.flowId,S]),[K,J]=(0,r.useState)(t1),[V,Y]=(0,r.useState)({}),Q=(0,r.useRef)(new Set),Z=(0,r.useRef)(0),[et,ea,en]=(0,tV.ck)([]),[er,eo,el]=(0,tV.fM)([]);(0,r.useEffect)(()=>{window.localStorage.setItem(aA,JSON.stringify(N))},[N]),(0,r.useEffect)(()=>{window.localStorage.setItem(aj,JSON.stringify(R))},[R]),(0,r.useEffect)(()=>{window.localStorage.setItem(ak,String(Math.round(F)))},[F]),(0,r.useEffect)(()=>{window.localStorage.setItem(aS,String(Math.round(B)))},[B]),(0,r.useEffect)(()=>{let t=e.executionTrace?.length||0;t>0?(T(e=>Math.min(e,t-1)),E<t-1&&T(t-1)):T(-1)},[e.executionTrace]),(0,r.useEffect)(()=>{J(U.activeFrameKey)},[U.activeFrameKey,S.length]);let es=(0,r.useMemo)(()=>Array.from(new Set(U.order.map(e=>U.frames[e]?.flowId).filter(Boolean))),[U]);(0,r.useEffect)(()=>{Z.current+=1,Q.current.clear(),Y({}),J(t1)},[t,e.flowId]),(0,r.useEffect)(()=>{let e=Z.current;for(let t of es)!t||Q.current.has(t)||(Q.current.add(t),Y(e=>({...e,[t]:{status:"loading"}})),tY.g.getFlow(t).then(a=>{Z.current===e&&Y(e=>({...e,[t]:a?{status:"ready",flow:a}:{status:"missing"}}))}).catch(a=>{if(Z.current!==e)return;let n=a instanceof Error?a.message:C("chat.debug.loadFlowFailed",{id:t});ax.error("Error loading debugger flow definition:",a),Y(e=>({...e,[t]:{status:"error",message:n}}))}))},[t,e.flowId,es,C]);let ei=U.frames[K]??U.frames[U.activeFrameKey]??U.frames[t1],ed=V[ei.flowId],ec=ei;for(;V[ec.flowId]?.status!=="ready"&&ec.parentKey;)ec=U.frames[ec.parentKey]??U.frames[t1];let eu=V[ec.flowId],eh=eu?.status==="ready"?eu.flow:null,ep=V[e.flowId??""],eg=!!e.flowId&&!eh&&(!ep||"loading"===ep.status),ef=e.flowId?ep?.status==="missing"?C("chat.debug.flowNotFound",{id:e.flowId}):ep?.status==="error"?ep.message:null:C("chat.debug.flowMissingId"),em=ei.key!==t1&&ed?.status!=="ready"?ed?.status!=="loading"&&ed?C("chat.debug.childUnavailable",{agent:ei.displayName}):C("chat.debug.loadingChild",{agent:ei.displayName}):null;(0,r.useEffect)(()=>{if(!eh){ea([]),eo([]);return}ax.debug(`Setting debugger graph for flow ${eh.id}`),ea(eh.nodes.map(e=>({...e,draggable:!1,selectable:!1,connectable:!1}))),eo(eh.edges.map(e=>({...e,selectable:!1})))},[eh,ea,eo]);let ex=(0,r.useCallback)(()=>{if(ax.debug(`Previous button clicked. Current index: ${E}`),E>0){let e=E-1;ax.debug(`Setting current step index to: ${e}`),T(e)}else ax.debug("Already at the first step, cannot go previous.")},[E]),eb=(0,r.useCallback)(()=>{if(ax.debug(`Next button clicked. Current index: ${E}, Trace length: ${e.executionTrace?.length}`),e.executionTrace&&E<e.executionTrace.length-1){let e=E+1;ax.debug(`Navigating to next trace step: ${e}`),T(e)}else ax.info("At end of trace, triggering API call for next step."),a()},[E,e.executionTrace,a]),ey=(0,r.useMemo)(()=>{if(e.executionTrace&&E>=0&&E<e.executionTrace.length)return e.executionTrace[E]},[e.executionTrace,E]),ev=(0,r.useMemo)(()=>ey?.modelInputs&&ey.modelInputs.length>0?ey.modelInputs:ey?.modelInput?[ey.modelInput]:void 0,[ey]),[ew,eA]=(0,r.useState)(0);(0,r.useEffect)(()=>{eA(0)},[E]);let ej=ev?Math.min(ew,ev.length-1):0,ek=ev?.[ej],[eC,e$]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{e$(Date.now())},[S.length]),(0,r.useEffect)(()=>{if(!k)return;let e=()=>{let e=Date.now();return[...Object.values(k.byNode),...Object.values(k.byResource),...Object.values(k.byResourceName)].some(t=>e-t.ts<4e3)};if(!e())return;let t=setInterval(()=>{e$(Date.now()),e()||clearInterval(t)},350);return()=>clearInterval(t)},[k]);let eM=(0,r.useCallback)(e=>{var t,a;let n=ec.nodeActivity[e.id];if(n&&eC-n.ts<4e3)return n;if(ec.key!==t1||!k)return null;let r=k.byNode[e.id];if(r&&eC-r.ts<4e3)return r;let o=e.data;if((o?.type??e.type)!=="resource")return null;let l=o?.properties??{},s="run"===l.scope?"string"==typeof l.runName?k.byResourceName[l.runName]:void 0:"string"==typeof l.boundServer&&"string"==typeof l.uri?k.byResource[t=l.boundServer,a=l.uri,`${t} ${a}`]:void 0;return s&&eC-s.ts<4e3?{kind:"read"===s.kind?"resource-read":"resource-write",ts:s.ts}:null},[ec,k,eC]),ez=(0,r.useCallback)(e=>{if(ec.key!==t1)return null;let t="string"==typeof e.data?.type?e.data.type:e.type;return"mcp"===t?`${ae}${e.id}`:"resource"===t||"trigger"===t?null:e.id},[ec.key]),eE=(0,r.useMemo)(()=>{let e=ec.key===t1?ey?.nodeId:void 0;return et.map(t=>{let a=t.id===e,n=ez(t),r=!!n&&!!m?.includes(n),o=a?null:eM(t),l=o?Math.max(.25,1-(eC-o.ts)/4e3):0,s=o?.kind==="active"?I.palette.primary.main:"#009688";return{...t,className:[t.className,r?"flujo-breakpoint":null].filter(Boolean).join(" ")||void 0,style:{...t.style,border:a?`2px solid ${I.palette.warning.main}`:o?`2px solid ${s}`:t.style?.border,boxShadow:a?`0 0 10px ${I.palette.warning.light}`:o?`0 0 ${"resource-write"===o.kind?14:10}px ${s}${Math.round(255*l).toString(16).padStart(2,"0")}`:void 0}}})},[et,ec.key,ey,m,I,eM,eC,ez]),[eT,eN]=(0,r.useState)(null),eD=(0,r.useCallback)(()=>eN(null),[]),eR=m??[],eO=eR.includes(at),eP=(0,r.useCallback)((e,t)=>{e.preventDefault();let a="string"==typeof t.data?.label?t.data.label:t.id,n=ez(t);eN({x:e.clientX,y:e.clientY,...n?{breakpointKey:n}:{},nodeLabel:a,...!n?{unavailableReason:ec.key===t1?C("chat.debug.breakpointPassiveNode"):C("chat.debug.breakpointChildRun")}:{}})},[ez,ec.key,C]),eF=(0,r.useCallback)(e=>{e.preventDefault(),eN({x:e.clientX,y:e.clientY})},[]),eW=(0,r.useCallback)(()=>{y&&(y(eO?eR.filter(e=>e!==at):[...eR,at]),eD())},[y,eO,eR,eD]),e_=(0,r.useCallback)(()=>{y?.([]),eD()},[y,eD]),eq=(0,r.useMemo)(()=>(function(e,t){let a=[],n=new Set,r=e.frames[t];for(;r&&!n.has(r.key)&&a.length<=8;)a.unshift(r),n.add(r.key),r=r.parentKey?e.frames[r.parentKey]:void 0;return a})(U,ei.key),[U,ei.key]),eH=(0,r.useCallback)(e=>{let t=V[e.flowId],a=e.key===t1&&t?.status==="ready"?t.flow.name:e.displayName;return null==e.laneIndex?a:`${a} \xb7 lane ${e.laneIndex+1}`},[V]),eB=(0,r.useMemo)(()=>N.filter(e=>R[e]),[N,R]),eL=(0,r.useCallback)(e=>{P(t=>({...t,[e]:!t[e]}))},[]),eU=(0,r.useCallback)((e,t)=>{D(a=>{let n=a.indexOf(e),r=n+t;if(n<0||r<0||r>=a.length)return a;let o=[...a];return[o[n],o[r]]=[o[r],o[n]],o})},[]),eK=(0,r.useCallback)((e,t,a)=>{a.preventDefault();let n=a.clientX,r="conversation"===e?F:B,o="conversation"===e?W:L,l=document.body.style.userSelect,s=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let i=e=>{o(Math.min(Math.max(r+t*(e.clientX-n),240),1100))},d=()=>{window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",d),document.body.style.userSelect=l,document.body.style.cursor=s};window.addEventListener("pointermove",i),window.addEventListener("pointerup",d)},[F,B]),eX={conversation:(0,n.jsx)(i.default,{sx:{flexGrow:1,overflow:"hidden",minHeight:0,display:"flex",flexDirection:"column"},children:ey?ek&&ev?(0,n.jsxs)(i.default,{sx:{flexGrow:1,minHeight:0,display:"flex",flexDirection:"column"},children:[ev.length>1&&(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"center",gap:.5,px:1,py:.5,borderBottom:`1px solid ${I.palette.divider}`},children:[(0,n.jsx)(p.A,{title:C("chat.debug.previousModelCall"),children:(0,n.jsx)("span",{children:(0,n.jsx)(g.A,{size:"small",onClick:()=>eA(e=>Math.max(0,Math.min(e,ev.length-1)-1)),disabled:ej<=0,"aria-label":C("chat.debug.previousModelCall"),children:(0,n.jsx)(tW.A,{fontSize:"small"})})})}),(0,n.jsx)(h.A,{variant:"caption",color:"textSecondary",children:C("chat.debug.modelCall",{current:ej+1,total:ev.length})}),(0,n.jsx)(p.A,{title:C("chat.debug.nextModelCall"),children:(0,n.jsx)("span",{children:(0,n.jsx)(g.A,{size:"small",onClick:()=>eA(e=>Math.min(ev.length-1,Math.min(e,ev.length-1)+1)),disabled:ej>=ev.length-1,"aria-label":C("chat.debug.nextModelCall"),children:(0,n.jsx)(t_.A,{fontSize:"small"})})})})]}),(0,n.jsx)(i.default,{sx:{flexGrow:1,minHeight:0,overflow:"hidden",display:"flex",flexDirection:"column"},children:(0,n.jsx)(am,{modelInput:ek,conversationId:t})})]}):(0,n.jsx)(h.A,{variant:"body2",color:"textSecondary",sx:{p:2},children:C("chat.debug.noModelCall")}):(0,n.jsx)(h.A,{variant:"body2",color:"textSecondary",sx:{p:2},children:C("chat.debug.selectStep")})}),tracker:(0,n.jsxs)(i.default,{sx:{flexGrow:1,display:"flex",overflow:"hidden",minHeight:0},children:[(0,n.jsxs)(az,{children:[(0,n.jsx)(h.A,{variant:"caption",color:"textSecondary",gutterBottom:!0,sx:{display:"block"},children:C("chat.debug.executionTrace")}),(0,n.jsxs)(G.A,{dense:!0,disablePadding:!0,children:[e.executionTrace?.map((t,a)=>(0,n.jsx)(_.Ay,{disablePadding:!0,children:(0,n.jsx)(q.A,{selected:a===E,onClick:()=>{e.executionTrace&&a>=0&&a<e.executionTrace.length?(ax.debug(`Trace step selected: ${a}`),T(a)):ax.warn(`Invalid step index selected: ${a}`)},children:(0,n.jsx)(H.A,{primary:`${t.stepIndex}: ${t.nodeName||t.nodeId}`,secondary:t.nodeType})})},t.stepIndex)),f&&(0,n.jsx)(_.Ay,{children:(0,n.jsx)(c.default,{size:20,sx:{margin:"auto"}})})]})]}),(0,n.jsx)(aE,{children:(0,n.jsxs)(i.default,{sx:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:[(0,n.jsxs)(i.default,{sx:{px:1,py:.5,borderBottom:`1px solid ${I.palette.divider}`,flexShrink:0},children:[(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.25,overflowX:"auto"},children:[ei.parentKey&&(0,n.jsx)(p.A,{title:C("chat.debug.backToParent"),children:(0,n.jsx)(g.A,{size:"small",onClick:()=>J(ei.parentKey??t1),"aria-label":C("chat.debug.backToParent"),children:(0,n.jsx)(tW.A,{fontSize:"small"})})}),eq.map((e,t)=>(0,n.jsxs)(r.Fragment,{children:[t>0&&(0,n.jsx)(t_.A,{color:"disabled",fontSize:"small"}),(0,n.jsx)(d.A,{size:"small",variant:e.key===ei.key?"contained":"text",onClick:()=>J(e.key),sx:{minWidth:0,whiteSpace:"nowrap",textTransform:"none"},children:eH(e)})]},e.key))]}),U.order.length>1&&(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,mt:.25,overflowX:"auto"},children:[(0,n.jsx)(h.A,{variant:"caption",color:"textSecondary",sx:{flexShrink:0},children:C("chat.debug.frames")}),U.order.slice(1).map(e=>{let t=U.frames[e];return(0,n.jsxs)(d.A,{size:"small",variant:t.key===ei.key?"outlined":"text",color:"error"===t.status?"error":"inherit",onClick:()=>J(t.key),sx:{minWidth:0,py:0,whiteSpace:"nowrap",textTransform:"none",fontSize:"0.7rem"},children:[eH(t)," \xb7 ",t.status]},e)})]})]}),em&&(0,n.jsx)(u.A,{severity:ed?.status!=="loading"&&ed?"warning":"info",sx:{m:1,mb:0,py:0,flexShrink:0},children:em}),(0,n.jsxs)(i.default,{sx:{flexGrow:1,minHeight:0,position:"relative","& .react-flow__node.flujo-breakpoint":{outline:`3px solid ${I.palette.error.main}`,outlineOffset:"2px",borderRadius:"8px",boxShadow:`0 0 0 7px ${(0,eS.X4)(I.palette.error.main,.16)}, 0 0 14px ${(0,eS.X4)(I.palette.error.main,.5)}`},"& .react-flow__node.flujo-breakpoint::before":{content:'""',position:"absolute",top:"-11px",left:"-11px",width:"16px",height:"16px",borderRadius:"50%",backgroundColor:I.palette.error.main,border:`2px solid ${I.palette.background.paper}`,boxShadow:`0 0 8px ${I.palette.error.main}`,zIndex:12,pointerEvents:"none"}},onContextMenu:e=>{e.target.closest(".react-flow__node")||eF(e)},children:[eg?(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,n.jsx)(c.default,{})}):ef?(0,n.jsx)(u.A,{severity:"error",sx:{margin:2},children:ef}):(0,n.jsx)(tV.Ln,{children:(0,n.jsx)(tV.Gc,{nodes:eE,edges:er,onNodesChange:en,onEdgesChange:el,nodeTypes:ab,edgeTypes:ay,fitView:!0,attributionPosition:"bottom-right",nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!1,onNodeClick:(e,t)=>{e.preventDefault();let a=ez(t);b&&a&&b(a)},onNodeContextMenu:eP,onPaneContextMenu:eF,onEdgeClick:e=>e.preventDefault(),onPaneClick:()=>{}})}),(0,n.jsxs)(tN.A,{open:!!eT,onClose:eD,anchorReference:"anchorPosition",anchorPosition:eT?{top:eT.y,left:eT.x}:void 0,children:[eT?.nodeLabel&&(0,n.jsxs)(X.A,{onClick:()=>{eT.breakpointKey&&b?.(eT.breakpointKey),eD()},disabled:!b||!eT.breakpointKey,children:[(0,n.jsx)(tD.A,{children:eT.breakpointKey&&eR.includes(eT.breakpointKey)?(0,n.jsx)(tK.A,{fontSize:"small",color:"error"}):(0,n.jsx)(tU.A,{fontSize:"small",color:eT.breakpointKey?"error":"disabled"})}),(0,n.jsx)(H.A,{primary:eT.breakpointKey&&eR.includes(eT.breakpointKey)?C("chat.debug.menu.removeBreakpoint"):C("chat.debug.menu.addBreakpoint"),secondary:eT.unavailableReason||eT.nodeLabel})]}),(0,n.jsxs)(X.A,{onClick:eW,disabled:!y,children:[(0,n.jsx)(tD.A,{children:(0,n.jsx)(tJ.A,{fontSize:"small",color:eO?"error":"inherit"})}),(0,n.jsx)(H.A,{primary:eO?C("chat.debug.menu.toolBreakpointOff"):C("chat.debug.menu.toolBreakpointOn"),secondary:C("chat.debug.menu.toolBreakpointHelp")})]}),(0,n.jsxs)(X.A,{onClick:e_,disabled:!y||0===eR.length,children:[(0,n.jsx)(tD.A,{children:(0,n.jsx)(tX.A,{fontSize:"small"})}),(0,n.jsx)(H.A,{primary:C("chat.debug.menu.clearAll")})]})]})]})]})})]}),detail:(0,n.jsxs)(i.default,{sx:{flexGrow:1,overflowY:"auto",minHeight:0,p:2},children:[ey?(0,n.jsxs)(i.default,{children:[(0,n.jsxs)(h.A,{variant:"body2",children:[(0,n.jsx)("b",{children:C("chat.debug.node")})," ",ey.nodeName," (",ey.nodeId,")"]}),(0,n.jsxs)(h.A,{variant:"body2",children:[(0,n.jsx)("b",{children:C("chat.debug.type")})," ",ey.nodeType]}),(0,n.jsxs)(h.A,{variant:"body2",children:[(0,n.jsx)("b",{children:C("chat.debug.timestamp")})," ",M(new Date(ey.timestamp),{dateStyle:"medium",timeStyle:"medium"})]}),(0,n.jsxs)(h.A,{variant:"body2",children:[(0,n.jsx)("b",{children:C("chat.debug.actionTaken")})," ",ey.actionTaken]}),(0,n.jsxs)(tR.A,{sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,n.jsx)(tO.A,{expandIcon:(0,n.jsx)(ee.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,n.jsx)(h.A,{variant:"caption",children:C("chat.debug.prepResult")})}),(0,n.jsx)(tP.A,{sx:{p:0},children:(0,n.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.prepResultSnapshot,null,2)})})]}),(0,n.jsxs)(tR.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,n.jsx)(tO.A,{expandIcon:(0,n.jsx)(ee.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,n.jsx)(h.A,{variant:"caption",color:ey.execResultSnapshot?.success===!1?"error":"inherit",children:ey.execResultSnapshot?.success===!1?C("chat.debug.execResultError"):C("chat.debug.execResult")})}),(0,n.jsx)(tP.A,{sx:{p:0},children:ey.execResultSnapshot?.success===!1?(0,n.jsxs)(i.default,{sx:{p:1,background:I.palette.error.light,borderRadius:1},children:[(0,n.jsxs)(h.A,{variant:"body2",color:"error",gutterBottom:!0,children:[(0,n.jsx)("b",{children:C("chat.debug.error")})," ",ey.execResultSnapshot.error||C("chat.debug.unknownError")]}),ey.execResultSnapshot.errorDetails&&(0,n.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"150px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"4px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.execResultSnapshot.errorDetails,null,2)})]}):(0,n.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.execResultSnapshot,null,2)})})]}),(0,n.jsxs)(tR.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,n.jsx)(tO.A,{expandIcon:(0,n.jsx)(ee.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,n.jsx)(h.A,{variant:"caption",children:C("chat.debug.stateBefore")})}),(0,n.jsx)(tP.A,{sx:{p:0},children:(0,n.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.stateBefore,null,2)})})]}),(0,n.jsxs)(tR.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,n.jsx)(tO.A,{expandIcon:(0,n.jsx)(ee.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,n.jsx)(h.A,{variant:"caption",children:C("chat.debug.stateAfter")})}),(0,n.jsx)(tP.A,{sx:{p:0},children:(0,n.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"var(--surface-raised)",color:"var(--foreground)",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify(ey.stateAfter,null,2)})})]})]}):(0,n.jsx)(h.A,{variant:"body2",color:"textSecondary",children:C("chat.debug.selectStep")}),(0,n.jsxs)(tR.A,{defaultExpanded:!0,sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,n.jsx)(tO.A,{expandIcon:(0,n.jsx)(ee.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,n.jsx)(h.A,{variant:"caption",children:C("chat.debug.runData")})}),(0,n.jsx)(tP.A,{sx:{p:0},children:(0,n.jsx)(ai,{conversationId:t,refreshToken:k?.resourceVersion})})]})]})};return(0,n.jsxs)(aC,{elevation:2,children:[(0,n.jsxs)(a$,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[(0,n.jsxs)(i.default,{children:[(0,n.jsx)(h.A,{variant:"h6",children:C("chat.debug.title")}),(0,n.jsxs)(h.A,{variant:"caption",color:"textSecondary",display:"block",children:[C("chat.debug.breakpointHelp"),eR.length>0?` \xb7 ${$("chat.debug.activeBreakpoints",eR.length)}`:""]}),eR.length>0&&(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,mt:.5,flexWrap:"wrap"},children:[aa(eR).length>0&&(0,n.jsx)(x.A,{size:"small",variant:"outlined",color:"error",icon:(0,n.jsx)(tU.A,{}),label:$("chat.debug.nodeBreakpoints",aa(eR).length)}),(eR??[]).filter(e=>e.startsWith(t9)).map(e=>e.slice(t9.length)).map(e=>(0,n.jsx)(x.A,{size:"small",variant:"outlined",color:"error",icon:(0,n.jsx)(tJ.A,{}),label:"*"===e?C("chat.debug.anyToolBreakpoint"):e,onDelete:y?()=>y(eR.filter(t=>t!==`tool:${e}`)):void 0},e)),(eR??[]).filter(e=>e.startsWith(ae)).map(e=>e.slice(ae.length)).map(e=>(0,n.jsx)(x.A,{size:"small",variant:"outlined",color:"error",icon:(0,n.jsx)(tJ.A,{}),label:C("chat.debug.toolNodeBreakpoint",{id:e.slice(0,8)}),onDelete:y?()=>y(eR.filter(t=>t!==`${ae}${e}`)):void 0},`tool-node:${e}`))]})]}),(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,n.jsx)(p.A,{title:R.conversation?C("chat.debug.hideSection",{section:z.conversation}):C("chat.debug.showSection",{section:z.conversation}),children:(0,n.jsx)(g.A,{size:"small",onClick:()=>eL("conversation"),color:R.conversation?"primary":"default","aria-label":R.conversation?C("chat.debug.hideSection",{section:z.conversation}):C("chat.debug.showSection",{section:z.conversation}),children:(0,n.jsx)(tB.A,{fontSize:"small"})})}),(0,n.jsx)(p.A,{title:R.tracker?C("chat.debug.hideSection",{section:z.tracker}):C("chat.debug.showSection",{section:z.tracker}),children:(0,n.jsx)(g.A,{size:"small",onClick:()=>eL("tracker"),color:R.tracker?"primary":"default","aria-label":R.tracker?C("chat.debug.hideSection",{section:z.tracker}):C("chat.debug.showSection",{section:z.tracker}),children:(0,n.jsx)(O.A,{fontSize:"small"})})}),(0,n.jsx)(p.A,{title:R.detail?C("chat.debug.hideSection",{section:z.detail}):C("chat.debug.showSection",{section:z.detail}),children:(0,n.jsx)(g.A,{size:"small",onClick:()=>eL("detail"),color:R.detail?"primary":"default","aria-label":R.detail?C("chat.debug.hideSection",{section:z.detail}):C("chat.debug.showSection",{section:z.detail}),children:(0,n.jsx)(tL.A,{fontSize:"small"})})}),A&&(0,n.jsx)(p.A,{title:w?C("chat.debug.exitFullscreen"):C("chat.debug.enterFullscreen"),children:(0,n.jsx)(g.A,{size:"small",onClick:A,"aria-label":w?C("chat.debug.exitFullscreen"):C("chat.debug.enterFullscreen"),children:w?(0,n.jsx)(tH.A,{fontSize:"small"}):(0,n.jsx)(tq.A,{fontSize:"small"})})}),v&&(0,n.jsx)(p.A,{title:C("chat.debug.close"),children:(0,n.jsx)(g.A,{size:"small",onClick:v,"aria-label":C("chat.debug.close"),children:(0,n.jsx)(tF.A,{fontSize:"small"})})})]})]}),(0,n.jsx)(aM,{children:0===eB.length?(0,n.jsx)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",p:3},children:(0,n.jsx)(h.A,{variant:"body2",color:"textSecondary",children:C("chat.debug.allHidden")})}):eB.map((e,t)=>{let a,o,l;return(0,n.jsxs)(r.Fragment,{children:[(a="tracker"!==e,o="conversation"===e?F:"detail"===e?B:void 0,(0,n.jsxs)(i.default,{sx:{...a?{width:o,flexShrink:0}:{flexGrow:1,minWidth:300},display:"flex",flexDirection:"column",overflow:"hidden",minHeight:0},children:[(l=eB.indexOf(e),(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:1,py:.5,borderBottom:`1px solid ${I.palette.divider}`},children:[(0,n.jsx)(h.A,{variant:"subtitle2",noWrap:!0,children:z[e]}),(0,n.jsxs)(i.default,{sx:{display:"flex"},children:[(0,n.jsx)(p.A,{title:C("chat.debug.moveLeft",{section:z[e]}),children:(0,n.jsx)("span",{children:(0,n.jsx)(g.A,{size:"small",onClick:()=>eU(e,-1),disabled:l<=0,"aria-label":C("chat.debug.moveLeft",{section:z[e]}),children:(0,n.jsx)(tW.A,{fontSize:"small"})})})}),(0,n.jsx)(p.A,{title:C("chat.debug.moveRight",{section:z[e]}),children:(0,n.jsx)("span",{children:(0,n.jsx)(g.A,{size:"small",onClick:()=>eU(e,1),disabled:l<0||l>=eB.length-1,"aria-label":C("chat.debug.moveRight",{section:z[e]}),children:(0,n.jsx)(t_.A,{fontSize:"small"})})})}),(0,n.jsx)(p.A,{title:C("chat.debug.hideSection",{section:z[e]}),children:(0,n.jsx)(g.A,{size:"small",onClick:()=>eL(e),"aria-label":C("chat.debug.hideSection",{section:z[e]}),children:(0,n.jsx)(tF.A,{fontSize:"small"})})})]})]})),eX[e]]},e)),t<eB.length-1&&((e,t)=>{let a="tracker"!==e?e:"tracker"!==t?t:null;if(!a)return null;let r="tracker"!==e?1:-1;return(0,n.jsx)(aN,{onPointerDown:e=>eK(a,r,e),"aria-label":C("chat.debug.resizeSection",{section:z[a]})},`resizer-${e}-${t}`)})(e,eB[t+1])]},e)})}),(0,n.jsxs)(aT,{children:[(0,n.jsx)(d.A,{variant:"outlined",size:"small",onClick:ex,disabled:f||E<=0,children:C("chat.debug.previous")}),(0,n.jsx)(d.A,{variant:"contained",size:"small",onClick:eb,disabled:f||-1===E,children:e.executionTrace&&E<e.executionTrace.length-1?C("chat.debug.nextTrace"):C("chat.debug.stepNext")}),o&&(0,n.jsx)(d.A,{variant:"outlined",size:"small",onClick:o,disabled:f,children:C("chat.debug.stepOver")}),(0,n.jsx)(d.A,{variant:"contained",color:"secondary",size:"small",onClick:l,disabled:f,children:C("chat.debug.continue")}),(0,n.jsx)(d.A,{variant:"outlined",color:"error",size:"small",onClick:s,disabled:f,children:C("chat.debug.stop")})]})]})};var aR=a(97282);let aO=({mode:e,onClose:t,isExpanded:a,onToggleExpand:r})=>{let{t:o}=(0,eI.s9)();return(0,n.jsxs)(td.A,{elevation:0,square:!0,sx:{height:"100%",display:"flex",flexDirection:"column",minHeight:0,bgcolor:"background.default"},children:[(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.5,borderBottom:1,borderColor:"divider",flexShrink:0},children:[(0,n.jsx)(aR.A,{fontSize:"small",color:"primary"}),(0,n.jsx)(h.A,{variant:"subtitle2",sx:{flexGrow:1},children:o("chat.debug.title")}),r&&(0,n.jsx)(p.A,{title:o(a?"chat.debug.exitFullscreen":"chat.debug.enterFullscreen"),children:(0,n.jsx)(g.A,{size:"small",onClick:r,"aria-label":o(a?"chat.debug.exitFullscreen":"chat.debug.enterFullscreen"),children:a?(0,n.jsx)(tH.A,{fontSize:"small"}):(0,n.jsx)(tq.A,{fontSize:"small"})})}),(0,n.jsx)(p.A,{title:o("chat.debug.close"),children:(0,n.jsx)(g.A,{size:"small",onClick:t,"aria-label":o("chat.debug.close"),children:(0,n.jsx)(tF.A,{fontSize:"small"})})})]}),(0,n.jsxs)(i.default,{sx:{flexGrow:1,minHeight:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,p:3,textAlign:"center"},"data-testid":"debugger-pending",children:[(0,n.jsx)(c.default,{size:32}),(0,n.jsx)(h.A,{variant:"body2",color:"textSecondary",children:o("attaching"===e?"chat.debug.pendingAttaching":"chat.debug.pendingArmed")}),(0,n.jsx)(h.A,{variant:"caption",color:"textSecondary",sx:{maxWidth:420},children:o("attaching"===e?"chat.debug.pendingAttachingHelp":"chat.debug.pendingArmedHelp")})]}),(0,n.jsxs)(i.default,{sx:{display:"flex",gap:1,p:1,borderTop:1,borderColor:"divider",flexShrink:0},children:[(0,n.jsx)(d.A,{variant:"outlined",size:"small",disabled:!0,children:o("chat.debug.previous")}),(0,n.jsx)(d.A,{variant:"contained",size:"small",disabled:!0,children:o("chat.debug.stepNext")}),(0,n.jsx)(d.A,{variant:"outlined",size:"small",disabled:!0,children:o("chat.debug.stepOver")}),(0,n.jsx)(d.A,{variant:"contained",color:"secondary",size:"small",disabled:!0,children:o("chat.debug.continue")})]})]})},aP=(0,tz.h)("frontend/components/Chat/ExecutedFlowPanel"),aF={start:tQ.vm,process:tQ.Uw,finish:tQ.IK,mcp:tQ.v2,subflow:tQ.lA,resource:tQ.z9,signal:tQ.z3},aW={custom:tZ.jY,mcpEdge:tZ.oY,resourceEdge:tZ.sZ},a_=({flowId:e,flowSnapshot:t,executedNodeIds:a,liveActivity:o,onClose:l})=>{let{t:s}=(0,eI.s9)(),d=(0,j.A)(),[f,m]=(0,r.useState)(null),[x,b]=(0,r.useState)(!0),[y,v]=(0,r.useState)(null),[w,A,k]=(0,tV.ck)([]),[S,I,C]=(0,tV.fM)([]);(0,r.useEffect)(()=>{let a=!1;return(async()=>{b(!0),v(null);try{if(t&&Array.isArray(t.nodes)){a||m(t);return}if(!e)throw Error(s("chat.executed.noAgent"));aP.debug(`Loading flow definition for ID: ${e}`);let n=await tY.g.getFlow(e);if(!n)throw Error(s("chat.executed.notFound",{id:e}));a||m(n)}catch(e){aP.error("Error loading flow definition:",e),a||(v(e instanceof Error?e.message:s("chat.executed.loadFailed")),m(null))}finally{a||b(!1)}})(),()=>{a=!0}},[e,t,s]),(0,r.useEffect)(()=>{f&&(A(f.nodes.map(e=>({...e,draggable:!1,selectable:!1,connectable:!1}))),I(f.edges.map(e=>({...e,selectable:!1}))))},[f,A,I]);let $=(0,r.useMemo)(()=>new Set(a),[a]),[M,z]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{if(!o)return;let e=()=>Object.values(o.byNode).some(e=>Date.now()-e.ts<4e3);if(!e())return;let t=setInterval(()=>{z(Date.now()),e()||clearInterval(t)},350);return()=>clearInterval(t)},[o]);let E=(0,r.useMemo)(()=>w.map(e=>{let t=$.has(e.id),a=o?.byNode[e.id],n=!!a&&M-a.ts<4e3;return{...e,style:{...e.style,opacity:t||n?1:.4,border:n?`2px solid ${d.palette.primary.main}`:t?`2px solid ${d.palette.success.main}`:`1px solid ${d.palette.divider}`,boxShadow:n?`0 0 10px ${d.palette.primary.light}`:t?`0 0 8px ${d.palette.success.light}`:void 0}}}),[w,$,o,M,d]);return(0,n.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",height:"100%",borderLeft:1,borderColor:"divider",minWidth:0},children:[(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:1,borderBottom:1,borderColor:"divider",flexShrink:0},children:[(0,n.jsx)(O.A,{fontSize:"small",color:"action"}),(0,n.jsx)(h.A,{variant:"subtitle2",sx:{flex:1,minWidth:0},noWrap:!0,children:s("chat.executed.title")}),(0,n.jsx)(p.A,{title:s("chat.executed.hide"),children:(0,n.jsx)(g.A,{size:"small",onClick:l,"aria-label":s("chat.executed.hide"),children:(0,n.jsx)(tF.A,{fontSize:"small"})})})]}),(0,n.jsx)(i.default,{sx:{flex:1,minHeight:0,position:"relative"},children:x?(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,n.jsx)(c.default,{})}):y?(0,n.jsx)(u.A,{severity:"info",sx:{m:2},children:y}):(0,n.jsx)(tV.Ln,{children:(0,n.jsx)(tV.Gc,{nodes:E,edges:S,onNodesChange:k,onEdgesChange:C,nodeTypes:aF,edgeTypes:aW,fitView:!0,attributionPosition:"bottom-right",nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!1})})})]})};var aq=a(12289),aH=a(62310),aB=a(26636);let aL={authentication:"chat.page.errorClass.authentication",authorization:"chat.page.errorClass.authorization",cancelled:"chat.page.errorClass.cancelled",configuration:"chat.page.errorClass.configuration",context_limit:"chat.page.errorClass.context_limit",network:"chat.page.errorClass.network",provider:"chat.page.errorClass.provider",rate_limit:"chat.page.errorClass.rate_limit",timeout:"chat.page.errorClass.timeout",validation:"chat.page.errorClass.validation",unknown:"chat.page.errorClass.unknown"};function aU({error:e,fallbackMessage:t,compact:a}){let{t:o}=(0,eI.s9)(),[l,s]=(0,r.useState)(!1),[d,c]=(0,r.useState)(!1),u=e?.message||t||o("chat.page.endedError"),p=!!(e&&(e.code||e.httpStatus||e.errorClass||e.retryAfter)),g=async()=>{try{let t=JSON.stringify(e??{message:u},null,2);await navigator.clipboard.writeText(t),c(!0)}catch{}};return(0,n.jsxs)(i.default,{sx:{minWidth:0},children:[(0,n.jsx)(h.A,{variant:"body2",component:"span",sx:{wordBreak:"break-word"},children:u}),p&&(0,n.jsxs)(aq.A,{direction:"row",spacing:.5,flexWrap:"wrap",sx:{mt:.5},children:[e?.code&&(0,n.jsx)(x.A,{size:"small",variant:"outlined",label:o("chat.page.errorCode",{code:e.code})}),e?.httpStatus!==void 0&&(0,n.jsx)(x.A,{size:"small",variant:"outlined",label:o("chat.page.errorStatus",{status:e.httpStatus})}),e?.errorClass&&(0,n.jsx)(x.A,{size:"small",variant:"outlined",label:o(aL[e.errorClass])}),e?.retryAfter&&(0,n.jsx)(x.A,{size:"small",variant:"outlined",label:o("chat.page.errorRetryAfter",{seconds:e.retryAfter})})]}),!a&&e&&(e.details||p)&&(0,n.jsxs)(i.default,{sx:{mt:.5},children:[(0,n.jsxs)(aq.A,{direction:"row",spacing:1.5,alignItems:"center",children:[(0,n.jsxs)(aH.A,{component:"button",type:"button",variant:"caption",underline:"hover",onClick:()=>s(e=>!e),sx:{color:"inherit"},children:[o("chat.page.errorDetails")," ",l?"▾":"▸"]}),(0,n.jsx)(aH.A,{component:"button",type:"button",variant:"caption",underline:"hover",onClick:g,sx:{color:"inherit"},children:o("chat.page.errorCopy")})]}),l&&e.details&&(0,n.jsx)(i.default,{component:"pre",sx:{mt:.5,p:1,maxHeight:240,overflow:"auto",fontSize:"0.7rem",bgcolor:"action.hover",borderRadius:1,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:JSON.stringify(e.details,null,2)})]}),(0,n.jsx)(aB.A,{open:d,autoHideDuration:2e3,onClose:()=>c(!1),message:o("chat.page.errorCopied")})]})}function aK(e){return e?.nodes?.find(e=>(e?.type??e?.data?.type)==="start")}var aX=a(44424),aJ=a(19260),aG=a(52375),aV=a(39749),aY=a(45355),aQ=a(22766),aZ=a(51893),a0=a(60317),a1=a(81220),a2=a(13286),a5=a(16007);function a4(e){return(0,a5.BV)(`flujo-ui:mcp-canvas:dismissed:${e}`)}function a6(e){let t=(0,ek.Aq)(a4(e),[]);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}function a3(e,t,a){if(0===t.length)return;let n=new Set(a6(e));for(let e of t)a?n.add(e):n.delete(e);(0,ek.vi)(a4(e),[...n])}function a8(e){return(0,a5.BV)(`flujo-ui:mcp-canvas:auto-open-suppressed:${e}`)}function a7(e){return!0===(0,ek.Aq)(a8(e),!1)}let a9=(0,tz.h)("frontend/components/Chat/index");function ne(e){let t=(0,r.useRef)(e);return t.current=e,(0,r.useCallback)((...e)=>t.current(...e),[])}function nt(e){if(Array.isArray(e.content))return e.content;let t="string"==typeof e.content?e.content:"",a=e.attachments??[],n=a.filter(e=>"document"===e.type&&!e.content.startsWith("data:")),r=a.filter(e=>"image"===e.type),o=a.filter(e=>"image"!==e.type&&!n.includes(e));if(n.length>0&&(t+="\n\n"+n.map(e=>`[DOCUMENT]: ${e.content}`).join("\n\n")),0===r.length&&0===o.length)return t;let l=[];for(let e of(t.trim()&&l.push({type:"text",text:t}),r))l.push({type:"image_url",image_url:{url:e.content}});for(let e of o)if("audio"===e.type){let t=/^data:([^;,]+);base64,([\s\S]*)$/.exec(e.content),a=e.mimeType??t?.[1];t&&("audio/wav"===a||"audio/mpeg"===a)?l.push({type:"input_audio",input_audio:{data:t[2],format:"audio/mpeg"===a?"mp3":"wav"}}):l.push({type:"audio_url",audio_url:{url:e.content,mime_type:a}}),e.transcript&&l.push({type:"text",text:`[Audio transcript]: ${e.transcript}`})}else"video"===e.type?l.push({type:"video_url",video_url:{url:e.content,mime_type:e.mimeType}}):l.push({type:"file",file:{file_data:e.content,filename:e.originalName,mime_type:e.mimeType}});return l}let na=(e,t)=>e.length===t.length&&e.every((e,a)=>{let n=t[a];return e.id===n.id&&e.title===n.title&&e.flowId===n.flowId&&e.status===n.status&&e.recovery?.classification===n.recovery?.classification&&e.recovery?.updatedAt===n.recovery?.updatedAt&&e.plannedExecutionId===n.plannedExecutionId&&e.source===n.source&&e.parentConversationId===n.parentConversationId&&e.rootConversationId===n.rootConversationId&&e.createdAt===n.createdAt&&e.updatedAt===n.updatedAt&&e.lastUserMessageAt===n.lastUserMessageAt}),nn=/cancelled by user|execution cancelled/i,nr=e=>e?.code==="cancelled"||e?.error?.code==="cancelled"||[e?.message,"string"==typeof e?.body?.error?e.body.error:void 0].some(e=>"string"==typeof e&&nn.test(e)),no=()=>{var e;let t,a=(0,l.useRouter)(),o=(0,j.A)(),{t:_,tp:q}=(0,eI.s9)(),{settings:H}=(0,aV.useStorage)(),B=H?.experimental?.requireMcpAppLaunchClick!==!0,L=(0,s.A)(o.breakpoints.down("lg"),{noSsr:!0}),U=(0,s.A)(o.breakpoints.down("sm"),{noSsr:!0}),[K,X]=(0,r.useState)([]),[J,G]=(0,r.useState)(!0),[V,Y]=(0,r.useState)(!1),[Q,Z]=(0,r.useState)(null),[ee,et]=(0,r.useState)({total:0,hasMore:!1}),ea=(0,r.useRef)(ee),en=(0,r.useRef)(0),er=(0,r.useCallback)(e=>{ea.current=e,et(e)},[]),[eo,el]=(0,r.useState)(null),[es,ei]=(0,r.useState)(!1),[ed,ec]=(0,r.useState)(null),[eu,eh]=(0,W.Mj)(W.Zg.CURRENT_CONVERSATION_ID,null),ep=(0,r.useRef)(eu),eg=(0,r.useRef)(new Map),[ef,em]=(0,r.useState)(()=>new Set),[ex,ey]=(0,r.useState)(0),ev=(0,r.useMemo)(()=>eu?new Set(a6(eu)):new Set,[eu,ex]),ew=(0,r.useCallback)((e,t,a)=>{let n;n=new Set(a6(e)),a?n.add(t):n.delete(t),(0,ek.vi)(a4(e),[...n]),ey(e=>e+1)},[]),eA=(0,r.useCallback)(e=>{let t=ep.current;t&&ew(t,e,!1)},[ew]),[ej,eS]=(0,r.useState)(0),eC=(0,r.useMemo)(()=>!!eu&&a7(eu),[eu,ej]),e$=(0,r.useCallback)((e,t)=>{(0,ek.vi)(a8(e),t),eS(e=>e+1)},[]),eM=(0,r.useRef)(new Map),ez=(0,r.useRef)(0),eE=(0,r.useCallback)(e=>{let t=ez.current+1;ez.current=t;let a=ep.current;if(a===e)return void eh(e);let n=a?`${a}\u0000`:null,r=n?[...eM.current.entries()].filter(([e])=>e.startsWith(n)).map(([,e])=>e):[];if(0===r.length){ep.current=e,eh(e);return}Promise.allSettled(r.map(e=>e())).then(()=>{ez.current===t&&(ep.current=e,eh(e))})},[eh]),[eT,eN]=(0,W.Mj)(W.Zg.LAST_PICKED_FLOW_ID,null),[eR,eO]=(0,r.useState)(!1),[eP,eF]=(0,r.useState)(new Set),eW=(0,r.useCallback)((e,t)=>{e&&eF(a=>{if(t===a.has(e))return a;let n=new Set(a);return t?n.add(e):n.delete(e),n})},[]),[e_,eq]=(0,r.useState)({}),eV=(0,r.useRef)(!1),[eY,eQ]=(0,r.useState)(null),[e1,e2]=(0,r.useState)(null),[e5,e4]=(0,r.useState)(null),[e6,e3]=(0,r.useState)(null),[e8,e7]=(0,r.useState)([]),[e9,te]=(0,r.useState)(!1),[tt,ta]=(0,r.useState)(!1),[tn,tr]=(0,r.useState)(""),[to,tl]=(0,r.useState)(!1),[ts,td]=(0,r.useState)(null),[tc,tu]=(0,r.useState)(null),[tp,tg]=(0,r.useState)(null),[tf,tm]=(0,r.useState)(null),[tx,tb]=(0,r.useState)(null),[ty,tv]=(0,r.useState)(null),[tw,tk]=(0,r.useState)(!1),[tS,tI]=(0,r.useState)(null),[tC,t$]=(0,r.useState)(!1),[tM,tz]=(0,r.useState)(!1),[tE,tN]=(0,r.useState)(!1),[tD,tR]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-debugger-width"));return Number.isFinite(e)&&e>0?e:0}),[tO,tP]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-debugger-expanded"));(0,r.useEffect)(()=>{window.localStorage.setItem("flujo-debugger-expanded",tO?"1":"0")},[tO]);let[tF,tW]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-workflow-panel-visible"));(0,r.useEffect)(()=>{window.localStorage.setItem("flujo-workflow-panel-visible",tF?"1":"0")},[tF]);let[t_,tq]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-workflow-panel-width"));return Number.isFinite(e)&&e>0?e:320}),tH=(0,r.useCallback)(e=>{e.preventDefault();let t=e.clientX,a=0;tq(e=>(a=e,e));let n=document.body.style.userSelect,r=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let o=e=>{tq(Math.min(Math.max(a+(t-e.clientX),240),Math.round(.7*window.innerWidth)))},l=()=>{window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",l),document.body.style.userSelect=n,document.body.style.cursor=r,tq(e=>(e>0&&window.localStorage.setItem("flujo-workflow-panel-width",String(Math.round(e))),e))};window.addEventListener("pointermove",o),window.addEventListener("pointerup",l)},[]),tB=(0,r.useCallback)(e=>{e.preventDefault();let t=document.body.style.userSelect,a=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let n=e=>{tR(Math.min(Math.max(window.innerWidth-e.clientX,360),Math.round(.85*window.innerWidth)))},r=()=>{window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",r),document.body.style.userSelect=t,document.body.style.cursor=a,tR(e=>(e>0&&window.localStorage.setItem("flujo-debugger-width",String(Math.round(e))),e))};window.addEventListener("pointermove",n),window.addEventListener("pointerup",r)},[]),[tL,tU]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-chat-sidebar-width"));return Number.isFinite(e)&&e>0?e:300}),[tK,tX]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-chat-sidebar-collapsed")),[tJ,tG]=(0,r.useState)(!1),tV=L?!tJ:tK,tQ=(0,r.useCallback)(()=>{L?tG(e=>!e):tX(e=>{let t=!e;return window.localStorage.setItem("flujo-chat-sidebar-collapsed",t?"1":"0"),t})},[L]),tZ=ne(e=>{eE(e),L&&tG(!1)}),t1=(0,r.useCallback)(e=>{e.preventDefault();let t=document.body.style.userSelect,a=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let n=e=>{tU(Math.min(Math.max(e.clientX,220),560))},r=()=>{window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",r),document.body.style.userSelect=t,document.body.style.cursor=a,tU(e=>(e>0&&window.localStorage.setItem("flujo-chat-sidebar-width",String(Math.round(e))),e))};window.addEventListener("pointermove",n),window.addEventListener("pointerup",r)},[]),[t2,t5]=(0,r.useState)(null),[t4,t6]=(0,r.useState)(null),[t3,t8]=(0,r.useState)(t0),[t7,t9]=(0,r.useState)([]),[ae,at]=(0,r.useState)(eZ),[aa,an]=(0,r.useState)([]),[ar,ao]=(0,r.useState)(new Set),[al,as]=(0,r.useState)([]),[ai,ad]=(0,r.useState)(null),ac=(0,r.useRef)(null),au=(0,r.useRef)(null),ah=(0,r.useRef)(null),ap=(0,r.useRef)(null),ag=(0,r.useRef)(-1),af=(0,r.useRef)(new Map);(0,r.useEffect)(()=>{ep.current=eu},[eu]);let am=(0,r.useRef)(new Set),ax=(0,r.useRef)(null),ab=(0,r.useRef)(!1),ay=(0,r.useRef)(new Set),av=(0,r.useRef)(new Set),[aw,aA]=(0,r.useState)(new Set),aj=(0,r.useCallback)((e,t)=>{e&&(t?av.current.add(e):av.current.delete(e),aA(new Set(av.current)))},[]),ak=function(e={}){let{conversationId:t,messages:a,autoHideEnabled:n,idleMs:o}=e,l=(0,j.A)(),i=(0,s.A)(l.breakpoints.down("sm")),d=function({enabled:e,idleMs:t=2500}){let[a,n]=(0,r.useState)(!1),o=(0,r.useRef)(null),l=(0,r.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null)},[]),s=(0,r.useCallback)(()=>{l(),o.current=setTimeout(()=>{o.current=null,n(!0)},t)},[l,t]),i=(0,r.useCallback)(()=>{(n(!1),e)?s():l()},[s,l,e]);return(0,r.useEffect)(()=>(e?(n(!1),s()):(l(),n(!1)),l),[e,t,s,l]),{visible:!e||!a,poke:i}}({enabled:n??i,...void 0===o?{}:{idleMs:o}}),c=(0,S.Q)({bottomThreshold:80,anchorSelector:"[data-ask-flujo-message-id]",deps:[t,a]}),u=c.ref,h=(0,r.useRef)(!0),p=(0,r.useCallback)((e="auto")=>{let t=u.current;t&&(t.scrollTo({top:t.scrollHeight,behavior:(0,I.ik)(e)}),c.measure())},[u,c]),g=(0,r.useCallback)(()=>{let e=u.current;e&&(h.current=e.scrollHeight-e.scrollTop-e.clientHeight<80),c.onScroll(),d.poke()},[u,c,d]),f=(0,r.useCallback)(()=>{d.poke()},[d]),m=(0,r.useCallback)(()=>{h.current=!1;let e=u.current;e&&e.scrollTo({top:0,behavior:(0,I.ik)("smooth")}),c.measure()},[u,c]),x=(0,r.useCallback)(()=>{h.current=!1,c.scrollToPreviousAnchor()},[c]),b=(0,r.useCallback)(()=>{h.current=!0,p("smooth")},[p]),y=(0,r.useCallback)(e=>{d.poke(),"top"===e?m():"up"===e?x():"bottom"===e&&b()},[d,m,x,b]);(0,r.useEffect)(()=>{h.current=!0,p("auto")},[t]),(0,r.useEffect)(()=>{h.current&&p("auto")},[a]);let v=(0,r.useMemo)(()=>({top:c.atTop,up:c.atTop,bottom:c.atBottom}),[c.atTop,c.atBottom]);return{containerProps:{ref:u,onScroll:g,onPointerDown:f},scrollRef:u,show:c.scrollable&&d.visible,actions:C,disabled:v,onAction:y,jumpToLatest:b,isPinnedToBottom:()=>h.current}}({conversationId:eu,messages:eo?.messages}),aS=(0,r.useRef)(null);(0,r.useEffect)(()=>{aS.current=ai},[ai]),(0,r.useEffect)(()=>{let e=window.location.origin+"/v1";ac.current=new aG.Ay({baseURL:e,apiKey:"FLUJO",dangerouslyAllowBrowser:!0,maxRetries:0,timeout:18e6})},[]),(0,r.useEffect)(()=>{(async()=>{a9.debug("Loading flows");try{let e=await tY.g.loadFlows();e7(e)}catch(e){a9.error("Error loading flows:",e)}})()},[]);let aI=(0,r.useCallback)((e,t)=>{let a=t?.silent??!1,n=async()=>{a9.debug("Fetching conversation list from backend",{silent:a}),a||(G(!0),Z(null));let t=[],n=!1;try{let e=a?Math.max(50,en.current):50,n=await eD.O.listConversationPage({limit:Math.min(200,e)}),r=[...n.items];for(;r.length<e&&n.nextCursor;)n=await eD.O.listConversationPage({limit:Math.min(200,e-r.length),cursor:n.nextCursor}),r.push(...n.items);for(let e of(en.current=(t=r.filter(e=>!ay.current.has(e.id)).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))).length,er({total:n.total,hasMore:n.hasMore,nextCursor:n.nextCursor}),t))am.current.delete(e.id);X(e=>{let a=e.filter(e=>am.current.has(e.id)),n=e.find(e=>e.id===ep.current&&!am.current.has(e.id)&&!t.some(t=>t.id===e.id)),r=[...a,...t,...n?[n]:[]].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));return na(e,r)?e:r}),a9.info(`Fetched ${t.length} conversations for the list`)}catch(e){n=!0,a9.error("Error fetching conversation list:",e),a||(Z(_("chat.page.historyLoadFailed")),X([]),en.current=0,er({total:0,hasMore:!1}))}finally{if(a||G(!1),a||n)return;let r=void 0!==e?e:ep.current,o=ep.current;if(r&&(t.some(e=>e.id===r)||am.current.has(r)||void 0===e))r!==o&&(a9.debug(`Setting currentConversationId to ${r} after fetch/operation.`),eE(r));else if(t.length>0){let e=t[0].id;e!==o&&(a9.debug(`Selecting most recent conversation ${e} after fetch/operation.`),eE(e))}else null===o||am.current.has(o)||(a9.debug("No conversations available after fetch/operation, clearing selection."),eE(null))}};if(!a)return n();if(ax.current)return ab.current=!0,ax.current;let r=(async()=>{do ab.current=!1,await n();while(ab.current)})().finally(()=>{ax.current===r&&(ax.current=null)});return ax.current=r,r},[eE,_,er]),aC=(0,r.useCallback)(async()=>{let e=ea.current.nextCursor;if(e&&!V){Y(!0);try{let t=await eD.O.listConversationPage({limit:50,cursor:e}),a=t.items.filter(e=>!ay.current.has(e.id));X(e=>{let t=new Map(e.map(e=>[e.id,e]));for(let e of a)t.set(e.id,e);let n=[...t.values()].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));return na(e,n)?e:n}),en.current+=a.filter(e=>!am.current.has(e.id)).length,er({total:t.total,hasMore:t.hasMore,nextCursor:t.nextCursor})}catch(e){a9.error("Could not load the next conversation page",e),Z(_("chat.page.historyLoadFailed"))}finally{Y(!1)}}},[V,_,er]),a$=(0,r.useCallback)(async()=>{let e=(await eD.O.listAllConversationPages()).filter(e=>!ay.current.has(e.id)).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));en.current=e.length,er({total:e.length,hasMore:!1});let t=[...K.filter(e=>am.current.has(e.id)),...e].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt));return X(e=>na(e,t)?e:t),t},[K,er]);(0,r.useEffect)(()=>{aI()},[]),(0,r.useEffect)(()=>{let e=null,t=null,a=null,n=!1,r=0,o=()=>{e&&clearTimeout(e),t&&clearTimeout(t),e=null,t=null},l=()=>{e&&clearTimeout(e),n||"visible"!==document.visibilityState||(e=setTimeout(()=>{e=null,r=Date.now(),aI(void 0,{silent:!0}).finally(l)},3e4))},s=()=>{n||"visible"!==document.visibilityState||t||(t=setTimeout(()=>{t=null,r=Date.now(),aI(void 0,{silent:!0}).finally(l)},Math.max(200,5e3-(Date.now()-r))))},i=()=>{a||n||"visible"!==document.visibilityState||(a=eD.O.subscribeToSidebarEvents({onEvent:s}))},d=()=>{a?.close(),a=null},c=()=>{if("visible"!==document.visibilityState){o(),d();return}i(),r=Date.now(),aI(void 0,{silent:!0}).finally(l)};return r=Date.now(),i(),l(),document.addEventListener("visibilitychange",c),()=>{n=!0,o(),d(),document.removeEventListener("visibilitychange",c)}},[aI]);let aM=(0,r.useCallback)(async e=>{if(am.current.has(e))return void a9.debug("Skipping detail fetch for client-only conversation",{conversationId:e});if(ep.current!==e){a9.debug("Detail fetch requested for non-viewed conversation; refreshing list instead",{conversationId:e}),aI(void 0,{silent:!0});return}a9.debug("Fetching detailed conversation",{conversationId:e}),ei(!0),ec(null);try{let t=await eD.O.getConversation(e);if(ep.current!==e)return void a9.debug("Discarding stale detailed conversation response",{fetchedId:e,currentId:ep.current});void 0===t.mcpAppContexts||af.current.has(e)||af.current.set(e,{...t.mcpAppContexts}),el(t),"error"===t.status&&t.lastError?e2(t.lastError):"error"!==t.status&&e2(null),X(a=>a.map(a=>a.id===e?{...a,title:t.title,flowId:t.flowId,updatedAt:t.updatedAt,status:t.status??a.status}:a).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),a9.info("Fetched detailed conversation successfully",{conversationId:e})}catch(t){if(a9.error("Error fetching detailed conversation:",{conversationId:e,err:t}),ep.current!==e)return;t instanceof eD.b&&404===t.status?(ec(_("chat.page.conversationNotFound",{id:e})),eE(null),aI()):ec(_("chat.page.detailsLoadFailed",{id:e})),el(null)}finally{ep.current===e&&ei(!1)}},[aI,eE,_]);(0,r.useEffect)(()=>{td(null),tb(null),eu?aM(eu):(el(null),ei(!1),ec(null))},[eu,aM]),(0,r.useEffect)(()=>{let e=eo?.id;if(!e||e!==eu)return void em(e=>0===e.size?e:new Set);let t=(0,a2.fT)(eg.current,e,eo.messages);0!==t.length&&em(new Set((0,a2.pv)(eo.messages,t)))},[eu,eo?.id,eo?.messages]),(0,r.useEffect)(()=>{if(0===ef.size)return;let e=window.setTimeout(()=>em(new Set),1500);return()=>window.clearTimeout(e)},[ef]);let az=eo?.parentConversationId?K.find(e=>e.id===eo.parentConversationId):void 0;(0,r.useEffect)(()=>{let e=eo?.id;if(!(e&&eo?.status==="error")||!e)return void e4(null);let t=!1;return eD.O.getSubflowRecoveryOptions(e).then(e=>{t||e4(e.hasRecoverableFamily?e:null)}).catch(a=>{a9.warn("Could not load subflow recovery options",{conversationId:e,err:a}),t||e4(null)}),()=>{t=!0}},[eo?.id,eo?.parentConversationId,eo?.status,az?.status,az?.updatedAt,az?.recovery?.updatedAt]),(0,r.useEffect)(()=>{eo&&te(eo.requireApproval??!1)},[eo?.id]);let aE=(0,r.useCallback)(async e=>{if(te(e),eu)try{await eD.O.updateConversationApproval(eu,e)}catch(e){a9.warn("Failed to persist requireApproval setting",{conversationId:eu,err:e})}},[eu]),aT=K.find(e=>e.id===eu)||null,aN=(0,r.useMemo)(()=>{let e={};for(let t of e8)t.id&&(e[t.id]=t.name);return e},[e8]),aR=(0,r.useMemo)(()=>e8.find(e=>e.id===eo?.flowId)||null,[e8,eo?.flowId]),aP=(0,r.useCallback)(e=>{if("chat-message"===e.target.kind&&e.target.id&&"highlight"===e.type){let t=[...document.querySelectorAll("[data-ask-flujo-message-id]")].find(t=>t.getAttribute("data-ask-flujo-message-id")===e.target.id)??null,a=(0,aQ.g_)(t);return{success:a,message:a?"Highlighted the conversation message.":"That message is not currently visible."}}if("chat-field"===e.target.kind&&"title"===e.target.field){if("highlight"===e.type){let e=(0,aQ.g_)(document.querySelector("[data-ask-flujo-chat-title]"));return{success:e,message:e?"Highlighted the conversation title.":"The title is not currently visible."}}return"string"==typeof e.value&&e.value.trim()?(tr(e.value),ta(!0),{success:!0,message:"Updated the title field. Confirm it with the normal save control."}):{success:!1,message:"The conversation title must be non-empty text."}}return{success:!1,message:"That conversation UI target is not supported."}},[]);(0,aY.qz)({scopeId:eo?`chat:${eo.id}`:"chat:none",pageType:"chat",route:"/chat",title:eo?.title??_("nav.talk"),identifiers:{conversationId:eo?.id??eu,flowId:eo?.flowId??null},data:{conversation:eo,selectedFlow:aR,requireApproval:e9,executeInDebugger:to},capabilities:{highlightTargets:[...(eo?.messages??[]).map(e=>({kind:"chat-message",id:e.id,role:e.role,processNodeId:e.processNodeId})),{kind:"chat-field",field:"title"}],editableTargets:[{kind:"chat-field",field:"title"}],notes:["The conversation id and flow id are always supplied explicitly."]}},aP,100);let aF=(0,r.useMemo)(()=>aR?.nodes?.map(e=>({id:e.id,label:e.data.label||e.id}))||[],[aR]),aW=(0,r.useMemo)(()=>{var e;let t;return e={messages:eo?.messages,nodeExecutionTracker:tS?.trackingInfo?.nodeExecutionTracker,executionTrace:tS?.executionTrace,sseVisitedIds:ar},t=new Set,e.messages?.forEach(e=>{e?.processNodeId&&t.add(e.processNodeId)}),e.nodeExecutionTracker?.forEach(e=>{e?.nodeId&&t.add(e.nodeId)}),e.executionTrace?.forEach(e=>{e?.nodeId&&t.add(e.nodeId)}),e.sseVisitedIds?.forEach(e=>{e&&t.add(e)}),Array.from(t)},[eo?.messages,tS,ar]);(0,r.useEffect)(()=>{ao(new Set),t9([])},[eo?.id]);let aq=(0,r.useMemo)(()=>{let e=e=>!!e&&aF.some(t=>t.id===e);if(e(tx))return tx;if(e(eo?.currentNodeId))return eo.currentNodeId;let t=eo?.messages??[];for(let a=t.length-1;a>=0;a--){let n=t[a];if("assistant"===n.role&&e(n.processNodeId))return n.processNodeId}return aF[0]?.id??null},[tx,eo,aF]),aH=async e=>{a9.debug("Attempting to create new conversation"),eQ(null),e2(null);let t="string"!=typeof e||eb(e)?void 0:e8.find(t=>t.id===e),a=eT&&!eb(eT)?e8.find(e=>e.id===eT):void 0,n=(t??a??e8.find(e=>e.favorite)??e8[0])?.id||null;if(!n){a9.error("Cannot create conversation: No flows available or first flow has no ID."),eQ(_("chat.page.noAgents"));return}let r=(0,aJ.A)(),o=Date.now(),l={id:r,title:_("chat.page.newTitle"),flowId:n,createdAt:o,updatedAt:o};try{a9.info("Sending request to create conversation on backend",{payload:JSON.stringify(l)});let e=await eD.O.createConversation(l);a9.info("Successfully created conversation on backend",{conversationId:e.id}),X(t=>[e,...t].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),eE(e.id),el({id:e.id,title:e.title,flowId:e.flowId,createdAt:e.createdAt,updatedAt:e.updatedAt,messages:[]}),ei(!1),ec(null)}catch(t){a9.error("Error creating conversation on backend:",t);let e=_("chat.page.createFailed");t instanceof eD.b?e+=` (${t.body?.error||t.message})`:t instanceof Error&&(e+=` (${t.message})`),eQ(e)}};(0,aZ.R)({param:"flow",ready:e8.length>0,exists:e=>e8.some(t=>t.id===e)&&!eb(e),onResolve:e=>aH(e),consume:!0,replacePath:"/chat"});let aB=ne(()=>{aH()});(0,aZ.R)({param:a1.AW,ready:e8.length>0,exists:e=>(0,a1.k2)(e),onResolve:e=>{(0,a1.pP)(e)&&aB()},consume:!0,replacePath:"/chat"}),(0,r.useEffect)(()=>(0,a1.lP)(e=>{(0,a1.pP)(e)&&aB()}),[aB]);let[aL,a5]=(0,r.useState)(null),no=(0,r.useRef)(0),nl=(0,r.useCallback)(e=>{no.current+=1,a5({id:e,requestKey:no.current})},[]),ns=(0,r.useRef)(null),ni=(0,r.useRef)(!1),nd=(0,r.useCallback)(e=>{if(ns.current=e,K.some(t=>t.id===e)){eE(e),nl(e);return}!ea.current.hasMore||ni.current?a9.warn("Conversation deep link target does not exist, ignoring",{id:e}):(ni.current=!0,a$().then(t=>{if(ns.current===e){if(!t.some(t=>t.id===e))return void a9.warn("Conversation deep link target does not exist, ignoring",{id:e});eE(e),nl(e)}}).catch(t=>{a9.warn("Could not materialize conversation deep link target",{id:e,error:t})}).finally(()=>{ni.current=!1}))},[K,a$,nl,eE]);(0,aZ.R)({param:"conversation",ready:!J,exists:e=>K.some(t=>t.id===e)||ea.current.hasMore,onResolve:e=>nd(e)});let[nc,nu]=(0,r.useState)(null);(0,aZ.R)({param:"message",ready:!es&&!!eo&&eo.id===eu,exists:e=>!!eo?.messages?.some(t=>t.id===e),onResolve:e=>nu(e),consume:!0,replacePath:eu?(0,a0.F)({kind:"conversation",id:eu}):"/chat"}),(0,r.useEffect)(()=>{if(J||ni.current)return;let e=new URLSearchParams(window.location.search);if(e.get("flow")||e.get("message")||e.get(a1.AW))return;let t=ep.current,n=e.get("conversation");if(t){n!==t&&a.replace((0,a0.F)({kind:"conversation",id:t}));return}n&&a.replace("/chat")},[eu,K,J,a]),(0,r.useEffect)(()=>{if(!nc)return;let e=window.setTimeout(()=>nu(null),4e3);return()=>window.clearTimeout(e)},[nc]),(0,r.useEffect)(()=>{nu(null)},[eu]);let[nh,np]=(0,r.useState)(!1),ng=async e=>{eQ(null),e2(null);let t=(0,aJ.A)(),{flow:a}=await eD.O.synthesizeQuickChat({conversationId:t,modelId:e.modelId,servers:e.servers,systemPrompt:e.systemPrompt}),n=Date.now(),r=await eD.O.createConversation({id:t,title:_("chat.page.quickChat"),flowId:a.id,flowSnapshot:a,createdAt:n,updatedAt:n});X(e=>[r,...e].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),eE(r.id),el({id:r.id,title:r.title,flowId:r.flowId,createdAt:r.createdAt,updatedAt:r.updatedAt,messages:[]}),ei(!1),ec(null),np(!1)},nf=(0,r.useCallback)(e=>{a9.debug("Updating detailed conversation state locally",{conversationId:e.id});let t={...e,updatedAt:Date.now()};el(t),X(e=>e.map(e=>e.id===t.id?{...e,title:t.title,updatedAt:t.updatedAt}:e).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)))},[]),nm=(0,r.useCallback)(()=>{ah.current&&(a9.debug("Closing execution event stream"),ah.current.close(),ah.current=null)},[]),nx=(0,r.useCallback)((e,t)=>{X(a=>{let n=a.findIndex(t=>t.id===e);if(-1===n||a[n].status===t)return a;let r=[...a];return r[n]={...r[n],status:t},r})},[]),nb=(0,r.useCallback)(e=>{if("number"==typeof e.seq){if(e.seq<=ag.current)return;ag.current=e.seq}("run:start"===e.type||"run:done"===e.type||"run:paused"===e.type||"breakpoint:hit"===e.type||"subflow:start"===e.type||"subflow:done"===e.type||"node:enter"===e.type||"node:exit"===e.type||"resource:read"===e.type||"resource:write"===e.type||"error"===e.type)&&t9(t=>{if("run:start"===e.type)return[e];let a=[...t,e];return a.length>2e3?a.slice(a.length-2e3):a}),"recovery:retry"!==e.type&&t6(t=>t&&(!e.conversationId||t.conversationId===e.conversationId)?null:t);let t=e=>t5(t=>({totalTokens:e.totalTokens??t?.totalTokens??0,activeNode:void 0!==e.activeNode?e.activeNode:t?.activeNode??null,startedAt:t?.startedAt??Date.now(),lastEventAt:Date.now()})),a=e=>t8(t=>{let a,n=Date.now(),r={byNode:{...t.byNode},byResource:{...t.byResource},byResourceName:{...t.byResourceName},resourceVersion:t.resourceVersion};return e(r),{byNode:(a=e=>{let t={};for(let[a,r]of Object.entries(e))n-r.ts<4e3&&(t[a]=r);return t})(r.byNode),byResource:a(r.byResource),byResourceName:a(r.byResourceName),resourceVersion:r.resourceVersion}});if(null!=e.laneIndex)switch(at(t=>(function(e,t,a=Date.now()){let n=t.laneIndex,r=t.laneCount;if(null==n||null==r)return e;let o=("subflow:start"===t.type||"subflow:done"===t.type)&&1===t.depth;if(o&&"subflow:start"===t.type){let o,l=t.node?.nodeId,s=e.ownerNodeId&&l&&e.ownerNodeId!==l?{}:{...e.byIndex};return e0(s,r,a),s[n]={laneIndex:n,laneCount:r,label:t.laneTitle||((o=t.subflowName||t.subflowId)?`${o} ${n+1}/${r}`:`Lane ${n+1}/${r}`),laneConversationId:t.laneConversationId??s[n]?.laneConversationId,status:"running",lastEventAt:a},{ownerNodeId:l??e.ownerNodeId,byIndex:s}}if(o&&"subflow:done"===t.type){let o={...e.byIndex};e0(o,r,a);let l=o[n];return o[n]={...l,label:l.label&&"pending"!==l.status?l.label:t.laneTitle||l.label,laneConversationId:l.laneConversationId??t.laneConversationId,status:"capped"===t.status?"completed":t.status,activity:void 0,lastEventAt:a},{ownerNodeId:e.ownerNodeId??t.node?.nodeId,byIndex:o}}let l=function(e){switch(e.type){case"node:enter":return e.node?.nodeName||e.node?.nodeId||void 0;case"tool:call":return e.name;case"tool:progress":return e.message?`${e.name} — ${e.message}`:e.name;case"subflow:start":return`↳ ${e.subflowName||e.subflowId}`;case"handoff":return`→ ${e.toNodeId}`;default:return}}(t);if(void 0===l)return e;let s=e.byIndex[n];if(s&&s.activity===l&&"pending"!==s.status||s&&("completed"===s.status||"error"===s.status))return e;let i={...e.byIndex};e0(i,r,a);let d=i[n];return i[n]={...d,status:"pending"===d.status?"running":d.status,activity:l,lastEventAt:a},{ownerNodeId:e.ownerNodeId,byIndex:i}})(t,e)),e.type){case"node:enter":if(e.node?.nodeId){let t=e.node.nodeId;a(e=>{e.byNode[t]={kind:"active",ts:Date.now()}}),ao(e=>e.has(t)?e:new Set(e).add(t))}t({});return;case"tool:call":case"tool:progress":case"subflow:start":case"handoff":t({});return}switch(e.type){case"run:start":t5({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),t8(t0),at(eZ),an([]),e.conversationId&&(nx(e.conversationId,"running"),aj(e.conversationId,!1));break;case"model:delta":t({}),el(t=>{if(!t||t.id!==e.conversationId)return t;let a=t.messages.findIndex(t=>t.id===e.messageId),n=a>=0?t.messages[a]:{id:e.messageId,role:"assistant",content:"",timestamp:e.timestamp,processNodeId:e.node?.nodeId};if("assistant"!==n.role)return t;let r=[...n.tool_calls??[]],o=e.toolCallDelta;if(o){let t=r[o.index];r[o.index]={id:o.id??t?.id??`pending_${e.messageId}_${o.index}`,type:"function",function:{name:`${t?.function.name??""}${o.nameDelta??""}`,arguments:`${t?.function.arguments??""}${o.argumentsDelta??""}`}}}let l={...n,content:`${"string"==typeof n.content?n.content:""}${e.delta??""}`,...e.mediaPart?{media:[...n.media??[],...(n.media??[]).some(t=>t.type===e.mediaPart?.type&&t.url===e.mediaPart?.url&&t.resourceUri===e.mediaPart?.resourceUri)?[]:[e.mediaPart]]}:{},...r.length>0?{tool_calls:r}:{}},s=[...t.messages];return a>=0?s[a]=l:s.push(l),{...t,messages:s}});break;case"model:end":t({}),e.discard&&e.messageId&&el(t=>{if(!t||t.id!==e.conversationId)return t;let a=t.messages.filter(t=>t.id!==e.messageId);return a.length===t.messages.length?t:{...t,messages:a}});break;case"message":{let a=e.message;t({}),el(t=>{let n;if(!t||t.id!==e.conversationId)return t;let r=t.messages.findIndex(e=>e.id===a.id);return r>=0?(n=[...t.messages])[r]={...n[r],...a}:n=[...t.messages,a],{...t,messages:n}});break}case"node:changed-files":{t({});let a=e.node?.nodeId;if(!a||0===e.changedFiles.length)break;el(t=>{if(!t||t.id!==e.conversationId)return t;let n=t.messages.findLastIndex(e=>e.processNodeId===a);if(n<0)return t;let r=[...t.messages];return r[n]={...r[n],changedFiles:e.changedFiles.map(({path:e,status:t})=>({path:e,status:t}))},{...t,messages:r}});break}case"usage":t5(t=>({totalTokens:(t?.totalTokens??0)+Math.max(0,(e.totalTokens||0)-(e.cacheReadTokens||0)),activeNode:t?.activeNode??null,startedAt:t?.startedAt??Date.now(),lastEventAt:Date.now()}));break;case"node:enter":if(t({activeNode:e.node?.nodeName||e.node?.nodeId||null}),e.node?.nodeId){let t=e.node.nodeId;a(e=>{e.byNode[t]={kind:"active",ts:Date.now()}}),ao(e=>e.has(t)?e:new Set(e).add(t))}break;case"resource:read":case"resource:write":{let n="resource:read"===e.type?"read":"write";if("resource:write"===e.type&&"snapshot"===e.source&&e.snapshot&&e.node?.nodeId&&e.conversationId===ep.current){let t=e.node.nodeId,a=e.snapshot.root;nR(e.conversationId),nN(n=>(0,eK.aE)(n,{serverName:"filesystem",uri:"ui://devcanvas/diff",instanceKey:`snapshot::${t}::${a}`,toolName:"snapshot_diff",resultContent:JSON.stringify({snapshotDiff:{nodeId:t,nodeName:e.node?.nodeName,root:a,startSnapshot:e.snapshot?.startSnapshot,endSnapshot:e.snapshot?.endSnapshot,changedFiles:e.snapshot?.changedFiles,resourceUri:e.uri}}),updateId:e.seq},Date.now(),Number.MAX_SAFE_INTEGER).state)}a(t=>{var a,r;let o=Date.now();e.node?.nodeId&&(t.byNode[e.node.nodeId]={kind:"read"===n?"resource-read":"resource-write",ts:o}),e.server&&e.uri&&(t.byResource[a=e.server,r=e.uri,`${a} ${r}`]={kind:n,ts:o}),e.name&&(t.byResourceName[e.name]={kind:n,ts:o}),"write"===n&&(t.resourceVersion=t.resourceVersion+1)}),t({});break}case"todo:update":an(e.todos??[]),t({});break;case"tool:call":t({activeNode:e.name});break;case"tool:progress":t({activeNode:e.message?`${e.name} — ${e.message}`:e.name});break;case"subflow:start":t({activeNode:`↳ ${e.subflowName||e.subflowId}`});break;case"handoff":t({activeNode:`→ ${e.toNodeId}`});break;case"run:awaiting_approval":e.conversationId&&e.conversationId===ep.current&&td(e.pendingToolCalls||[]),e.conversationId&&nx(e.conversationId,"awaiting_tool_approval");break;case"run:awaiting_elicitation":e.conversationId&&e.conversationId===ep.current&&tu({elicitationId:e.elicitationId,message:e.message,requestedSchema:e.requestedSchema});break;case"run:awaiting_question":e.conversationId&&e.conversationId===ep.current&&tg({questionId:e.questionId,questions:e.questions});break;case"breakpoint:hit":case"run:paused":eO(!1),e.conversationId&&(eW(e.conversationId,!1),nx(e.conversationId,"paused_debug")),tk(!0);break;case"run:done":if(e.conversationId&&(eW(e.conversationId,!1),nx(e.conversationId,e.status)),"error"===e.status&&e.error&&e.conversationId===ep.current&&e2(e.error),e.conversationId===ep.current&&(tu(null),tg(null)),e.conversationId&&aS.current&&e.conversationId!==aS.current)break;t5(null),t8(t0),at(eZ),eO(!1),ad(null),nm(),e.conversationId&&e.conversationId===ep.current?aM(e.conversationId):aI(void 0,{silent:!0});break;case"recovery:retry":e.conversationId&&(t6({conversationId:e.conversationId,attempt:e.attempt,maxAttempts:e.maxAttempts,retryAt:e.retryAt}),nx(e.conversationId,"running")),t({});break;case"error":eQ(e.message||_("chat.page.executionError")),e2(e.error??{message:e.message||_("chat.page.executionError")});break;default:t({})}},[nm,aM,aI,eW,nx,aj,_]),ny=(0,r.useCallback)((e,t)=>(nm(),ag.current=void 0!==t?t-1:-1,at(eZ),new Promise(a=>{let n=!1,r=()=>{n||(n=!0,a())};try{ah.current=eD.O.subscribeToEvents(e,{onEvent:nb,onOpen:r},t),setTimeout(r,1500)}catch(t){a9.error("Failed to open execution event stream",{conversationId:e,err:t}),r()}})),[nb,nm]);(0,r.useEffect)(()=>{if(eu&&aT?.status==="running"&&aS.current!==eu){if(av.current.has(eu))return void a9.debug("Skipping re-attach to a conversation the user just stopped",{conversationId:eu});a9.info("Re-attaching to in-progress run",{conversationId:eu}),aS.current=eu,eO(!0),ad(eu),eW(eu,!0),t5(e=>e??{totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),ny(eu,0)}},[eu,aT?.status,ny]);let nv=async e=>{a9.debug("Attempting to delete conversation",{conversationId:e}),eQ(null),e2(null),ay.current.add(e);let t=am.current.delete(e);aS.current===e&&(nm(),eO(!1),ad(null),t5(null),at(eZ),t6(null)),eW(e,!1),eq(t=>eJ(t,e));let a=K.filter(t=>t.id!==e);X(a);let n=eu;eu===e&&(a.length>0?(n=a[0].id,a9.debug("Deleted current conversation, selecting next most recent",{nextSelectionId:n})):(n=null,a9.debug("Deleted last conversation, clearing selection")),eE(n));try{await eD.O.deleteConversation(e),a9.info("Successfully deleted conversation on backend",{conversationId:e}),t||(en.current=Math.max(0,en.current-1),er({...ea.current,total:Math.max(0,ea.current.total-1)}))}catch(a){a9.error("Error deleting conversation:",{conversationId:e,err:a}),eQ(_("chat.page.deleteFailed",{id:e})),ay.current.delete(e),t&&am.current.add(e),X(K),eE(eu)}},nw=async e=>{if(!e.length)return;eQ(null),e2(null);let t=new Set(e),a=new Set(e.filter(e=>am.current.has(e))),n=K.filter(e=>t.has(e.id)&&!a.has(e.id)).length;e.forEach(e=>ay.current.add(e)),e.forEach(e=>am.current.delete(e));let r=ep.current;r&&t.has(r)&&aS.current===r&&(nm(),eO(!1),ad(null),t5(null),at(eZ),t6(null)),e.forEach(e=>{eW(e,!1),eq(t=>eJ(t,e))}),X(e=>e.filter(e=>!t.has(e.id))),r&&t.has(r)&&eE(null);try{let t=await eD.O.deleteConversations(e);a9.info("Bulk delete succeeded",{requested:e.length,...t}),en.current=Math.max(0,en.current-n);let r=e.length-a.size;er({...ea.current,total:Math.max(0,ea.current.total-Math.min(t.deleted,r))})}catch(t){a9.error("Bulk delete failed",{err:t}),eQ(_("chat.page.bulkDeleteFailed")),e.forEach(e=>ay.current.delete(e)),a.forEach(e=>am.current.add(e)),X(K),eE(eu)}},nA=async e=>{if(a9.debug("Flow selected, attempting to update",{flowId:e,currentConversationId:eu}),eQ(null),e2(null),!eu){a9.warn("Cannot update flow: No conversation selected."),eQ(_("chat.page.selectFirst"));return}eo&&eo.id===eu&&el({...eo,flowId:e,updatedAt:Date.now()}),X(t=>t.map(t=>t.id===eu?{...t,flowId:e,updatedAt:Date.now()}:t).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)));try{let t=await eD.O.updateConversationFlow(eu,e);a9.info("Successfully updated flowId on backend",{conversationId:eu,flowId:e}),el(e=>e&&e.id===eu?(a9.debug("Confirming detailedConversation update from server response",{conversationId:eu,flowId:t.flowId}),{...e,flowId:t.flowId,updatedAt:t.updatedAt}):(a9.debug("Skipping detailedConversation update, ID mismatch or null state",{currentDetailedId:e?.id,targetId:eu}),e)),X(e=>e.map(e=>e.id===eu?t:e).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)))}catch(a){a9.error("Error updating flowId on backend:",{conversationId:eu,flowId:e,err:a});let t=_("chat.page.updateAgentFailed");a instanceof eD.b?t+=` (${a.body?.error||a.message})`:a instanceof Error&&(t+=` (${a.message})`),eQ(t),el(eo),X(K)}},nj=()=>{tr(eo?.title??aT?.title??""),ta(!0)},nk=async()=>{if(ta(!1),!eu)return;let e=eo?.title??aT?.title??"",t=tn.trim().slice(0,200);if(t&&t!==e){el(e=>e&&e.id===eu?{...e,title:t}:e),X(e=>e.map(e=>e.id===eu?{...e,title:t}:e));try{let e=await eD.O.updateConversationTitle(eu,t);el(t=>t&&t.id===eu?{...t,title:e.title}:t),X(t=>t.map(t=>t.id===eu?{...t,title:e.title}:t))}catch(t){a9.warn("Failed to rename conversation",{conversationId:eu,err:t}),el(t=>t&&t.id===eu?{...t,title:e}:t),X(t=>t.map(t=>t.id===eu?{...t,title:e}:t)),eQ(_("chat.page.renameFailed"))}}},nS=async(e,t=[],a)=>{let n;if(!e.trim()&&0===t.length)return;if(!eo){a9.error("Cannot send message, detailed conversation not loaded."),eQ(_("chat.page.detailsMissing"));return}if(!a?.fromQueue&&eP.has(eo.id)){let a=eo.id;if(0!==t.length||tx){let n={id:(0,aJ.A)(),content:e,attachments:t,nodeOverride:tx??null,timestamp:Date.now()};eq(e=>{var t,r,o;return t=e,r=a,o=n,{...t,[r]:[...t[r]??[],o]}}),tb(null),a9.debug("Run in progress — queued message (not steerable)",{conversationId:a,queuedId:n.id,reason:t.length>0?"attachments":"node-override"});return}{let t=(0,aJ.A)(),{delivered:n}=await eD.O.injectMessage(a,e,t);if(n){let n={id:t,role:"user",content:e,timestamp:Date.now()};nf({...eo,messages:[...eo.messages,n]}),a9.debug("Run in progress — injected steering message into the live run",{conversationId:a,messageId:t});return}a9.debug("Steering rejected (run no longer live) — sending as a normal turn",{conversationId:a})}}a9.debug("Sending message",{conversationId:eo.id,contentLength:e.length,attachmentsCount:t.length});let r=eo.messages,o=!r.some(e=>"user"===e.role),l=eo.flowId,s=a?.fromQueue?a.nodeOverride??null:tx;if(s)n=s,a?.fromQueue||tb(null),a9.debug(`Assigning manually picked node ID to user message: ${n}`);else if(o){let e=aK(e8.find(e=>e.id===l));e?(n=e.id,a9.debug(`Assigning start node ID to first user message: ${n}`)):a9.warn(`Could not find start node for flow ${l}. User message will not have a processNodeId.`)}else if(aT?.status==="error"){let e=aK(e8.find(e=>e.id===l));e?(n=e.id,a9.debug(`Post-error message: re-driving turn from start node ID: ${n}`)):a9.warn(`Could not find start node for post-error message in flow ${l}. User message will not have a processNodeId.`)}else{for(let e=r.length-1;e>=0;e--){let t=r[e];if("assistant"===t.role&&t.processNodeId){n=t.processNodeId,a9.debug(`Assigning last assistant node ID to user message: ${n}`);break}}if(!n){let e=aK(e8.find(e=>e.id===l));e?(n=e.id,a9.debug(`No prior assistant node ID found, falling back to start node ID: ${n}`)):a9.warn(`Could not find start node for fallback in flow ${l}. User message will not have a processNodeId.`)}}let i={id:(0,aJ.A)(),role:"user",content:e,timestamp:Date.now(),attachments:t.length>0?t:void 0,processNodeId:n},d={...eo,messages:[...eo.messages,i]};nf(d),d.flowId?await n$(d):(eQ(_("chat.page.chooseAgent")),el(eo))},nI=(0,r.useCallback)((e,t)=>{a9.verbose("Handling API response data",JSON.stringify(e)),eW(t,"running"===e.status);let a=aS.current===t,n=ep.current===t;if("paused_debug"===e.status&&e.debugState)return(a9.info("API Response: Paused for debugging",{conversationId:t}),n)?(tI(e.debugState),tk(!0),t$(!0),eO(!1),ad(null),nm(),nC(),el(a=>a?.id===t&&e.debugState.messages&&JSON.stringify(a.messages)!==JSON.stringify(e.debugState.messages)?(a9.debug("Updating detailed conversation messages from debug state"),{...a,messages:e.debugState.messages,updatedAt:e.debugState.updatedAt}):a),X(a=>a.map(a=>a.id===t?{...a,title:e.debugState.title??a.title,flowId:e.debugState.flowId??a.flowId,status:"paused_debug",updatedAt:e.debugState.updatedAt}:a).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt)))):(nx(t,"paused_debug"),a&&(eO(!1),ad(null),nm(),nC())),!0;if(("completed"===e.status||"error"===e.status)&&n?(a9.info(`API Response: Execution completed or errored (Status: ${e.status}). Hiding debugger panel.`,{conversationId:t}),tz(!1),tN(!1),tl(!1),tk(!1),tI(null),t$(!1),as([])):a9.debug(`API Response: Status is '${e.status}'. Debugger panel visibility unchanged (currently ${tw?"visible":"hidden"}).`,{conversationId:t}),e.messages&&e.conversation_id===t){let a=e.messages.map((e,a)=>"number"!=typeof e.timestamp||isNaN(e.timestamp)?(a9.warn(`Invalid timestamp found in message index ${a} from API response. Defaulting to Date.now().`,{conversationId:t,messageId:e.id,invalidTimestamp:e.timestamp}),{...e,timestamp:Date.now()}):e);el(n=>{let r=n;return n?.id===t&&JSON.stringify(n.messages)!==JSON.stringify(a)&&(a9.info("API Response/Polling: Updating detailed conversation messages",{conversationId:t,newMessageCount:a.length}),r={...n,messages:a,updatedAt:e.updatedAt||n.updatedAt}),a9.debug("Polling: setDetailedConversation callback executed.",{conversationId:t,messagesChanged:r!==n,newMessageCount:r?.messages?.length??"N/A"}),r})}if("awaiting_tool_approval"===e.status)a9.info("API Response/Polling: Pausing for tool approval",{conversationId:t}),n&&td(e.pendingToolCalls||[]),a&&(eO(!1),ad(null),nm(),nC());else if("completed"===e.status||"error"===e.status){if(a9.info("API Response/Polling: Stopping due to final status",{conversationId:t,status:e.status}),a&&(nC(),eO(!1),ad(null),nm()),"error"===e.status){let r=e.error?.message||e.lastResponse?.error||_("chat.page.unknownExecutionError");nn.test(r)||av.current.has(t)?(aj(t,!0),(a||n)&&eQ(null),e2(null),a9.info("API Response/Polling: Execution cancelled by user",{conversationId:t})):(eQ(r),a9.error("API Response/Polling: Execution resulted in error",{conversationId:t,error:e.error||e.lastResponse}))}aM(t)}else"running"!==e.status||tw?n&&td(null):(n&&td(null),a&&!au.current&&eO(!0));return e.conversation_id===t&&X(a=>a.map(a=>a.id===t?{...a,title:e.title??a.title,flowId:e.flowId??a.flowId,status:e.status??a.status,updatedAt:e.updatedAt||a.updatedAt}:a).sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),!1},[el,td,eO,eQ,tk,tI,X,aM,nm,eW,nx,aj,_]),nC=()=>{au.current&&(a9.debug("Stopping polling interval"),clearInterval(au.current),au.current=null)};(0,r.useEffect)(()=>()=>{nm()},[nm]);let n$=async e=>{if(!e?.id||!e.flowId||!ac.current)return a9.error("Cannot send to completions: Missing conversation ID or flow ID.",{id:e?.id,flowId:e?.flowId}),eQ(_("chat.page.agentMissing")),!1;td(null),eQ(null),e2(null),eO(!0),ad(e.id),eW(e.id,!0),nx(e.id,"running"),aj(e.id,!1);let t=am.current.delete(e.id);t5({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await ny(e.id);let a=!1;try{let t,n,r,o;if(eb(e.flowId))t="flow-Quick Chat",a9.debug("Sending quick chat to completions",{flowId:e.flowId,conversationId:e.id});else{let a=await tY.g.getFlow(e.flowId);if(!a)throw Error(`Flow with ID ${e.flowId} not found`);t=`flow-${a.name}`,a9.debug("Sending to chat completions",{flowId:e.flowId,flowName:a.name,conversationId:e.id})}let l=e.messages.filter(e=>!e.disabled&&!((e.depth??0)>0)).map(e=>{let t=nt(e),a=e.processNodeId,n={id:e.id,timestamp:e.timestamp};return"user"===e.role?{role:"user",content:t,...n,processNodeId:a}:"assistant"===e.role?{role:"assistant",content:t,tool_calls:e.tool_calls,toolPayloads:e.toolPayloads,...n,processNodeId:a}:"system"===e.role?{role:"system",content:t,...n,processNodeId:a}:"tool"===e.role?e.tool_call_id?{role:"tool",content:t,tool_call_id:e.tool_call_id,toolPayloads:e.toolPayloads,...n,processNodeId:a}:{role:"user",content:"string"==typeof t?`Tool result: ${t}`:t,...n,processNodeId:a}:{role:"user",content:t,...n,processNodeId:a}}),s=await ac.current.chat.completions.create({model:t,messages:l,stream:!1,metadata:(n=af.current.get(e.id),r={flujo:"true",requireApproval:e9?"true":void 0,flujodebug:to?"true":void 0,conversationId:e.id,compactToolPayloads:"true",mcpAppContexts:void 0===n?void 0:JSON.stringify(n)},o={},r.flujo&&(o.flujo=r.flujo),r.requireApproval&&(o.requireApproval=r.requireApproval),r.flujodebug&&(o.flujodebug=r.flujodebug),r.conversationId&&(o.conversationId=r.conversationId),r.compactToolPayloads&&(o.compactToolPayloads=r.compactToolPayloads),void 0!==r.mcpAppContexts&&(o.mcpAppContexts=r.mcpAppContexts),o)});a9.debug("Chat completion initial response received",{completionId:s.id}),a=!0;let i={...s,status:s.status||"completed",conversation_id:e.id,messages:s.messages||e.messages,pendingToolCalls:s.pendingToolCalls,debugState:s.debugState,error:s.error,lastResponse:s.lastResponse,updatedAt:s.updatedAt||Date.now()},d=nI(i,e.id);d||au.current?d&&a9.debug("Debug state handled, polling remains stopped."):a9.debug("Starting polling after initial non-debug response.")}catch(r){if(nr(r)||av.current.has(e.id))return a9.info("Chat completion cancelled by user",{conversationId:e.id}),a=!1,eW(e.id,!1),aj(e.id,!0),aS.current===e.id&&(nC(),eO(!1),ad(null),nm(),eQ(null),e2(null)),a;a9.error("Error calling chat completions API:",r),a=!1;let n="An error occurred while sending the message.";if(r instanceof aG.LG)n=`API Error: ${r.message} (Status: ${r.status})`,r.code&&(n+=` (Code: ${r.code})`),r.type&&(n+=` [Type: ${r.type}]`),a9.verbose("APIError details",JSON.stringify(r));else if(r instanceof aG.vc){n=`OpenAI Error: ${r.message}`;let e=r.error;e&&"object"==typeof e&&(e.code&&(n+=` (Code: ${e.code})`),e.type&&(n+=` [Type: ${e.type}]`)),a9.verbose("OpenAIError details",JSON.stringify(r))}else r instanceof eD.b?(n=`Error: ${r.body?.error||r.message}`,r.status&&(n+=` (Status: ${r.status})`),a9.verbose("ChatApiError details",JSON.stringify(r.body))):r instanceof Error&&(n=r.message);eQ(n),eW(e.id,!1),aS.current===e.id&&(nC(),eO(!1),ad(null),nm()),t&&am.current.add(e.id)}finally{}return a},nM=(0,r.useRef)(nS);nM.current=nS;let nz=(0,r.useCallback)(e=>!!eu&&ep.current===eu&&(nM.current(e),!0),[eu]),nE=(0,r.useCallback)((e,t)=>{if(!eu||ep.current!==eu)return!1;let a={...af.current.get(eu)??{}};return(void 0===t.content&&void 0===t.structuredContent?delete a[e]:a[e]=t,(0,eX.Yw)(a)>eX.uJ)?(a9.warn("Rejected oversized aggregate MCP App model context",{conversationId:eu,appKey:e}),!1):(af.current.set(eu,a),!0)},[eu]),[nT,nN]=(0,r.useState)(eK.zs),[nD,nR]=(0,r.useState)(eu),[nO,nP]=(0,r.useState)({placement:"bottom",reservedWidth:0,reservedHeight:0}),nF=(0,r.useCallback)(e=>{nP(t=>t.placement===e.placement&&t.reservedWidth===e.reservedWidth&&t.reservedHeight===e.reservedHeight?t:e)},[]),nW=(0,r.useRef)(new Set),n_=(0,r.useCallback)((e,t,a)=>{let n=`${e}\u0000${t}`;a?eM.current.set(n,a):eM.current.delete(n)},[]),nq=(0,r.useCallback)((e,t)=>{eu&&n_(eu,e,t)},[eu,n_]),nH=(0,r.useCallback)(e=>{let t=ep.current;if(!t)return;let a=(0,eK.cb)(e.serverName,e.uri);(0,eK.h)({automatic:!!e.automatic,dismissed:a6(t).includes(a),suppressed:a7(t),healthy:e.healthy})&&(e.automatic||(ew(t,a,!1),e$(t,!1)),nR(t),nN(t=>{let{state:a}=(0,eK.aE)(t,e,Date.now(),Number.MAX_SAFE_INTEGER);return a}))},[e$,ew]),nB=(0,r.useCallback)(e=>{let t=ep.current;t&&(e?(a3(t,(0,eK.dd)(nT).map(e=>e.key),!0),e$(t,!0)):e$(t,!1))},[nT,e$]),nL=(0,r.useCallback)(()=>{let e=ep.current;if(!e)return;let t=(0,eK.dd)(nT).map(e=>e.key);0===t.length||(a3(e,t,!0),e$(e,!0),Promise.allSettled(t.map(t=>{let a=eM.current.get(`${e}\0${t}`);return a?a():Promise.resolve()})).finally(()=>{ep.current===e&&nN(e=>{let a=e;for(let e of t)a=(0,eK.o4)(a,e);return a})}))},[nT,e$]),nU=(0,r.useCallback)(e=>{nN(t=>(0,eK.Az)(t,e))},[]),nK=(0,r.useCallback)(e=>{if(!eu)return;ew(eu,e,!0);let t=eM.current.get(`${eu}\u0000${e}`),a=()=>{ep.current===eu&&nN(t=>(0,eK.o4)(t,e))};t?t().finally(a):a()},[eu,ew]);(0,r.useEffect)(()=>{nR(eu),nN(eK.zs),nP({placement:"bottom",reservedWidth:0,reservedHeight:0})},[eu]);let nX=nT.order.join("|");(0,r.useEffect)(()=>{let e=eo?.messages;if(!e||!eo||eo.id!==eu||nD!==eu)return;let t=new Map;for(let a of e)if("assistant"===a.role&&Array.isArray(a.tool_calls))for(let e of a.tool_calls)"function"===e.type&&e.id&&t.set(e.id,e);let a=new Map;for(let n of e){let e=n.ui;if("tool"===n.role&&e?.uri&&e?.serverName&&"string"==typeof n.content){let r="string"==typeof n.tool_call_id?t.get(n.tool_call_id):void 0,o={serverName:e.serverName,uri:e.uri,toolName:e.toolName??(r?.type==="function"?r.function.name:void 0),toolArgs:e.toolArgs??(r?.type==="function"?r.function.arguments:void 0),resultContent:n.content,cancelledReason:e.cancelledReason,isError:e.isError,updateId:n.id};a.set(`${e.serverName}::${e.uri}`,o)}}nN(e=>{let t=e;for(let e of t.order){let n=t.entries[e],r=a.get(e);n&&r&&(r.updateId!==n.latestToolUpdateId||r.toolArgs!==n.latestToolArgs||void 0===r.cancelledReason&&r.resultContent!==n.latestResultContent||r.cancelledReason!==n.latestToolCancelledReason||r.isError!==n.latestToolIsError)&&(t=(0,eK.hx)(t,r))}return t})},[nX,nD,eu,eo?.id,eo?.messages]),(0,r.useEffect)(()=>{if(!eu||nD!==eu||nT.order.length<=eK.Yb)return;let{evicted:e}=(0,eK.lR)(nT,eK.Yb,nT.activeKey??void 0);for(let t of e){let e=`${eu}\u0000${t}`;if(nW.current.has(e))continue;nW.current.add(e),a9.info(`Canvas tab cap reached — gracefully evicting (LRU): ${t}`);let a=eM.current.get(e);(a?a():Promise.resolve()).finally(()=>{nW.current.delete(e),ep.current===eu&&nN(e=>(0,eK.o4)(e,t))})}},[nT,nD,eu]);let nJ=async(e,t,a)=>{if(!eo)return;a9.debug("Editing message",{messageId:e,contentLength:t.length,processNodeId:a});let n=eo.messages.findIndex(t=>t.id===e);if(-1===n)return;let r={...eo.messages[n],content:t,timestamp:Date.now(),processNodeId:a||void 0},o=[...eo.messages.slice(0,n),r],l={...eo,messages:o};if(nf(l),l.flowId){let e=af.current.get(l.id),t={flujo:"true",requireApproval:e9?"true":void 0,flujodebug:to?"true":void 0,conversationId:l.id,processNodeId:a||void 0,mcpAppContexts:void 0===e?void 0:JSON.stringify(e)};if(!ac.current)return;eQ(null),e2(null),eO(!0),ad(l.id),eW(l.id,!0),aj(l.id,!1),t5({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await ny(l.id);try{let e,a=await tY.g.getFlow(l.flowId);if(!a)throw Error(`Flow with ID ${l.flowId} not found`);let n=l.messages.filter(e=>!e.disabled&&!((e.depth??0)>0)).map(e=>{let t=nt(e),a={id:e.id,timestamp:e.timestamp,processNodeId:e.processNodeId};return"user"===e.role?{role:"user",content:t,...a}:"assistant"===e.role?{role:"assistant",content:t,tool_calls:e.tool_calls,toolPayloads:e.toolPayloads,...a}:"system"===e.role?{role:"system",content:t,...a}:"tool"===e.role?e.tool_call_id?{role:"tool",content:t,tool_call_id:e.tool_call_id,toolPayloads:e.toolPayloads,...a}:{role:"user",content:"string"==typeof t?`Tool result: ${t}`:t,...a}:{role:"user",content:t,...a}}),r=await ac.current.chat.completions.create({model:`flow-${a.name}`,messages:n,stream:!1,metadata:(e={},t.flujo&&(e.flujo=t.flujo),t.requireApproval&&(e.requireApproval=t.requireApproval),t.flujodebug&&(e.flujodebug=t.flujodebug),t.conversationId&&(e.conversationId=t.conversationId),e.compactToolPayloads="true",t.processNodeId&&(e.processNodeId=t.processNodeId),void 0!==t.mcpAppContexts&&(e.mcpAppContexts=t.mcpAppContexts),e)}),o={...r,status:r.status||"completed",conversation_id:l.id,messages:r.messages||l.messages,pendingToolCalls:r.pendingToolCalls,debugState:r.debugState,error:r.error,updatedAt:r.updatedAt||Date.now()};nI(o,l.id)}catch(e){nr(e)||av.current.has(l.id)?(a9.info("Edited-message run cancelled by user",{conversationId:l.id}),aj(l.id,!0)):(a9.error("Error sending edited message:",e),eQ(e instanceof Error?e.message:_("chat.page.sendEditedFailed"))),eW(l.id,!1),aS.current===l.id&&(eO(!1),ad(null),nm())}}},nG=(0,r.useCallback)(e=>{let t=eo?.messages.find(t=>t.id===e);t&&"user"===t.role&&"string"==typeof t.content&&tv({messageId:e,content:t.content,nodeId:t.processNodeId??aF[0]?.id??null})},[eo,aF]),nV=(0,r.useCallback)(e=>{tv(t=>t?{...t,content:e}:t)},[]),nY=(0,r.useCallback)(e=>{tv(t=>t?{...t,nodeId:e}:t)},[]),nQ=(0,r.useCallback)(()=>tv(null),[]),nZ=(e,t="head")=>{var a;if(!eo)return;a9.debug("Splitting conversation at message",{messageId:e,half:t});let n=eo.messages.findIndex(t=>t.id===e);if(-1===n)return;let r=(a=eo.messages,"head"===t?a.slice(0,n+1):function(e,t){let a=e.slice(0,t).filter(e=>"system"===e.role),n=new Set,r=[];for(let a of e.slice(t)){if("assistant"===a.role&&Array.isArray(a.tool_calls))for(let e of a.tool_calls)e?.id&&n.add(e.id);("tool"!==a.role||!a.tool_call_id||n.has(a.tool_call_id))&&r.push(a)}return[...a,...r]}(a,n));if(0===r.length)return void a9.debug("Split produced no messages — ignoring",{messageId:e,half:t});let o=(0,aJ.A)(),l={id:o,title:_("head"===t?"chat.page.splitTitle":"chat.page.splitTailTitle",{title:eo.title}),messages:r,flowId:eo.flowId,createdAt:Date.now(),updatedAt:Date.now()},s={id:o,title:l.title,flowId:l.flowId,createdAt:l.createdAt,updatedAt:l.updatedAt};am.current.add(o),X(e=>[s,...e].sort((e,t)=>(t.lastUserMessageAt??t.updatedAt)-(e.lastUserMessageAt??e.updatedAt))),eE(o),el(l),ei(!1),ec(null)},n0=async(e,t,a,n)=>{if(eu){a9.info(`Handling tool response: ${e}`,{conversationId:eu,toolCallId:t,always:a}),td(null),eO(!0),ad(eu),eW(eu,!0),nx(eu,"running"),eQ(null),e2(null),await ny(eu);try{let r=await eD.O.respondToToolCall(eu,e,t,a,n);a9.debug("Tool response successful",{conversationId:eu,action:e,toolCallId:t}),nI(r,eu)}catch(n){if(nr(n)||av.current.has(eu)){a9.info("Tool-response resume cancelled by user",{conversationId:eu}),aj(eu,!0),aS.current===eu&&eO(!1),eW(eu,!1);return}a9.error(`Error sending tool response (${e})`,{conversationId:eu,toolCallId:t,err:n});let a="approve"===e?_("chat.page.approveFailed"):_("chat.page.rejectFailed");n instanceof eD.b?a+=` (${n.body?.error||n.message})`:n instanceof Error&&(a+=` (${n.message})`),eQ(a),aS.current===eu&&eO(!1),eW(eu,!1)}}},n1=async e=>{if(eu){a9.info("Cancelling single tool call",{conversationId:eu,toolCallId:e});try{await eD.O.cancelToolCall(eu,e)}catch(t){a9.warn("Failed to cancel tool call",{conversationId:eu,toolCallId:e,err:t})}}},n2=async(e,t)=>{if(eu){a9.info("Submitting elicitation form",{conversationId:eu,elicitationId:e}),tu(null);try{await fetch(`/v1/chat/conversations/${eu}/respond`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"elicitation-submit",elicitationId:e,content:t})})}catch(t){a9.error("Failed to submit elicitation",{conversationId:eu,elicitationId:e,err:t})}}},n5=async e=>{if(eu){a9.info("Cancelling elicitation",{conversationId:eu,elicitationId:e}),tu(null);try{await fetch(`/v1/chat/conversations/${eu}/respond`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"elicitation-cancel",elicitationId:e})})}catch(t){a9.error("Failed to cancel elicitation",{conversationId:eu,elicitationId:e,err:t})}}},n4=async(e,t)=>{if(eu){a9.info("Answering question",{conversationId:eu,questionId:e}),tg(null);try{await fetch(`/v1/chat/conversations/${eu}/respond`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"question-answer",questionId:e,answers:t})})}catch(t){a9.error("Failed to answer question",{conversationId:eu,questionId:e,err:t})}}},n6=async e=>{if(eu){a9.info("Declining question",{conversationId:eu,questionId:e}),tg(null);try{await fetch(`/v1/chat/conversations/${eu}/respond`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"question-decline",questionId:e})})}catch(t){a9.error("Failed to decline question",{conversationId:eu,questionId:e,err:t})}}},n3=async()=>{if(eu&&tw){a9.info("Handling debug step request",{conversationId:eu}),eO(!0),ad(eu),eW(eu,!0),eQ(null),e2(null),await ny(eu);try{let e=await eD.O.debugStep(eu);nI(e,eu)}catch(e){a9.error("Error during debug step API call",{conversationId:eu,err:e}),eQ(e instanceof Error?e.message:_("chat.page.debugStepFailed")),eO(!1),eW(eu,!1),tk(!1),tI(null)}finally{}}},n8=async()=>{if(eu&&tw){a9.info("Handling debug continue request",{conversationId:eu}),eO(!0),ad(eu),eW(eu,!0),nx(eu,"running"),eQ(null),e2(null),tz(!1),tN(!1),tl(!1),tk(!1),tI(null),t$(!1),as([]),await ny(eu);try{let e=await eD.O.debugContinue(eu);nI(e,eu)}catch(e){a9.error("Error during debug continue API call",{conversationId:eu,err:e}),eQ(e instanceof Error?e.message:_("chat.page.debugContinueFailed")),eO(!1),eW(eu,!1)}finally{}}};(0,r.useEffect)(()=>{tS&&as(tS.breakpoints??[])},[tS]);let n7=(0,r.useCallback)(async e=>{if(eu){as(e);try{await eD.O.setBreakpoints(eu,e)}catch(e){a9.error("Failed to update breakpoints",{conversationId:eu,err:e}),as(al)}}},[al,eu]),n9=(0,r.useCallback)(async e=>{if(!eu)return;let t=al.includes(e)?al.filter(t=>t!==e):[...al,e];as(t);try{await eD.O.setBreakpoints(eu,t)}catch(e){a9.error("Failed to update breakpoints",{conversationId:eu,err:e}),as(al)}},[al,eu]),re=(0,r.useCallback)(async()=>{if(eu){a9.info("Attaching debugger to running conversation",{conversationId:eu}),tN(!0);try{await eD.O.attachDebugger(eu)}catch(e){a9.error("Failed to attach debugger",{conversationId:eu,err:e}),tN(!1),eQ(e instanceof Error?e.message:_("chat.page.attachDebuggerFailed"))}}},[eu,_]),rt=(0,r.useCallback)(()=>{tM||tC||tw?ap.current?.():(tz(!0),tl(!0),(eR&&ai===eu||eu&&eP.has(eu)||aT?.status==="running")&&eu&&(ah.current||ny(eu),re()))},[tM,tC,tw,eR,ai,eu,eP,aT?.status,re,ny]),ra=async()=>{if(!eu||!tw)return;let e=tS?.currentNodeId;eO(!0),ad(eu),eW(eu,!0),eQ(null),e2(null),await ny(eu);try{for(let t=0;t<50;t++){let t=await eD.O.debugStep(eu),a=t?.status??t?.debugState?.status,n=t?.debugState?.currentNodeId;if("paused_debug"!==a||n&&n!==e)return void nI(t,eu)}a9.warn("Step Over hit iteration cap",{conversationId:eu}),eO(!1),eW(eu,!1)}catch(e){a9.error("Error during step over",{conversationId:eu,err:e}),eQ(e instanceof Error?e.message:_("chat.page.stepOverFailed")),eO(!1),eW(eu,!1)}},rn=async()=>{if(eu){a9.info("Cancelling request",{conversationId:eu}),nC(),eO(!1),ad(null),eW(eu,!1),aj(eu,!0),tz(!1),tN(!1),tl(!1),tk(!1),tI(null),t$(!1),as([]),nm(),td(null),t6(null),eQ(null),e2(null);try{await eD.O.cancel(eu),a9.debug("Cancel request sent successfully",{conversationId:eu}),await aM(eu)}catch(e){a9.error("Error sending cancel request",{conversationId:eu,err:e}),eQ(_("chat.page.cancelFailed"))}}},rr=async e=>{if(e===eu)return void await rn();a9.info("Stopping background conversation",{conversationId:e}),aj(e,!0);try{await eD.O.cancel(e),eW(e,!1),await aI(void 0,{silent:!0})}catch(t){a9.error("Error stopping background conversation",{conversationId:e,err:t}),eQ(_("chat.page.cancelFailed"))}},ro=async e=>{if(eu&&!e6){e3(e),eQ(null),e2(null);try{let t=await eD.O.retrySubflowRecovery(eu,e);t.failed.length>0?eQ(t.failed.map(e=>e.error).join("\n")):aj(eu,!1),await Promise.all([aM(eu),aI(void 0,{silent:!0})]);try{e4(await eD.O.getSubflowRecoveryOptions(eu))}catch{e4(null)}}catch(t){a9.error("Subflow recovery failed",{conversationId:eu,scope:e,err:t}),eQ(t instanceof Error?t.message:_("chat.page.recoveryFailed"))}finally{e3(null)}}},rl=(0,r.useCallback)(async()=>{if(a9.info("Closing debugger panel (detach)",{conversationId:eu,wasPaused:tw}),tz(!1),tN(!1),tl(!1),tk(!1),tI(null),t$(!1),eu){try{await eD.O.setBreakpoints(eu,[]),as([])}catch(e){a9.error("Failed to clear breakpoints while detaching",{conversationId:eu,err:e})}if(tw){eO(!0),ad(eu),eW(eu,!0),nx(eu,"running"),await ny(eu);try{let e=await eD.O.debugContinue(eu);nI(e,eu)}catch(e){a9.error("Failed to resume run while detaching the debugger",{conversationId:eu,err:e}),eO(!1),eW(eu,!1),eQ(e instanceof Error?e.message:_("chat.page.debugContinueFailed"))}}}},[eu,tw,ny,nI,eW,_]);(0,r.useEffect)(()=>{ap.current=rl},[rl]),(0,r.useEffect)(()=>{if(!eu||!tM&&!tC||tS||!(tw||aT?.status==="paused_debug"))return;let e=!1;return(async()=>{try{let t=await eD.O.getDebugState(eu);if(e||!t?.debugState)return;tI(t.debugState),t$(!0),tk(!0),tN(!1),as(t.breakpoints??[])}catch(e){a9.error("Failed to hydrate debug state",{conversationId:eu,err:e})}})(),()=>{e=!0}},[eu,tM,tC,tS,tw,aT?.status]),a9.debug("Rendering Chat component",{currentConversationId:eu,isHandleEditMessageDefined:!0});let rs=(tM||tC||tw)&&!!eu,ri=tE?"attaching":"armed",rd=aT?.status==="awaiting_tool_approval"||!!ts,rc=!(rd||aT?.status==="paused_debug")&&(eR&&ai===eu||!!eu&&eP.has(eu)||aT?.status==="running"),ru=!rc&&!!eu&&aw.has(eu);(0,r.useEffect)(()=>{var e;if(!eu||eV.current||!eo||eo.id!==eu)return;let t=(e_[eu]??[])[0];if(!t||!(!(e={running:eP.has(eu),pendingApproval:!!ts,debugPaused:tw,hasError:aT?.status==="error",stopped:ru}).running&&!e.pendingApproval&&!e.debugPaused&&!e.hasError&&!e.stopped))return;eV.current=!0;let a=setTimeout(async()=>{try{eq(e=>eG(e,eu,t.id)),await nS(t.content,t.attachments,{fromQueue:!0,nodeOverride:t.nodeOverride,queuedId:t.id})}catch{eq(e=>{var a,n,r;let o;return a=e,n=eu,r=t,o=(a[n]??[]).filter(e=>e.id!==r.id),{...a,[n]:[r,...o]}})}finally{eV.current=!1}},0);return()=>clearTimeout(a)},[eu,eo,e_,eP,ts,tw,aT?.status,ru]);let rh=ne(nv),rp=ne(nw),rg=ne(rr),rf=ne(aH),rm=(0,r.useCallback)(()=>np(!0),[]),rx=e5?(0,n.jsxs)(i.default,{sx:{display:"flex",gap:.5,flexWrap:"wrap",justifyContent:"flex-end"},children:[(0,n.jsx)(d.A,{color:"inherit",size:"small",startIcon:"branch"===e6?(0,n.jsx)(c.default,{color:"inherit",size:14}):(0,n.jsx)(M.A,{}),disabled:!!e6||!e5.canRetryBranch,onClick:()=>void ro("branch"),children:_("chat.page.recoverBranch")}),e5.canRetrySiblings&&(0,n.jsx)(d.A,{color:"inherit",size:"small",startIcon:"siblings"===e6?(0,n.jsx)(c.default,{color:"inherit",size:14}):(0,n.jsx)(O.A,{}),disabled:!!e6,onClick:()=>void ro("siblings"),children:_("chat.page.recoverLevel",{count:e5.incompleteSiblingCount})}),e5.canRetryDeepest&&e5.deepestFailedCount>1&&(0,n.jsx)(d.A,{color:"inherit",size:"small",startIcon:"deepest"===e6?(0,n.jsx)(c.default,{color:"inherit",size:14}):(0,n.jsx)(R.A,{}),disabled:!!e6,onClick:()=>void ro("deepest"),children:_("chat.page.recoverLeaves",{count:e5.deepestFailedCount})})]}):null,rb=J?(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%",p:2},children:(0,n.jsx)(aX.default,{size:"medium",color:"primary"})}):Q?(0,n.jsx)(u.A,{severity:"error",sx:{m:2},children:Q}):(0,n.jsx)(eH,{conversations:K,totalConversations:ee.total+am.current.size,hasMoreConversations:ee.hasMore,isLoadingMore:V,onLoadMore:aC,onLoadAll:a$,flowNames:aN,currentConversationId:eu,revealRequest:aL,onSelectConversation:tZ,onDeleteConversation:rh,onBulkDelete:rp,onStopConversation:rg,onNewConversation:rf,onQuickChat:rm,onCollapse:tQ,collapsed:tV});return(0,n.jsxs)(i.default,{sx:{display:"flex",height:`calc(
|
|
2
|
-
100dvh
|
|
3
|
-
- var(--app-bar-height)
|
|
4
|
-
- var(--active-subnav-height)
|
|
5
|
-
- var(--global-mcp-dock-top)
|
|
6
|
-
- var(--global-mcp-dock-bottom)
|
|
7
|
-
)`,minHeight:0,overflow:"hidden",position:"relative",bgcolor:"transparent"},children:[(0,n.jsx)(h.A,{component:"h1",className:"sr-only",children:_("chat.title")}),tV&&!U&&(0,n.jsx)(i.default,{sx:{width:40,flexShrink:0,borderRight:1,borderColor:"divider",display:"flex",justifyContent:"center",alignItems:"flex-start",pt:1.4,bgcolor:"var(--surface-glass)",backdropFilter:"blur(18px)"},children:(0,n.jsx)(p.A,{title:_("chat.page.showSidebar"),children:(0,n.jsx)(g.A,{size:"small",onClick:tQ,"aria-label":_("chat.page.showSidebar"),children:(0,n.jsx)(N.A,{fontSize:"small"})})})}),L&&(0,n.jsx)(f.Ay,{anchor:"left",open:tJ,onClose:()=>tG(!1),ModalProps:{keepMounted:!0},PaperProps:{sx:{width:"min(86vw, 340px)",maxWidth:"calc(100vw - 28px)",display:"flex",flexDirection:"column",bgcolor:"var(--surface-glass)",backgroundImage:"none",backdropFilter:"blur(22px) saturate(140%)",boxShadow:"24px 0 70px rgba(0,0,0,.45)"}},children:rb}),!L&&!tK&&(0,n.jsx)(i.default,{sx:{width:tL,flexShrink:0,borderRight:1,borderColor:"divider",display:"flex",flexDirection:"column",bgcolor:"var(--surface-glass)",backdropFilter:"blur(18px) saturate(135%)"},children:rb}),!L&&!tK&&(0,n.jsx)(i.default,{onPointerDown:t1,onKeyDown:e=>{("ArrowLeft"===e.key||"ArrowRight"===e.key)&&(e.preventDefault(),tU(t=>{let a=Math.min(560,Math.max(220,t+("ArrowRight"===e.key?16:-16)));return window.localStorage.setItem("flujo-chat-sidebar-width",String(a)),a}))},role:"separator",tabIndex:0,"aria-orientation":"vertical","aria-valuemin":220,"aria-valuemax":560,"aria-valuenow":Math.round(tL),sx:{position:"relative",width:"8px",flexShrink:0,cursor:"col-resize",bgcolor:"transparent",transition:"background-color 120ms","&::after":{position:"absolute",top:0,bottom:0,left:"50%",width:1,content:'""',bgcolor:"divider",transition:"width 120ms, background-color 120ms"},"&:hover::after":{width:2,bgcolor:"primary.main"},"&:focus-visible::after":{width:3,bgcolor:"primary.main"},touchAction:"none"},"aria-label":_("chat.page.resizeSidebar")}),(0,n.jsxs)(i.default,{sx:{flex:1,height:"100%",display:"flex",minWidth:0,minHeight:0},children:[(0,n.jsxs)(i.default,{sx:{flex:1,minWidth:0,display:"flex",flexDirection:"column",height:"100%",position:"relative",boxSizing:"border-box",pl:"left"===nO.placement&&nO.reservedWidth>0?`min(${nO.reservedWidth}px, calc(100% - 320px))`:0,pr:"right"===nO.placement&&nO.reservedWidth>0?`min(${nO.reservedWidth}px, calc(100% - 320px))`:0,pt:"top"===nO.placement&&nO.reservedHeight>0?`min(${nO.reservedHeight}px, calc(100% - 240px))`:0},children:[eu&&(0,n.jsxs)(i.default,{sx:{px:{xs:1,sm:1.5,md:2},py:{xs:.5,sm:.75},display:"flex",alignItems:"center",gap:1,minWidth:0,borderBottom:1,borderColor:"divider",bgcolor:"var(--surface-glass)",backdropFilter:"blur(16px)"},children:[U&&(0,n.jsx)(p.A,{title:_("chat.page.showSidebar"),children:(0,n.jsx)(g.A,{size:"small",onClick:tQ,"aria-label":_("chat.page.showSidebar"),children:(0,n.jsx)(N.A,{fontSize:"small"})})}),tt?(0,n.jsx)(m.A,{"data-ask-flujo-chat-title":!0,value:tn,onChange:e=>tr(e.target.value),onBlur:nk,onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),nk()):"Escape"===e.key&&ta(!1)},size:"small",autoFocus:!0,fullWidth:!0,inputProps:{maxLength:200,"aria-label":_("chat.page.conversationTitle")}}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(h.A,{"data-ask-flujo-chat-title":!0,variant:"subtitle1",noWrap:!0,onClick:nj,title:eo?.title||aT?.title||"",sx:{flex:1,minWidth:0,cursor:"text"},children:eo?.title||aT?.title||_("chat.page.untitled")}),(0,n.jsx)(p.A,{title:_("chat.page.rename"),children:(0,n.jsx)(g.A,{size:"small",onClick:nj,"aria-label":_("chat.page.rename"),children:(0,n.jsx)(D.A,{fontSize:"small"})})}),(0,n.jsx)(p.A,{title:tF?_("chat.page.hideExecuted"):_("chat.page.showExecuted"),children:(0,n.jsx)(g.A,{size:"small",color:tF?"primary":"default",onClick:()=>tW(e=>!e),"aria-label":_("chat.page.toggleExecuted"),children:(0,n.jsx)(O.A,{fontSize:"small"})})})]})]}),eu&&(0,n.jsxs)(i.default,{sx:{px:{xs:1,sm:1.5,md:2},py:{xs:.5,sm:.75},borderBottom:1,borderColor:"divider",display:"flex",alignItems:"center",gap:1,bgcolor:"var(--surface-glass)",backdropFilter:"blur(16px)"},children:[(0,n.jsx)(i.default,{sx:{flex:1,minWidth:0},children:eb(aT?.flowId||eo?.flowId)?(0,n.jsx)(x.A,{color:"primary",variant:"outlined",icon:(0,n.jsx)($.A,{}),label:_("chat.page.quickChat")}):(0,n.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,n.jsx)(tj.A,{selectedFlowId:aT?.flowId||eo?.flowId||null,onSelectFlow:e=>{if(!eu){a9.warn("Cannot update flow: No conversation selected."),eQ(_("chat.page.selectFirst"));return}eb(e)||eN(e);let t=eo?.flowId??aT?.flowId??null;if((eo?.messages?.length??0)>0&&t&&e!==t){a9.debug("Flow switch on executed conversation — asking for confirmation",{flowId:e,currentFlowId:t}),tm(e);return}nA(e)},disabled:tw,hideLabel:!0,compact:!0,fullScreenPicker:U}),(t=aT?.flowId||eo?.flowId||null)?(0,n.jsx)(p.A,{title:_("chat.page.openAgent"),children:(0,n.jsx)(g.A,{size:"small",color:"primary",onClick:()=>a.push(`/flows?flow=${encodeURIComponent(t)}`),children:(0,n.jsx)(R.A,{fontSize:"small"})})}):null]})}),(0,n.jsx)(tA,{usage:eo?.usage,contextInfo:eo?.contextInfo,availableNodes:aF,compact:U})]}),(0,n.jsxs)(i.default,{sx:{flex:1,minHeight:0,position:"relative",display:"flex",flexDirection:"column"},children:[(0,n.jsx)(i.default,{...ak.containerProps,sx:{flex:1,overflow:"auto",px:{xs:1.5,sm:2.5,lg:4},py:{xs:1.25,sm:2.5},"& > *":{width:"100%",maxWidth:{xs:960,lg:"none"},mx:"auto"}},children:es?(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,n.jsx)(aX.default,{size:"medium",color:"primary"})}):ed?(0,n.jsx)(u.A,{severity:"error",sx:{m:2},children:ed}):eo?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(eB.Ay,{messages:eo.messages,pendingToolCalls:ts,pendingElicitation:tc,availableNodes:aF,conversationId:eo.id,editingMessageId:ty?.messageId??null,onToggleDisabled:e=>{if(!eo)return;a9.debug("Toggling message disabled state",{messageId:e});let t=eo.messages.map(t=>t.id===e?{...t,disabled:!t.disabled}:t);nf({...eo,messages:t})},onSplitConversation:nZ,onSplitConversationFromHere:e=>nZ(e,"tail"),onRevertToHere:()=>aM(eo.id),onBeginEditMessage:nG,onApproveToolCall:(e,t)=>{n0("approve",e,t)},onRejectToolCall:(e,t,a)=>{n0("reject",e,t,a)},onCancelToolCall:n1,onSubmitElicitation:n2,onCancelElicitation:n5,pendingQuestion:tp,onAnswerQuestion:n4,onDeclineQuestion:n6,onAppMessage:nz,onUpdateModelContext:nE,onRegisterAppTeardown:nq,onOpenInCanvas:nH,autoOpenMcpApps:B,autoOpenMcpAppResultIds:ef,dismissedMcpAppKeys:ev,autoOpenSuppressed:eC,onMcpAppManualOpen:eA,anchorMessageId:nc,queuedMessages:e_[eo.id]??[],queueHoldReason:(e=>{switch(e){case"Held — you stopped this run. Send again to continue.":return _("chat.page.queueStopped");case"Held — the last run failed. Retry or send again to continue.":return _("chat.page.queueFailed");case"Held — waiting for tool approval.":return _("chat.page.queueApproval");case"Held — paused in the debugger.":return _("chat.page.queueDebugger");default:return e}})((e={running:eP.has(eo.id),pendingApproval:!!ts,debugPaused:tw,hasError:aT?.status==="error",stopped:ru}).stopped?"Held — you stopped this run. Send again to continue.":e.hasError?"Held — the last run failed. Retry or send again to continue.":e.pendingApproval?"Held — waiting for tool approval.":e.debugPaused?"Held — paused in the debugger.":null)}),!eR&&!tw&&eo.messages.length>0&&aT?.status==="completed"&&(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,n.jsx)(u.A,{icon:(0,n.jsx)(z.A,{fontSize:"inherit"}),severity:"success",variant:"filled",sx:{borderRadius:2,py:.5},children:_("chat.page.completed")})}),!eR&&!tw&&ru&&(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,n.jsx)(u.A,{icon:(0,n.jsx)(T.A,{fontSize:"inherit"}),severity:"info",variant:"outlined",sx:{borderRadius:2,py:.5,alignItems:"center"},action:rx??(0,n.jsx)(d.A,{color:"inherit",size:"small",startIcon:(0,n.jsx)(M.A,{}),onClick:()=>n$(eo),children:_("chat.page.resume")}),children:_("chat.page.stopped")})}),!eR&&!tw&&!ru&&eo?.recovery&&("interrupted"===eo.recovery.classification||eo.recovery.manualActionRequired)&&(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,n.jsxs)(u.A,{icon:(0,n.jsx)(E.A,{fontSize:"inherit"}),severity:"warning",variant:"filled",sx:{borderRadius:2,py:.5,alignItems:"center",maxWidth:760},action:(0,n.jsx)(d.A,{color:"inherit",size:"small",startIcon:(0,n.jsx)(M.A,{}),onClick:()=>n$(eo),children:_("chat.page.restartTurn")}),children:[(0,n.jsx)(h.A,{variant:"body2",fontWeight:600,children:eo.recovery.currentCheckpoint?.nodeId?_("chat.page.recoveryAtNode",{node:eo.recovery.currentCheckpoint.nodeId}):_("chat.page.recovery")}),eo.recovery.sideEffectWarning&&(0,n.jsx)(h.A,{variant:"caption",component:"div",children:eo.recovery.sideEffectWarning})]})}),!eR&&!tw&&!eY&&!ru&&eo?.recovery?.classification!=="interrupted"&&!eo?.recovery?.manualActionRequired&&aT?.status==="error"&&(0,n.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,n.jsx)(u.A,{icon:(0,n.jsx)(E.A,{fontSize:"inherit"}),severity:"error",variant:"filled",sx:{borderRadius:2,py:.5,alignItems:"center"},action:rx??(0,n.jsx)(d.A,{color:"inherit",size:"small",startIcon:(0,n.jsx)(M.A,{}),onClick:()=>{n$(eo)},children:_("chat.page.retry")}),children:(0,n.jsx)(aU,{error:eo?.lastError??e1,fallbackMessage:_("chat.page.endedError")})})}),rc&&aa.length>0&&(0,n.jsx)(th,{todos:aa}),rc&&!tw&&!U&&(0,n.jsx)(ti,{liveStats:t2,lanes:ae,onOpenLane:eE,onStop:rn,stopDisabled:!eu,retryWait:t4&&t4.conversationId===eu?t4:null}),!rc&&rd&&!tw&&!U&&(0,n.jsx)(ti,{liveStats:t2,lanes:ae,onOpenLane:eE,awaitingApproval:!0,onStop:rn,stopDisabled:!eu}),eY&&(0,n.jsx)(u.A,{severity:"error",sx:{mt:2},action:(0,n.jsx)(d.A,{color:"inherit",size:"small",startIcon:(0,n.jsx)(M.A,{}),onClick:()=>{eo&&n$(eo)},children:_("chat.page.retry")}),children:(0,n.jsx)(aU,{error:e1,fallbackMessage:eY,compact:!0})})]}):U?(0,n.jsxs)(i.default,{sx:{minHeight:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:1.5,px:2,textAlign:"center"},children:[(0,n.jsx)(h.A,{variant:"body1",color:"text.secondary",children:K.length>0?_("chat.page.selectOrCreate"):_("chat.page.createToStart")}),(0,n.jsx)(d.A,{variant:"contained",size:"large",startIcon:(0,n.jsx)(F.A,{}),onClick:()=>aH(),disabled:0===e8.length,sx:{minHeight:48,borderRadius:999,px:2.5},children:_("chat.page.newTitle")}),K.length>0&&(0,n.jsx)(d.A,{variant:"text",startIcon:(0,n.jsx)(N.A,{}),onClick:tQ,children:_("chat.page.showSidebar")})]}):(0,n.jsx)(h.A,{variant:"body1",color:"textSecondary",align:"center",sx:{mt:4},children:K.length>0?_("chat.page.selectOrCreate"):_("chat.page.createToStart")})}),(0,n.jsx)(k.A,{show:ak.show,actions:ak.actions,disabled:ak.disabled,onAction:ak.onAction,positionMode:"absolute",labels:{top:_("chat.page.scrollTop"),up:_("chat.page.scrollLastMessage"),bottom:_("chat.page.scrollLatest")},sx:{bottom:16,right:24,zIndex:2}})]}),eu&&(0,n.jsx)(eU.A,{conversationId:eu,entries:nD===eu?(0,eK.dd)(nT):[],activeKey:nT.activeKey,onSelectTab:nU,onCloseTab:nK,onAppMessage:nz,onUpdateModelContext:nE,onRegisterTeardown:n_,onLayoutChange:nF,onCollapseChange:nB,onCloseAll:nL},eu),U&&rc&&!tw&&(0,n.jsx)(ti,{compact:!0,liveStats:t2,lanes:ae,onOpenLane:eE,onStop:rn,stopDisabled:!eu,retryWait:t4&&t4.conversationId===eu?t4:null}),U&&!rc&&rd&&!tw&&(0,n.jsx)(ti,{compact:!0,liveStats:t2,lanes:ae,onOpenLane:eE,awaitingApproval:!0,onStop:rn,stopDisabled:!eu}),(!U||!!eu)&&(0,n.jsxs)(i.default,{sx:{p:0,borderTop:1,borderColor:"divider",background:"linear-gradient(to top, var(--background) 35%, transparent)"},children:[eu&&(e_[eu]??[]).length>0&&(0,n.jsxs)(i.default,{"data-testid":"queued-messages",sx:{mb:1,display:"flex",flexWrap:"wrap",gap:1,alignItems:"center"},children:[(0,n.jsxs)(h.A,{variant:"caption",color:"text.secondary",sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,n.jsx)(P.A,{fontSize:"inherit"})," ",_("chat.page.queued")]}),(e_[eu]??[]).map(e=>(0,n.jsx)(x.A,{size:"small",variant:"outlined",label:e.content.trim().slice(0,40)||(e.attachments.length?q("chat.messages.attachment",e.attachments.length):_("chat.page.queuedMessage")),onDelete:()=>eq(t=>eG(t,eu,e.id))},e.id))]}),(0,n.jsx)(eL.A,{onSendMessage:nS,disabled:es||!(eo?.flowId||aT?.flowId)||!!ts||tw,requireApproval:e9,onRequireApprovalChange:aE,debuggerOpen:rs,onToggleDebugger:rt,availableNodes:aF,flow:aR,currentNodeId:aq,nodeOverrideActive:!!tx,onSelectNode:tb,editing:ty,onEditingContentChange:nV,onEditingNodeChange:nY,onSaveEdit:()=>{ty&&ty.content.trim()&&(nJ(ty.messageId,ty.content,ty.nodeId||""),tv(null))},onCancelEdit:nQ})]})]})," ",tF&&eu&&!L&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.default,{onPointerDown:tH,onKeyDown:e=>{("ArrowLeft"===e.key||"ArrowRight"===e.key)&&(e.preventDefault(),tq(t=>{let a=Math.min(Math.max(240,Math.round(.7*window.innerWidth)),Math.max(240,t+("ArrowRight"===e.key?-16:16)));return window.localStorage.setItem("flujo-workflow-panel-width",String(a)),a}))},role:"separator",tabIndex:0,"aria-orientation":"vertical","aria-valuemin":240,"aria-valuemax":Math.max(240,Math.round(.7*window.innerWidth)),"aria-valuenow":Math.min(Math.max(240,Math.round(.7*window.innerWidth)),Math.round(t_)),sx:{width:"6px",flexShrink:0,display:{xs:"none",lg:"block"},cursor:"col-resize",bgcolor:"divider",transition:"background-color 120ms","&:hover":{bgcolor:"primary.main"},"&:focus-visible":{bgcolor:"primary.main"},touchAction:"none"},"aria-label":_("chat.page.resizeExecuted")}),(0,n.jsx)(i.default,{sx:{width:{xs:"100%",lg:`${t_}px`},minWidth:{xs:0,lg:240},maxWidth:{xs:"none",lg:"70vw"},flexShrink:0,display:"flex",flexDirection:"column",height:"100%",position:{xs:"absolute",lg:"static"},inset:{xs:0,lg:"auto"},zIndex:{xs:36,lg:"auto"},bgcolor:"background.default"},children:(0,n.jsx)(a_,{flowId:eo?.flowId||aT?.flowId||null,flowSnapshot:tS?.flowSnapshot??null,executedNodeIds:aW,liveActivity:t3,onClose:()=>tW(!1)})})]}),rs&&eu&&!tO&&!L&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.default,{onPointerDown:tB,onKeyDown:e=>{("ArrowLeft"===e.key||"ArrowRight"===e.key)&&(e.preventDefault(),tR(t=>{let a=Math.min(Math.max(360,Math.round(.85*window.innerWidth)),Math.max(360,(t||Math.round(.5*window.innerWidth))+("ArrowRight"===e.key?-16:16)));return window.localStorage.setItem("flujo-debugger-width",String(a)),a}))},role:"separator",tabIndex:0,"aria-orientation":"vertical","aria-valuemin":360,"aria-valuemax":Math.max(360,Math.round(.85*window.innerWidth)),"aria-valuenow":Math.min(Math.max(360,Math.round(.85*window.innerWidth)),Math.round(tD||.5*window.innerWidth)),sx:{width:"6px",flexShrink:0,display:{xs:"none",lg:"block"},cursor:"col-resize",bgcolor:"divider",transition:"background-color 120ms","&:hover":{bgcolor:"primary.main"},"&:focus-visible":{bgcolor:"primary.main"},touchAction:"none"},"aria-label":_("chat.page.resizeDebugger")}),(0,n.jsx)(i.default,{sx:{width:{xs:"100%",lg:tD?`${tD}px`:"50%"},minWidth:{xs:0,lg:360},maxWidth:{xs:"none",lg:"85vw"},flexShrink:0,display:"flex",flexDirection:"column",height:"100%",position:{xs:"absolute",lg:"static"},inset:{xs:0,lg:"auto"},zIndex:{xs:40,lg:"auto"},bgcolor:"background.default"},children:tS?(0,n.jsx)(aD,{debugState:tS,conversationId:eu,liveActivity:t3,executionEvents:t7,onStep:n3,onStepOver:ra,onContinue:n8,onCancel:rn,isLoading:eR,breakpoints:al,onToggleBreakpoint:n9,onSetBreakpoints:n7,onClose:rl,isExpanded:tO,onToggleExpand:()=>tP(e=>!e)}):(0,n.jsx)(aO,{mode:ri,onClose:rl,isExpanded:tO,onToggleExpand:()=>tP(e=>!e)})})]})]})," ",tF&&eu&&L&&!rs&&(0,n.jsx)(b.A,{fullScreen:!0,open:!0,onClose:()=>tW(!1),"aria-label":_("chat.page.executedDialog"),children:(0,n.jsx)(i.default,{sx:{height:"100%",display:"flex",flexDirection:"column",bgcolor:"background.default"},children:(0,n.jsx)(a_,{flowId:eo?.flowId||aT?.flowId||null,flowSnapshot:tS?.flowSnapshot??null,executedNodeIds:aW,liveActivity:t3,onClose:()=>tW(!1)})})}),rs&&eu&&(tO||L)&&(0,n.jsx)(b.A,{fullScreen:!0,open:!0,onClose:()=>{L?rl():tP(!1)},"aria-label":_("chat.page.debuggerDialog"),children:(0,n.jsx)(i.default,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:tS?(0,n.jsx)(aD,{debugState:tS,conversationId:eu,liveActivity:t3,executionEvents:t7,onStep:n3,onStepOver:ra,onContinue:n8,onCancel:rn,isLoading:eR,breakpoints:al,onToggleBreakpoint:n9,onSetBreakpoints:n7,onClose:rl,isExpanded:tO||L,onToggleExpand:()=>{L?rl():tP(e=>!e)}}):(0,n.jsx)(aO,{mode:ri,onClose:rl,isExpanded:tO||L,onToggleExpand:()=>{L?rl():tP(e=>!e)}})})}),(0,n.jsxs)(b.A,{open:!!tf,onClose:()=>tm(null),children:[(0,n.jsx)(y.A,{children:_("chat.page.switchTitle")}),(0,n.jsx)(v.A,{children:(0,n.jsx)(w.A,{children:_("chat.page.switchHelp",{agent:e8.find(e=>e.id===tf)?.name||_("chat.page.selectedAgent")})})}),(0,n.jsxs)(A.A,{children:[(0,n.jsx)(d.A,{onClick:()=>tm(null),children:_("chat.page.cancel")}),(0,n.jsx)(d.A,{variant:"contained",onClick:()=>{tm(null),tf&&nA(tf)},children:_("chat.page.switch")})]})]}),(0,n.jsx)(tT,{open:nh,onClose:()=>np(!1),onStart:ng})]})};var nl=a(13658);let ns=(0,tz.h)("app/chat/page");function ni(){return ns.debug("Rendering ChatPage"),(0,n.jsx)(o.A,{maxWidth:!1,disableGutters:!0,children:(0,n.jsx)(nl.A,{children:(0,n.jsx)(no,{})})})}},89228:(e,t,a)=>{"use strict";function n(e){let t=new Map;for(let a of e)t.set(a.id,a);let a=new Map,n=[],r=new Set,o=e=>e.parentConversationId&&e.parentConversationId!==e.id?e.parentConversationId:null,l=e=>e.rootConversationId&&e.rootConversationId!==e.id?e.rootConversationId:null,s=(e,t)=>{let n=a.get(e)??[];n.push(t),a.set(e,n)};for(let a of e){let e=o(a);if(e&&t.has(e)){s(e,a);continue}if(!e){n.push(a);continue}let i=l(a),d=i?t.get(i):void 0;r.add(a.id),d&&i!==e&&!o(d)?s(d.id,a):n.push(a)}let i=new Set,d=[...n];for(;d.length;){let e=d.pop();if(!i.has(e.id))for(let t of(i.add(e.id),a.get(e.id)??[]))d.push(t)}let c=new Set(n.map(e=>e.id));for(let t of e)i.has(t.id)||c.has(t.id)||(n.push(t),c.add(t.id),r.add(t.id));return{roots:n,childrenByParent:a,detachedIds:r}}a.d(t,{C:()=>n})}},e=>{e.O(0,[6373,3862,7926,7564,2457,6714,8111,1627,2782,9852,1418,6686,1216,238,3420,8961,6268,6567,9086,2667,8002,191,7129,1190,2454,1566,373,9304,3464,3101,8851,4742,5212,9749,2352,1114,1978,5147,7401,9610,3999,8441,3794,7358],()=>e(e.s=79415)),_N_E=e.O()}]);
|