flujo-ai 3.28.0 → 3.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +383 -373
- package/.next/app-path-routes-manifest.json +28 -26
- package/.next/build-manifest.json +5 -5
- package/.next/react-loadable-manifest.json +5 -4
- package/.next/routes-manifest.json +8 -0
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +3 -3
- package/.next/server/app/api/approvals/[id]/route.js +1 -1
- package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/approvals/route.js +2 -2
- package/.next/server/app/api/approvals/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/backup/route.js.nft.json +1 -1
- package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/bugs/enhance/route.js +2 -2
- package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
- package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/route.js +1 -1
- package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/encryption/secure/route.js +1 -1
- package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
- package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/env/route.js +1 -1
- package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/compile/route.js +1 -1
- package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/generate/route.js +1 -1
- package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/improve/route.js +1 -1
- package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
- package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/repair/route.js +1 -1
- package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/route.js +1 -1
- package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/init/route.js +1 -1
- package/.next/server/app/api/init/route.js.nft.json +1 -1
- package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/capability/route.js +2 -1
- package/.next/server/app/api/local-models/capability/route.js.nft.json +1 -1
- package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/pull/route.js +2 -1
- package/.next/server/app/api/local-models/pull/route.js.nft.json +1 -1
- package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/app-sandbox/route.js +1 -1
- package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/cancel/route.js +2 -2
- package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/route.js +1 -1
- package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp-registry/route.js +2 -2
- package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/[id]/route.js +1 -1
- package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/provider/route.js +2 -2
- package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
- package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/route.js +1 -1
- package/.next/server/app/api/model/route.js.nft.json +1 -1
- package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/test/route.js +2 -2
- package/.next/server/app/api/model/test/route.js.nft.json +1 -1
- package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/reset/route.js +2 -2
- package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/install/route.js +1 -1
- package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/install/status/route.js +1 -1
- package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/installed/route.js +1 -1
- package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/scan-targets/route.js +1 -0
- package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/uninstall/route.js +1 -1
- package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/route.js +2 -2
- package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -2
- package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -2
- package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/route.js +1 -1
- package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/resend/route.js +1 -1
- package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/reset/route.js +1 -1
- package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/route.js +1 -1
- package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/oauth/callback/route.js +1 -1
- package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/oauth/initiate/route.js +1 -1
- package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/publish/route.js +1 -1
- package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/settings/route.js +1 -1
- package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runs/active/route.js +2 -2
- package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
- package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/storage/route.js +1 -1
- package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update/route.js +1 -1
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/waves/route.js +1 -1
- package/.next/server/app/api/waves/route.js.nft.json +1 -1
- package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +8 -8
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +4 -4
- package/.next/server/app/docs/page.js +3 -3
- package/.next/server/app/docs/page.js.nft.json +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +4 -4
- package/.next/server/app/executions/page.js +2 -39
- package/.next/server/app/executions/page.js.nft.json +1 -1
- package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/executions.html +1 -1
- package/.next/server/app/executions.rsc +4 -4
- package/.next/server/app/flows/page.js +3 -3
- package/.next/server/app/flows/page.js.nft.json +1 -1
- package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/flows.html +1 -1
- package/.next/server/app/flows.rsc +4 -4
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/mcp/page.js +11 -11
- package/.next/server/app/mcp/page.js.nft.json +1 -1
- package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-flows/route.js +1 -1
- package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
- package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
- package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp.html +1 -1
- package/.next/server/app/mcp.rsc +4 -4
- package/.next/server/app/models/page.js +2 -2
- package/.next/server/app/models/page.js.nft.json +1 -1
- package/.next/server/app/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages/page.js +2 -2
- package/.next/server/app/packages/page.js.nft.json +1 -1
- package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages.html +1 -1
- package/.next/server/app/packages.rsc +4 -4
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +2 -2
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +4 -4
- package/.next/server/app/v1/chat/completions/route.js +1 -1
- package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +4 -4
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +2 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/events/route.js +2 -2
- package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/models/route.js +2 -2
- package/.next/server/app/v1/models/route.js.nft.json +1 -1
- package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/waves/page.js +2 -2
- package/.next/server/app/waves/page.js.nft.json +1 -1
- package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
- package/.next/server/app/waves.html +1 -1
- package/.next/server/app/waves.rsc +4 -4
- package/.next/server/app-paths-manifest.json +28 -26
- package/.next/server/chunks/1083.js +1 -1
- package/.next/server/chunks/1114.js +1 -1
- package/.next/server/chunks/1226.js +1 -1
- package/.next/server/chunks/1314.js +1 -1
- package/.next/server/chunks/{6529.js → 1578.js} +2 -2
- package/.next/server/chunks/1634.js +1 -0
- package/.next/server/chunks/166.js +5 -5
- package/.next/server/chunks/1819.js +1 -1
- package/.next/server/chunks/2180.js +1 -0
- package/.next/server/chunks/227.js +2 -2
- package/.next/server/chunks/2368.js +2 -0
- package/.next/server/chunks/2859.js +1 -1
- package/.next/server/chunks/{7674.js → 3030.js} +1 -1
- package/.next/server/chunks/3101.js +1 -0
- package/.next/server/chunks/3128.js +4 -4
- package/.next/server/chunks/3570.js +228 -105
- package/.next/server/chunks/3629.js +1 -1
- package/.next/server/chunks/3984.js +4 -4
- package/.next/server/chunks/4239.js +1 -1
- package/.next/server/chunks/4265.js +1 -1
- package/.next/server/chunks/4366.js +2 -0
- package/.next/server/chunks/4426.js +1 -1
- package/.next/server/chunks/4551.js +6 -0
- package/.next/server/chunks/4663.js +1 -0
- package/.next/server/chunks/4671.js +1 -1
- package/.next/server/chunks/4681.js +1 -1
- package/.next/server/chunks/4685.js +1 -0
- package/.next/server/chunks/4771.js +2 -2
- package/.next/server/chunks/4961.js +2 -0
- package/.next/server/chunks/5040.js +53 -0
- package/.next/server/chunks/5067.js +1 -1
- package/.next/server/chunks/544.js +135 -0
- package/.next/server/chunks/5463.js +1 -1
- package/.next/server/chunks/5544.js +5 -5
- package/.next/server/chunks/5561.js +1 -0
- package/.next/server/chunks/5708.js +1 -1
- package/.next/server/chunks/5786.js +2 -0
- package/.next/server/chunks/5829.js +1 -0
- package/.next/server/chunks/5863.js +37 -0
- package/.next/server/chunks/5880.js +1 -1
- package/.next/server/chunks/6034.js +77 -0
- package/.next/server/chunks/{5471.js → 6219.js} +1 -1
- package/.next/server/chunks/6226.js +6 -0
- package/.next/server/chunks/6432.js +1 -0
- package/.next/server/chunks/6496.js +1 -0
- package/.next/server/chunks/6518.js +2 -0
- package/.next/server/chunks/6588.js +2 -0
- package/.next/server/chunks/6793.js +1 -0
- package/.next/server/chunks/701.js +1 -1
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7579.js +4 -4
- package/.next/server/chunks/7634.js +4 -0
- package/.next/server/chunks/7821.js +1 -1
- package/.next/server/chunks/793.js +15 -5
- package/.next/server/chunks/7969.js +1 -0
- package/.next/server/chunks/{6537.js → 8001.js} +1 -1
- package/.next/server/chunks/8092.js +1 -0
- package/.next/server/chunks/8321.js +1 -0
- package/.next/server/chunks/8339.js +1 -1
- package/.next/server/chunks/8356.js +1 -0
- package/.next/server/chunks/8387.js +1 -1
- package/.next/server/chunks/848.js +39 -0
- package/.next/server/chunks/8667.js +1 -1
- package/.next/server/chunks/8739.js +1 -1
- package/.next/server/chunks/9174.js +1 -0
- package/.next/server/chunks/9251.js +1 -0
- package/.next/server/chunks/9253.js +3 -0
- package/.next/server/chunks/94.js +1 -1
- package/.next/server/chunks/9537.js +39 -0
- package/.next/server/chunks/9671.js +1 -1
- package/.next/server/chunks/9724.js +16 -6
- package/.next/server/chunks/9857.js +1 -0
- package/.next/server/chunks/{3298.js → 9868.js} +2 -2
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/JGMk-MwwdpQ94asqw-mUR/_buildManifest.js +1 -0
- package/.next/static/chunks/1572-b663a83bba28a0a1.js +8 -0
- package/.next/static/chunks/1988-bd73f26184e930c1.js +1 -0
- package/.next/static/chunks/2233-1139c1d3ef356980.js +1 -0
- package/.next/static/chunks/2266-d812473724cc6643.js +1 -0
- package/.next/static/chunks/2988-0b197a9b468a2df9.js +1 -0
- package/.next/static/chunks/3089.a0856f8093b90939.js +1 -0
- package/.next/static/chunks/3659-0ab9580d5ee5deea.js +1 -0
- package/.next/static/chunks/3672-cd86ace43288da79.js +1 -0
- package/.next/static/chunks/435-17c79f3b9f8dd38d.js +1 -0
- package/.next/static/chunks/454.5fc2f8eef98483e3.js +1 -0
- package/.next/static/chunks/4740-62814d07b2b7f760.js +1 -0
- package/.next/static/chunks/5418-45aa7e646ad024be.js +1 -0
- package/.next/static/chunks/5661-1b976072cc3d2fed.js +1 -0
- package/.next/static/chunks/6404-86615a5f5ce5c00f.js +1 -0
- package/.next/static/chunks/7445-d8a8be6e451c522e.js +1 -0
- package/.next/static/chunks/8054-f33d06ecea5d36e4.js +1 -0
- package/.next/static/chunks/812-dfe7ba07ddb7a565.js +1 -0
- package/.next/static/chunks/8404-14ef0345dc401ac5.js +1 -0
- package/.next/static/chunks/8863-c140a742178a4a87.js +1 -0
- package/.next/static/chunks/9562-5494feecd8c6f7a3.js +1 -0
- package/.next/static/chunks/9581-6d2523fd68a5e3c4.js +1 -0
- package/.next/static/chunks/app/api/approvals/[id]/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/approvals/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/backup/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/browse/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/bugs/enhance/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/cwd/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/encryption/secure/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/env/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/flow/compile/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/flow/generate/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/flow/improve/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/flow/quick-chat/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/flow/repair/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/flow/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/git/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/init/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/local-models/capability/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/local-models/pull/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/local-models/suggest/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/app-sandbox/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/cancel/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/oauth-capability/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/model/[id]/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/model/provider/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/model/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/model/test/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/oauth/callback/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/oauth/initiate/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/oauth/reset/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/packages/build/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/packages/derive-secrets/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/packages/install/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/packages/install/status/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/packages/installed/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/packages/resolve/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/packages/scan-targets/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/packages/uninstall/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/resend/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/reset/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/callback/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/initiate/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/registry/publish/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/registry/settings/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/restore/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/runs/active/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/storage/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/update/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/waves/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[id]/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/chat/page-2b69c5e35164f553.js +1 -0
- package/.next/static/chunks/app/executions/page-1d8557a642114697.js +1 -0
- package/.next/static/chunks/app/flows/page-3f0d7cca2edff792.js +1 -0
- package/.next/static/chunks/app/layout-81f91fb3b894951a.js +1 -0
- package/.next/static/chunks/app/mcp/page-0e90177062130679.js +1 -0
- package/.next/static/chunks/app/mcp-flows/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/mcp-proxy/[server]/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/models/page-c69e10b83c06535d.js +1 -0
- package/.next/static/chunks/app/packages/page-bf8aad441c664433.js +1 -0
- package/.next/static/chunks/app/settings/page-4a9952c514f284e0.js +1 -0
- package/.next/static/chunks/app/v1/chat/completions/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/chat/events/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/v1/models/route-7d60cffa598f4779.js +1 -0
- package/.next/static/chunks/app/waves/{page-97ad6b51c9cae4b3.js → page-3ca939f0f7e817b1.js} +1 -1
- package/.next/static/chunks/webpack-08eb993682e1fb1a.js +1 -0
- package/.next/static/css/30253fcfa8035221.css +1 -0
- package/.next/trace +10 -10
- package/.next/types/app/api/packages/scan-targets/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/[conversationId]/inject/route.ts +347 -0
- package/.next/types/routes.d.ts +3 -1
- package/.next/types/validator.ts +18 -0
- package/README.md +6 -1
- package/package.json +2 -1
- package/.next/server/chunks/1197.js +0 -2
- package/.next/server/chunks/1373.js +0 -1
- package/.next/server/chunks/1604.js +0 -70
- package/.next/server/chunks/1659.js +0 -1
- package/.next/server/chunks/2434.js +0 -2
- package/.next/server/chunks/2940.js +0 -46
- package/.next/server/chunks/3304.js +0 -1
- package/.next/server/chunks/346.js +0 -1
- package/.next/server/chunks/4042.js +0 -1
- package/.next/server/chunks/4661.js +0 -1
- package/.next/server/chunks/4765.js +0 -1
- package/.next/server/chunks/5958.js +0 -2
- package/.next/server/chunks/6005.js +0 -1
- package/.next/server/chunks/6126.js +0 -53
- package/.next/server/chunks/6849.js +0 -66
- package/.next/server/chunks/7214.js +0 -6
- package/.next/server/chunks/724.js +0 -27
- package/.next/server/chunks/7463.js +0 -6
- package/.next/server/chunks/7538.js +0 -21
- package/.next/server/chunks/8037.js +0 -1
- package/.next/server/chunks/8522.js +0 -2
- package/.next/server/chunks/8572.js +0 -1
- package/.next/server/chunks/869.js +0 -2
- package/.next/server/chunks/8979.js +0 -37
- package/.next/server/chunks/8994.js +0 -2
- package/.next/server/chunks/9165.js +0 -1
- package/.next/server/chunks/9387.js +0 -15
- package/.next/server/chunks/9400.js +0 -2
- package/.next/server/chunks/9472.js +0 -2
- package/.next/server/chunks/9583.js +0 -1
- package/.next/static/Q6ITx_bZyoEOnKdZu_C7j/_buildManifest.js +0 -1
- package/.next/static/chunks/1594-309fa6363f215d76.js +0 -1
- package/.next/static/chunks/1809-e56cf3c476261e34.js +0 -1
- package/.next/static/chunks/1937-6bbdcdc660db562c.js +0 -1
- package/.next/static/chunks/1988-1b651d581fc44a36.js +0 -1
- package/.next/static/chunks/2164-7d6451e88a447de7.js +0 -1
- package/.next/static/chunks/218-6cbe09820faa3272.js +0 -1
- package/.next/static/chunks/2566-60acd5838abd9f3f.js +0 -1
- package/.next/static/chunks/2800-4fa29a3eeb693593.js +0 -1
- package/.next/static/chunks/3089.9e15df4ffd0fe4e8.js +0 -1
- package/.next/static/chunks/3556-b9855146c7506696.js +0 -1
- package/.next/static/chunks/3948-1cb8fc7a64805254.js +0 -1
- package/.next/static/chunks/5328-4e556503b70e72b4.js +0 -1
- package/.next/static/chunks/5512.682bef7fd3a7c286.js +0 -1
- package/.next/static/chunks/6195-8c4c57628e9013d5.js +0 -1
- package/.next/static/chunks/6669-a949326b30ea1d39.js +0 -1
- package/.next/static/chunks/6777-4b0d05731a089de4.js +0 -1
- package/.next/static/chunks/7304-e7cd725083617b81.js +0 -8
- package/.next/static/chunks/7445-2802e158c9093556.js +0 -1
- package/.next/static/chunks/795-704a0e742ecc2ef6.js +0 -1
- package/.next/static/chunks/812-3ceea0da38ad2891.js +0 -1
- package/.next/static/chunks/8551-a28272acfda62ac9.js +0 -1
- package/.next/static/chunks/9554-cb5bd72cb40e8dbe.js +0 -1
- package/.next/static/chunks/9562-ef0ddd4e6b9023cf.js +0 -1
- package/.next/static/chunks/app/api/approvals/[id]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/approvals/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/backup/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/browse/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/bugs/enhance/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/cwd/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/encryption/secure/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/env/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/versions/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/compile/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/generate/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/improve/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/quick-chat/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/repair/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/flow/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/git/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/init/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/local-models/capability/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/local-models/pull/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/local-models/suggest/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/app-sandbox/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/cancel/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/oauth-capability/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/model/[id]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/model/provider/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/model/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/model/test/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/oauth/callback/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/oauth/initiate/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/oauth/reset/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/build/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/derive-secrets/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/install/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/install/status/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/installed/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/resolve/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/packages/uninstall/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/resend/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/reset/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/oauth/callback/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/oauth/initiate/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/publish/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/registry/settings/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/restore/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/runs/active/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/storage/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/update/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/waves/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[id]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/chat/page-c39160ddf90bbae9.js +0 -1
- package/.next/static/chunks/app/executions/page-10d09f36de30939f.js +0 -1
- package/.next/static/chunks/app/flows/page-0d8fb471adfc2981.js +0 -1
- package/.next/static/chunks/app/layout-eea7078d7553c21a.js +0 -1
- package/.next/static/chunks/app/mcp/page-8ad71bf5801bfe5f.js +0 -1
- package/.next/static/chunks/app/mcp-flows/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/mcp-proxy/[server]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/models/page-17e8e6668f92f58d.js +0 -1
- package/.next/static/chunks/app/packages/page-9f61751e98134f3d.js +0 -1
- package/.next/static/chunks/app/settings/page-afbf8790e99fecaf.js +0 -1
- package/.next/static/chunks/app/v1/chat/completions/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/chat/events/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/app/v1/models/route-c745e5b53b81491a.js +0 -1
- package/.next/static/chunks/webpack-0d4a4e773990ac44.js +0 -1
- package/.next/static/css/40f9bef305b11bf5.css +0 -1
- /package/.next/static/{Q6ITx_bZyoEOnKdZu_C7j → JGMk-MwwdpQ94asqw-mUR}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,109,282,312,397,405,624,638,761,846,1144,1189,1201,1288,1337,1426,1490,1513,1677,1797,2047,2348,2437,2483,2567,2669,3190,3292,3318,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4693,4735,4806,4825,4864,5196,5617,5618,5644,5817,6078,6600,6744,7002,7080,7144,7221,7276,7591,7599,7712,7822,7824,7845,8046,8063,8068,8084,8140,8201,8350,8467,8479,8510,8563,8888,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8457],{27156:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var l=function(e){return e.MODELS="models",e.FLOWS="flows",e.CHAT_HISTORY="history",e.THEME="theme",e.ENCRYPTION_KEY="encryption_key",e.MCP_SERVERS="mcp_servers",e.GLOBAL_ENV_VARS="global_env_vars",e.CURRENT_CONVERSATION_ID="current_conversation_id",e.SELECTED_FLOW_ID="selected_flow_id",e.LAST_PICKED_FLOW_ID="last_picked_flow_id",e.SPEECH_SETTINGS="speech_settings",e.SPOTLIGHT_SERVERS="spotlight_servers",e.PLANNED_EXECUTIONS="planned_executions",e.MCP_AUTO_INSTALL_SETTINGS="mcp_auto_install_settings",e.MCP_QUALITY_SETTINGS="mcp_quality_settings",e.RUN_RESOURCE_SETTINGS="run_resource_settings",e.KV_STORE_SETTINGS="kv_store_settings",e.PENDING_APPROVALS="pending_approvals",e.MCP_INTERNAL_OVERRIDES="mcp_internal_overrides",e.PACKAGE_INSTALLS="package_installs",e.EXPERIMENTAL_SETTINGS="experimental_settings",e.REGISTRY_ACCOUNT="registry_account",e.REGISTRY_SETTINGS="registry_settings",e}({})},29692:(e,t,n)=>{"use strict";n.d(t,{Zg:()=>l.Z,YM:()=>s,VH:()=>i,Mj:()=>a});var l=n(27156),r=n(12115);let o=(0,n(87021).h)("utils/storage/frontend.ts");function a(e,t){o.verbose("useLocalStorage: Entering method");let[n,l]=(0,r.useState)(t),[a,i]=(0,r.useState)(!0),s=(0,r.useRef)(n);return(0,r.useEffect)(()=>{s.current=n},[n]),(0,r.useEffect)(()=>{(async()=>{o.verbose("loadValue: Entering method");try{let n=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t)))),r=await n.json();n.ok&&l(r.value)}catch(t){o.warn('Error reading storage key "'.concat(e,'":'),t)}finally{i(!1)}})()},[e]),[n,(0,r.useCallback)(async t=>{o.verbose("setValue: Entering method");try{let n=t instanceof Function?t(s.current):t;if(l(n),!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:n})})).ok)throw Error("Failed to save value")}catch(t){o.warn('Error setting storage key "'.concat(e,'":'),t)}},[e]),a]}let i=async(e,t)=>{o.verbose("saveItem: Entering method");try{if(!(await fetch("/api/storage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,value:t})})).ok)throw Error("Failed to save item")}catch(e){throw o.error("Error saving to storage:",e),e}},s=async(e,t)=>{o.verbose("loadItem: Entering method");try{let n=await fetch("/api/storage?key=".concat(encodeURIComponent(e),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(t))));if(!n.ok)throw Error("Failed to load item");return(await n.json()).value}catch(e){return o.error("Error loading from storage:",e),t}}},65818:(e,t,n)=>{"use strict";n.d(t,{mO:()=>o,oO:()=>a});var l=n(38459);let r=["stdio","websocket","sse","streamable"];function o(e,t){switch(t){case"name-asc":case"name-desc":return(0,l.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:".concat(t),label:({stdio:"Stdio",websocket:"WebSocket",sse:"SSE",streamable:"Streamable HTTP"})[t]||t}}default:return{key:"all",label:"All servers"}}}function a(e,t){let n=(e,n)=>{switch(t){case"name-asc":return e.name.localeCompare(n.name);case"name-desc":return n.name.localeCompare(e.name);case"status-connected":if("connected"===e.status&&"connected"!==n.status)return -1;if("connected"!==e.status&&"connected"===n.status)return 1;return e.name.localeCompare(n.name);case"status-disconnected":if("disconnected"===e.status&&"disconnected"!==n.status)return -1;if("disconnected"!==e.status&&"disconnected"===n.status)return 1;return e.name.localeCompare(n.name);case"transport":{var l,o;let t=r.indexOf(null!=(l=e.transport)?l:""),a=r.indexOf(null!=(o=n.transport)?o:"");if(t!==a)return t-a;return e.name.localeCompare(n.name)}default:return 0}};return[...e].sort((e,t)=>{let l=Number(!!t.favorite)-Number(!!e.favorite);return 0!==l?l:n(e,t)})}},75870:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var l=n(95155),r=n(12115),o=n(94049),a=n(25635),i=n(4474),s=n(91871),d=n(56900),c=n(90057),u=n(96362),p=n(9226),f=n(68503);let h=e=>{let{selectedFlowId:t,onSelectFlow:n,disabled:h=!1,hideLabel:x=!1}=e,[m,g]=(0,r.useState)([]),[v,b]=(0,r.useState)(!0),[y,w]=(0,r.useState)(null),[j,A]=(0,r.useState)(!1);(0,r.useEffect)(()=>{(async()=>{b(!0),w(null);try{let e=await c.g.loadFlows();g(e)}catch(e){console.error("Error loading flows:",e),w("Failed to load flows")}finally{b(!1)}})()},[]);let S=e=>{n(e),A(!1)},I=async e=>{let t=m.find(t=>t.id===e);if(!t)return;let n=!t.favorite,l={...t,favorite:n||void 0};try{(await c.g.updateFlow(l)).success&&g(t=>t.map(t=>t.id===e?l:t))}catch(e){console.error("Error toggling flow favorite:",e)}},C=(0,f.E)("flows",m),k=e=>({key:e.id,content:(e=>(0,l.jsx)(p.A,{flow:e,selected:e.id===t,onSelect:S,onToggleFavorite:I,pickerMode:!0}))(e)}),E=C.items.map(k),N=C.groups?C.groups.map(e=>({...e,items:e.items.map(k)})):null,T=(()=>{if(!t)return"";let e=m.find(e=>e.id===t);return e?e.name:""})();return(0,l.jsxs)(o.default,{children:[!x&&(0,l.jsx)(a.default,{variant:"subtitle1",gutterBottom:!0,children:"Select Flow"}),v?(0,l.jsxs)(o.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,l.jsx)(i.default,{size:20}),(0,l.jsx)(a.default,{variant:"body2",color:"text.secondary",children:"Loading flows..."})]}):y?(0,l.jsx)(a.default,{color:"error",variant:"body2",children:y}):0===m.length?(0,l.jsx)(a.default,{variant:"body2",color:"text.secondary",children:"No flows available. Create some flows in the Flow Builder first."}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.A,{variant:"outlined",startIcon:(0,l.jsx)(d.A,{}),onClick:()=>A(!0),disabled:h,sx:{textTransform:"none",maxWidth:"100%"},children:(0,l.jsx)(o.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t&&T||"Select a flow"})}),(0,l.jsx)(a.default,{variant:"caption",color:"text.secondary",display:"block",sx:{mt:.5},children:t?'Using "'.concat(T,'" flow for this conversation'):"Select a flow to use for this conversation"}),(0,l.jsx)(u.A,{open:j,onClose:()=>A(!1),title:"Select a flow",description:"Pick the flow this conversation will run.",skeleton:(0,l.jsx)(p.o,{}),emptyMessage:"No flows available. Create some flows in the Flow Builder first.",searchable:!0,searchPlaceholder:"Search flows…",searchTerm:C.searchTerm,onSearchChange:C.setSearchTerm,items:E,groups:N,collapsedKeys:C.collapsedKeys,onToggleGroup:C.toggleGroup})]})]})}},77965:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>nD});var l=n(95155),r=n(12115),o=n(97322),a=n(20063),i=n(94049),s=n(78470),d=n(41983),c=n(22003),u=n(9562),p=n(25635),f=n(28548),h=n(91871),x=n(3339),m=n(67895),g=n(2778),v=n(52363),b=n(65036),y=n(50001),w=n(75912),j=n(22719),A=n(11096),S=n(76530),I=n(36741),C=n(60691),k=n(47419),E=n(78410),N=n(14915),T=n(55930),z=n(56900),R=n(26922),D=n(29692),_=n(23820),M=n(73707),P=n(17681),O=n(21067),F=n(56422),W=n(52641),L=n(55606),H=n(86973),B=n(41602),U=n(50430),q=n(4484),J=n(86946),G=n(19219),K=n(51611),V=n(12140),Y=n(63186),Q=n(62962);function X(e){return"string"==typeof e&&e.startsWith("quickchat-")}n(77890);var Z=n(88377),$=n(38459);let ee="wave:__adhoc__",et="wave:__archived__";var en=n(97104);function el(e){let{nodes:t,childrenByParent:n,renderItem:r,expanded:o,onToggle:a,depth:s=0,visited:c,maxDepth:u=20}=e;if(!t||0===t.length||s>u)return null;let p=null!=c?c:new Set;return(0,l.jsx)(l.Fragment,{children:t.map(e=>{var t;if(p.has(e.id))return null;let c=null!=(t=n.get(e.id))?t:[],f=c.length>0&&s<u,h=!1!==o[e.id],x=new Set(p);return x.add(e.id),(0,l.jsxs)(i.default,{sx:{pl:1.5*(s>0),borderLeft:s>0?"1px dashed rgba(128,128,128,0.35)":"none"},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"flex-start"},children:[f?(0,l.jsx)(d.A,{size:"small",onClick:()=>a(e.id),"aria-label":h?"Collapse chain":"Expand chain",sx:{mt:.5,flexShrink:0},children:h?(0,l.jsx)(Q.A,{fontSize:"small"}):(0,l.jsx)(Y.A,{fontSize:"small"})}):(0,l.jsx)(i.default,{sx:{width:34,flexShrink:0}}),(0,l.jsx)(i.default,{sx:{flex:1,minWidth:0},children:r(e,s)})]}),f&&(0,l.jsx)(U.A,{in:h,timeout:"auto",unmountOnExit:!0,children:(0,l.jsx)(el,{nodes:c,childrenByParent:n,renderItem:r,expanded:o,onToggle:a,depth:s+1,visited:x,maxDepth:u})})]},e.id)})})}function er(e){var t,n;let l=new Map;for(let t of e)l.set(t.id,t);let r=new Map,o=[],a=e=>e.parentConversationId&&e.parentConversationId!==e.id?e.parentConversationId:null;for(let n of e){let e=a(n);if(e&&l.has(e)){let l=null!=(t=r.get(e))?t:[];l.push(n),r.set(e,l)}else o.push(n)}let i=new Set,s=[...o];for(;s.length;){let e=s.pop();if(!i.has(e.id))for(let t of(i.add(e.id),null!=(n=r.get(e.id))?n:[]))s.push(t)}let d=new Set(o.map(e=>e.id));for(let t of e)i.has(t.id)||d.has(t.id)||(o.push(t),d.add(t.id));return{roots:o,childrenByParent:r}}let eo={group:"flujo-ui:chat-sidebar:group",status:"flujo-ui:chat-sidebar:status",flow:"flujo-ui:chat-sidebar:flow",date:"flujo-ui:chat-sidebar:date",collapsed:"flujo-ui:chat-sidebar:collapsed",searchDim:"flujo-ui:chat-sidebar:search-dim"},ea=[{value:"all",label:"Any status"},{value:"running",label:"Processing"},{value:"awaiting_tool_approval",label:"Awaiting approval"},{value:"paused_debug",label:"Paused (debug)"},{value:"completed",label:"Completed"},{value:"error",label:"Error"}],ei=[{value:"all",label:"Any time"},{value:"today",label:"Last 24h"},{value:"7d",label:"Last 7 days"},{value:"30d",label:"Last 30 days"}],es=[{value:"none",label:"No grouping"},{value:"date",label:"Group by date"},{value:"flow",label:"Group by flow"},{value:"wave",label:"Group by wave"},{value:"chain",label:"Group by chain"}],ed=e=>{let{conversations:t,currentConversationId:n,onSelectConversation:o,onDeleteConversation:a,onStopConversation:c,onNewConversation:x,onQuickChat:m,onCollapse:g,flowNames:v={}}=e,[b,y]=r.useState(""),[w,j]=(0,en.Xk)(eo.searchDim,"title"),[S,I]=r.useState(null),[C,E]=(0,en.Xk)(eo.group,"none"),[N,T]=(0,en.Xk)(eo.status,"all"),[z,R]=(0,en.Xk)(eo.flow,"all"),[D,ed]=(0,en.Xk)(eo.date,"all"),[ec,eu]=(0,en.Xk)(eo.collapsed,{}),[ep,ef]=r.useState(null);r.useEffect(()=>{if("wave"!==C)return;let e=!1;return fetch("/api/waves").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&ef(t)}).catch(()=>{}),()=>{e=!0}},[C,t]);let eh=(0,r.useMemo)(()=>(function(e){let t=new Map;if(!(null==e?void 0:e.waves))return t;for(let l of e.waves){var n;let e=null==(n=l.rootExecutionIds)?void 0:n[0],r=e&&l.nodes.find(t=>t.executionId===e)||l.nodes[0],o=(null==r?void 0:r.name)||(null==r?void 0:r.flowName)||l.id;for(let e of l.nodes)t.set(e.executionId,{waveId:l.id,label:o})}return t})(ep),[ep]);r.useEffect(()=>{let e=b.trim();if("content"!==w||0===e.length)return void I(null);let t=!1,n=setTimeout(()=>{fetch("/v1/chat/conversations?search=".concat(encodeURIComponent(e),"&dimension=content")).then(e=>e.ok?e.json():[]).then(e=>{t||I(new Set(Array.isArray(e)?e.map(e=>e.id):[]))}).catch(()=>{t||I(new Set)})},300);return()=>{t=!0,clearTimeout(n)}},[b,w]);let ex=r.useCallback(e=>{var t;return e?X(e)?{key:"flow:__quickchat__",label:"Quick Chat"}:{key:"flow:".concat(e),label:null!=(t=v[e])?t:"Unknown flow"}:{key:"flow:__none__",label:"No flow"}},[v]),em=(0,r.useMemo)(()=>{let e=new Map;for(let n of t){let t=ex(n.flowId);e.has(t.key)||e.set(t.key,t.label)}return Array.from(e.entries()).map(e=>{let[t,n]=e;return{key:t,label:n}}).sort((e,t)=>e.label.localeCompare(t.label))},[t,ex]),eg=(0,r.useMemo)(()=>{let e=b.trim().toLowerCase(),n=Date.now(),l="today"===D?n-864e5:"7d"===D?n-6048e5:"30d"===D?n-2592e6:0;return t.filter(t=>{if("all"!==N&&t.status!==N||"all"!==z&&ex(t.flowId).key!==z||l&&t.updatedAt<l)return!1;if(e){if("content"===w){if(!S||!S.has(t.id))return!1}else if(!"".concat(t.title," ").concat(ex(t.flowId).label).toLowerCase().includes(e))return!1}return!0}).sort((e,t)=>t.updatedAt-e.updatedAt)},[t,b,w,S,N,z,D,ex]),ev=(0,r.useMemo)(()=>"none"===C?[{key:"all",label:"",items:eg}]:"wave"===C?function(e){let t=new Set([ee,et]);return[...e.filter(e=>!t.has(e.key)),...e.filter(e=>t.has(e.key))]}((0,$.Az)(eg,e=>(function(e,t){if(!e)return{key:ee,label:"Ad-hoc"};let n=t.get(e);return n?{key:"wave:".concat(n.waveId),label:n.label}:{key:et,label:"Archived / no longer scheduled"}})(e.plannedExecutionId,eh))):(0,$.Az)(eg,e=>"date"===C?(0,Z.K)(e.updatedAt):ex(e.flowId)),[eg,C,ex,eh]),eb=(0,r.useMemo)(()=>"chain"===C?er(eg):{roots:[],childrenByParent:new Map},[C,eg]),[ey,ew]=r.useState({}),ej=r.useCallback(e=>{ew(t=>({...t,[e]:!1===t[e]}))},[]),eA=(0,r.useMemo)(()=>{let e=new Map;if("wave"!==C)return e;for(let t of ev)e.set(t.key,er(t.items));return e},[C,ev]),eS=+("all"!==N)+ +("all"!==z)+ +("all"!==D),eI=e=>{let t=!!c&&("running"===e.status||"awaiting_tool_approval"===e.status),r=ex(e.flowId),u="flow:__quickchat__"===r.key;return(0,l.jsx)(_.Ay,{disablePadding:!0,secondaryAction:(0,l.jsxs)(l.Fragment,{children:[t&&(0,l.jsx)(s.A,{title:"Stop this run",children:(0,l.jsx)(d.A,{edge:"end","aria-label":"stop run",onClick:t=>{t.stopPropagation(),c(e.id)},children:(0,l.jsx)(k.A,{color:"error"})})}),(0,l.jsx)(d.A,{edge:"end","aria-label":"delete",onClick:t=>{t.stopPropagation(),a(e.id)},children:(0,l.jsx)(q.A,{})})]}),sx:{opacity:e.id===n?1:.7},children:(0,l.jsx)(M.A,{selected:e.id===n,onClick:()=>o(e.id),sx:{pr:t?12:7},children:(0,l.jsx)(P.A,{primary:(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.status&&(0,l.jsx)(s.A,{title:(e=>{switch(e){case"running":return"Processing";case"awaiting_tool_approval":return"Waiting for tool approval";case"paused_debug":return"Paused in debug mode";case"completed":return"Completed";case"error":return"Error";default:return""}})(e.status),children:(0,l.jsx)(i.default,{component:"span",sx:{width:8,height:8,borderRadius:"50%",bgcolor:(e=>{switch(e){case"running":return"primary.main";case"awaiting_tool_approval":return"warning.main";case"paused_debug":return"secondary.main";case"completed":return"success.main";case"error":return"error.main";default:return"transparent"}})(e.status),display:"inline-block",flexShrink:0}})}),(0,l.jsx)(s.A,{title:e.title,enterDelay:500,children:(0,l.jsx)(p.default,{component:"span",fontWeight:e.id===n?"bold":"normal",sx:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",wordBreak:"break-word"},children:e.title})})]}),secondary:(0,l.jsxs)(i.default,{component:"span",sx:{display:"flex",alignItems:"center",gap:.75,mt:.5,flexWrap:"wrap"},children:["flow"!==C&&(0,l.jsx)(s.A,{title:u?"Quick Chat (no saved flow)":"Flow: ".concat(r.label),children:(0,l.jsx)(f.A,{icon:u?(0,l.jsx)(A.A,{}):void 0,label:r.label,size:"small",variant:"outlined",color:u?"secondary":"default",sx:{maxWidth:"100%",height:20,"& .MuiChip-label":{px:.75,fontSize:"0.7rem"}}})}),(0,l.jsx)(p.default,{component:"span",variant:"caption",color:"text.secondary",children:new Date(e.updatedAt).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})]}),secondaryTypographyProps:{component:"div"}})})},e.id)},eC=t.length,ek=eg.length;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(i.default,{sx:{p:2,display:"flex",justifyContent:"space-between",alignItems:"center",gap:1},children:[g&&(0,l.jsx)(s.A,{title:"Hide sidebar",children:(0,l.jsx)(d.A,{size:"small",onClick:g,"aria-label":"Hide conversation sidebar",children:(0,l.jsx)(G.A,{})})}),(0,l.jsx)(p.default,{variant:"h6",sx:{flex:1},noWrap:!0,children:"Conversations"}),m&&(0,l.jsx)(s.A,{title:"Quick Chat: a model + optional MCP servers, no saved flow",children:(0,l.jsx)(h.A,{variant:"outlined",color:"primary",startIcon:(0,l.jsx)(A.A,{}),onClick:m,size:"small",children:"Quick"})}),(0,l.jsx)(h.A,{variant:"contained",color:"primary",startIcon:(0,l.jsx)(J.A,{}),onClick:x,size:"small",children:"New"})]}),(0,l.jsx)(O.A,{}),(0,l.jsxs)(i.default,{sx:{px:2,pt:1.5,pb:1,display:"flex",flexDirection:"column",gap:1},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",gap:1},children:[(0,l.jsx)(u.A,{size:"small",sx:{flex:1},placeholder:"content"===w?"Search message content…":"Search title or flow…",value:b,onChange:e=>y(e.target.value),InputProps:{startAdornment:(0,l.jsx)(F.A,{position:"start",children:(0,l.jsx)(K.A,{fontSize:"small"})}),endAdornment:b?(0,l.jsx)(F.A,{position:"end",children:(0,l.jsx)(d.A,{size:"small","aria-label":"Clear search",onClick:()=>y(""),children:(0,l.jsx)(V.A,{fontSize:"small"})})}):void 0}}),(0,l.jsx)(W.A,{size:"small",sx:{minWidth:100},children:(0,l.jsxs)(L.A,{value:w,onChange:e=>j(e.target.value),"aria-label":"Search dimension",children:[(0,l.jsx)(H.A,{value:"title",children:"Title"}),(0,l.jsx)(H.A,{value:"content",children:"Content"})]})})]}),(0,l.jsxs)(i.default,{sx:{display:"flex",flexWrap:"wrap",gap:1},children:[(0,l.jsx)(W.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,l.jsx)(L.A,{value:C,onChange:e=>E(e.target.value),"aria-label":"Group conversations",children:es.map(e=>(0,l.jsx)(H.A,{value:e.value,children:e.label},e.value))})}),(0,l.jsx)(W.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,l.jsx)(L.A,{value:N,onChange:e=>T(e.target.value),"aria-label":"Filter by status",children:ea.map(e=>(0,l.jsx)(H.A,{value:e.value,children:e.label},e.value))})}),(0,l.jsx)(W.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,l.jsxs)(L.A,{value:em.some(e=>e.key===z)?z:"all",onChange:e=>R(e.target.value),"aria-label":"Filter by flow",children:[(0,l.jsx)(H.A,{value:"all",children:"Any flow"}),em.map(e=>(0,l.jsx)(H.A,{value:e.key,children:e.label},e.key))]})}),(0,l.jsx)(W.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,l.jsx)(L.A,{value:D,onChange:e=>ed(e.target.value),"aria-label":"Filter by date",children:ei.map(e=>(0,l.jsx)(H.A,{value:e.value,children:e.label},e.value))})})]}),(b||eS>0)&&(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,l.jsxs)(p.default,{variant:"caption",color:"text.secondary",children:[ek," of ",eC]}),(0,l.jsx)(h.A,{size:"small",onClick:()=>{y(""),T("all"),R("all"),ed("all")},children:"Clear filters"})]})]}),(0,l.jsx)(O.A,{}),(0,l.jsx)(B.A,{sx:{overflow:"auto",flex:1},children:0===eC?(0,l.jsx)(_.Ay,{children:(0,l.jsx)(P.A,{primary:"No conversations yet",secondary:"Start a new conversation",primaryTypographyProps:{align:"center"},secondaryTypographyProps:{align:"center"}})}):0===ek?(0,l.jsx)(_.Ay,{children:(0,l.jsx)(P.A,{primary:"No matching conversations",secondary:"Try a different search or filter",primaryTypographyProps:{align:"center"},secondaryTypographyProps:{align:"center"}})}):"chain"===C?(0,l.jsx)(el,{nodes:eb.roots,childrenByParent:eb.childrenByParent,renderItem:e=>eI(e),expanded:ey,onToggle:ej}):"none"===C?eg.map(eI):ev.map(e=>{let t=!!ec[e.key],n="wave"===C?eA.get(e.key):void 0;return(0,l.jsxs)(i.default,{children:[(0,l.jsxs)(M.A,{onClick:()=>(e=>{eu(t=>({...t,[e]:!t[e]}))})(e.key),sx:{py:.5,bgcolor:"action.hover"},children:[t?(0,l.jsx)(Y.A,{fontSize:"small"}):(0,l.jsx)(Q.A,{fontSize:"small"}),(0,l.jsx)(p.default,{variant:"overline",sx:{ml:.5,flex:1,lineHeight:1.6},noWrap:!0,children:e.label}),(0,l.jsx)(f.A,{label:e.items.length,size:"small",sx:{height:18,"& .MuiChip-label":{px:.75,fontSize:"0.7rem"}}})]}),(0,l.jsx)(U.A,{in:!t,timeout:"auto",unmountOnExit:!0,children:n?(0,l.jsx)(el,{nodes:n.roots,childrenByParent:n.childrenByParent,renderItem:e=>eI(e),expanded:ey,onToggle:ej}):e.items.map(eI)})]},e.key)})})]})};var ec=n(4474),eu=n(99944),ep=n(9957),ef=n(2300),eh=n(98267),ex=n(20537),em=n(37960),eg=n(36314),ev=n(49501),eb=n(6504),ey=n(22133),ew=n(11665),ej=n(97516),eA=n(91861),eS=n(53612),eI=n(3014),eC=n(70863),ek=n(67891),eE=n(12121),eN=n(63992),eT=n(59637),ez=n(30949),eR=n(26188),eD=n(1877),e_=n(18466);function eM(e){return!!e&&(e.startsWith(e_.n9)||"handoff"===e)}var eP=n(38131),eO=n(87021);let eF=(0,eO.h)("frontend/components/Chat/ChatMessages");function eW(e){return"assistant"===e.role&&"tool_calls"in e&&Array.isArray(e.tool_calls)}function eL(e){if("tool"!==e.role||"string"!=typeof e.content)return!1;try{var t;return(null==(t=JSON.parse(e.content))?void 0:t.handoff)===!0}catch(e){return!1}}let eH={p:e=>(0,l.jsx)(p.default,{variant:"body1",sx:{mb:.5,whiteSpace:"pre-line"},children:e.children}),h1:e=>(0,l.jsx)(p.default,{variant:"h5",sx:{mt:2,mb:.5},children:e.children}),h2:e=>(0,l.jsx)(p.default,{variant:"h6",sx:{mt:2,mb:.5},children:e.children}),h3:e=>(0,l.jsx)(p.default,{variant:"subtitle1",sx:{mt:1.5,mb:.5},children:e.children}),h4:e=>(0,l.jsx)(p.default,{variant:"subtitle2",sx:{mt:1.5,mb:.5},children:e.children}),h5:e=>(0,l.jsx)(p.default,{variant:"body1",sx:{mt:1,mb:.5,fontWeight:"bold"},children:e.children}),h6:e=>(0,l.jsx)(p.default,{variant:"body2",sx:{mt:1,mb:.5,fontWeight:"bold"},children:e.children}),ul:e=>(0,l.jsx)(i.default,{component:"ul",sx:{pl:2,mb:1},children:e.children}),ol:e=>(0,l.jsx)(i.default,{component:"ol",sx:{pl:2,mb:1},children:e.children}),li:e=>(0,l.jsx)(i.default,{component:"li",sx:{mb:.5,whiteSpace:"pre-line"},children:e.children}),a:e=>(0,l.jsx)(p.default,{component:"a",sx:{color:"primary.main"},href:e.href,children:e.children}),blockquote:e=>(0,l.jsx)(i.default,{component:"blockquote",sx:{borderLeft:"4px solid",borderColor:"divider",pl:2,py:.5,my:1,bgcolor:"action.hover",borderRadius:"4px"},children:e.children}),code:e=>{let{node:t,className:n,children:r,...o}=e;return/language-(\w+)/.exec(n||"")||n?(0,l.jsx)(i.default,{component:"pre",sx:{bgcolor:"action.hover",p:1.5,borderRadius:"4px",overflowX:"auto",fontFamily:"monospace",fontSize:"0.875rem",my:1,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:r}):(0,l.jsx)(p.default,{component:"code",sx:{bgcolor:"action.hover",px:.5,py:.25,borderRadius:"4px",fontFamily:"monospace",wordBreak:"break-all"},children:r})}},eB=e=>{let{content:t,showRaw:n}=e;return n?(0,l.jsx)(i.default,{component:"pre",sx:{whiteSpace:"pre-wrap",wordBreak:"break-all",fontSize:"0.8rem",p:1,borderRadius:1,border:1,borderColor:e=>e.palette.divider,bgcolor:"action.hover",color:e=>e.palette.text.primary,overflow:"auto",maxHeight:"300px"},children:"string"==typeof t?t:"[Invalid tool content]"}):"string"!=typeof t?(0,l.jsx)(p.default,{variant:"body2",fontStyle:"italic",color:"text.secondary",children:"[Invalid tool content]"}):(0,l.jsx)(i.default,{sx:{width:"100%",minWidth:0},children:(()=>{try{let e=JSON.parse(t);if(e&&Array.isArray(e.content))return(0,l.jsx)(i.default,{sx:{display:"flex",flexDirection:"column",gap:1},children:e.content.map((e,t)=>"text"===e.type?(0,l.jsx)(eb.oz,{remarkPlugins:[ey.A],children:e.text},t):"image"===e.type&&e.data&&e.mimeType?(0,l.jsx)("img",{src:"data:".concat(e.mimeType,";base64,").concat(e.data),alt:"Tool Result Image ".concat(t+1),style:{maxWidth:"100%",height:"auto",borderRadius:"4px",marginTop:"8px"}},t):"audio"===e.type&&e.data&&e.mimeType?(0,l.jsx)("audio",{controls:!0,src:"data:".concat(e.mimeType,";base64,").concat(e.data),style:{width:"100%",marginTop:"8px"},children:"Your browser does not support the audio element."},t):(0,l.jsx)(i.default,{component:"pre",sx:{whiteSpace:"pre-wrap",wordBreak:"break-all",fontSize:"0.8rem",p:1,borderRadius:1,border:1,borderColor:e=>e.palette.divider,bgcolor:"action.hover",color:e=>e.palette.text.primary,overflow:"auto",mt:1},children:"Unsupported content type: ".concat(e.type,"\n").concat(JSON.stringify(e,null,2))},t))});return(0,l.jsx)(eb.oz,{remarkPlugins:[ey.A],children:"```json\n".concat(JSON.stringify(e,null,2),"\n```")})}catch(e){return(0,l.jsx)(eb.oz,{remarkPlugins:[ey.A],children:t})}})()})},eU=e=>{let{pairs:t,messageId:n,onAppMessage:o,onOpenInCanvas:a,canvasKeys:d}=e,[c,u]=(0,r.useState)(null),[x,m]=(0,r.useState)({}),g=(e,t)=>e.toolCall.id||"tc-".concat(n,"-").concat(t);return(0,l.jsxs)(i.default,{sx:{mt:1,pt:1,borderTop:"1px solid",borderColor:"divider"},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",color:"primary.main",mb:1},children:[(0,l.jsx)(eC.A,{fontSize:"small",sx:{mr:1}}),(0,l.jsx)(p.default,{variant:"body2",children:1===t.length?"The assistant used a tool":"The assistant used ".concat(t.length," tools")})]}),(0,l.jsx)(i.default,{sx:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:.5},children:t.map((e,t)=>{let n=g(e,t),o=function(e){if(!e)return"pending";if("string"==typeof e.content)try{let t=JSON.parse(e.content);if(t&&(!0===t.isError||null!=t.error))return"error"}catch(e){}return"done"}(e.result),a=c===n;return(0,l.jsxs)(r.Fragment,{children:[t>0&&(0,l.jsx)(i.default,{sx:{width:14,height:"2px",bgcolor:"divider",flexShrink:0}}),(0,l.jsx)(s.A,{title:a?"Hide call & result":"Show call & result",children:(0,l.jsx)(f.A,{icon:function(e){return"pending"===e?(0,l.jsx)(ec.default,{size:14,thickness:6}):"error"===e?(0,l.jsx)(C.A,{fontSize:"small"}):(0,l.jsx)(eE.A,{fontSize:"small"})}(o),label:(0,eD.yo)(e.toolCall.function.name),size:"small",clickable:!0,variant:a?"filled":"outlined",color:"error"===o?"error":"pending"===o?"default":"primary",onClick:()=>u(a?null:n),sx:{maxWidth:"100%"}})})]},n)})}),t.map((e,t)=>{var n,r;let s=g(e,t),u=e.toolCall.function.arguments;try{u=JSON.stringify(JSON.parse(e.toolCall.function.arguments),null,2)}catch(e){}let v=!!x[s];return(0,l.jsx)(U.A,{in:c===s,unmountOnExit:!0,children:(0,l.jsxs)(i.default,{sx:{mt:1,p:1,borderRadius:1,bgcolor:"rgba(0, 0, 0, 0.03)"},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",mb:.5},children:[(0,l.jsx)(eC.A,{fontSize:"small",sx:{mr:.5,color:"primary.main"}}),(0,l.jsx)(p.default,{variant:"caption",sx:{fontWeight:"bold"},children:"Parameters"}),(0,l.jsx)(f.A,{label:"ID: ".concat(e.toolCall.id?e.toolCall.id.substring(0,8):"N/A","..."),size:"small",color:"default",variant:"outlined",sx:{ml:1,height:20,fontSize:"0.7rem"}})]}),(0,l.jsx)(i.default,{component:"pre",sx:{bgcolor:"action.hover",p:1,borderRadius:"4px",overflowX:"auto",fontFamily:"monospace",fontSize:"0.75rem",my:.5,maxHeight:"150px",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:u}),(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",mt:1,mb:.5},children:[(0,l.jsx)(ek.A,{fontSize:"small",sx:{mr:.5,color:"text.secondary"}}),(0,l.jsx)(p.default,{variant:"caption",sx:{fontWeight:"bold"},children:"Result"}),e.result&&(0,l.jsx)(eu.A,{control:(0,l.jsx)(ep.A,{size:"small",checked:v,onChange:e=>m(t=>({...t,[s]:e.target.checked}))}),label:"Raw",sx:{ml:"auto",mr:0,"& .MuiTypography-root":{fontSize:"0.75rem"}}})]}),e.result?(0,l.jsx)(eB,{content:e.result.content,showRaw:v}):(0,l.jsxs)(p.default,{variant:"body2",fontStyle:"italic",color:"text.secondary",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,l.jsx)(ec.default,{size:14,thickness:6})," Waiting for the tool to respond…"]}),(null==(r=e.result)||null==(n=r.ui)?void 0:n.uri)&&e.result.ui.serverName&&(a?(()=>{let t=e.result.ui,n=!!(null==d?void 0:d.has("".concat(t.serverName,"::").concat(t.uri)));return(0,l.jsxs)(i.default,{sx:{mt:1,display:"flex",alignItems:"center",gap:1,px:1,py:.5,border:"1px dashed",borderColor:"divider",borderRadius:1},children:[(0,l.jsx)(eR.A,{fontSize:"small",color:"primary"}),(0,l.jsxs)(p.default,{variant:"body2",sx:{flex:1,minWidth:0},noWrap:!0,children:["Interactive app from ",t.serverName]}),(0,l.jsx)(h.A,{size:"small",variant:n?"text":"outlined",onClick:()=>{var n;return a({serverName:t.serverName,uri:t.uri,toolName:e.toolCall.function.name,toolArgs:e.toolCall.function.arguments,resultContent:"string"==typeof(null==(n=e.result)?void 0:n.content)?e.result.content:void 0})},children:n?"Show in canvas":"Open in canvas"})]})})():(0,l.jsx)(eP.A,{serverName:e.result.ui.serverName,uri:e.result.ui.uri,toolName:e.toolCall.function.name,toolArgs:e.toolCall.function.arguments,toolResultContent:"string"==typeof e.result.content?e.result.content:void 0,onAppMessage:o}))]})},s)})]})},eq=r.memo(function(e){var t,n;let r,{message:o,nodeLabel:a,availableNodes:c,showRaw:u,toolCallPairs:h,onAppMessage:x,onOpenInCanvas:m,canvasKeys:g,hoistedHandoffs:v,isBeingEdited:b,onMenuOpen:y,onToggleRaw:w}=e,j=null!=(t=o.depth)?t:0;return(0,l.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",alignItems:"user"===o.role?"flex-end":"flex-start",opacity:o.disabled?.5:1,...j>0&&{pl:3*j,borderLeft:"2px solid",borderColor:"divider",ml:1}},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",mb:.5},children:[(0,l.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{mr:1},children:["user"===o.role?"You":"assistant"===o.role?"Assistant":"tool"===o.role?"Tool":"System"," • ","number"!=typeof(n=o.timestamp)||isNaN(n)?(eF.warn("formatTime received invalid timestamp:",n),"Invalid Date"):new Date(n).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})]}),o.processNodeId&&(0,l.jsx)(s.A,{title:"".concat(a?"".concat(a," — "):"","Process Node ID: ").concat(o.processNodeId),children:(0,l.jsx)(f.A,{label:"Node: ".concat(a||"".concat(o.processNodeId.substring(0,6),"...")),size:"small",color:"primary",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),j>0&&(0,l.jsx)(s.A,{title:"Nested subflow step (depth ".concat(j,")"),children:(0,l.jsx)(f.A,{label:"Subflow step",size:"small",color:"secondary",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),o.disabled&&(0,l.jsx)(f.A,{label:"Disabled",size:"small",color:"default",variant:"outlined",sx:{height:20,fontSize:"0.7rem"}}),o.usage&&(0,l.jsx)(s.A,{title:"".concat(o.usage.promptTokens.toLocaleString()," prompt + ").concat(o.usage.completionTokens.toLocaleString()," completion tokens (provider-reported)"),children:(0,l.jsx)(f.A,{label:"".concat((r=o.usage.totalTokens)>=1e3?"".concat((r/1e3).toFixed(r>=1e5?0:1),"k"):"".concat(r)," tok"),size:"small",color:"default",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),(0,l.jsx)(d.A,{size:"small",onClick:e=>y(e,o.id),sx:{ml:1},children:(0,l.jsx)(ew.A,{fontSize:"small"})})]}),(0,l.jsxs)(ef.A,{elevation:1,sx:{p:2,maxWidth:"75vw",borderRadius:2,bgcolor:"user"===o.role?"primary.light":"assistant"===o.role||"tool"===o.role?"background.paper":"info.light",color:"user"===o.role?"primary.contrastText":"assistant"===o.role||"tool"===o.role?"text.primary":"info.contrastText",position:"relative",borderLeft:"tool"===o.role?"4px solid":"none",borderColor:"tool"===o.role?"grey.400":"transparent",opacity:b?.55:1,outline:b?"2px dashed":"none",outlineColor:"warning.main",overflowWrap:"break-word",wordBreak:"break-word",overflow:"hidden"},children:[(0,l.jsxs)(l.Fragment,{children:["tool"!==o.role&&"string"==typeof o.content&&(0,l.jsx)(eb.oz,{remarkPlugins:[ey.A],components:eH,children:o.content}),"tool"!==o.role&&Array.isArray(o.content)&&(0,l.jsx)(i.default,{sx:{display:"flex",flexDirection:"column",gap:1},children:o.content.map((e,t)=>{var n;return(null==e?void 0:e.type)==="text"?(0,l.jsx)(eb.oz,{remarkPlugins:[ey.A],children:e.text},t):(null==e?void 0:e.type)==="image_url"&&(null==(n=e.image_url)?void 0:n.url)?(0,l.jsx)("img",{src:e.image_url.url,alt:"Image ".concat(t+1),style:{maxWidth:"100%",height:"auto",borderRadius:"4px"}},t):null})}),"tool"!==o.role&&"string"!=typeof o.content&&!Array.isArray(o.content)&&!eW(o)&&(0,l.jsx)(p.default,{variant:"body2",fontStyle:"italic",color:"text.secondary",children:"[No text content]"})]}),(()=>{let e=[...eW(o)?o.tool_calls.filter(e=>{var t;return!!(t=e.function.name)&&(t.startsWith(e_.n9)||"handoff"===t)}):[],...null!=v?v:[]];return(0,l.jsx)(i.default,{sx:{mt:1,display:"flex",flexWrap:"wrap",gap:.5},children:e.map((e,t)=>(0,l.jsx)(f.A,{size:"small",variant:"outlined",color:"secondary",icon:(0,l.jsx)(ez.A,{fontSize:"small"}),label:"Handoff → ".concat(function(e,t){let n=e.startsWith(e_.n9)?e.slice(e_.n9.length):e,l=n.replace(/_\d+$/,""),r=t.find(e=>{let t=(0,e_.RN)(e.label);return t===n||t===l});return(null==r?void 0:r.label)?r.label:l.split("_").filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")||"target node"}(e.function.name,c)),sx:{maxWidth:"100%",fontWeight:500}},e.id||"handoff-".concat(o.id,"-").concat(t)))})})(),h&&h.length>0&&(0,l.jsx)(eU,{pairs:h,messageId:o.id,onAppMessage:x,onOpenInCanvas:m,canvasKeys:g}),"tool"===o.role&&o.tool_call_id&&!eL(o)&&(0,l.jsxs)(i.default,{children:[(0,l.jsxs)(p.default,{variant:"body2",sx:{display:"flex",alignItems:"center",color:"text.secondary",mb:1},children:[(0,l.jsx)(ek.A,{fontSize:"small",sx:{mr:1}}),"The tool responded to the assistant"]}),(0,l.jsxs)(eh.A,{defaultExpanded:!1,sx:{mb:.5,"&:before":{display:"none"},boxShadow:"none",bgcolor:"rgba(0, 0, 0, 0.02)"},children:[(0,l.jsx)(ex.A,{expandIcon:(0,l.jsx)(Y.A,{}),children:(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center"},children:[(0,l.jsx)(ek.A,{fontSize:"small",sx:{mr:1,color:"text.secondary"}}),(0,l.jsx)(p.default,{variant:"subtitle2",children:"Tool Result"}),(0,l.jsx)(f.A,{label:"ID: ".concat(o.tool_call_id.substring(0,8),"..."),size:"small",color:"default",variant:"outlined",sx:{ml:1,height:20,fontSize:"0.7rem"}}),(0,l.jsx)(eu.A,{control:(0,l.jsx)(ep.A,{size:"small",checked:u,onChange:e=>w(o.id,e.target.checked),onClick:e=>e.stopPropagation()}),label:"Raw",sx:{mr:1,ml:"auto","& .MuiTypography-root":{fontSize:"0.75rem"}},onClick:e=>e.stopPropagation()})]})}),(0,l.jsx)(em.A,{sx:{pt:0,pb:1,overflow:"hidden"},children:(0,l.jsx)(eB,{content:o.content,showRaw:u})})]})]}),o.attachments&&o.attachments.length>0&&(0,l.jsxs)(i.default,{sx:{mt:1,pt:1,borderTop:"1px solid",borderColor:"divider"},children:[(0,l.jsx)(p.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Attachments:"}),o.attachments.map(e=>"image"===e.type?(0,l.jsx)(i.default,{sx:{mb:.5},children:(0,l.jsx)("img",{src:e.content,alt:e.originalName||"image attachment",style:{maxWidth:"100%",height:"auto",borderRadius:"4px"}})},e.id):(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",p:1,borderRadius:1,bgcolor:"rgba(0, 0, 0, 0.04)",mb:.5},children:["document"===e.type?(0,l.jsx)(eS.A,{fontSize:"small",sx:{mr:1}}):(0,l.jsx)(eI.A,{fontSize:"small",sx:{mr:1}}),(0,l.jsx)(p.default,{variant:"caption",sx:{wordBreak:"break-all"},children:e.originalName||"".concat(e.type," attachment")})]},e.id))]})]})]})}),eJ=e=>{let{messages:t,pendingToolCalls:n,availableNodes:o=[],conversationId:a,editingMessageId:s,onToggleDisabled:d,onSplitConversation:c,onBeginEditMessage:u,onApproveToolCall:x,onRejectToolCall:m,onAppMessage:g,onOpenInCanvas:v,canvasKeys:b}=e,[y,w]=(0,r.useState)(50);(0,r.useEffect)(()=>{w(50)},[a]);let j=Math.max(0,(Array.isArray(t)?t.length:0)-y),A=(0,r.useMemo)(()=>Array.isArray(t)?j>0?t.slice(j):t:[],[t,j]),{pairsByAnchorId:S,handoffsByAnchorId:I,consumedToolCallIds:C,groups:k}=(0,r.useMemo)(()=>(function(e){let t=new Map,n=new Map,l=new Set,r=new Set,o=new Map,a=[];if(!Array.isArray(e))return{pairsByAnchorId:t,handoffsByAnchorId:n,hoistedAssistantIds:l,consumedToolCallIds:r,groups:a};let i=new Map;for(let t of e)"tool"===t.role&&"string"==typeof t.tool_call_id&&t.tool_call_id&&!i.has(t.tool_call_id)&&i.set(t.tool_call_id,t);let s=e=>{let l=o.get(e);return l||(l={anchorId:e,memberIds:[e],hoistedIds:[]},o.set(e,l),a.push(l),t.set(e,[]),n.set(e,[])),l},d=null;for(let o of e){if("user"===o.role||"system"===o.role){d=null;continue}if("assistant"!==o.role)continue;let e=Array.isArray(o.tool_calls)?o.tool_calls:[],a=[],u=[];for(let t of e){var c;if("function"!==t.type)continue;if(eM(null==(c=t.function)?void 0:c.name)){u.push(t);continue}let e=t.id,n=e?i.get(e):void 0;e&&r.add(e),a.push({toolCall:t,result:n})}let p=function(e){let t=e.content;return"string"==typeof t?t.trim().length>0:!!Array.isArray(t)&&t.some(e=>{var t,n;return!!e&&"object"==typeof e&&("text"===e.type?"string"==typeof e.text&&e.text.trim().length>0:"image_url"===e.type?!!(null==(t=e.image_url)?void 0:t.url):"input_audio"===e.type&&!!(null==(n=e.input_audio)?void 0:n.data))})}(o),f=a.length>0||u.length>0;if(p){d=o.id,f&&(s(o.id),t.get(o.id).push(...a),n.get(o.id).push(...u));continue}if(f)if(d){let e=s(d);t.get(d).push(...a),n.get(d).push(...u),e.memberIds.push(o.id),e.hoistedIds.push(o.id),l.add(o.id)}else d=o.id,s(o.id),t.get(o.id).push(...a),n.get(o.id).push(...u)}return{pairsByAnchorId:t,handoffsByAnchorId:n,hoistedAssistantIds:l,consumedToolCallIds:r,groups:a}})(t),[t]),E=(0,r.useMemo)(()=>(function(e){let t=new Set;if(!Array.isArray(e))return t;for(let l of e){if("assistant"!==l.role)continue;let e=l.tool_calls;if(Array.isArray(e))for(let l of e){var n;"function"===l.type&&eM(null==(n=l.function)?void 0:n.name)&&"string"==typeof l.id&&l.id&&t.add(l.id)}}return t})(t),[t]),T=(0,r.useMemo)(()=>new Set(A.map(e=>e.id)),[A]),{renderPairsById:z,renderHandoffsById:R,suppressedIds:D}=(0,r.useMemo)(()=>{let e=new Map,t=new Map,n=new Set;for(let a of k){var l,r,o;let i=null!=(l=S.get(a.anchorId))?l:[],s=null!=(r=I.get(a.anchorId))?r:[],d=null!=(o=a.memberIds.find(e=>T.has(e)))?o:a.anchorId;for(let l of(i.length>0&&e.set(d,i),s.length>0&&t.set(d,s),a.hoistedIds))l!==d&&n.add(l)}return{renderPairsById:e,renderHandoffsById:t,suppressedIds:n}},[k,S,I,T]),[_,M]=r.useState(null),[O,F]=r.useState(null),[W,L]=r.useState({}),B=(0,r.useCallback)((e,t)=>{eF.debug("handleMenuOpen called with messageId: ".concat(t)),M(e.currentTarget),F(t)},[]),U=(0,r.useCallback)((e,t)=>{L(n=>({...n,[e]:t}))},[]),q=()=>{M(null),F(null)},J=()=>{O&&(null==u||u(O),q())},G=(0,r.useMemo)(()=>{let e=new Map;for(let t of o)e.set(t.id,t.label);return e},[o]),K=(0,r.useMemo)(()=>O&&t.find(e=>e.id===O)||null,[O,t]);return(0,l.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",gap:2},children:[j>0&&(0,l.jsx)(i.default,{sx:{display:"flex",justifyContent:"center"},children:(0,l.jsxs)(h.A,{size:"small",variant:"outlined",onClick:()=>w(e=>e+200),children:["Show earlier messages (",j," more)"]})}),A.map((e,t)=>eL(e)||"tool"===e.role&&"string"==typeof e.tool_call_id&&E.has(e.tool_call_id)||"tool"===e.role&&"string"==typeof e.tool_call_id&&C.has(e.tool_call_id)||D.has(e.id)?null:(0,l.jsx)(eq,{message:e,nodeLabel:e.processNodeId?G.get(e.processNodeId):void 0,availableNodes:o,showRaw:!!W[e.id],toolCallPairs:z.get(e.id),onAppMessage:g,onOpenInCanvas:v,canvasKeys:b,hoistedHandoffs:R.get(e.id),isBeingEdited:!!s&&e.id===s,onMenuOpen:B,onToggleRaw:U},e.id||"msg-".concat(j+t))),(0,l.jsxs)(eg.A,{anchorEl:_,open:!!_,onClose:q,children:[K&&(()=>{eF.debug("Entering menu item rendering logic",{activeMessageId:O}),eF.debug("Active message object for menu:",K),eF.debug("Active message role for menu:",null==K?void 0:K.role);try{if("user"===K.role&&"string"==typeof K.content&&u)return(0,l.jsxs)(H.A,{onClick:J,children:[(0,l.jsx)(ev.A,{children:(0,l.jsx)(N.A,{fontSize:"small"})}),(0,l.jsx)(P.A,{children:"Edit Message"})]});return null}catch(e){return eF.error("Error rendering Edit Message menu item",{error:e}),null}})(),(0,l.jsxs)(H.A,{onClick:()=>{O&&(d(O),q())},children:[(0,l.jsx)(ev.A,{children:(0,l.jsx)(ej.A,{fontSize:"small"})}),(0,l.jsx)(P.A,{children:(null==K?void 0:K.disabled)?"Enable Message":"Disable Message"})]}),(0,l.jsxs)(H.A,{onClick:()=>{O&&(c(O),q())},children:[(0,l.jsx)(ev.A,{children:(0,l.jsx)(eA.A,{fontSize:"small"})}),(0,l.jsx)(P.A,{children:"Split Conversation Here"})]})]}),n&&n.length>0&&(0,l.jsxs)(ef.A,{elevation:2,sx:{p:2,mt:2,bgcolor:"warning.light",border:"1px solid",borderColor:"warning.main",borderRadius:2},children:[(0,l.jsxs)(p.default,{variant:"h6",sx:{mb:1,display:"flex",alignItems:"center"},children:[(0,l.jsx)(eC.A,{sx:{mr:1}})," Tool Approval Required"]}),(0,l.jsx)(p.default,{variant:"body2",sx:{mb:2},children:"The assistant wants to use the following tool(s). Please approve or reject each request."}),n.map((e,t)=>{let n=(0,eD.yo)(e.function.name),r=e.function.arguments;try{let t=JSON.parse(e.function.arguments);r=JSON.stringify(t,null,2)}catch(e){}return(0,l.jsxs)(eh.A,{defaultExpanded:!0,sx:{mb:1,"&:before":{display:"none"},boxShadow:1},children:[(0,l.jsx)(ex.A,{expandIcon:(0,l.jsx)(Y.A,{}),children:(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",width:"100%"},children:[(0,l.jsx)(eC.A,{fontSize:"small",sx:{mr:1,color:"primary.main"}}),(0,l.jsx)(p.default,{variant:"subtitle2",sx:{fontWeight:"bold",flexGrow:1},children:n}),(0,l.jsx)(f.A,{label:"ID: ".concat(e.id?e.id.substring(0,8):"N/A","..."),size:"small",variant:"outlined",sx:{ml:1,height:20,fontSize:"0.7rem"}})]})}),(0,l.jsxs)(em.A,{sx:{pt:0},children:[(0,l.jsx)(i.default,{component:"pre",sx:{bgcolor:"action.hover",p:1,borderRadius:"4px",overflowX:"auto",fontFamily:"monospace",fontSize:"0.75rem",my:.5,maxHeight:"150px",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:r}),(0,l.jsxs)(i.default,{sx:{display:"flex",justifyContent:"flex-end",gap:1,mt:1},children:[(0,l.jsx)(h.A,{variant:"outlined",color:"error",size:"small",startIcon:(0,l.jsx)(eT.A,{}),onClick:()=>m&&m(e.id),disabled:!m,children:"Reject"}),(0,l.jsx)(h.A,{variant:"contained",color:"success",size:"small",startIcon:(0,l.jsx)(eN.A,{}),onClick:()=>x&&x(e.id),disabled:!x,children:"Approve"})]})]})]},e.id||"ptc-".concat(t))})]})]})};var eG=n(84869);let eK=(0,eO.h)("frontend/services/transcription");async function eV(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{onProgress:n,onStatusChange:l,language:r}=t;try{if(eK.debug("Starting transcription service"),l&&l("Initializing transcription..."),!(0,eG.G)().supported)throw Error("Web Speech API is not supported in this browser");l&&l("Using browser speech recognition...");let t=await (0,eG.S)(e,{language:r,onInterimResult:e=>{l&&l("Transcribing: ".concat(e)),n&&n(50)}});return l&&l("Transcription completed"),eK.debug("Web Speech API transcription completed successfully",{textLength:t.length}),{text:t,success:!0,engine:"webspeech"}}catch(e){return eK.error("Transcription failed",{error:e}),l&&l("Transcription failed"),{text:"Transcription failed. Please check if your browser supports speech recognition.",success:!1,error:e instanceof Error?e.message:String(e)}}}var eY=n(9164),eQ=n(22822),eX=n(35205),eZ=n(77073),e$=n(9693),e0=n(4823),e1=n(76122),e2=n(22539),e5=n(33567),e6=n(77758);let e4=new Set(["start","process","subflow"]),e8=e=>{var t,n;return null!=(n=e.type)?n:null==(t=e.data)?void 0:t.type},e7=e=>{let{flow:t,selectedNodeId:n,onSelect:o,onClose:a}=e,i=(0,e5.A)(),s=(0,r.useMemo)(()=>((null==t?void 0:t.nodes)||[]).map(e=>{let t=e4.has(e8(e)||""),l=e.id===n;return{...e,draggable:!1,selectable:!1,style:{...e.style||{},opacity:t?1:.35,cursor:t?"pointer":"default",borderRadius:8,boxShadow:l?"0 0 0 3px ".concat(i.palette.primary.main):void 0,transition:"box-shadow 120ms ease"}}}),[null==t?void 0:t.nodes,n,i.palette.primary.main]),d=(0,r.useMemo)(()=>((null==t?void 0:t.edges)||[]).filter(e=>e.source&&e.target&&e.sourceHandle&&e.targetHandle),[null==t?void 0:t.edges]),c=(0,r.useMemo)(()=>({type:"custom",animated:!1,style:{stroke:i.palette.text.secondary,strokeWidth:2},markerEnd:{type:e1.TG.ArrowClosed,width:20,height:20,color:i.palette.text.secondary}}),[i.palette.text.secondary]);return(0,l.jsx)(e2.Gc,{nodes:s,edges:d,nodeTypes:e6.c_,edgeTypes:e6.nd,defaultEdgeOptions:c,connectionLineType:e1.Do.SmoothStep,fitView:!0,minZoom:.1,maxZoom:2,onNodeClick:(e,t)=>{e4.has(e8(t)||"")&&(o(t.id),a())},nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,deleteKeyCode:null,proOptions:{hideAttribution:!0},children:(0,l.jsx)(e2.VS,{})})},e3=e=>{var t,n;let{open:r,flow:o,selectedNodeId:a,allowAutomatic:s,onSelect:d,onClose:c}=e,u=!!(o&&(null!=(n=null==(t=o.nodes)?void 0:t.length)?n:0)>0);return(0,l.jsxs)(g.A,{open:r,onClose:c,maxWidth:"lg",fullWidth:!0,children:[(0,l.jsx)(v.A,{children:"Pick a node to run on"}),(0,l.jsxs)(b.A,{dividers:!0,sx:{p:0},children:[(0,l.jsx)(i.default,{sx:{px:2,pt:1.5},children:(0,l.jsxs)(p.default,{variant:"caption",color:"text.secondary",children:["Click a ",(0,l.jsx)("strong",{children:"Start"}),", ",(0,l.jsx)("strong",{children:"Process"}),", or"," ",(0,l.jsx)("strong",{children:"Subflow"})," node. Other nodes and edges can't be picked."]})}),(0,l.jsx)(i.default,{sx:{height:"62vh",width:"100%"},children:u?(0,l.jsx)(e2.Ln,{children:(0,l.jsx)(e7,{flow:o,selectedNodeId:a,onSelect:d,onClose:c})}):(0,l.jsx)(i.default,{sx:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,l.jsx)(p.default,{variant:"body2",color:"text.secondary",children:"No flow to display."})})})]}),(0,l.jsxs)(w.A,{children:[s&&(0,l.jsx)(h.A,{startIcon:(0,l.jsx)(e0.A,{}),onClick:()=>{d(null),c()},children:"Automatic"}),(0,l.jsx)(i.default,{sx:{flex:1}}),(0,l.jsx)(h.A,{onClick:c,children:"Cancel"})]})]})};var e9=n(74879);let te=(0,eO.h)("frontend/components/Chat/ChatInput"),tt=e=>{var t,n;let{onSendMessage:o,disabled:a=!1,requireApproval:c=!1,onRequireApprovalChange:x,executeInDebugger:m=!1,onExecuteInDebuggerChange:y,availableNodes:j=[],flow:A=null,currentNodeId:S=null,nodeOverrideActive:I=!1,onSelectNode:C,editing:k=null,onEditingContentChange:E,onEditingNodeChange:z,onSaveEdit:R,onCancelEdit:D}=e,{settings:_}=(0,eY.useStorage)(),[M,P]=(0,r.useState)(""),[O,F]=(0,r.useState)([]),[W,L]=(0,r.useState)(!1),[H,B]=(0,r.useState)(0),[U,q]=(0,r.useState)(null),J=(0,r.useRef)(null),G=(0,r.useRef)(null),K=(0,r.useRef)([]),[V,Y]=(0,r.useState)(!1),Q=!!k,X=Q?null!=(t=null==k?void 0:k.nodeId)?t:null:S,Z=(e=>{var t;return(null==(t=j.find(t=>t.id===e))?void 0:t.label)||(e?"".concat(e.substring(0,6),"..."):"Start")})(X),[$,ee]=(0,r.useState)(!1),[et,en]=(0,r.useState)(""),[el,er]=(0,r.useState)(""),[eo,ea]=(0,r.useState)("document"),[ei,es]=(0,r.useState)(!1),[ed,ep]=(0,r.useState)(0),[eh,ex]=(0,r.useState)(""),em=()=>{k&&k.content.trim()&&(null==R||R())},eg=()=>{(M.trim()||O.length>0)&&(te.debug("Sending message",{messageLength:M.length,attachmentsCount:O.length}),o(M,O),P(""),F([]))},ev=async e=>{let t=e.target.files;if(!t||0===t.length)return;let n=t[0];te.debug("File selected",{fileName:n.name,fileSize:n.size,fileType:n.type}),er("Processing ".concat(n.name)),ea("document"),en(""),es(!0),ee(!0);try{let e=await eb(n);te.debug("File read successfully",{contentLength:e.length}),en(e),es(!1)}catch(e){te.error("Error reading file:",e),en("Error reading file. Please try again with a text file."),es(!1)}J.current&&(J.current.value="")},eb=e=>new Promise((t,n)=>{let l=new FileReader;l.onload=e=>{var l;(null==(l=e.target)?void 0:l.result)?t(e.target.result):n(Error("Failed to read file"))},l.onerror=()=>{n(Error("Error reading file"))},l.readAsText(e)}),ey=async()=>{te.debug("Starting audio recording");try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});te.debug("Audio stream obtained successfully"),K.current=[];let t=new MediaRecorder(e);G.current=t,t.ondataavailable=e=>{e.data.size>0&&K.current.push(e.data)},t.onstop=async()=>{let t=new Blob(K.current,{type:"audio/wav"});er("Audio Recording"),ea("audio"),en(""),es(!0),ee(!0);try{if(((null==_?void 0:_.speech)||{enabled:!0,modelSize:"base",autoDownload:!1}).enabled){ex("Initializing transcription..."),ep(0);let e=await eV(t,{onProgress:ep,onStatusChange:ex,language:navigator.language});if(e.success){let t=e.text;en(t),te.debug("Transcription successful",{textLength:e.text.length,engine:e.engine})}else en("Error transcribing audio: ".concat(e.error,".")),te.error("Transcription failed",{error:e.error})}else en("Speech recognition is disabled in settings. Enable it to get automatic transcriptions.")}catch(e){te.error("Error handling audio recording",{error:e}),en("Failed to process audio: ".concat(e))}finally{es(!1),e.getTracks().forEach(e=>e.stop())}},t.start(),L(!0);let n=setInterval(()=>{B(e=>e+1)},1e3);q(n)}catch(e){te.error("Error starting recording:",e),alert("Could not access microphone. Please check permissions.")}};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(ef.A,{elevation:3,sx:{p:2,display:"flex",flexDirection:"column",borderRadius:2},children:[O.length>0&&(0,l.jsx)(i.default,{sx:{mb:2,display:"flex",flexWrap:"wrap",gap:1},children:O.map(e=>(0,l.jsxs)(ef.A,{variant:"outlined",sx:{p:1,display:"flex",alignItems:"center",borderRadius:1,bgcolor:"background.default"},children:["image"===e.type?(0,l.jsx)(i.default,{component:"img",src:e.content,alt:e.originalName||"pasted image",sx:{width:40,height:40,objectFit:"cover",borderRadius:1,mr:1}}):"document"===e.type?(0,l.jsx)(eS.A,{fontSize:"small",sx:{mr:1}}):(0,l.jsx)(eI.A,{fontSize:"small",sx:{mr:1}}),(0,l.jsx)(p.default,{variant:"body2",noWrap:!0,sx:{maxWidth:150},children:e.originalName||"".concat(e.type," attachment")}),(0,l.jsx)(d.A,{size:"small",onClick:()=>(e=>{te.debug("Removing attachment",{id:e}),F(O.filter(t=>t.id!==e))})(e.id),sx:{ml:1},children:(0,l.jsx)(eZ.A,{fontSize:"small"})})]},e.id))}),Q&&(0,l.jsxs)(i.default,{sx:{mb:1,display:"flex",alignItems:"center",gap:1},children:[(0,l.jsx)(f.A,{icon:(0,l.jsx)(N.A,{}),label:"Editing message",size:"small",color:"warning",variant:"outlined"}),(0,l.jsx)(p.default,{variant:"caption",color:"text.secondary",children:"Enter to save \xb7 Esc to cancel"})]}),(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"flex-end"},children:[(0,l.jsx)(u.A,{fullWidth:!0,multiline:!0,maxRows:Q?12:4,"data-tour":"chat-input",placeholder:Q?"Edit message...":"Type a message...",value:Q?null!=(n=null==k?void 0:k.content)?n:"":M,onChange:e=>{Q?null==E||E(e.target.value):P(e.target.value)},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey?"Escape"===e.key&&Q&&(e.preventDefault(),null==D||D()):(e.preventDefault(),Q?em():(te.debug("Enter key pressed, sending message"),eg()))},onPaste:e=>{var t;let n=null==(t=e.clipboardData)?void 0:t.items;if(!n)return;let l=[];for(let e=0;e<n.length;e++){let t=n[e];if("file"===t.kind&&t.type.startsWith("image/")){let e=t.getAsFile();e&&l.push(e)}}0!==l.length&&(e.preventDefault(),te.debug("Pasting image attachment(s)",{count:l.length}),l.forEach(e=>{let t=new FileReader;t.onload=t=>{var n;let l=null==(n=t.target)?void 0:n.result;if("string"!=typeof l)return;let r=(e.type.split("/")[1]||"png").split("+")[0];F(t=>[...t,{id:(0,e9.A)(),type:"image",content:l,originalName:e.name&&!/^image\.\w+$/i.test(e.name)?e.name:"Pasted image.".concat(r)}])},t.onerror=()=>te.error("Failed to read pasted image"),t.readAsDataURL(e)}))},disabled:!Q&&a,variant:"outlined",autoFocus:Q,sx:{mr:1},InputProps:{sx:{borderRadius:2}}}),!Q&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.A,{title:"Attach document",children:(0,l.jsx)(d.A,{color:"primary",onClick:()=>{var e;te.debug("File selection triggered"),null==(e=J.current)||e.click()},disabled:a||W,children:(0,l.jsx)(eS.A,{})})}),(0,l.jsx)("input",{type:"file",ref:J,onChange:ev,style:{display:"none"},accept:".txt,.md,.json,.csv,.html,.xml,.js,.ts,.jsx,.tsx,.css,.scss"}),(0,l.jsx)(s.A,{title:W?"Stop recording":"Record audio",children:(0,l.jsxs)(d.A,{color:W?"error":"primary",onClick:W?()=>{te.debug("Stopping audio recording"),G.current&&"inactive"!==G.current.state&&(G.current.stop(),L(!1),U&&(clearInterval(U),q(null)),B(0))}:ey,disabled:a,children:[(0,l.jsx)(eI.A,{}),W&&(0,l.jsx)(p.default,{variant:"caption",sx:{position:"absolute",bottom:-15,fontSize:"0.7rem",color:"error.main"},children:(e=>{let t=Math.floor(e/60);return"".concat(t.toString().padStart(2,"0"),":").concat((e%60).toString().padStart(2,"0"))})(H)})]})})]}),Q?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.A,{title:"Save edit",children:(0,l.jsx)("span",{children:(0,l.jsx)(d.A,{color:"primary",onClick:em,disabled:!(null==k?void 0:k.content.trim()),children:(0,l.jsx)(e$.A,{})})})}),(0,l.jsx)(s.A,{title:"Cancel edit",children:(0,l.jsx)(d.A,{color:"default",onClick:()=>null==D?void 0:D(),children:(0,l.jsx)(eZ.A,{})})})]}):(0,l.jsx)(s.A,{title:"Send message",children:(0,l.jsx)("span",{children:(0,l.jsx)(d.A,{color:"primary",onClick:eg,disabled:a||!M.trim()&&0===O.length,children:(0,l.jsx)(eX.A,{})})})})]})," ",(x||(C||Q)&&j.length>0)&&(0,l.jsxs)(i.default,{sx:{mt:1,display:"flex",justifyContent:"flex-start",alignItems:"center",flexWrap:"wrap",gap:1},children:[(C||Q)&&j.length>0&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.A,{title:Q?"Node this message runs on — click to pick from the flow":I?"Next message will run on this manually picked node — click to change":"Node the next message will run on — click to pick from the flow",children:(0,l.jsx)(f.A,{icon:(0,l.jsx)(T.A,{}),label:Z,size:"small",color:Q||I?"primary":"default",variant:Q||I?"filled":"outlined",onClick:()=>Y(!0),disabled:!Q&&a})}),(0,l.jsx)(e3,{open:V,flow:A,selectedNodeId:X,allowAutomatic:!Q,onSelect:e=>{Q?null==z||z(e):null==C||C(e)},onClose:()=>Y(!1)})]}),x&&(0,l.jsx)(eu.A,{control:(0,l.jsx)(eQ.A,{checked:c,onChange:e=>x(e.target.checked),size:"small",disabled:a}),label:(0,l.jsx)(p.default,{variant:"caption",children:"Require Tool Approvals"}),sx:{mr:"auto"}}),y&&(0,l.jsx)(eu.A,{control:(0,l.jsx)(eQ.A,{checked:m,onChange:e=>y(e.target.checked),size:"small",disabled:a}),label:(0,l.jsx)(p.default,{variant:"caption",children:"Execute in Debugger"}),sx:{ml:2}})]})," "]})," ",(0,l.jsxs)(g.A,{open:$,onClose:()=>!ei&&ee(!1),maxWidth:"md",fullWidth:!0,children:[(0,l.jsxs)(v.A,{children:[el,!ei&&(0,l.jsx)(d.A,{"aria-label":"close",onClick:()=>ee(!1),sx:{position:"absolute",right:8,top:8},children:(0,l.jsx)(eZ.A,{})})]}),(0,l.jsx)(b.A,{dividers:!0,children:ei?(0,l.jsxs)(i.default,{sx:{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",p:4},children:[(0,l.jsx)(ec.default,{value:"audio"===eo&&ed?ed:void 0,variant:"audio"===eo&&ed>0?"determinate":"indeterminate"}),"audio"===eo&&(0,l.jsxs)(i.default,{sx:{mt:2,textAlign:"center"},children:[(0,l.jsx)(p.default,{variant:"body2",children:eh||"Processing audio..."}),ed>0&&(0,l.jsxs)(p.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:[Math.round(ed),"%"]})]})]}):(0,l.jsx)(u.A,{multiline:!0,fullWidth:!0,minRows:10,maxRows:20,value:et,onChange:e=>en(e.target.value),variant:"outlined",placeholder:"document"===eo?"Document content":"Audio transcription"})}),(0,l.jsxs)(w.A,{children:[(0,l.jsx)(h.A,{onClick:()=>ee(!1),disabled:ei,children:"Cancel"}),(0,l.jsx)(h.A,{onClick:()=>{te.debug("Adding attachment",{type:eo,titleLength:el.length}),F([...O,{id:(0,e9.A)(),type:eo,content:et,originalName:el}]),ee(!1)},variant:"contained",disabled:ei||!et.trim(),children:"Add to Message"})]})]})]})};var tn=n(66177),tl=n(39486),tr=n(82446),to=n(37596);let ta=e=>{let{entries:t,activeKey:n,onSelectTab:o,onCloseTab:a,onAppMessage:c}=e,u=(0,e5.A)(),[f,h]=(0,r.useState)(!1),[x,m]=(0,r.useState)(!1),[g,v]=(0,r.useState)([]),b=(0,r.useMemo)(()=>new Set(t.map(e=>e.key)),[t]),y=(0,r.useMemo)(()=>g.filter(e=>b.has(e)),[g,b]),w=(0,r.useMemo)(()=>y.length>0?y:n?[n]:[],[y,n]),j=(0,r.useMemo)(()=>new Set(w),[w]),A=Math.max(1,Math.ceil(Math.sqrt(w.length)));return 0===t.length?null:(0,l.jsxs)(i.default,{"data-testid":"dev-canvas-dock",sx:{borderTop:1,borderColor:"divider",bgcolor:"background.paper",display:"flex",flexDirection:"column",minHeight:0,...x?{position:"fixed",inset:16,zIndex:1300,borderRadius:1,boxShadow:6,border:1}:{maxHeight:"45vh"}},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,px:1,py:.5,bgcolor:"action.hover"},children:[(0,l.jsx)(eR.A,{fontSize:"small",color:"primary"}),(0,l.jsx)(p.default,{variant:"caption",sx:{fontWeight:600,mr:1},children:"Canvas"}),(0,l.jsx)(i.default,{sx:{display:"flex",gap:.5,overflowX:"auto",flex:1,minWidth:0},children:t.map(e=>{let t=e.key===n,r=y.includes(e.key);return(0,l.jsxs)(i.default,{onClick:()=>o(e.key),sx:{display:"flex",alignItems:"center",gap:.5,px:1,py:.25,borderRadius:1,cursor:"pointer",whiteSpace:"nowrap",border:1,borderColor:t?"primary.main":"divider",bgcolor:t?"action.selected":"transparent"},title:"".concat(e.serverName," — ").concat(e.uri),children:[(0,l.jsx)(tn.A,{color:"primary",variant:"dot",invisible:!e.unread,children:(0,l.jsx)(p.default,{variant:"caption",sx:{fontWeight:t?600:400},children:function(e){return e.replace(/\/+$/,"").split("/").pop()||e}(e.uri)})}),(0,l.jsx)(p.default,{variant:"caption",color:"text.secondary",sx:{fontSize:"0.65rem"},children:e.serverName}),(0,l.jsx)(s.A,{title:r?"Remove from split":"Add to split view",children:(0,l.jsx)(d.A,{size:"small",sx:{p:.25},color:r?"primary":"default",onClick:t=>{t.stopPropagation(),(e=>{v(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])})(e.key)},"aria-label":"Toggle split view",children:(0,l.jsx)(to.A,{sx:{fontSize:14}})})}),(0,l.jsx)(s.A,{title:"Close",children:(0,l.jsx)(d.A,{size:"small",sx:{p:.25},onClick:t=>{t.stopPropagation(),a(e.key)},"aria-label":"Close canvas tab",children:(0,l.jsx)(eZ.A,{sx:{fontSize:14}})})})]},e.key)})}),(0,l.jsx)(s.A,{title:x?"Exit fullscreen":"Fullscreen",children:(0,l.jsx)(d.A,{size:"small",onClick:()=>m(e=>!e),"aria-label":"Toggle canvas fullscreen",children:x?(0,l.jsx)(tr.A,{fontSize:"small"}):(0,l.jsx)(tl.A,{fontSize:"small"})})}),(0,l.jsx)(s.A,{title:f?"Expand canvas":"Collapse canvas",children:(0,l.jsx)(d.A,{size:"small",onClick:()=>h(e=>!e),"aria-label":"Toggle canvas collapse",children:f?(0,l.jsx)(Q.A,{fontSize:"small"}):(0,l.jsx)(Y.A,{fontSize:"small"})})})]}),(0,l.jsx)(i.default,{sx:{display:f?"none":"grid",gridTemplateColumns:"repeat(".concat(A,", minmax(0, 1fr))"),gap:1,p:1,flex:1,minHeight:0,overflow:"hidden"},children:t.map(e=>{let t=!f&&j.has(e.key);return(0,l.jsx)(i.default,{sx:{display:t?"flex":"none",flexDirection:"column",minHeight:0,border:1,borderColor:"divider",borderRadius:1,overflow:"hidden",bgcolor:"dark"===u.palette.mode?"#111":"#fff"},children:(0,l.jsx)(eP.A,{docked:!0,visible:t,serverName:e.serverName,uri:e.uri,toolName:e.toolName,toolArgs:e.latestToolArgs,toolResultContent:e.latestResultContent,onAppMessage:c})},e.key)})})]})},ti={entries:{},order:[],activeKey:null};function ts(e,t){return"".concat(e,"::").concat(t)}function td(e,t){var n;return null!=(n=e[t])?n:[]}var tc=n(25731),tu=n(62617),tp=n(12857),tf=n(16186);let th={byIndex:{}};function tx(e,t,n){for(let l=0;l<t;l++)e[l]||(e[l]={laneIndex:l,laneCount:t,label:"Lane ".concat(l+1,"/").concat(t),status:"pending",lastEventAt:n})}let tm=e=>{let{lane:t,onOpenLane:n}=e,r=!!t.laneConversationId&&!!n,o="pending"===t.status;return(0,l.jsxs)(i.default,{onClick:r?()=>n(t.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"===t.status&&(0,l.jsx)(ec.default,{size:14,sx:{flexShrink:0}}),"completed"===t.status&&(0,l.jsx)(I.A,{sx:{fontSize:16,flexShrink:0},color:"success"}),"error"===t.status&&(0,l.jsx)(tp.A,{sx:{fontSize:16,flexShrink:0},color:"error"}),o&&(0,l.jsx)(tf.A,{sx:{fontSize:16,flexShrink:0},color:"disabled"}),(0,l.jsxs)(p.default,{variant:"caption",color:o?"text.disabled":"textSecondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[t.label,o&&" — queued","running"===t.status&&t.activity&&(0,l.jsxs)(p.default,{component:"span",variant:"caption",color:"text.disabled",children:[" \xb7 ",t.activity]})]})]})},tg=e=>{var t;let{liveStats:n,onStop:o,stopDisabled:a,awaitingApproval:s,lanes:d,onOpenLane:c,onAttachDebugger:u}=e,[f,x]=(0,r.useState)(()=>Date.now()),[m,g]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=setInterval(()=>x(Date.now()),1e3);return()=>clearInterval(e)},[]);let v=n?Math.max(0,Math.round((f-n.startedAt)/1e3)):0,b=n?Math.round((f-n.lastEventAt)/1e3):0,y=!s&&!!n&&b>=60,w=d?Object.values(d.byIndex).sort((e,t)=>e.laneIndex-t.laneIndex):[],j=w.length>0?(e=>{let t=e.filter(e=>"running"===e.status).length,n=e.filter(e=>"pending"===e.status).length,l=e.filter(e=>"completed"===e.status).length,r=e.filter(e=>"error"===e.status).length;if(0===t&&0===n&&r>0)return{text:"".concat(r,"/").concat(e.length," lanes failed — partial results"),warning:!0};let o=[t>0?"".concat(t," running"):"",n>0?"".concat(n," queued"):"",l>0?"".concat(l," done"):"",r>0?"".concat(r," failed"):""].filter(Boolean);return{text:"".concat(e.length," lanes — ").concat(o.join(", ")),warning:r>0}})(w):null;return(0,l.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",my:2,gap:.5},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:2},children:[s?(0,l.jsx)(tc.A,{fontSize:"small",color:"warning"}):(0,l.jsx)(ec.default,{size:20,color:y?"warning":"primary"}),(0,l.jsx)(p.default,{variant:"body2",color:"textSecondary",children:s?"Waiting for tool approval":(null==n?void 0:n.activeNode)?"Running: ".concat(n.activeNode):"Working…"}),u&&!s&&(0,l.jsx)(h.A,{variant:"outlined",color:"primary",size:"small",startIcon:(0,l.jsx)(tu.A,{fontSize:"small"}),onClick:()=>{g(!0),u()},disabled:m,children:m?"Attaching…":"Attach debugger"}),(0,l.jsx)(h.A,{variant:"outlined",color:"secondary",size:"small",onClick:o,disabled:a,children:"Stop"})]}),j&&(0,l.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",alignItems:"stretch",minWidth:280,maxWidth:520},children:[(0,l.jsx)(p.default,{variant:"caption",color:j.warning?"warning.main":"textSecondary",sx:{px:1,fontWeight:500},children:j.text}),w.map(e=>(0,l.jsx)(tm,{lane:e,onOpenLane:c},e.laneIndex))]}),!s&&(0,l.jsxs)(p.default,{variant:"caption",color:y?"warning.main":"textSecondary",children:[(null!=(t=null==n?void 0:n.totalTokens)?t:0).toLocaleString()," tokens \xb7 ",v,"s elapsed",y?" \xb7 no activity for ".concat(b,"s — may be stuck"):""]})]})};var tv=n(88538),tb=n(16963),ty=n(2456),tw=n(64792),tj=n(71356),tA=n(45202),tS=n(52005),tI=n(77998);let tC=e=>e>=1e3?"".concat((e/1e3).toFixed(e>=1e5?0:1),"k"):"".concat(e),tk=e=>{var t;let{usage:n,contextInfo:o,availableNodes:a}=e,[d,c]=(0,r.useState)(null);if(!n&&!o)return null;let u=(null==n?void 0:n.byNode)?Object.entries(n.byNode):[],h=null!=(t=null==n?void 0:n.cacheReadTokens)?t:0,x=n?Math.max(0,n.promptTokens-h):0,m=n?Math.max(0,n.totalTokens-h):0,g=(null==o?void 0:o.contextWindow)&&o.contextWindow>0?Math.min(100,Math.round(o.promptTokens/o.contextWindow*100)):void 0;return(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1.5,flexShrink:0},children:[n&&m>0&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.A,{title:"Tokens this conversation — ".concat(x.toLocaleString()," prompt / ").concat(n.completionTokens.toLocaleString()," completion").concat(h>0?" (+".concat(h.toLocaleString()," cached reads, not counted)"):"",". Click for the per-node breakdown."),children:(0,l.jsx)(f.A,{icon:(0,l.jsx)(tI.A,{}),label:"".concat(tC(m)," tokens"),size:"small",variant:"outlined",onClick:e=>c(e.currentTarget),sx:{cursor:"pointer"}})}),(0,l.jsx)(tv.Ay,{open:!!d,anchorEl:d,onClose:()=>c(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:(0,l.jsxs)(i.default,{sx:{p:2,maxWidth:420},children:[(0,l.jsx)(p.default,{variant:"subtitle2",sx:{mb:1},children:"Token usage by node"}),(0,l.jsxs)(tb.A,{size:"small",children:[(0,l.jsx)(ty.A,{children:(0,l.jsxs)(tw.A,{children:[(0,l.jsx)(tj.A,{children:"Node"}),(0,l.jsx)(tj.A,{align:"right",children:"Prompt"}),(0,l.jsx)(tj.A,{align:"right",children:"Completion"}),(0,l.jsx)(tj.A,{align:"right",children:"Total"})]})}),(0,l.jsxs)(tA.A,{children:[u.map(e=>{let[t,n]=e;return(0,l.jsxs)(tw.A,{children:[(0,l.jsx)(tj.A,{children:(0,l.jsx)(s.A,{title:t,children:(0,l.jsx)("span",{children:(e=>{var t;return(null==(t=a.find(t=>t.id===e))?void 0:t.label)||"".concat(e.substring(0,8),"…")})(t)})})}),(0,l.jsx)(tj.A,{align:"right",children:n.promptTokens.toLocaleString()}),(0,l.jsx)(tj.A,{align:"right",children:n.completionTokens.toLocaleString()}),(0,l.jsx)(tj.A,{align:"right",children:n.totalTokens.toLocaleString()})]},t)}),(0,l.jsxs)(tw.A,{children:[(0,l.jsx)(tj.A,{sx:{fontWeight:"bold"},children:"Total"}),(0,l.jsx)(tj.A,{align:"right",sx:{fontWeight:"bold"},children:n.promptTokens.toLocaleString()}),(0,l.jsx)(tj.A,{align:"right",sx:{fontWeight:"bold"},children:n.completionTokens.toLocaleString()}),(0,l.jsx)(tj.A,{align:"right",sx:{fontWeight:"bold"},children:n.totalTokens.toLocaleString()})]})]})]}),h>0&&(0,l.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:1},children:["Prompt totals include ",h.toLocaleString()," tokens re-read from the prompt cache. The header chip shows the fresh figure (",m.toLocaleString(),") with those cached reads excluded."]})]})})]}),o&&void 0!==g&&(0,l.jsx)(s.A,{title:"Context of the latest call".concat(o.modelDisplayName?" (".concat(o.modelDisplayName,")"):"",": ").concat(o.promptTokens.toLocaleString()," of ").concat(o.contextWindow.toLocaleString()," tokens"),children:(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1,minWidth:140},children:[(0,l.jsx)(tS.A,{variant:"determinate",value:g,color:g>=90?"error":g>=70?"warning":"primary",sx:{flex:1,height:6,borderRadius:3}}),(0,l.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:[tC(o.promptTokens),"/",tC(o.contextWindow)," (",g,"%)"]})]})}),o&&void 0===g&&(0,l.jsx)(s.A,{title:"Prompt size of the latest call".concat(o.modelDisplayName?" (".concat(o.modelDisplayName,")"):"",". Set the model's Context Window in its settings to see a usage meter."),children:(0,l.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:["ctx ",tC(o.promptTokens)]})})]})};var tE=n(75870),tN=n(51221),tT=n(43076),tz=n(17897);let tR=(0,eO.h)("frontend/components/Chat/QuickChatDialog"),tD=e=>{let{open:t,onClose:n,onStart:o}=e,[a,s]=(0,r.useState)([]),[x,m]=(0,r.useState)([]),[y,j]=(0,r.useState)(!1),[A,S]=(0,r.useState)(null),[I,C]=(0,r.useState)(""),[k,E]=(0,r.useState)(""),[N,T]=(0,r.useState)({}),[z,R]=(0,r.useState)(!1),[D,_]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(!t)return;let e=!1;return j(!0),S(null),(async()=>{try{let[t,n]=await Promise.all([tT.N.loadModels(),tz.S.loadServerConfigs()]);if(e)return;s(t);let l=Array.isArray(n)?n.filter(e=>!e.disabled).map(e=>e.name):[];m(l),C(e=>{var n;return e||(null==(n=t[0])?void 0:n.id)||""})}catch(t){e||(tR.warn("Failed to load models/servers for quick chat",t),S("Could not load models or servers."))}finally{e||j(!1)}})(),()=>{e=!0}},[t]),(0,r.useEffect)(()=>{t||(E(""),T({}),_(null),R(!1))},[t]);let M=(0,r.useCallback)(e=>{T(t=>{let n=t[e];return(null==n?void 0:n.selected)?{...t,[e]:{...n,selected:!1}}:{...t,[e]:{...null!=n?n:{tools:null,expanded:!1},selected:!0}}})},[]),P=(0,r.useCallback)(async e=>{T(t=>{var n;let l=null!=(n=t[e])?n:{selected:!1,tools:null,expanded:!1};return{...t,[e]:{...l,expanded:!l.expanded}}});let t=N[e];if(!(null==t?void 0:t.available)&&!(null==t?void 0:t.loading)){T(t=>{var n;return{...t,[e]:{...null!=(n=t[e])?n:{selected:!1,tools:null,expanded:!0},loading:!0}}});try{let{tools:t}=await tz.S.listServerTools(e),n=Array.isArray(t)?t.map(e=>e.name).filter(Boolean):[];T(t=>{var l;return{...t,[e]:{...null!=(l=t[e])?l:{selected:!1,tools:null,expanded:!0},available:n,loading:!1}}})}catch(t){tR.warn("Failed to load tools for ".concat(e),t),T(t=>{var n;return{...t,[e]:{...null!=(n=t[e])?n:{selected:!1,tools:null,expanded:!0},available:[],loading:!1}}})}}},[N]),F=(0,r.useCallback)((e,t,n)=>{T(l=>{var r,o;let a=null!=(r=l[e])?r:{selected:!0,tools:null,expanded:!0},i=new Set(null!=(o=a.tools)?o:new Set(n));return i.has(t)?i.delete(t):i.add(t),{...l,[e]:{...a,selected:!0,tools:i}}})},[]),B=!!I&&!z&&!y,q=async()=>{if(!I)return void _("Pick a model to chat with.");R(!0),_(null);let e=x.filter(e=>{var t;return null==(t=N[e])?void 0:t.selected}).map(e=>{let t=N[e];return!t.tools||t.available&&t.tools.size===t.available.length?{name:e}:{name:e,enabledTools:[...t.tools]}});try{await o({modelId:I,servers:e,systemPrompt:k.trim()||void 0})}catch(e){tR.warn("Quick chat failed to start",e),_(e instanceof Error?e.message:"Could not start the quick chat."),R(!1)}};return(0,l.jsxs)(g.A,{open:t,onClose:z?void 0:n,maxWidth:"sm",fullWidth:!0,children:[(0,l.jsx)(v.A,{children:"Quick Chat"}),(0,l.jsxs)(b.A,{children:[(0,l.jsx)(p.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Chat with a model and, optionally, some MCP servers — no need to build and save a flow."}),A&&(0,l.jsx)(c.A,{severity:"error",sx:{mb:2},children:A}),(0,l.jsxs)(W.A,{fullWidth:!0,size:"small",sx:{mb:2},disabled:y,children:[(0,l.jsx)(tN.A,{id:"quick-chat-model-label",children:"Model"}),(0,l.jsxs)(L.A,{labelId:"quick-chat-model-label",label:"Model",value:I,onChange:e=>C(e.target.value),children:[0===a.length&&(0,l.jsx)(H.A,{value:"",disabled:!0,children:y?"Loading…":"No models configured"}),a.map(e=>(0,l.jsx)(H.A,{value:e.id,children:e.displayName||e.name},e.id))]})]}),(0,l.jsx)(u.A,{fullWidth:!0,size:"small",multiline:!0,minRows:2,maxRows:6,label:"System prompt (optional)",placeholder:"e.g. You are a concise coding assistant.",value:k,onChange:e=>E(e.target.value),sx:{mb:2}}),(0,l.jsx)(O.A,{sx:{mb:1}}),(0,l.jsx)(p.default,{variant:"subtitle2",gutterBottom:!0,children:"MCP servers (optional)"}),y?(0,l.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,l.jsx)(ec.default,{size:22})}):0===x.length?(0,l.jsx)(p.default,{variant:"body2",color:"text.secondary",children:"No connected MCP servers. You can still chat with the model alone."}):x.map(e=>{let t=N[e],n=!!(null==t?void 0:t.selected),r=null==t?void 0:t.available,o=null==t?void 0:t.tools;return(0,l.jsxs)(i.default,{sx:{mb:.5},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center"},children:[(0,l.jsx)(eu.A,{sx:{flexGrow:1,mr:0},control:(0,l.jsx)(eQ.A,{size:"small",checked:n,onChange:()=>M(e)}),label:(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,l.jsx)(p.default,{variant:"body2",children:e}),n&&(0,l.jsx)(f.A,{size:"small",variant:"outlined",label:o?"".concat(o.size," tool").concat(1===o.size?"":"s"):"all tools"})]})}),(0,l.jsx)(d.A,{size:"small",onClick:()=>P(e),"aria-label":"customize ".concat(e," tools"),children:(null==t?void 0:t.expanded)?(0,l.jsx)(Q.A,{fontSize:"small"}):(0,l.jsx)(Y.A,{fontSize:"small"})})]}),(0,l.jsx)(U.A,{in:!!(null==t?void 0:t.expanded),unmountOnExit:!0,children:(0,l.jsx)(i.default,{sx:{pl:4,pb:1},children:(null==t?void 0:t.loading)?(0,l.jsx)(ec.default,{size:16}):r&&r.length>0?r.map(t=>{let n=!o||o.has(t);return(0,l.jsx)(eu.A,{sx:{display:"flex"},control:(0,l.jsx)(eQ.A,{size:"small",checked:n,onChange:()=>F(e,t,r)}),label:(0,l.jsx)(p.default,{variant:"caption",children:t})},t)}):(0,l.jsx)(p.default,{variant:"caption",color:"text.secondary",children:r?"No tools reported (server may be offline).":""})})})]},e)}),D&&(0,l.jsx)(c.A,{severity:"error",sx:{mt:2},children:D})]}),(0,l.jsxs)(w.A,{children:[(0,l.jsx)(h.A,{onClick:n,disabled:z,children:"Cancel"}),(0,l.jsx)(h.A,{variant:"contained",onClick:q,disabled:!B,startIcon:z?(0,l.jsx)(ec.default,{size:16,color:"inherit"}):void 0,children:z?"Starting…":"Start chat"})]})]})};var t_=n(49692),tM=n(54178),tP=n(11305),tO=n(48116),tF=n(90057),tW=n(33420),tL=n(53911);let tH={byNode:{},byResource:{},byResourceName:{},resourceVersion:0};function tB(e,t){return"".concat(e," ").concat(t)}var tU=n(59323),tq=n(72308),tJ=n(6422),tG=n(48363);let tK=(0,eO.h)("frontend/components/Chat/RunResourcesPanel"),tV=e=>{let{conversationId:t,refreshToken:n}=e,[o,a]=(0,r.useState)(null),[s,d]=(0,r.useState)(null);return((0,r.useEffect)(()=>{if(!t)return;let e=!1;return fetch("/v1/chat/conversations/".concat(encodeURIComponent(t),"/resources")).then(async e=>{if(!e.ok)throw Error("HTTP ".concat(e.status));return e.json()}).then(t=>{e||(a(Array.isArray(t.resources)?t.resources:[]),d(null))}).catch(t=>{e||(tK.warn("Failed to load run resources",t),d(t instanceof Error?t.message:String(t)))}),()=>{e=!0}},[t,n]),s)?(0,l.jsxs)(p.default,{variant:"caption",color:"text.secondary",children:["Run data unavailable (",s,")"]}):null===o?(0,l.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",p:1},children:(0,l.jsx)(ec.default,{size:16})}):0===o.length?(0,l.jsx)(p.default,{variant:"caption",color:"text.secondary",children:"No data artifacts captured in this run yet."}):(0,l.jsx)(B.A,{dense:!0,disablePadding:!0,children:[...o].sort((e,t)=>t.createdAt-e.createdAt).map(e=>{var t;return(0,l.jsxs)(_.Ay,{disableGutters:!0,sx:{alignItems:"flex-start"},children:[(0,l.jsx)(ev.A,{sx:{minWidth:30,mt:.5},children:function(e){switch(e){case"image":return(0,l.jsx)(tq.A,{fontSize:"small",sx:{color:"#009688"}});case"audio":return(0,l.jsx)(tJ.A,{fontSize:"small",sx:{color:"#009688"}});case"link":return(0,l.jsx)(tG.A,{fontSize:"small",sx:{color:"#009688"}});default:return(0,l.jsx)(tU.A,{fontSize:"small",sx:{color:"#009688"}})}}(e.kind)}),(0,l.jsx)(P.A,{primary:(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap"},children:[(0,l.jsx)(p.default,{variant:"body2",sx:{fontWeight:500},children:null!=(t=e.name)?t:"".concat(e.kind,"-").concat(e.id.slice(0,8))}),e.mimeType&&(0,l.jsx)(f.A,{label:e.mimeType,size:"small",variant:"outlined",sx:{height:18,fontSize:"0.65rem"}}),(0,l.jsx)(p.default,{variant:"caption",color:"text.secondary",children:function(e){return e<1024?"".concat(e," B"):e<1048576?"".concat(Math.round(e/1024)," KB"):"".concat((e/1048576).toFixed(1)," MB")}(e.size)})]}),secondary:(0,l.jsxs)(p.default,{variant:"caption",color:"text.secondary",component:"span",sx:{wordBreak:"break-all"},children:["by ",function(e){var t,n,l,r,o,a,i;let s=e.producedBy;switch(s.source){case"tool-result":return"tool ".concat(null!=(t=s.server)?t:"?","/").concat(null!=(n=s.toolName)?n:"?");case"tool-args":return"tool args ".concat(null!=(l=s.server)?l:"?","/").concat(null!=(r=s.toolName)?r:"?");case"capture":return"step ".concat(null!=(a=null!=(o=s.nodeName)?o:s.nodeId)?a:"?");case"mcp-link":return"link from ".concat(null!=(i=s.server)?i:"?");default:return"run"}}(e),e.readBy.length>0?" \xb7 read ".concat(e.readBy.length,"\xd7"):""," \xb7 ",e.uri]})})]},e.id)})})};var tY=n(14913),tQ=n(57883);let tX={system:{label:"system",color:"secondary"},sent:{label:"sent",color:"success"},folded:{label:"folded",color:"warning"},"scoped-out":{label:"scoped out",color:"info"},"handoff-stripped":{label:"handoff plumbing",color:"default"}},tZ={whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:"0.75rem",fontFamily:"inherit"},t$=e=>{let{role:t,content:n,toolCallNames:r,status:o,faded:a}=e;return(0,l.jsxs)(ef.A,{variant:"outlined",sx:{p:1,mb:.75,opacity:a?.55:1,borderStyle:a?"dashed":"solid"},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.5,flexWrap:"wrap"},children:[(0,l.jsx)(f.A,{size:"small",label:t,color:function(e){switch(e){case"system":return"secondary";case"user":return"primary";case"assistant":return"success";case"tool":return"info";default:return"default"}}(t),variant:"outlined"}),r&&r.length>0&&(0,l.jsx)(f.A,{size:"small",variant:"outlined",label:"\uD83D\uDD27 ".concat(r.join(", ")),sx:{maxWidth:"100%"}}),o&&"sent"!==o&&"system"!==o&&(0,l.jsx)(f.A,{size:"small",color:tX[o].color,label:tX[o].label})]}),n.trim().length>0?(0,l.jsx)("pre",{style:tZ,children:n}):(0,l.jsx)(p.default,{variant:"caption",color:"textSecondary",children:"(no text content)"})]})},t0=e=>{let{provenance:t}=e;return(0,l.jsxs)(i.default,{children:[(0,l.jsx)(p.default,{variant:"caption",color:"textSecondary",sx:{display:"block",mb:.5},children:"Full threaded history — greyed rows are not sent to the model."}),t.map((e,t)=>{var n,r;return(0,l.jsx)(t$,{role:e.role,content:null!=(n=e.preview)?n:"",toolCallNames:e.toolCallNames,status:e.status,faded:"sent"!==e.status&&"system"!==e.status},null!=(r=e.id)?r:"hist-".concat(t))}),t.some(e=>"sent"!==e.status&&"system"!==e.status)&&(0,l.jsx)(p.default,{variant:"caption",color:"textSecondary",sx:{display:"block",mt:1},children:"Hover a badge label to understand why a message is not on the wire: folded (outputMode), scoped out (inputMode), or handoff plumbing (tool-call strip)."})]})},t1=()=>{},t2=e=>{let{modelInput:t,conversationId:n}=e,[o,a]=(0,r.useState)("wire"),{systemMessage:s,wireMessages:d,provenance:c,counts:u,inputMode:h}=t,x=(0,r.useMemo)(()=>(d||[]).filter(e=>"system"!==e.role),[d]);return(0,l.jsxs)(i.default,{sx:{height:"100%",display:"flex",flexDirection:"column",p:1},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap",mb:1},children:[(0,l.jsx)(p.default,{variant:"caption",color:"textSecondary",children:function(e){return"".concat(e.threaded," in history → ").concat(e.sent," sent")+(e.folded?" \xb7 ".concat(e.folded," folded"):"")+(e.scopedOut?" \xb7 ".concat(e.scopedOut," scoped out"):"")+(e.handoffStripped?" \xb7 ".concat(e.handoffStripped," handoff-stripped"):"")}(u)}),h&&"full-history"!==h&&(0,l.jsx)(f.A,{size:"small",variant:"outlined",label:"inputMode: ".concat(h)})]}),(0,l.jsxs)(eh.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,l.jsx)(ex.A,{expandIcon:(0,l.jsx)(Y.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,l.jsx)(p.default,{variant:"caption",children:(0,l.jsx)("b",{children:"System message"})})}),(0,l.jsx)(em.A,{sx:{p:0},children:s&&s.content.trim().length>0?(0,l.jsx)(ef.A,{variant:"outlined",sx:{p:1,maxHeight:220,overflowY:"auto"},children:(0,l.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:"0.75rem",fontFamily:"inherit"},children:s.content})}):(0,l.jsx)(p.default,{variant:"caption",color:"textSecondary",children:"(no system message)"})})]}),(0,l.jsxs)(tY.A,{size:"small",exclusive:!0,value:o,onChange:(e,t)=>{t&&a(t)},sx:{my:1},children:[(0,l.jsx)(tQ.A,{value:"wire",children:"What the model sees"}),(0,l.jsx)(tQ.A,{value:"annotated",children:"Full history (annotated)"})]}),(0,l.jsx)(i.default,{sx:{flexGrow:1,overflowY:"auto",minHeight:0},children:"wire"===o?0===x.length?(0,l.jsx)(p.default,{variant:"body2",color:"textSecondary",sx:{p:1},children:"No conversation messages — the model sees only the system message."}):(0,l.jsx)(eJ,{messages:x,conversationId:n?"debug-".concat(n):void 0,onToggleDisabled:t1,onSplitConversation:t1}):(0,l.jsx)(t0,{provenance:c})})]})},t5=(0,eO.h)("frontend/components/Chat/DebuggerCanvas"),t6={start:tW.vm,process:tW.Uw,finish:tW.IK,mcp:tW.v2,subflow:tW.lA,resource:tW.z9},t4={custom:tL.jY,mcpEdge:tL.oY,resourceEdge:tL.sZ},t8=["conversation","tracker","detail"],t7={conversation:"Conversation",tracker:"Execution Tracker",detail:"Detail"},t3="flujo-debugger-section-order",t9="flujo-debugger-section-visible",ne="flujo-debugger-conv-width",nt="flujo-debugger-detail-width";function nn(e,t){let n=Number(window.localStorage.getItem(e));return Number.isFinite(n)&&n>=240?n:t}let nl=(0,tO.Ay)(ef.A)(e=>{let{theme:t}=e;return{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",padding:t.spacing(1)}}),nr=(0,tO.Ay)(i.default)(e=>{let{theme:t}=e;return{padding:t.spacing(1,2),borderBottom:"1px solid ".concat(t.palette.divider)}}),no=(0,tO.Ay)(i.default)({flexGrow:1,display:"flex",overflow:"hidden",minHeight:0}),na=(0,tO.Ay)(i.default)(e=>{let{theme:t}=e;return{width:"200px",flexShrink:0,borderRight:"1px solid ".concat(t.palette.divider),overflowY:"auto",padding:t.spacing(1)}}),ni=(0,tO.Ay)(i.default)({flexGrow:1,position:"relative",height:"100%"}),ns=(0,tO.Ay)(i.default)(e=>{let{theme:t}=e;return{padding:t.spacing(1,2),borderTop:"1px solid ".concat(t.palette.divider),display:"flex",gap:t.spacing(1),justifyContent:"center"}}),nd=(0,tO.Ay)(i.default)(e=>{let{theme:t}=e;return{width:"6px",flexShrink:0,cursor:"col-resize",backgroundColor:t.palette.divider,transition:"background-color 120ms",touchAction:"none","&:hover":{backgroundColor:t.palette.primary.main}}}),nc=e=>{var t,n,o,a;let{debugState:u,conversationId:f,onStep:x,onStepOver:m,onContinue:g,onCancel:v,isLoading:b,breakpoints:y,onToggleBreakpoint:w,onClose:j,isExpanded:A,onToggleExpand:S,liveActivity:I}=e,C=(0,e5.A)(),[k,E]=(0,r.useState)(u.executionTrace&&u.executionTrace.length>0?u.executionTrace.length-1:-1),[N,T]=(0,r.useState)(()=>(function(){try{let e=JSON.parse(window.localStorage.getItem(t3)||"null");if(Array.isArray(e)){let t=e.filter(e=>t8.includes(e)),n=t8.filter(e=>!t.includes(e));if(t.length+n.length===t8.length)return[...t,...n]}}catch(e){}return[...t8]})()),[R,D]=(0,r.useState)(()=>(function(){let e={conversation:!0,tracker:!0,detail:!0};try{let t=JSON.parse(window.localStorage.getItem(t9)||"null");if(t&&"object"==typeof t)for(let n of t8)"boolean"==typeof t[n]&&(e[n]=t[n])}catch(e){}return e})()),[O,F]=(0,r.useState)(()=>nn(ne,480)),[W,L]=(0,r.useState)(()=>nn(nt,320)),[H,U]=(0,r.useState)(null),[q,J]=(0,r.useState)(!0),[K,V]=(0,r.useState)(null),[Q,X,Z]=(0,e2.ck)([]),[$,ee,et]=(0,e2.fM)([]);(0,r.useEffect)(()=>{window.localStorage.setItem(t3,JSON.stringify(N))},[N]),(0,r.useEffect)(()=>{window.localStorage.setItem(t9,JSON.stringify(R))},[R]),(0,r.useEffect)(()=>{window.localStorage.setItem(ne,String(Math.round(O)))},[O]),(0,r.useEffect)(()=>{window.localStorage.setItem(nt,String(Math.round(W)))},[W]),(0,r.useEffect)(()=>{var e;let t=(null==(e=u.executionTrace)?void 0:e.length)||0;t>0?(E(e=>Math.min(e,t-1)),k<t-1&&E(t-1)):E(-1)},[u.executionTrace]),(0,r.useEffect)(()=>{(async()=>{if(!u.flowId){V("Flow ID is missing in debug state."),J(!1);return}J(!0),V(null);try{t5.debug("Loading flow definition for ID: ".concat(u.flowId));let e=await tF.g.getFlow(u.flowId);if(!e)throw Error("Flow with ID ".concat(u.flowId," not found."));U(e),t5.info("Flow definition loaded: ".concat(e.name))}catch(e){t5.error("Error loading flow definition:",e),V(e instanceof Error?e.message:"Failed to load flow definition."),U(null)}finally{J(!1)}})()},[u.flowId]),(0,r.useEffect)(()=>{if(H){t5.debug("Setting nodes and edges from flow definition");let e=H.nodes.map(e=>({...e,draggable:!1,selectable:!1,connectable:!1})),t=H.edges.map(e=>({...e,selectable:!1}));X(e),ee(t)}},[H,X,ee]);let en=(0,r.useCallback)(()=>{if(t5.debug("Previous button clicked. Current index: ".concat(k)),k>0){let e=k-1;t5.debug("Setting current step index to: ".concat(e)),E(e)}else t5.debug("Already at the first step, cannot go previous.")},[k]),el=(0,r.useCallback)(()=>{var e;if(t5.debug("Next button clicked. Current index: ".concat(k,", Trace length: ").concat(null==(e=u.executionTrace)?void 0:e.length)),u.executionTrace&&k<u.executionTrace.length-1){let e=k+1;t5.debug("Navigating to next trace step: ".concat(e)),E(e)}else t5.info("At end of trace, triggering API call for next step."),x()},[k,u.executionTrace,x]),er=(0,r.useMemo)(()=>{if(u.executionTrace&&k>=0&&k<u.executionTrace.length)return u.executionTrace[k]},[u.executionTrace,k]),eo=(0,r.useMemo)(()=>(null==er?void 0:er.modelInputs)&&er.modelInputs.length>0?er.modelInputs:(null==er?void 0:er.modelInput)?[er.modelInput]:void 0,[er]),[ea,ei]=(0,r.useState)(0);(0,r.useEffect)(()=>{ei(0)},[k]);let es=eo?Math.min(ea,eo.length-1):0,ed=null==eo?void 0:eo[es],[eu,ep]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{if(!I)return;let e=()=>{let e=Date.now();return[...Object.values(I.byNode),...Object.values(I.byResource),...Object.values(I.byResourceName)].some(t=>e-t.ts<4e3)};if(!e())return;let t=setInterval(()=>{ep(Date.now()),e()||clearInterval(t)},350);return()=>clearInterval(t)},[I]);let ef=(0,r.useCallback)(e=>{var t,n;if(!I)return null;let l=I.byNode[e.id];if(l&&eu-l.ts<4e3)return l;let r=e.data;if((null!=(t=null==r?void 0:r.type)?t:e.type)!=="resource")return null;let o=null!=(n=null==r?void 0:r.properties)?n:{},a="run"===o.scope?"string"==typeof o.runName?I.byResourceName[o.runName]:void 0:"string"==typeof o.boundServer&&"string"==typeof o.uri?I.byResource[tB(o.boundServer,o.uri)]:void 0;return a&&eu-a.ts<4e3?{kind:"read"===a.kind?"resource-read":"resource-write",ts:a.ts}:null},[I,eu]),eg=(0,r.useMemo)(()=>{let e=null==er?void 0:er.nodeId;return Q.map(t=>{var n;let l=t.id===e,r=null==y?void 0:y.includes(t.id),o=l?null:ef(t),a=o?Math.max(.25,1-(eu-o.ts)/4e3):0,i=(null==o?void 0:o.kind)==="active"?C.palette.primary.main:"#009688";return{...t,style:{...t.style,border:l?"2px solid ".concat(C.palette.warning.main):o?"2px solid ".concat(i):r?"2px dashed ".concat(C.palette.error.main):null==(n=t.style)?void 0:n.border,boxShadow:l?"0 0 10px ".concat(C.palette.warning.light):o?"0 0 ".concat("resource-write"===o.kind?14:10,"px ").concat(i).concat(Math.round(255*a).toString(16).padStart(2,"0")):void 0}}})},[Q,er,y,C,ef,eu]),ev=(0,r.useMemo)(()=>N.filter(e=>R[e]),[N,R]),eb=(0,r.useCallback)(e=>{D(t=>({...t,[e]:!t[e]}))},[]),ey=(0,r.useCallback)((e,t)=>{T(n=>{let l=n.indexOf(e),r=l+t;if(l<0||r<0||r>=n.length)return n;let o=[...n];return[o[l],o[r]]=[o[r],o[l]],o})},[]),ew=(0,r.useCallback)((e,t,n)=>{n.preventDefault();let l=n.clientX,r="conversation"===e?O:W,o="conversation"===e?F:L,a=document.body.style.userSelect,i=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let s=e=>{o(Math.min(Math.max(r+t*(e.clientX-l),240),1100))},d=()=>{window.removeEventListener("pointermove",s),window.removeEventListener("pointerup",d),document.body.style.userSelect=a,document.body.style.cursor=i};window.addEventListener("pointermove",s),window.addEventListener("pointerup",d)},[O,W]),ej=(0,l.jsx)(i.default,{sx:{flexGrow:1,overflow:"hidden",minHeight:0,display:"flex",flexDirection:"column"},children:er?ed&&eo?(0,l.jsxs)(i.default,{sx:{flexGrow:1,minHeight:0,display:"flex",flexDirection:"column"},children:[eo.length>1&&(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"center",gap:.5,px:1,py:.5,borderBottom:"1px solid ".concat(C.palette.divider)},children:[(0,l.jsx)(s.A,{title:"Previous model call",children:(0,l.jsx)("span",{children:(0,l.jsx)(d.A,{size:"small",onClick:()=>ei(e=>Math.max(0,Math.min(e,eo.length-1)-1)),disabled:es<=0,"aria-label":"Previous model call",children:(0,l.jsx)(G.A,{fontSize:"small"})})})}),(0,l.jsxs)(p.default,{variant:"caption",color:"textSecondary",children:["Model call ",es+1," / ",eo.length]}),(0,l.jsx)(s.A,{title:"Next model call",children:(0,l.jsx)("span",{children:(0,l.jsx)(d.A,{size:"small",onClick:()=>ei(e=>Math.min(eo.length-1,Math.min(e,eo.length-1)+1)),disabled:es>=eo.length-1,"aria-label":"Next model call",children:(0,l.jsx)(t_.A,{fontSize:"small"})})})})]}),(0,l.jsx)(i.default,{sx:{flexGrow:1,minHeight:0,overflow:"hidden",display:"flex",flexDirection:"column"},children:(0,l.jsx)(t2,{modelInput:ed,conversationId:f})})]}):(0,l.jsx)(p.default,{variant:"body2",color:"textSecondary",sx:{p:2},children:"No model call for this step."}):(0,l.jsx)(p.default,{variant:"body2",color:"textSecondary",sx:{p:2},children:"Select a step from the execution tracker."})}),eA={conversation:ej,tracker:(0,l.jsxs)(i.default,{sx:{flexGrow:1,display:"flex",overflow:"hidden",minHeight:0},children:[(0,l.jsxs)(na,{children:[(0,l.jsx)(p.default,{variant:"caption",color:"textSecondary",gutterBottom:!0,sx:{display:"block"},children:"Execution Trace"}),(0,l.jsxs)(B.A,{dense:!0,disablePadding:!0,children:[null==(t=u.executionTrace)?void 0:t.map((e,t)=>(0,l.jsx)(_.Ay,{disablePadding:!0,children:(0,l.jsx)(M.A,{selected:t===k,onClick:()=>(e=>{u.executionTrace&&e>=0&&e<u.executionTrace.length?(t5.debug("Trace step selected: ".concat(e)),E(e)):t5.warn("Invalid step index selected: ".concat(e))})(t),children:(0,l.jsx)(P.A,{primary:"".concat(e.stepIndex,": ").concat(e.nodeName||e.nodeId),secondary:e.nodeType})})},e.stepIndex)),b&&(0,l.jsx)(_.Ay,{children:(0,l.jsx)(ec.default,{size:20,sx:{margin:"auto"}})})]})]}),(0,l.jsx)(ni,{children:q?(0,l.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,l.jsx)(ec.default,{})}):K?(0,l.jsx)(c.A,{severity:"error",sx:{margin:2},children:K}):(0,l.jsxs)(e2.Ln,{children:[" ",(0,l.jsx)(e2.Gc,{nodes:eg,edges:$,onNodesChange:Z,onEdgesChange:et,nodeTypes:t6,edgeTypes:t4,fitView:!0,attributionPosition:"bottom-right",nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!1,onNodeClick:(e,t)=>{e.preventDefault(),w&&w(t.id)},onEdgeClick:e=>e.preventDefault(),onPaneClick:()=>{},children:" "})]})})]}),detail:(0,l.jsxs)(i.default,{sx:{flexGrow:1,overflowY:"auto",minHeight:0,p:2},children:[er?(0,l.jsxs)(i.default,{children:[(0,l.jsxs)(p.default,{variant:"body2",children:[(0,l.jsx)("b",{children:"Node:"})," ",er.nodeName," (",er.nodeId,")"]}),(0,l.jsxs)(p.default,{variant:"body2",children:[(0,l.jsx)("b",{children:"Type:"})," ",er.nodeType]}),(0,l.jsxs)(p.default,{variant:"body2",children:[(0,l.jsx)("b",{children:"Timestamp:"})," ",new Date(er.timestamp).toLocaleString()]}),(0,l.jsxs)(p.default,{variant:"body2",children:[(0,l.jsx)("b",{children:"Action Taken:"})," ",er.actionTaken]}),(0,l.jsxs)(eh.A,{sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,l.jsx)(ex.A,{expandIcon:(0,l.jsx)(Y.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,l.jsx)(p.default,{variant:"caption",children:"Prep Result"})}),(0,l.jsx)(em.A,{sx:{p:0},children:(0,l.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(er.prepResultSnapshot,null,2)})})]}),(0,l.jsxs)(eh.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,l.jsx)(ex.A,{expandIcon:(0,l.jsx)(Y.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,l.jsxs)(p.default,{variant:"caption",color:(null==(n=er.execResultSnapshot)?void 0:n.success)===!1?"error":"inherit",children:["Exec Result ",(null==(o=er.execResultSnapshot)?void 0:o.success)===!1?"(Error)":""]})}),(0,l.jsx)(em.A,{sx:{p:0},children:(null==(a=er.execResultSnapshot)?void 0:a.success)===!1?(0,l.jsxs)(i.default,{sx:{p:1,background:C.palette.error.light,borderRadius:1},children:[(0,l.jsxs)(p.default,{variant:"body2",color:"error",gutterBottom:!0,children:[(0,l.jsx)("b",{children:"Error:"})," ",er.execResultSnapshot.error||"Unknown error"]}),er.execResultSnapshot.errorDetails&&(0,l.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(er.execResultSnapshot.errorDetails,null,2)})]}):(0,l.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(er.execResultSnapshot,null,2)})})]}),(0,l.jsxs)(eh.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,l.jsx)(ex.A,{expandIcon:(0,l.jsx)(Y.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,l.jsx)(p.default,{variant:"caption",children:"State Before"})}),(0,l.jsx)(em.A,{sx:{p:0},children:(0,l.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(er.stateBefore,null,2)})})]}),(0,l.jsxs)(eh.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,l.jsx)(ex.A,{expandIcon:(0,l.jsx)(Y.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,l.jsx)(p.default,{variant:"caption",children:"State After"})}),(0,l.jsx)(em.A,{sx:{p:0},children:(0,l.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(er.stateAfter,null,2)})})]})]}):(0,l.jsx)(p.default,{variant:"body2",color:"textSecondary",children:"Select a step from the execution tracker."}),(0,l.jsxs)(eh.A,{defaultExpanded:!0,sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,l.jsx)(ex.A,{expandIcon:(0,l.jsx)(Y.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,l.jsx)(p.default,{variant:"caption",children:"Run Data"})}),(0,l.jsx)(em.A,{sx:{p:0},children:(0,l.jsx)(tV,{conversationId:f,refreshToken:null==I?void 0:I.resourceVersion})})]})]})};return(0,l.jsxs)(nl,{elevation:2,children:[(0,l.jsxs)(nr,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[(0,l.jsxs)(i.default,{children:[(0,l.jsx)(p.default,{variant:"h6",children:"Flow Debugger"}),(0,l.jsxs)(p.default,{variant:"caption",color:"textSecondary",display:"block",children:["Click a node to toggle a breakpoint",y&&y.length>0?" \xb7 ".concat(y.length," active"):""]})]}),(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,l.jsx)(s.A,{title:R.conversation?"Hide Conversation":"Show Conversation",children:(0,l.jsx)(d.A,{size:"small",onClick:()=>eb("conversation"),color:R.conversation?"primary":"default","aria-label":R.conversation?"Hide Conversation":"Show Conversation",children:(0,l.jsx)(tM.A,{fontSize:"small"})})}),(0,l.jsx)(s.A,{title:R.tracker?"Hide Execution Tracker":"Show Execution Tracker",children:(0,l.jsx)(d.A,{size:"small",onClick:()=>eb("tracker"),color:R.tracker?"primary":"default","aria-label":R.tracker?"Hide Execution Tracker":"Show Execution Tracker",children:(0,l.jsx)(z.A,{fontSize:"small"})})}),(0,l.jsx)(s.A,{title:R.detail?"Hide Detail":"Show Detail",children:(0,l.jsx)(d.A,{size:"small",onClick:()=>eb("detail"),color:R.detail?"primary":"default","aria-label":R.detail?"Hide Detail":"Show Detail",children:(0,l.jsx)(tP.A,{fontSize:"small"})})}),S&&(0,l.jsx)(s.A,{title:A?"Exit full screen":"Expand to full screen",children:(0,l.jsx)(d.A,{size:"small",onClick:S,"aria-label":A?"Exit full screen":"Expand to full screen",children:A?(0,l.jsx)(tr.A,{fontSize:"small"}):(0,l.jsx)(tl.A,{fontSize:"small"})})}),j&&(0,l.jsx)(s.A,{title:"Close debugger",children:(0,l.jsx)(d.A,{size:"small",onClick:j,"aria-label":"Close debugger",children:(0,l.jsx)(eZ.A,{fontSize:"small"})})})]})]}),(0,l.jsx)(no,{children:0===ev.length?(0,l.jsx)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",p:3},children:(0,l.jsx)(p.default,{variant:"body2",color:"textSecondary",children:"All sections are hidden — use the toolbar toggles above to show a section."})}):ev.map((e,t)=>(0,l.jsxs)(r.Fragment,{children:[(e=>{let t="tracker"!==e,n="conversation"===e?O:"detail"===e?W:void 0;return(0,l.jsxs)(i.default,{sx:{...t?{width:n,flexShrink:0}:{flexGrow:1,minWidth:300},display:"flex",flexDirection:"column",overflow:"hidden",minHeight:0},children:[(e=>{let t=ev.indexOf(e);return(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:1,py:.5,borderBottom:"1px solid ".concat(C.palette.divider)},children:[(0,l.jsx)(p.default,{variant:"subtitle2",noWrap:!0,children:t7[e]}),(0,l.jsxs)(i.default,{sx:{display:"flex"},children:[(0,l.jsx)(s.A,{title:"Move left",children:(0,l.jsx)("span",{children:(0,l.jsx)(d.A,{size:"small",onClick:()=>ey(e,-1),disabled:t<=0,"aria-label":"Move ".concat(t7[e]," left"),children:(0,l.jsx)(G.A,{fontSize:"small"})})})}),(0,l.jsx)(s.A,{title:"Move right",children:(0,l.jsx)("span",{children:(0,l.jsx)(d.A,{size:"small",onClick:()=>ey(e,1),disabled:t<0||t>=ev.length-1,"aria-label":"Move ".concat(t7[e]," right"),children:(0,l.jsx)(t_.A,{fontSize:"small"})})})}),(0,l.jsx)(s.A,{title:"Hide section",children:(0,l.jsx)(d.A,{size:"small",onClick:()=>eb(e),"aria-label":"Hide ".concat(t7[e]),children:(0,l.jsx)(eZ.A,{fontSize:"small"})})})]})]})})(e),eA[e]]},e)})(e),t<ev.length-1&&((e,t)=>{let n="tracker"!==e?e:"tracker"!==t?t:null;if(!n)return null;let r="tracker"!==e?1:-1;return(0,l.jsx)(nd,{onPointerDown:e=>ew(n,r,e),"aria-label":"Resize ".concat(t7[n]," section")},"resizer-".concat(e,"-").concat(t))})(e,ev[t+1])]},e))}),(0,l.jsxs)(ns,{children:[(0,l.jsx)(h.A,{variant:"outlined",size:"small",onClick:en,disabled:b||k<=0,children:"Previous"}),(0,l.jsx)(h.A,{variant:"contained",size:"small",onClick:el,disabled:b||-1===k,children:u.executionTrace&&k<u.executionTrace.length-1?"Next Trace Step":"Step Next"}),m&&(0,l.jsx)(h.A,{variant:"outlined",size:"small",onClick:m,disabled:b,children:"Step Over"}),(0,l.jsx)(h.A,{variant:"contained",color:"secondary",size:"small",onClick:g,disabled:b,children:"Continue"}),(0,l.jsx)(h.A,{variant:"outlined",color:"error",size:"small",onClick:v,disabled:b,children:"Stop"})]})]})},nu=(0,eO.h)("frontend/components/Chat/ExecutedFlowPanel"),np={start:tW.vm,process:tW.Uw,finish:tW.IK,mcp:tW.v2,subflow:tW.lA,resource:tW.z9},nf={custom:tL.jY,mcpEdge:tL.oY,resourceEdge:tL.sZ},nh=e=>{let{flowId:t,flowSnapshot:n,executedNodeIds:o,liveActivity:a,onClose:u}=e,f=(0,e5.A)(),[h,x]=(0,r.useState)(null),[m,g]=(0,r.useState)(!0),[v,b]=(0,r.useState)(null),[y,w,j]=(0,e2.ck)([]),[A,S,I]=(0,e2.fM)([]);(0,r.useEffect)(()=>{let e=!1;return(async()=>{g(!0),b(null);try{if(n&&Array.isArray(n.nodes)){e||x(n);return}if(!t)throw Error("No flow is associated with this conversation yet.");nu.debug("Loading flow definition for ID: ".concat(t));let l=await tF.g.getFlow(t);if(!l)throw Error("Flow with ID ".concat(t," not found."));e||x(l)}catch(t){nu.error("Error loading flow definition:",t),e||(b(t instanceof Error?t.message:"Failed to load flow definition."),x(null))}finally{e||g(!1)}})(),()=>{e=!0}},[t,n]),(0,r.useEffect)(()=>{h&&(w(h.nodes.map(e=>({...e,draggable:!1,selectable:!1,connectable:!1}))),S(h.edges.map(e=>({...e,selectable:!1}))))},[h,w,S]);let C=(0,r.useMemo)(()=>new Set(o),[o]),[k,E]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{if(!a)return;let e=()=>Object.values(a.byNode).some(e=>Date.now()-e.ts<4e3);if(!e())return;let t=setInterval(()=>{E(Date.now()),e()||clearInterval(t)},350);return()=>clearInterval(t)},[a]);let N=(0,r.useMemo)(()=>y.map(e=>{let t=C.has(e.id),n=null==a?void 0:a.byNode[e.id],l=!!n&&k-n.ts<4e3;return{...e,style:{...e.style,opacity:t||l?1:.4,border:l?"2px solid ".concat(f.palette.primary.main):t?"2px solid ".concat(f.palette.success.main):"1px solid ".concat(f.palette.divider),boxShadow:l?"0 0 10px ".concat(f.palette.primary.light):t?"0 0 8px ".concat(f.palette.success.light):void 0}}}),[y,C,a,k,f]);return(0,l.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",height:"100%",borderLeft:1,borderColor:"divider",minWidth:0},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:1,borderBottom:1,borderColor:"divider",flexShrink:0},children:[(0,l.jsx)(z.A,{fontSize:"small",color:"action"}),(0,l.jsx)(p.default,{variant:"subtitle2",sx:{flex:1,minWidth:0},noWrap:!0,children:"Executed Steps"}),(0,l.jsx)(s.A,{title:"Hide panel",children:(0,l.jsx)(d.A,{size:"small",onClick:u,"aria-label":"Hide executed steps panel",children:(0,l.jsx)(eZ.A,{fontSize:"small"})})})]}),(0,l.jsx)(i.default,{sx:{flex:1,minHeight:0,position:"relative"},children:m?(0,l.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,l.jsx)(ec.default,{})}):v?(0,l.jsx)(c.A,{severity:"info",sx:{m:2},children:v}):(0,l.jsx)(e2.Ln,{children:(0,l.jsx)(e2.Gc,{nodes:N,edges:A,onNodesChange:j,onEdgesChange:I,nodeTypes:np,edgeTypes:nf,fitView:!0,attributionPosition:"bottom-right",nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!1})})})]})};function nx(e){var t;return null==e||null==(t=e.nodes)?void 0:t.find(e=>{var t,n;return(null!=(n=null==e?void 0:e.type)?n:null==e||null==(t=e.data)?void 0:t.type)==="start"})}var nm=n(94929),ng=n(29155),nv=n(63650);let nb=(0,eO.h)("frontend/services/chat/index");class ny extends Error{constructor(e,t,n){super(e),this.name="ChatApiError",this.status=t,this.body=n}}let nw="/v1/chat/conversations";async function nj(e){let t;if(204===e.status)return;let n=await e.text();if(n)try{t=JSON.parse(n)}catch(e){t=n}if(!e.ok)throw new ny(t&&"object"==typeof t&&(t.error||t.message)||"Request failed with status ".concat(e.status),e.status,t);return t}class nA{async listConversations(){return nb.debug("listConversations: Entering method"),nj(await fetch(nw))}async getConversation(e){return nb.debug("getConversation: Entering method",{conversationId:e}),nj(await fetch("".concat(nw,"/").concat(encodeURIComponent(e))))}async createConversation(e){return nb.debug("createConversation: Entering method",{conversationId:e.id}),nj(await fetch(nw,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}))}async updateConversationFlow(e,t){return nb.debug("updateConversationFlow: Entering method",{conversationId:e,flowId:t}),nj(await fetch("".concat(nw,"/").concat(encodeURIComponent(e)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({flowId:t})}))}async updateConversationTitle(e,t){return nb.debug("updateConversationTitle: Entering method",{conversationId:e}),nj(await fetch("".concat(nw,"/").concat(encodeURIComponent(e)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:t})}))}async updateConversationApproval(e,t){return nb.debug("updateConversationApproval: Entering method",{conversationId:e,requireApproval:t}),nj(await fetch("".concat(nw,"/").concat(encodeURIComponent(e)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApproval:t})}))}async deleteConversation(e){nb.debug("deleteConversation: Entering method",{conversationId:e});let t=await fetch("".concat(nw,"/").concat(encodeURIComponent(e)),{method:"DELETE"});await nj(t)}async respondToToolCall(e,t,n){return nb.debug("respondToToolCall: Entering method",{conversationId:e,action:t,toolCallId:n}),nj(await fetch("".concat(nw,"/").concat(encodeURIComponent(e),"/respond"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:t,toolCallId:n})}))}async debugStep(e){return nb.debug("debugStep: Entering method",{conversationId:e}),nj(await fetch("".concat(nw,"/").concat(encodeURIComponent(e),"/debug/step"),{method:"POST"}))}async debugContinue(e){return nb.debug("debugContinue: Entering method",{conversationId:e}),nj(await fetch("".concat(nw,"/").concat(encodeURIComponent(e),"/debug/continue"),{method:"POST"}))}async setBreakpoints(e,t){nb.debug("setBreakpoints: Entering method",{conversationId:e,count:t.length});let n=await fetch("".concat(nw,"/").concat(encodeURIComponent(e),"/breakpoints"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({breakpoints:t})});await nj(n)}async synthesizeQuickChat(e){return nb.debug("synthesizeQuickChat: Entering method",{conversationId:e.conversationId}),nj(await fetch("/api/flow/quick-chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}))}async cancel(e){nb.debug("cancel: Entering method",{conversationId:e});let t=await fetch("".concat(nw,"/").concat(encodeURIComponent(e),"/cancel"),{method:"POST"});await nj(t)}subscribeToEvents(e,t,n){let l=new EventSource(void 0!==n?"".concat(nw,"/").concat(encodeURIComponent(e),"/events?fromSeq=").concat(n):"".concat(nw,"/").concat(encodeURIComponent(e),"/events"));return l.onopen=()=>{var n;nb.debug("Execution event stream open",{conversationId:e}),null==(n=t.onOpen)||n.call(t)},l.onmessage=e=>{try{t.onEvent(JSON.parse(e.data))}catch(e){nb.warn("Failed to parse SSE event",{err:e})}},l.onerror=e=>{var n;nb.debug("SSE stream error (browser will retry if still open)"),null==(n=t.onError)||n.call(t,e)},l}}let nS=new nA,nI=(0,eO.h)("frontend/components/Chat/index");function nC(e){var t;if(Array.isArray(e.content))return e.content;let n="string"==typeof e.content?e.content:"",l=null!=(t=e.attachments)?t:[],r=l.filter(e=>"image"!==e.type),o=l.filter(e=>"image"===e.type);if(r.length>0&&(n+="\n\n"+r.map(e=>"[".concat(e.type.toUpperCase(),"]: ").concat(e.content)).join("\n\n")),0===o.length)return n;let a=[];for(let e of(n.trim()&&a.push({type:"text",text:n}),o))a.push({type:"image_url",image_url:{url:e.content}});return a}let nk=/cancelled by user|execution cancelled/i,nE=e=>{var t,n;return(null==e?void 0:e.code)==="cancelled"||(null==e||null==(t=e.error)?void 0:t.code)==="cancelled"||[null==e?void 0:e.message,"string"==typeof(null==e||null==(n=e.body)?void 0:n.error)?e.body.error:void 0].some(e=>"string"==typeof e&&nk.test(e))},nN=()=>{var e,t,n;let o=(0,a.useRouter)(),[_,M]=(0,r.useState)([]),[P,O]=(0,r.useState)(!0),[F,W]=(0,r.useState)(null),[L,H]=(0,r.useState)(null),[B,U]=(0,r.useState)(!1),[q,J]=(0,r.useState)(null),[G,K]=(0,D.Mj)(D.Zg.CURRENT_CONVERSATION_ID,null),[V,Y]=(0,D.Mj)(D.Zg.LAST_PICKED_FLOW_ID,null),[Q,Z]=(0,r.useState)(!1),[$,ee]=(0,r.useState)(new Set),et=(0,r.useCallback)((e,t)=>{e&&ee(n=>{if(t===n.has(e))return n;let l=new Set(n);return t?l.add(e):l.delete(e),l})},[]),[en,el]=(0,r.useState)({}),er=(0,r.useRef)(!1),[eo,ea]=(0,r.useState)(null),[ei,es]=(0,r.useState)([]),[ec,eu]=(0,r.useState)(!1),[ep,ef]=(0,r.useState)(!1),[eh,ex]=(0,r.useState)(""),[em,eg]=(0,r.useState)(!1),[ev,eb]=(0,r.useState)(null),[ey,ew]=(0,r.useState)(null),[ej,eA]=(0,r.useState)(null),[eS,eI]=(0,r.useState)(null),[eC,ek]=(0,r.useState)(!1),[eE,eN]=(0,r.useState)(null),[eT,ez]=(0,r.useState)(!1),[eR,eD]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-debugger-width"));return Number.isFinite(e)&&e>0?e:0}),[e_,eM]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-debugger-expanded"));(0,r.useEffect)(()=>{window.localStorage.setItem("flujo-debugger-expanded",e_?"1":"0")},[e_]);let[eP,eO]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-workflow-panel-visible"));(0,r.useEffect)(()=>{window.localStorage.setItem("flujo-workflow-panel-visible",eP?"1":"0")},[eP]);let[eF,eW]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-workflow-panel-width"));return Number.isFinite(e)&&e>0?e:320}),eL=(0,r.useCallback)(e=>{e.preventDefault();let t=e.clientX,n=0;eW(e=>(n=e,e));let l=document.body.style.userSelect,r=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let o=e=>{eW(Math.min(Math.max(n+(t-e.clientX),240),Math.round(.7*window.innerWidth)))},a=()=>{window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",a),document.body.style.userSelect=l,document.body.style.cursor=r,eW(e=>(e>0&&window.localStorage.setItem("flujo-workflow-panel-width",String(Math.round(e))),e))};window.addEventListener("pointermove",o),window.addEventListener("pointerup",a)},[]),eH=(0,r.useCallback)(e=>{e.preventDefault();let t=document.body.style.userSelect,n=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let l=e=>{eD(Math.min(Math.max(window.innerWidth-e.clientX,360),Math.round(.85*window.innerWidth)))},r=()=>{window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",r),document.body.style.userSelect=t,document.body.style.cursor=n,eD(e=>(e>0&&window.localStorage.setItem("flujo-debugger-width",String(Math.round(e))),e))};window.addEventListener("pointermove",l),window.addEventListener("pointerup",r)},[]),[eB,eU]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-chat-sidebar-width"));return Number.isFinite(e)&&e>0?e:300}),[eq,eG]=(0,r.useState)(()=>"1"===window.localStorage.getItem("flujo-chat-sidebar-collapsed")),eK=(0,r.useCallback)(()=>{eG(e=>{let t=!e;return window.localStorage.setItem("flujo-chat-sidebar-collapsed",t?"1":"0"),t})},[]),eV=(0,r.useCallback)(e=>{e.preventDefault();let t=document.body.style.userSelect,n=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let l=e=>{eU(Math.min(Math.max(e.clientX,220),560))},r=()=>{window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",r),document.body.style.userSelect=t,document.body.style.cursor=n,eU(e=>(e>0&&window.localStorage.setItem("flujo-chat-sidebar-width",String(Math.round(e))),e))};window.addEventListener("pointermove",l),window.addEventListener("pointerup",r)},[]),[eY,eQ]=(0,r.useState)(null),[eX,eZ]=(0,r.useState)(tH),[e$,e0]=(0,r.useState)(th),[e1,e2]=(0,r.useState)([]),[e5,e6]=(0,r.useState)(null),e4=(0,r.useRef)(null),e8=(0,r.useRef)(null),e7=(0,r.useRef)(null),e3=(0,r.useRef)(-1),te=(0,r.useRef)(G);(0,r.useEffect)(()=>{te.current=G},[G]);let tn=(0,r.useRef)(new Set),tl=(0,r.useRef)(new Set),tr=(0,r.useRef)(new Set),[to,tc]=(0,r.useState)(new Set),tu=(0,r.useCallback)((e,t)=>{e&&(t?tr.current.add(e):tr.current.delete(e),tc(new Set(tr.current)))},[]),tp=(0,r.useRef)(null),tf=(0,r.useRef)(!0),[tm,tv]=(0,r.useState)(!1),tb=(0,r.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"auto",t=tp.current;t&&t.scrollTo({top:t.scrollHeight,behavior:e})},[]),ty=(0,r.useCallback)(()=>{let e=tp.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<80;tf.current=t,tv(!t)},[]),tw=(0,r.useCallback)(()=>{tf.current=!0,tv(!1),tb("smooth")},[tb]);(0,r.useEffect)(()=>{tf.current=!0,tv(!1)},[G]),(0,r.useEffect)(()=>{tf.current&&tb("auto")},[null==L?void 0:L.messages,tb]);let tj=(0,r.useRef)(null);(0,r.useEffect)(()=>{tj.current=e5},[e5]),(0,r.useEffect)(()=>{let e=window.location.origin+"/v1";e4.current=new ng.Ay({baseURL:e,apiKey:"FLUJO",dangerouslyAllowBrowser:!0,maxRetries:0,timeout:18e6})},[]),(0,r.useEffect)(()=>{(async()=>{nI.debug("Loading flows");try{let e=await tF.g.loadFlows();es(e)}catch(e){nI.error("Error loading flows:",e)}})()},[]);let tA=(0,r.useCallback)(async(e,t)=>{var n;let l=null!=(n=null==t?void 0:t.silent)&&n;nI.debug("Fetching conversation list from backend",{silent:l}),l||(O(!0),W(null));let r=[],o=!1;try{for(let e of r=(await nS.listConversations()).filter(e=>!tl.current.has(e.id)).sort((e,t)=>t.updatedAt-e.updatedAt))tn.current.delete(e.id);M(e=>{let t=e.filter(e=>tn.current.has(e.id)),n=t.length>0?[...t,...r].sort((e,t)=>t.updatedAt-e.updatedAt):r;return((e,t)=>e.length===t.length&&e.every((e,n)=>{let l=t[n];return e.id===l.id&&e.title===l.title&&e.flowId===l.flowId&&e.status===l.status&&e.plannedExecutionId===l.plannedExecutionId&&e.parentConversationId===l.parentConversationId&&e.rootConversationId===l.rootConversationId&&e.createdAt===l.createdAt&&e.updatedAt===l.updatedAt}))(e,n)?e:n}),nI.info("Fetched ".concat(r.length," conversations for the list"))}catch(e){o=!0,nI.error("Error fetching conversation list:",e),l||(W("Failed to load conversation history."),M([]))}finally{if(l||O(!1),l||o)return;let t=void 0!==e?e:te.current,n=te.current;if(t&&(e=>r.some(t=>t.id===e)||tn.current.has(e))(t))t!==n&&(nI.debug("Setting currentConversationId to ".concat(t," after fetch/operation.")),K(t));else if(r.length>0){let e=r[0].id;e!==n&&(nI.debug("Selecting most recent conversation ".concat(e," after fetch/operation.")),K(e))}else null===n||tn.current.has(n)||(nI.debug("No conversations available after fetch/operation, clearing selection."),K(null))}},[K]);(0,r.useEffect)(()=>{tA()},[]),(0,r.useEffect)(()=>{let e=()=>{("undefined"==typeof document||"visible"===document.visibilityState)&&tA(void 0,{silent:!0})},t=setInterval(e,5e3);return document.addEventListener("visibilitychange",e),()=>{clearInterval(t),document.removeEventListener("visibilitychange",e)}},[tA]);let tS=(0,r.useCallback)(async e=>{if(tn.current.has(e))return void nI.debug("Skipping detail fetch for client-only conversation",{conversationId:e});if(te.current!==e){nI.debug("Detail fetch requested for non-viewed conversation; refreshing list instead",{conversationId:e}),tA(void 0,{silent:!0});return}nI.debug("Fetching detailed conversation",{conversationId:e}),U(!0),J(null),H(null);try{let t=await nS.getConversation(e);if(te.current!==e)return void nI.debug("Discarding stale detailed conversation response",{fetchedId:e,currentId:te.current});H(t),M(n=>n.map(n=>{var l;return n.id===e?{...n,title:t.title,flowId:t.flowId,updatedAt:t.updatedAt,status:null!=(l=t.status)?l:n.status}:n}).sort((e,t)=>t.updatedAt-e.updatedAt)),nI.info("Fetched detailed conversation successfully",{conversationId:e})}catch(t){if(nI.error("Error fetching detailed conversation:",{conversationId:e,err:t}),te.current!==e)return;t instanceof ny&&404===t.status?(J("Conversation ".concat(e," not found.")),K(null),tA()):J("Failed to load details for conversation ".concat(e,".")),H(null)}finally{te.current===e&&U(!1)}},[tA,K]);(0,r.useEffect)(()=>{eb(null),eA(null),G?tS(G):(H(null),U(!1),J(null))},[G,tS]),(0,r.useEffect)(()=>{if(L){var e;eu(null!=(e=L.requireApproval)&&e)}},[null==L?void 0:L.id]);let tI=(0,r.useCallback)(async e=>{if(eu(e),G)try{await nS.updateConversationApproval(G,e)}catch(e){nI.warn("Failed to persist requireApproval setting",{conversationId:G,err:e})}},[G]),tC=_.find(e=>e.id===G)||null,tN=(0,r.useMemo)(()=>{let e={};for(let t of ei)t.id&&(e[t.id]=t.name);return e},[ei]),tT=(0,r.useMemo)(()=>ei.find(e=>e.id===(null==L?void 0:L.flowId))||null,[ei,null==L?void 0:L.flowId]),tz=(0,r.useMemo)(()=>{var e;return(null==tT||null==(e=tT.nodes)?void 0:e.map(e=>({id:e.id,label:e.data.label||e.id})))||[]},[tT]),tR=(0,r.useMemo)(()=>{var e;return function(e){var t,n,l;let r=new Set;return null==(t=e.messages)||t.forEach(e=>{(null==e?void 0:e.processNodeId)&&r.add(e.processNodeId)}),null==(n=e.nodeExecutionTracker)||n.forEach(e=>{(null==e?void 0:e.nodeId)&&r.add(e.nodeId)}),null==(l=e.executionTrace)||l.forEach(e=>{(null==e?void 0:e.nodeId)&&r.add(e.nodeId)}),Array.from(r)}({messages:null==L?void 0:L.messages,nodeExecutionTracker:null==eE||null==(e=eE.trackingInfo)?void 0:e.nodeExecutionTracker,executionTrace:null==eE?void 0:eE.executionTrace})},[null==L?void 0:L.messages,eE]),t_=(0,r.useMemo)(()=>{var e,t,n;let l=e=>!!e&&tz.some(t=>t.id===e);if(l(ej))return ej;if(l(null==L?void 0:L.currentNodeId))return L.currentNodeId;let r=null!=(t=null==L?void 0:L.messages)?t:[];for(let e=r.length-1;e>=0;e--){let t=r[e];if("assistant"===t.role&&l(t.processNodeId))return t.processNodeId}return null!=(n=null==(e=tz[0])?void 0:e.id)?n:null},[ej,L,tz]),tM=async e=>{var t,n,l,r;nI.debug("Attempting to create new conversation"),ea(null);let o="string"!=typeof e||X(e)?void 0:ei.find(t=>t.id===e),a=V&&!X(V)?ei.find(e=>e.id===V):void 0,i=(null==(t=null!=(l=null!=(n=null!=o?o:a)?n:ei.find(e=>e.favorite))?l:ei[0])?void 0:t.id)||null;if(!i){nI.error("Cannot create conversation: No flows available or first flow has no ID."),ea("Cannot create a new conversation: No flows available.");return}let s=(0,e9.A)(),d=Date.now(),c={id:s,title:"New Conversation",flowId:i,createdAt:d,updatedAt:d};try{nI.info("Sending request to create conversation on backend",{payload:JSON.stringify(c)});let e=await nS.createConversation(c);nI.info("Successfully created conversation on backend",{conversationId:e.id}),M(t=>[e,...t].sort((e,t)=>t.updatedAt-e.updatedAt)),K(e.id),H({id:e.id,title:e.title,flowId:e.flowId,createdAt:e.createdAt,updatedAt:e.updatedAt,messages:[]}),U(!1),J(null)}catch(t){nI.error("Error creating conversation on backend:",t);let e="Failed to create conversation on the server.";t instanceof ny?e+=" Error: ".concat((null==(r=t.body)?void 0:r.error)||t.message):t instanceof Error&&(e+=" Error: ".concat(t.message)),ea(e)}},tP=(0,r.useRef)(!1);(0,r.useEffect)(()=>{if(tP.current||0===ei.length)return;let e=new URLSearchParams(window.location.search).get("flow");if(!e){tP.current=!0;return}tP.current=!0,ei.some(t=>t.id===e)&&!X(e)&&tM(e),o.replace("/chat")},[ei]);let[tO,tW]=(0,r.useState)(!1),tL=async e=>{ea(null);let t=(0,e9.A)(),{flow:n}=await nS.synthesizeQuickChat({conversationId:t,modelId:e.modelId,servers:e.servers,systemPrompt:e.systemPrompt}),l=Date.now(),r=await nS.createConversation({id:t,title:"Quick Chat",flowId:n.id,flowSnapshot:n,createdAt:l,updatedAt:l});M(e=>[r,...e].sort((e,t)=>t.updatedAt-e.updatedAt)),K(r.id),H({id:r.id,title:r.title,flowId:r.flowId,createdAt:r.createdAt,updatedAt:r.updatedAt,messages:[]}),U(!1),J(null),tW(!1)},tU=(0,r.useCallback)(e=>{nI.debug("Updating detailed conversation state locally",{conversationId:e.id});let t={...e,updatedAt:Date.now()};H(t),M(e=>e.map(e=>e.id===t.id?{...e,title:t.title,updatedAt:t.updatedAt}:e).sort((e,t)=>t.updatedAt-e.updatedAt))},[]),tq=(0,r.useCallback)(()=>{e7.current&&(nI.debug("Closing execution event stream"),e7.current.close(),e7.current=null)},[]),tJ=(0,r.useCallback)((e,t)=>{M(n=>{let l=n.findIndex(t=>t.id===e);if(-1===l||n[l].status===t)return n;let r=[...n];return r[l]={...r[l],status:t},r})},[]),tG=(0,r.useCallback)(e=>{var t,n,l,r;if("number"==typeof e.seq){if(e.seq<=e3.current)return;e3.current=e.seq}let o=e=>eQ(t=>{var n,l,r,o;return{totalTokens:null!=(l=null!=(n=e.totalTokens)?n:null==t?void 0:t.totalTokens)?l:0,activeNode:void 0!==e.activeNode?e.activeNode:null!=(r=null==t?void 0:t.activeNode)?r:null,startedAt:null!=(o=null==t?void 0:t.startedAt)?o:Date.now(),lastEventAt:Date.now()}}),a=e=>eZ(t=>{let n=Date.now(),l={byNode:{...t.byNode},byResource:{...t.byResource},byResourceName:{...t.byResourceName},resourceVersion:t.resourceVersion};return e(l),function(e,t){let n=e=>{let n={};for(let[l,r]of Object.entries(e))t-r.ts<4e3&&(n[l]=r);return n};return{byNode:n(e.byNode),byResource:n(e.byResource),byResourceName:n(e.byResourceName),resourceVersion:e.resourceVersion}}(l,n)});if(null!=e.laneIndex)switch(e0(t=>(function(e,t){var n,l,r,o,a,i;let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),d=t.laneIndex,c=t.laneCount;if(null==d||null==c)return e;let u=("subflow:start"===t.type||"subflow:done"===t.type)&&1===t.depth;if(u&&"subflow:start"===t.type){let o=null==(n=t.node)?void 0:n.nodeId,a=e.ownerNodeId&&o&&e.ownerNodeId!==o?{}:{...e.byIndex};return tx(a,c,s),a[d]={laneIndex:d,laneCount:c,label:t.laneTitle||function(e,t,n){let l=e.subflowName||e.subflowId;return l?"".concat(l," ").concat(t+1,"/").concat(n):"Lane ".concat(t+1,"/").concat(n)}(t,d,c),laneConversationId:null!=(r=t.laneConversationId)?r:null==(l=a[d])?void 0:l.laneConversationId,status:"running",lastEventAt:s},{ownerNodeId:null!=o?o:e.ownerNodeId,byIndex:a}}if(u&&"subflow:done"===t.type){let n={...e.byIndex};tx(n,c,s);let l=n[d];return n[d]={...l,label:l.label&&"pending"!==l.status?l.label:t.laneTitle||l.label,laneConversationId:null!=(a=l.laneConversationId)?a:t.laneConversationId,status:t.status,activity:void 0,lastEventAt:s},{ownerNodeId:null!=(i=e.ownerNodeId)?i:null==(o=t.node)?void 0:o.nodeId,byIndex:n}}let p=function(e){switch(e.type){case"node:enter":var t,n;return(null==(t=e.node)?void 0:t.nodeName)||(null==(n=e.node)?void 0:n.nodeId)||void 0;case"tool:call":return e.name;case"tool:progress":return e.message?"".concat(e.name," — ").concat(e.message):e.name;case"subflow:start":return"↳ ".concat(e.subflowName||e.subflowId);case"handoff":return"→ ".concat(e.toNodeId);default:return}}(t);if(void 0===p)return e;let f=e.byIndex[d];if(f&&f.activity===p&&"pending"!==f.status||f&&("completed"===f.status||"error"===f.status))return e;let h={...e.byIndex};tx(h,c,s);let x=h[d];return h[d]={...x,status:"pending"===x.status?"running":x.status,activity:p,lastEventAt:s},{ownerNodeId:e.ownerNodeId,byIndex:h}})(t,e)),e.type){case"node:enter":if(null==(t=e.node)?void 0:t.nodeId){let t=e.node.nodeId;a(e=>{e.byNode[t]={kind:"active",ts:Date.now()}})}o({});return;case"tool:call":case"tool:progress":case"subflow:start":case"handoff":o({});return}switch(e.type){case"run:start":eQ({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),eZ(tH),e0(th),e.conversationId&&(tJ(e.conversationId,"running"),tu(e.conversationId,!1));break;case"message":{let t=e.message;o({}),H(n=>{let l;if(!n||n.id!==e.conversationId)return n;let r=n.messages.findIndex(e=>e.id===t.id);return r>=0?(l=[...n.messages])[r]={...l[r],...t}:l=[...n.messages,t],{...n,messages:l}});break}case"usage":eQ(t=>{var n,l,r;return{totalTokens:(null!=(n=null==t?void 0:t.totalTokens)?n:0)+(e.totalTokens||0),activeNode:null!=(l=null==t?void 0:t.activeNode)?l:null,startedAt:null!=(r=null==t?void 0:t.startedAt)?r:Date.now(),lastEventAt:Date.now()}});break;case"node:enter":if(o({activeNode:(null==(n=e.node)?void 0:n.nodeName)||(null==(l=e.node)?void 0:l.nodeId)||null}),null==(r=e.node)?void 0:r.nodeId){let t=e.node.nodeId;a(e=>{e.byNode[t]={kind:"active",ts:Date.now()}})}break;case"resource:read":case"resource:write":{let t="resource:read"===e.type?"read":"write";a(n=>{var l;let r=Date.now();(null==(l=e.node)?void 0:l.nodeId)&&(n.byNode[e.node.nodeId]={kind:"read"===t?"resource-read":"resource-write",ts:r}),e.server&&e.uri&&(n.byResource[tB(e.server,e.uri)]={kind:t,ts:r}),e.name&&(n.byResourceName[e.name]={kind:t,ts:r}),"write"===t&&(n.resourceVersion=n.resourceVersion+1)}),o({});break}case"tool:call":o({activeNode:e.name});break;case"tool:progress":o({activeNode:e.message?"".concat(e.name," — ").concat(e.message):e.name});break;case"subflow:start":o({activeNode:"↳ ".concat(e.subflowName||e.subflowId)});break;case"handoff":o({activeNode:"→ ".concat(e.toNodeId)});break;case"run:awaiting_approval":e.conversationId&&e.conversationId===te.current&&eb(e.pendingToolCalls||[]),e.conversationId&&tJ(e.conversationId,"awaiting_tool_approval");break;case"breakpoint:hit":case"run:paused":Z(!1),e.conversationId&&(et(e.conversationId,!1),tJ(e.conversationId,"paused_debug")),ek(!0);break;case"run:done":if(e.conversationId&&(et(e.conversationId,!1),tJ(e.conversationId,e.status)),e.conversationId&&tj.current&&e.conversationId!==tj.current)break;eQ(null),eZ(tH),e0(th),Z(!1),e6(null),tq(),e.conversationId&&e.conversationId===te.current?tS(e.conversationId):tA(void 0,{silent:!0});break;case"error":ea(e.message||"Execution error");break;default:o({})}},[tq,tS,tA,et,tJ,tu]),tK=(0,r.useCallback)((e,t)=>(tq(),e3.current=void 0!==t?t-1:-1,e0(th),new Promise(n=>{let l=!1,r=()=>{l||(l=!0,n())};try{e7.current=nS.subscribeToEvents(e,{onEvent:tG,onOpen:r},t),setTimeout(r,1500)}catch(t){nI.error("Failed to open execution event stream",{conversationId:e,err:t}),r()}})),[tG,tq]);(0,r.useEffect)(()=>{if(G&&(null==tC?void 0:tC.status)==="running"&&tj.current!==G){if(tr.current.has(G))return void nI.debug("Skipping re-attach to a conversation the user just stopped",{conversationId:G});nI.info("Re-attaching to in-progress run",{conversationId:G}),tj.current=G,Z(!0),e6(G),et(G,!0),eQ(e=>null!=e?e:{totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),tK(G,0)}},[G,null==tC?void 0:tC.status,tK]);let tV=async e=>{nI.debug("Attempting to delete conversation",{conversationId:e}),ea(null),tl.current.add(e);let t=tn.current.delete(e);tj.current===e&&(tq(),Z(!1),e6(null),eQ(null),e0(th)),et(e,!1),el(t=>(function(e,t){if(!(t in e))return e;let n={...e};return delete n[t],n})(t,e));let n=_.filter(t=>t.id!==e);M(n);let l=G;G===e&&(n.length>0?(l=n[0].id,nI.debug("Deleted current conversation, selecting next most recent",{nextSelectionId:l})):(l=null,nI.debug("Deleted last conversation, clearing selection")),K(l));try{await nS.deleteConversation(e),nI.info("Successfully deleted conversation on backend",{conversationId:e})}catch(n){nI.error("Error deleting conversation:",{conversationId:e,err:n}),ea("Failed to delete conversation ".concat(e,". Please try again.")),tl.current.delete(e),t&&tn.current.add(e),M(_),K(G)}},tY=async e=>{if(nI.debug("Flow selected, attempting to update",{flowId:e,currentConversationId:G}),ea(null),!G){nI.warn("Cannot update flow: No conversation selected."),ea("Please select a conversation first.");return}L&&L.id===G&&H({...L,flowId:e,updatedAt:Date.now()}),M(t=>t.map(t=>t.id===G?{...t,flowId:e,updatedAt:Date.now()}:t).sort((e,t)=>t.updatedAt-e.updatedAt));try{let t=await nS.updateConversationFlow(G,e);nI.info("Successfully updated flowId on backend",{conversationId:G,flowId:e}),H(e=>e&&e.id===G?(nI.debug("Confirming detailedConversation update from server response",{conversationId:G,flowId:t.flowId}),{...e,flowId:t.flowId,updatedAt:t.updatedAt}):(nI.debug("Skipping detailedConversation update, ID mismatch or null state",{currentDetailedId:null==e?void 0:e.id,targetId:G}),e)),M(e=>e.map(e=>e.id===G?t:e).sort((e,t)=>t.updatedAt-e.updatedAt))}catch(l){nI.error("Error updating flowId on backend:",{conversationId:G,flowId:e,err:l});let n="Failed to update the selected flow.";if(l instanceof ny){var t;n+=" Error: ".concat((null==(t=l.body)?void 0:t.error)||l.message)}else l instanceof Error&&(n+=" Error: ".concat(l.message));ea(n),H(L),M(_)}},tQ=()=>{var e,t;ex(null!=(t=null!=(e=null==L?void 0:L.title)?e:null==tC?void 0:tC.title)?t:""),ef(!0)},tX=async()=>{var e,t;if(ef(!1),!G)return;let n=null!=(t=null!=(e=null==L?void 0:L.title)?e:null==tC?void 0:tC.title)?t:"",l=eh.trim().slice(0,200);if(l&&l!==n){H(e=>e&&e.id===G?{...e,title:l}:e),M(e=>e.map(e=>e.id===G?{...e,title:l}:e));try{let e=await nS.updateConversationTitle(G,l);H(t=>t&&t.id===G?{...t,title:e.title}:t),M(t=>t.map(t=>t.id===G?{...t,title:e.title}:t))}catch(e){nI.warn("Failed to rename conversation",{conversationId:G,err:e}),H(e=>e&&e.id===G?{...e,title:n}:e),M(e=>e.map(e=>e.id===G?{...e,title:n}:e)),ea("Failed to rename the conversation.")}}},tZ=async function(e){var t;let n,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0;if(!e.trim()&&0===l.length)return;if(!L){nI.error("Cannot send message, detailed conversation not loaded."),ea("Cannot send message: conversation details not loaded.");return}if(!(null==r?void 0:r.fromQueue)&&$.has(L.id)){let t={id:(0,e9.A)(),content:e,attachments:l,nodeOverride:null!=ej?ej:null,timestamp:Date.now()};el(e=>{var n;return n=L.id,{...e,[n]:[...td(e,n),t]}}),eA(null),nI.debug("Run in progress — queued message",{conversationId:L.id,queuedId:t.id});return}nI.debug("Sending message",{conversationId:L.id,contentLength:e.length,attachmentsCount:l.length});let o=L.messages,a=!o.some(e=>"user"===e.role),i=L.flowId,s=(null==r?void 0:r.fromQueue)?null!=(t=r.nodeOverride)?t:null:ej;if(s)n=s,(null==r?void 0:r.fromQueue)||eA(null),nI.debug("Assigning manually picked node ID to user message: ".concat(n));else if(a){let e=nx(ei.find(e=>e.id===i));e?(n=e.id,nI.debug("Assigning start node ID to first user message: ".concat(n))):nI.warn("Could not find start node for flow ".concat(i,". User message will not have a processNodeId."))}else if((null==tC?void 0:tC.status)==="error"){let e=nx(ei.find(e=>e.id===i));e?(n=e.id,nI.debug("Post-error message: re-driving turn from start node ID: ".concat(n))):nI.warn("Could not find start node for post-error message in flow ".concat(i,". User message will not have a processNodeId."))}else{for(let e=o.length-1;e>=0;e--){let t=o[e];if("assistant"===t.role&&t.processNodeId){n=t.processNodeId,nI.debug("Assigning last assistant node ID to user message: ".concat(n));break}}if(!n){let e=nx(ei.find(e=>e.id===i));e?(n=e.id,nI.debug("No prior assistant node ID found, falling back to start node ID: ".concat(n))):nI.warn("Could not find start node for fallback in flow ".concat(i,". User message will not have a processNodeId."))}}let d={id:(0,e9.A)(),role:"user",content:e,timestamp:Date.now(),attachments:l.length>0?l:void 0,processNodeId:n},c={...L,messages:[...L.messages,d]};tU(c),c.flowId?await t1(c):(ea("Please select a flow for this conversation before sending messages"),H(L))},t$=(0,r.useCallback)((e,t)=>{nI.verbose("Handling API response data",JSON.stringify(e)),et(t,"running"===e.status);let n=tj.current===t,l=te.current===t;if("paused_debug"===e.status&&e.debugState)return(nI.info("API Response: Paused for debugging",{conversationId:t}),l)?(eN(e.debugState),ek(!0),ez(!0),Z(!1),e6(null),tq(),t0(),H(n=>(null==n?void 0:n.id)===t&&e.debugState.messages&&JSON.stringify(n.messages)!==JSON.stringify(e.debugState.messages)?(nI.debug("Updating detailed conversation messages from debug state"),{...n,messages:e.debugState.messages,updatedAt:e.debugState.updatedAt}):n),M(n=>n.map(n=>{var l,r;return n.id===t?{...n,title:null!=(l=e.debugState.title)?l:n.title,flowId:null!=(r=e.debugState.flowId)?r:n.flowId,status:"paused_debug",updatedAt:e.debugState.updatedAt}:n}).sort((e,t)=>t.updatedAt-e.updatedAt))):(tJ(t,"paused_debug"),n&&(Z(!1),e6(null),tq(),t0())),!0;if(("completed"===e.status||"error"===e.status)&&l?(nI.info("API Response: Execution completed or errored (Status: ".concat(e.status,"). Hiding debugger panel."),{conversationId:t}),ek(!1),eN(null),ez(!1)):nI.debug("API Response: Status is '".concat(e.status,"'. Debugger panel visibility unchanged (currently ").concat(eC?"visible":"hidden",")."),{conversationId:t}),e.messages&&e.conversation_id===t){let n=e.messages.map((e,n)=>"number"!=typeof e.timestamp||isNaN(e.timestamp)?(nI.warn("Invalid timestamp found in message index ".concat(n," from API response. Defaulting to Date.now()."),{conversationId:t,messageId:e.id,invalidTimestamp:e.timestamp}),{...e,timestamp:Date.now()}):e);H(l=>{var r,o;let a=l;return(null==l?void 0:l.id)===t&&JSON.stringify(l.messages)!==JSON.stringify(n)&&(nI.info("API Response/Polling: Updating detailed conversation messages",{conversationId:t,newMessageCount:n.length}),a={...l,messages:n,updatedAt:e.updatedAt||l.updatedAt}),nI.debug("Polling: setDetailedConversation callback executed.",{conversationId:t,messagesChanged:a!==l,newMessageCount:null!=(o=null==a||null==(r=a.messages)?void 0:r.length)?o:"N/A"}),a})}if("awaiting_tool_approval"===e.status)nI.info("API Response/Polling: Pausing for tool approval",{conversationId:t}),l&&eb(e.pendingToolCalls||[]),n&&(Z(!1),e6(null),tq(),t0());else if("completed"===e.status||"error"===e.status){if(nI.info("API Response/Polling: Stopping due to final status",{conversationId:t,status:e.status}),n&&(t0(),Z(!1),e6(null),tq()),"error"===e.status){var r,o;let a=(null==(r=e.error)?void 0:r.message)||(null==(o=e.lastResponse)?void 0:o.error)||"Unknown error during execution";nk.test(a)||tr.current.has(t)?(tu(t,!0),(n||l)&&ea(null),nI.info("API Response/Polling: Execution cancelled by user",{conversationId:t})):(ea(a),nI.error("API Response/Polling: Execution resulted in error",{conversationId:t,error:e.error||e.lastResponse}))}tS(t)}else"running"!==e.status||eC?l&&eb(null):(l&&eb(null),n&&!e8.current&&Z(!0));return e.conversation_id===t&&M(n=>n.map(n=>{var l,r,o;return n.id===t?{...n,title:null!=(l=e.title)?l:n.title,flowId:null!=(r=e.flowId)?r:n.flowId,status:null!=(o=e.status)?o:n.status,updatedAt:e.updatedAt||n.updatedAt}:n}).sort((e,t)=>t.updatedAt-e.updatedAt)),!1},[H,eb,Z,ea,ek,eN,M,tS,tq,et,tJ,tu]),t0=()=>{e8.current&&(nI.debug("Stopping polling interval"),clearInterval(e8.current),e8.current=null)};(0,r.useEffect)(()=>()=>{tq()},[tq]);let t1=async e=>{if(!(null==e?void 0:e.id)||!e.flowId||!e4.current)return nI.error("Cannot send to completions: Missing conversation ID or flow ID.",{id:null==e?void 0:e.id,flowId:null==e?void 0:e.flowId}),ea("Cannot send message: Missing conversation ID or flow ID."),!1;eb(null),ea(null),Z(!0),e6(e.id),et(e.id,!0),tu(e.id,!1);let t=tn.current.delete(e.id);eQ({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await tK(e.id);let n=!1;try{let t;if(X(e.flowId))t="flow-Quick Chat",nI.debug("Sending quick chat to completions",{flowId:e.flowId,conversationId:e.id});else{let n=await tF.g.getFlow(e.flowId);if(!n)throw Error("Flow with ID ".concat(e.flowId," not found"));t="flow-".concat(n.name),nI.debug("Sending to chat completions",{flowId:e.flowId,flowName:n.name,conversationId:e.id})}let l=e.messages.filter(e=>{var t;return!e.disabled&&!((null!=(t=e.depth)?t:0)>0)}).map(e=>{let t=nC(e),n=e.processNodeId,l={id:e.id,timestamp:e.timestamp};return"user"===e.role?{role:"user",content:t,...l,processNodeId:n}:"assistant"===e.role?{role:"assistant",content:t,tool_calls:e.tool_calls,...l,processNodeId:n}:"system"===e.role?{role:"system",content:t,...l,processNodeId:n}:"tool"===e.role?e.tool_call_id?{role:"tool",content:t,tool_call_id:e.tool_call_id,...l,processNodeId:n}:{role:"user",content:"string"==typeof t?"Tool result: ".concat(t):t,...l,processNodeId:n}:{role:"user",content:t,...l,processNodeId:n}}),r=await e4.current.chat.completions.create({model:t,messages:l,stream:!1,metadata:(()=>{let t={flujo:"true",requireApproval:ec?"true":void 0,flujodebug:em?"true":void 0,conversationId:e.id},n={};return t.flujo&&(n.flujo=t.flujo),t.requireApproval&&(n.requireApproval=t.requireApproval),t.flujodebug&&(n.flujodebug=t.flujodebug),t.conversationId&&(n.conversationId=t.conversationId),n})()});nI.debug("Chat completion initial response received",{completionId:r.id}),n=!0;let o={...r,status:r.status||"completed",conversation_id:e.id,messages:r.messages||e.messages,pendingToolCalls:r.pendingToolCalls,debugState:r.debugState,error:r.error,lastResponse:r.lastResponse,updatedAt:r.updatedAt||Date.now()},a=t$(o,e.id);a||e8.current?a&&nI.debug("Debug state handled, polling remains stopped."):nI.debug("Starting polling after initial non-debug response.")}catch(o){if(nE(o)||tr.current.has(e.id))return nI.info("Chat completion cancelled by user",{conversationId:e.id}),n=!1,et(e.id,!1),tu(e.id,!0),tj.current===e.id&&(t0(),Z(!1),e6(null),tq(),ea(null)),n;nI.error("Error calling chat completions API:",o),n=!1;let r="An error occurred while sending the message.";if(o instanceof nv.LG)r="API Error: ".concat(o.message," (Status: ").concat(o.status,")"),o.code&&(r+=" (Code: ".concat(o.code,")")),o.type&&(r+=" [Type: ".concat(o.type,"]")),nI.verbose("APIError details",JSON.stringify(o));else if(o instanceof nv.vc){r="OpenAI Error: ".concat(o.message);let e=o.error;e&&"object"==typeof e&&(e.code&&(r+=" (Code: ".concat(e.code,")")),e.type&&(r+=" [Type: ".concat(e.type,"]"))),nI.verbose("OpenAIError details",JSON.stringify(o))}else if(o instanceof ny){var l;r="Error: ".concat((null==(l=o.body)?void 0:l.error)||o.message),o.status&&(r+=" (Status: ".concat(o.status,")")),nI.verbose("ChatApiError details",JSON.stringify(o.body))}else o instanceof Error&&(r=o.message);ea(r),et(e.id,!1),tj.current===e.id&&(t0(),Z(!1),e6(null),tq()),t&&tn.current.add(e.id)}finally{}return n},t2=(0,r.useRef)(tZ);t2.current=tZ;let t5=(0,r.useCallback)(e=>{t2.current(e)},[]),[t6,t4]=(0,r.useState)(ti),t8=(0,r.useMemo)(()=>new Set(t6.order),[t6.order]),t7=(0,r.useCallback)(e=>{t4(t=>{let{state:n,evicted:l}=function(e,t){var n,l,r;let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:16,i=ts(t.serverName,t.uri),s=e.entries[i],d={key:i,serverName:t.serverName,uri:t.uri,toolName:null!=(n=t.toolName)?n:null==s?void 0:s.toolName,latestToolArgs:null!=(l=t.toolArgs)?l:null==s?void 0:s.latestToolArgs,latestResultContent:null!=(r=t.resultContent)?r:null==s?void 0:s.latestResultContent,unread:!1,lastActiveAt:o,updatedAt:o,consent:null==s?void 0:s.consent},c={...e.entries,[i]:d};return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:16,n=arguments.length>2?arguments[2]:void 0,l=Math.max(1,Math.floor(t));if(e.order.length<=l)return{state:e,evicted:[]};let r={...e.entries},o=[...e.order],a=[];for(;o.length>l;){let e=null,t=1/0;for(let l of o){var i,s;if(l===n)continue;let o=null!=(s=null==(i=r[l])?void 0:i.lastActiveAt)?s:0;o<t&&(t=o,e=l)}if(!e)break;delete r[e],o=o.filter(t=>t!==e),a.push(e)}let d=e.activeKey;return d&&!r[d]&&(d=o.length?o[o.length-1]:null),{state:{entries:r,order:o,activeKey:d},evicted:a}}({entries:c,order:s?e.order:[...e.order,i],activeKey:i},a,i)}(t,e);return l.length&&nI.info("Canvas tab cap reached — evicted (LRU): ".concat(l.join(", "))),n})},[]),t3=(0,r.useCallback)(e=>{t4(t=>(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),l=e.entries[t];if(!l)return e;let r={...l,unread:!1,lastActiveAt:n};return{...e,entries:{...e.entries,[t]:r},activeKey:t}})(t,e))},[]),t9=(0,r.useCallback)(e=>{t4(t=>(function(e,t){if(!e.entries[t])return e;let n={...e.entries};delete n[t];let l=e.order.filter(e=>e!==t),r=e.activeKey;if(r===t){r=null;let e=-1/0;for(let t of l){var o,a;let l=null!=(a=null==(o=n[t])?void 0:o.lastActiveAt)?a:0;l>=e&&(e=l,r=t)}}return{entries:n,order:l,activeKey:r}})(t,e))},[]);(0,r.useEffect)(()=>{t4(ti)},[G]);let ne=t6.order.join("|");(0,r.useEffect)(()=>{let e=null==L?void 0:L.messages;if(!e||0===t6.order.length)return;let t=new Map;for(let n of e){let e=n.ui;"tool"===n.role&&(null==e?void 0:e.uri)&&(null==e?void 0:e.serverName)&&"string"==typeof n.content&&t.set("".concat(e.serverName,"::").concat(e.uri),n.content)}t4(e=>{let n=e;for(let l of e.order){let r=e.entries[l],o=t.get(l);r&&void 0!==o&&o!==r.latestResultContent&&(n=function(e,t){var n,l,r;let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),a=ts(t.serverName,t.uri),i=e.entries[a];if(!i)return e;let s=e.activeKey===a,d={...i,toolName:null!=(n=t.toolName)?n:i.toolName,latestToolArgs:null!=(l=t.toolArgs)?l:i.latestToolArgs,latestResultContent:null!=(r=t.resultContent)?r:i.latestResultContent,updatedAt:o,unread:!s,lastActiveAt:s?o:i.lastActiveAt};return{...e,entries:{...e.entries,[a]:d}}}(n,{serverName:r.serverName,uri:r.uri,resultContent:o}))}return n})},[null==L?void 0:L.messages,ne]);let nt=async(e,t,n)=>{if(!L)return;nI.debug("Editing message",{messageId:e,contentLength:t.length,processNodeId:n});let l=L.messages.findIndex(t=>t.id===e);if(-1===l)return;let r={...L.messages[l],content:t,timestamp:Date.now(),processNodeId:n||void 0},o=[...L.messages.slice(0,l),r],a={...L,messages:o};if(tU(a),a.flowId){let e={flujo:"true",requireApproval:ec?"true":void 0,flujodebug:em?"true":void 0,conversationId:a.id,processNodeId:n||void 0};if(!e4.current)return;ea(null),Z(!0),e6(a.id),et(a.id,!0),tu(a.id,!1),eQ({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await tK(a.id);try{let t=await tF.g.getFlow(a.flowId);if(!t)throw Error("Flow with ID ".concat(a.flowId," not found"));let n=a.messages.filter(e=>{var t;return!e.disabled&&!((null!=(t=e.depth)?t:0)>0)}).map(e=>{let t=nC(e),n={id:e.id,timestamp:e.timestamp,processNodeId:e.processNodeId};return"user"===e.role?{role:"user",content:t,...n}:"assistant"===e.role?{role:"assistant",content:t,tool_calls:e.tool_calls,...n}:"system"===e.role?{role:"system",content:t,...n}:"tool"===e.role?e.tool_call_id?{role:"tool",content:t,tool_call_id:e.tool_call_id,...n}:{role:"user",content:"string"==typeof t?"Tool result: ".concat(t):t,...n}:{role:"user",content:t,...n}}),l=await e4.current.chat.completions.create({model:"flow-".concat(t.name),messages:n,stream:!1,metadata:(()=>{let t={};return e.flujo&&(t.flujo=e.flujo),e.requireApproval&&(t.requireApproval=e.requireApproval),e.flujodebug&&(t.flujodebug=e.flujodebug),e.conversationId&&(t.conversationId=e.conversationId),e.processNodeId&&(t.processNodeId=e.processNodeId),t})()}),r={...l,status:l.status||"completed",conversation_id:a.id,messages:l.messages||a.messages,pendingToolCalls:l.pendingToolCalls,debugState:l.debugState,error:l.error,updatedAt:l.updatedAt||Date.now()};t$(r,a.id)}catch(e){nE(e)||tr.current.has(a.id)?(nI.info("Edited-message run cancelled by user",{conversationId:a.id}),tu(a.id,!0)):(nI.error("Error sending edited message:",e),ea(e instanceof Error?e.message:"Failed to send edited message")),et(a.id,!1),tj.current===a.id&&(Z(!1),e6(null),tq())}}},nn=(0,r.useCallback)(e=>{var t,n,l;let r=null==L?void 0:L.messages.find(t=>t.id===e);r&&"user"===r.role&&"string"==typeof r.content&&eI({messageId:e,content:r.content,nodeId:null!=(l=r.processNodeId)?l:null!=(n=null==(t=tz[0])?void 0:t.id)?n:null})},[L,tz]),nl=(0,r.useCallback)(e=>{eI(t=>t?{...t,content:e}:t)},[]),nr=(0,r.useCallback)(e=>{eI(t=>t?{...t,nodeId:e}:t)},[]),no=(0,r.useCallback)(()=>eI(null),[]),na=async(e,t)=>{if(G){nI.info("Handling tool response: ".concat(e),{conversationId:G,toolCallId:t}),eb(null),Z(!0),e6(G),et(G,!0),ea(null),await tK(G);try{let n=await nS.respondToToolCall(G,e,t);nI.debug("Tool response successful",{conversationId:G,action:e,toolCallId:t}),t$(n,G)}catch(r){if(nE(r)||tr.current.has(G)){nI.info("Tool-response resume cancelled by user",{conversationId:G}),tu(G,!0),tj.current===G&&Z(!1),et(G,!1);return}nI.error("Error sending tool response (".concat(e,")"),{conversationId:G,toolCallId:t,err:r});let l="Failed to ".concat(e," tool call.");if(r instanceof ny){var n;l+=" Error: ".concat((null==(n=r.body)?void 0:n.error)||r.message)}else r instanceof Error&&(l+=" Error: ".concat(r.message));ea(l),tj.current===G&&Z(!1),et(G,!1)}}},ni=async()=>{if(G&&eC){nI.info("Handling debug step request",{conversationId:G}),Z(!0),e6(G),et(G,!0),ea(null),await tK(G);try{let e=await nS.debugStep(G);t$(e,G)}catch(e){nI.error("Error during debug step API call",{conversationId:G,err:e}),ea(e instanceof Error?e.message:"Failed to execute debug step."),Z(!1),et(G,!1),ek(!1),eN(null)}finally{}}},ns=async()=>{if(G&&eC){nI.info("Handling debug continue request",{conversationId:G}),Z(!0),e6(G),et(G,!0),ea(null),ek(!1),await tK(G);try{let e=await nS.debugContinue(G);t$(e,G)}catch(e){nI.error("Error during debug continue API call",{conversationId:G,err:e}),ea(e instanceof Error?e.message:"Failed to continue execution."),Z(!1),et(G,!1)}finally{}}};(0,r.useEffect)(()=>{if(eE){var e;e2(null!=(e=eE.breakpoints)?e:[])}},[eE]);let nd=(0,r.useCallback)(async e=>{if(!G)return;let t=e1.includes(e)?e1.filter(t=>t!==e):[...e1,e];e2(t);try{await nS.setBreakpoints(G,t)}catch(e){nI.error("Failed to update breakpoints",{conversationId:G,err:e}),e2(e1)}},[e1,G]),nu=(0,r.useCallback)(async()=>{if(G){nI.info("Attaching debugger to running conversation",{conversationId:G});try{await nS.setBreakpoints(G,["*"])}catch(e){nI.error("Failed to attach debugger",{conversationId:G,err:e}),ea(e instanceof Error?e.message:"Failed to attach debugger.")}}},[G]),np=async()=>{if(!G||!eC)return;let e=null==eE?void 0:eE.currentNodeId;Z(!0),e6(G),et(G,!0),ea(null),await tK(G);try{for(let r=0;r<50;r++){var t,n,l;let r=await nS.debugStep(G),o=null!=(l=null==r?void 0:r.status)?l:null==r||null==(t=r.debugState)?void 0:t.status,a=null==r||null==(n=r.debugState)?void 0:n.currentNodeId;if("paused_debug"!==o||a&&a!==e)return void t$(r,G)}nI.warn("Step Over hit iteration cap",{conversationId:G}),Z(!1),et(G,!1)}catch(e){nI.error("Error during step over",{conversationId:G,err:e}),ea(e instanceof Error?e.message:"Failed to step over."),Z(!1),et(G,!1)}},nf=async()=>{if(G){nI.info("Cancelling request",{conversationId:G}),t0(),Z(!1),e6(null),et(G,!1),tu(G,!0),ez(!1),tq(),eb(null),ea(null);try{await nS.cancel(G),nI.debug("Cancel request sent successfully",{conversationId:G}),await tS(G)}catch(e){nI.error("Error sending cancel request",{conversationId:G,err:e}),ea("Failed to send cancel request to the server.")}}},nb=async e=>{if(e===G)return void await nf();nI.info("Stopping background conversation",{conversationId:e}),tu(e,!0);try{await nS.cancel(e),et(e,!1),await tA(void 0,{silent:!0})}catch(t){nI.error("Error stopping background conversation",{conversationId:e,err:t}),ea("Failed to send cancel request to the server.")}},nw=async()=>{nI.info("Closing debugger panel",{conversationId:G}),ek(!1),eN(null),ez(!1),await nf()};nI.debug("Rendering Chat component",{currentConversationId:G,isHandleEditMessageDefined:!0});let nj=(eT||eC)&&!!eE&&!!G,nA=(null==tC?void 0:tC.status)==="awaiting_tool_approval"||!!ev,nN=!(nA||(null==tC?void 0:tC.status)==="paused_debug")&&(Q&&e5===G||!!G&&$.has(G)||(null==tC?void 0:tC.status)==="running"),nT=!nN&&!!G&&to.has(G);return(0,r.useEffect)(()=>{if(!G||er.current||!L||L.id!==G)return;let e=td(en,G)[0];if(!e||!function(e){return!e.running&&!e.pendingApproval&&!e.debugPaused&&!e.hasError&&!e.stopped}({running:$.has(G),pendingApproval:!!ev,debugPaused:eC,hasError:(null==tC?void 0:tC.status)==="error",stopped:nT}))return;er.current=!0,el(e=>(function(e,t){let n=td(e,t);if(0===n.length)return{queues:e,head:void 0};let[l,...r]=n,o={...e};return r.length>0?o[t]=r:delete o[t],{queues:o,head:l}})(e,G).queues);let t=setTimeout(()=>{er.current=!1,tZ(e.content,e.attachments,{fromQueue:!0,nodeOverride:e.nodeOverride})},0);return()=>clearTimeout(t)},[G,L,en,$,ev,eC,null==tC?void 0:tC.status,nT]),(0,l.jsxs)(i.default,{sx:{display:"flex",height:"calc(100vh - 64px)"},children:[eq&&(0,l.jsx)(i.default,{sx:{width:40,flexShrink:0,borderRight:1,borderColor:"divider",display:"flex",justifyContent:"center",pt:1},children:(0,l.jsx)(s.A,{title:"Show conversation sidebar",children:(0,l.jsx)(d.A,{size:"small",onClick:eK,"aria-label":"Show conversation sidebar",children:(0,l.jsx)(E.A,{fontSize:"small"})})})}),!eq&&(0,l.jsx)(i.default,{sx:{width:eB,flexShrink:0,borderRight:1,borderColor:"divider",display:"flex",flexDirection:"column"},children:P?(0,l.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%",p:2},children:(0,l.jsx)(nm.default,{size:"medium",color:"primary"})}):F?(0,l.jsx)(c.A,{severity:"error",sx:{m:2},children:F}):(0,l.jsx)(ed,{conversations:_,flowNames:tN,currentConversationId:G,onSelectConversation:K,onDeleteConversation:tV,onStopConversation:nb,onNewConversation:tM,onQuickChat:()=>tW(!0),onCollapse:eK})}),!eq&&(0,l.jsx)(i.default,{onPointerDown:eV,sx:{width:"6px",flexShrink:0,cursor:"col-resize",bgcolor:"divider",transition:"background-color 120ms","&:hover":{bgcolor:"primary.main"},touchAction:"none"},"aria-label":"Resize conversation sidebar"}),(0,l.jsxs)(i.default,{sx:{flex:1,height:"100%",display:"flex",minWidth:0,minHeight:0},children:[(0,l.jsxs)(i.default,{sx:{flex:1,minWidth:0,display:"flex",flexDirection:"column",height:"100%"},children:[G&&(0,l.jsx)(i.default,{sx:{px:2,pt:2,pb:1,display:"flex",alignItems:"center",gap:1,minWidth:0},children:ep?(0,l.jsx)(u.A,{value:eh,onChange:e=>ex(e.target.value),onBlur:tX,onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),tX()):"Escape"===e.key&&ef(!1)},size:"small",autoFocus:!0,fullWidth:!0,inputProps:{maxLength:200,"aria-label":"Conversation title"}}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(p.default,{variant:"h6",noWrap:!0,onClick:tQ,title:(null==L?void 0:L.title)||(null==tC?void 0:tC.title)||"",sx:{flex:1,minWidth:0,cursor:"text"},children:(null==L?void 0:L.title)||(null==tC?void 0:tC.title)||"Untitled Conversation"}),(0,l.jsx)(s.A,{title:"Rename conversation",children:(0,l.jsx)(d.A,{size:"small",onClick:tQ,"aria-label":"Rename conversation",children:(0,l.jsx)(N.A,{fontSize:"small"})})}),(0,l.jsx)(s.A,{title:eP?"Hide executed steps":"Show executed steps",children:(0,l.jsx)(d.A,{size:"small",color:eP?"primary":"default",onClick:()=>eO(e=>!e),"aria-label":"Toggle executed steps panel",children:(0,l.jsx)(z.A,{fontSize:"small"})})})]})}),G&&(0,l.jsxs)(i.default,{sx:{p:2,borderBottom:1,borderColor:"divider",display:"flex",alignItems:"center",gap:2},children:[(0,l.jsx)(i.default,{sx:{flex:1,minWidth:0},children:X((null==tC?void 0:tC.flowId)||(null==L?void 0:L.flowId))?(0,l.jsx)(f.A,{color:"primary",variant:"outlined",icon:(0,l.jsx)(A.A,{}),label:"Quick Chat"}):(0,l.jsx)(tE.A,{selectedFlowId:(null==tC?void 0:tC.flowId)||(null==L?void 0:L.flowId)||null,onSelectFlow:e=>{var t,n,l,r;if(!G){nI.warn("Cannot update flow: No conversation selected."),ea("Please select a conversation first.");return}X(e)||Y(e);let o=null!=(l=null!=(n=null==L?void 0:L.flowId)?n:null==tC?void 0:tC.flowId)?l:null;if((null!=(r=null==L||null==(t=L.messages)?void 0:t.length)?r:0)>0&&o&&e!==o){nI.debug("Flow switch on executed conversation — asking for confirmation",{flowId:e,currentFlowId:o}),ew(e);return}tY(e)},disabled:eC})}),(()=>{let e=(null==tC?void 0:tC.flowId)||(null==L?void 0:L.flowId)||null;return!e||X(e)?null:(0,l.jsx)(s.A,{title:"Open this flow in the FlowBuilder",children:(0,l.jsx)(d.A,{color:"primary",onClick:()=>o.push("/flows?flow=".concat(encodeURIComponent(e))),children:(0,l.jsx)(T.A,{})})})})(),(0,l.jsx)(tk,{usage:null==L?void 0:L.usage,contextInfo:null==L?void 0:L.contextInfo,availableNodes:tz})]}),(0,l.jsxs)(i.default,{sx:{flex:1,minHeight:0,position:"relative",display:"flex",flexDirection:"column"},children:[(0,l.jsx)(i.default,{ref:tp,onScroll:ty,sx:{flex:1,overflow:"auto",p:2},children:B?(0,l.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,l.jsx)(nm.default,{size:"medium",color:"primary"})}):q?(0,l.jsx)(c.A,{severity:"error",sx:{m:2},children:q}):L?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(eJ,{messages:L.messages,pendingToolCalls:ev,availableNodes:tz,conversationId:L.id,editingMessageId:null!=(t=null==eS?void 0:eS.messageId)?t:null,onToggleDisabled:e=>{if(!L)return;nI.debug("Toggling message disabled state",{messageId:e});let t=L.messages.map(t=>t.id===e?{...t,disabled:!t.disabled}:t);tU({...L,messages:t})},onSplitConversation:e=>{if(!L)return;nI.debug("Splitting conversation at message",{messageId:e});let t=L.messages.findIndex(t=>t.id===e);if(-1===t)return;let n=L.messages.slice(0,t+1),l=(0,e9.A)(),r={id:l,title:"Split from ".concat(L.title),messages:n,flowId:L.flowId,createdAt:Date.now(),updatedAt:Date.now()},o={id:l,title:r.title,flowId:r.flowId,createdAt:r.createdAt,updatedAt:r.updatedAt};tn.current.add(l),M(e=>[o,...e].sort((e,t)=>t.updatedAt-e.updatedAt)),K(l),H(r),U(!1),J(null)},onBeginEditMessage:nn,onApproveToolCall:e=>{na("approve",e)},onRejectToolCall:e=>{na("reject",e)},onAppMessage:t5,onOpenInCanvas:t7,canvasKeys:t8}),!Q&&!eC&&L.messages.length>0&&(null==tC?void 0:tC.status)==="completed"&&(0,l.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,l.jsx)(c.A,{icon:(0,l.jsx)(I.A,{fontSize:"inherit"}),severity:"success",variant:"filled",sx:{borderRadius:2,py:.5},children:"Conversation completed"})}),!Q&&!eC&&nT&&(0,l.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,l.jsx)(c.A,{icon:(0,l.jsx)(k.A,{fontSize:"inherit"}),severity:"info",variant:"outlined",sx:{borderRadius:2,py:.5,alignItems:"center"},action:(0,l.jsx)(h.A,{color:"inherit",size:"small",startIcon:(0,l.jsx)(S.A,{}),onClick:()=>t1(L),children:"Resume"}),children:"Conversation stopped"})}),!Q&&!eC&&!eo&&!nT&&(null==tC?void 0:tC.status)==="error"&&(0,l.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,l.jsx)(c.A,{icon:(0,l.jsx)(C.A,{fontSize:"inherit"}),severity:"error",variant:"filled",sx:{borderRadius:2,py:.5,alignItems:"center"},action:(0,l.jsx)(h.A,{color:"inherit",size:"small",startIcon:(0,l.jsx)(S.A,{}),onClick:()=>{t1(L)},children:"Retry"}),children:"Conversation ended with an error"})}),nN&&!eC&&(0,l.jsx)(tg,{liveStats:eY,lanes:e$,onOpenLane:K,onStop:nf,stopDisabled:!G,onAttachDebugger:Q&&e5===G&&!eT?nu:void 0}),!nN&&nA&&!eC&&(0,l.jsx)(tg,{liveStats:eY,lanes:e$,onOpenLane:K,awaitingApproval:!0,onStop:nf,stopDisabled:!G}),eo&&(0,l.jsx)(c.A,{severity:"error",sx:{mt:2},action:(0,l.jsx)(h.A,{color:"inherit",size:"small",startIcon:(0,l.jsx)(S.A,{}),onClick:()=>{L&&t1(L)},children:"Retry"}),children:eo})]}):(0,l.jsx)(p.default,{variant:"body1",color:"textSecondary",align:"center",sx:{mt:4},children:_.length>0?"Select a conversation or create a new one.":"Create a new conversation to start chatting."})}),(0,l.jsx)(x.A,{in:tm,unmountOnExit:!0,children:(0,l.jsx)(m.A,{size:"small",color:"primary","aria-label":"Scroll to latest messages",onClick:tw,sx:{position:"absolute",bottom:16,right:24,zIndex:2},children:(0,l.jsx)(j.A,{})})})]}),(0,l.jsx)(ta,{entries:function(e){return e.order.map(t=>e.entries[t]).filter(e=>!!e)}(t6),activeKey:t6.activeKey,onSelectTab:t3,onCloseTab:t9,onAppMessage:t5}),(0,l.jsxs)(i.default,{sx:{p:2,borderTop:1,borderColor:"divider"},children:[G&&td(en,G).length>0&&(0,l.jsxs)(i.default,{"data-testid":"queued-messages",sx:{mb:1,display:"flex",flexWrap:"wrap",gap:1,alignItems:"center"},children:[(0,l.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,l.jsx)(R.A,{fontSize:"inherit"})," Queued:"]}),td(en,G).map(e=>(0,l.jsx)(f.A,{size:"small",variant:"outlined",label:e.content.trim().slice(0,40)||(e.attachments.length?"".concat(e.attachments.length," attachment(s)"):"message"),onDelete:()=>el(t=>(function(e,t,n){let l=td(e,t),r=l.filter(e=>e.id!==n);if(r.length===l.length)return e;let o={...e};return r.length>0?o[t]=r:delete o[t],o})(t,G,e.id))},e.id))]}),(0,l.jsx)(tt,{onSendMessage:tZ,disabled:B||!((null==L?void 0:L.flowId)||(null==tC?void 0:tC.flowId))||!!ev||eC,requireApproval:ec,onRequireApprovalChange:tI,executeInDebugger:em,onExecuteInDebuggerChange:eg,availableNodes:tz,flow:tT,currentNodeId:t_,nodeOverrideActive:!!ej,onSelectNode:eA,editing:eS,onEditingContentChange:nl,onEditingNodeChange:nr,onSaveEdit:()=>{eS&&eS.content.trim()&&(nt(eS.messageId,eS.content,eS.nodeId||""),eI(null))},onCancelEdit:no})]})]})," ",eP&&G&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.default,{onPointerDown:eL,sx:{width:"6px",flexShrink:0,cursor:"col-resize",bgcolor:"divider",transition:"background-color 120ms","&:hover":{bgcolor:"primary.main"},touchAction:"none"},"aria-label":"Resize executed steps panel"}),(0,l.jsx)(i.default,{sx:{width:"".concat(eF,"px"),minWidth:240,maxWidth:"70vw",flexShrink:0,display:"flex",flexDirection:"column",height:"100%"},children:(0,l.jsx)(nh,{flowId:(null==L?void 0:L.flowId)||(null==tC?void 0:tC.flowId)||null,flowSnapshot:null!=(n=null==eE?void 0:eE.flowSnapshot)?n:null,executedNodeIds:tR,liveActivity:eX,onClose:()=>eO(!1)})})]}),nj&&eE&&G&&!e_&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.default,{onPointerDown:eH,sx:{width:"6px",flexShrink:0,cursor:"col-resize",bgcolor:"divider",transition:"background-color 120ms","&:hover":{bgcolor:"primary.main"},touchAction:"none"},"aria-label":"Resize debugger panel"}),(0,l.jsx)(i.default,{sx:{width:eR?"".concat(eR,"px"):"50%",minWidth:360,maxWidth:"85vw",flexShrink:0,display:"flex",flexDirection:"column",height:"100%"},children:(0,l.jsx)(nc,{debugState:eE,conversationId:G,liveActivity:eX,onStep:ni,onStepOver:np,onContinue:ns,onCancel:nf,isLoading:Q,breakpoints:e1,onToggleBreakpoint:nd,onClose:nw,isExpanded:e_,onToggleExpand:()=>eM(e=>!e)})})]})]})," ",nj&&eE&&G&&e_&&(0,l.jsx)(g.A,{fullScreen:!0,open:!0,onClose:()=>eM(!1),children:(0,l.jsx)(i.default,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:(0,l.jsx)(nc,{debugState:eE,conversationId:G,liveActivity:eX,onStep:ni,onStepOver:np,onContinue:ns,onCancel:nf,isLoading:Q,breakpoints:e1,onToggleBreakpoint:nd,onClose:nw,isExpanded:e_,onToggleExpand:()=>eM(e=>!e)})})}),(0,l.jsxs)(g.A,{open:!!ey,onClose:()=>ew(null),children:[(0,l.jsx)(v.A,{children:"Switch flow?"}),(0,l.jsx)(b.A,{children:(0,l.jsxs)(y.A,{children:["This conversation has already been processed with its current flow."," ","If you switch to"," ",(0,l.jsx)("strong",{children:(null==(e=ei.find(e=>e.id===ey))?void 0:e.name)||"the selected flow"}),","," ","the conversation will continue processing from that flow's Start node again."]})}),(0,l.jsxs)(w.A,{children:[(0,l.jsx)(h.A,{onClick:()=>ew(null),children:"Cancel"}),(0,l.jsx)(h.A,{variant:"contained",onClick:()=>{ew(null),ey&&tY(ey)},children:"Switch Flow"})]})]}),(0,l.jsx)(tD,{open:tO,onClose:()=>tW(!1),onStart:tL})]})},nT=(0,eO.h)("frontend/components/ClientOnly");function nz(e){let{children:t}=e,[n,o]=(0,r.useState)(!1);return((0,r.useEffect)(()=>(nT.debug("ClientOnly component mounted"),o(!0),()=>{nT.debug("ClientOnly component unmounted")}),[]),n)?(nT.debug("ClientOnly component rendering children"),(0,l.jsx)(l.Fragment,{children:t})):(nT.debug("ClientOnly component rendering null (not yet mounted)"),null)}let nR=(0,eO.h)("app/chat/page");function nD(){return nR.debug("Rendering ChatPage"),(0,l.jsx)(o.A,{maxWidth:!1,disableGutters:!0,children:(0,l.jsx)(nz,{children:(0,l.jsx)(nN,{})})})}},84869:(e,t,n)=>{"use strict";n.d(t,{G:()=>a,S:()=>o});let l=(0,n(87021).h)("frontend/services/transcription/webSpeech"),r=()=>"webkitSpeechRecognition"in window||"SpeechRecognition"in window;async function o(e,t){if(!r())throw Error("Web Speech API is not supported in this browser");l.debug("Starting Web Speech API transcription");try{let n=URL.createObjectURL(e),r=new Audio(n),o=new(window.SpeechRecognition||window.webkitSpeechRecognition);return o.continuous=!0,o.interimResults=!0,(null==t?void 0:t.language)&&(o.lang=t.language),new Promise((e,n)=>{let a="";o.onresult=e=>{let n="";for(let t=e.resultIndex;t<e.results.length;t++){let l=e.results[t][0].transcript;e.results[t].isFinal?a+=l+" ":n+=l}(null==t?void 0:t.onInterimResult)&&t.onInterimResult(a+n),l.debug("Recognition interim result",{finalLength:a.length,interimLength:n.length})},o.onend=()=>{l.debug("Recognition ended",{transcriptLength:a.length}),e(a.trim())},o.onerror=e=>{l.error("Recognition error",{error:e.error}),n(Error("Speech recognition error: ".concat(e.error)))},r.onplay=()=>{o.start(),l.debug("Recognition started")},r.onended=()=>{o.stop(),l.debug("Audio playback ended")},r.onerror=e=>{l.error("Audio playback error",{error:e}),o.stop(),n(Error("Error playing audio"))},r.play().catch(e=>{l.error("Error starting audio playback",{error:e}),n(e)})})}catch(e){throw l.error("Error in Web Speech API transcription",{error:e}),e}}function a(){return{supported:r(),message:r()?"Web Speech API is supported":"Web Speech API is not supported in this browser"}}},97206:(e,t,n)=>{Promise.resolve().then(n.bind(n,77965))}},e=>{e.O(0,[3862,2678,4754,9244,3392,1871,7111,2003,9562,488,3272,8470,3077,2800,1937,795,8551,3556,8401,9554,3948,2005,3958,7304,812,6669,1988,1594,8441,1255,7358],()=>e(e.s=97206)),_N_E=e.O()}]);
|