flujo-ai 3.26.0 → 3.27.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 +367 -274
- package/.next/app-path-routes-manifest.json +15 -5
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +24 -0
- package/.next/react-loadable-manifest.json +19 -18
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/api/approvals/[id]/route.js +1 -1
- package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/approvals/route.js +2 -2
- package/.next/server/app/api/approvals/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/backup/route.js +1 -1
- package/.next/server/app/api/backup/route.js.nft.json +1 -1
- package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/browse/route_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_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 +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/compile/route.js +1 -1
- package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/generate/route.js +1 -1
- package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/improve/route.js +1 -1
- package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
- package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/repair/route.js +1 -1
- package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/route.js +1 -1
- package/.next/server/app/api/flow/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/route.js +2 -2
- package/.next/server/app/api/git/route.js.nft.json +1 -1
- package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/init/route.js +1 -1
- package/.next/server/app/api/init/route.js.nft.json +1 -1
- package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/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/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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/[id]/route.js +1 -1
- package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/provider/route.js +2 -2
- package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
- package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/route.js +1 -1
- package/.next/server/app/api/model/route.js.nft.json +1 -1
- package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/test/route.js +2 -2
- package/.next/server/app/api/model/test/route.js.nft.json +1 -1
- package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/callback/route.js +2 -2
- package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/initiate/route.js +2 -2
- package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/reset/route.js +2 -2
- package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/build/route.js +1 -0
- package/.next/server/app/api/packages/build/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/derive-secrets/route.js +1 -0
- package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/install/route.js +1 -0
- package/.next/server/app/api/packages/install/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/install/status/route.js +1 -0
- package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/packages/resolve/route.js +1 -0
- package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -0
- package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/planned-executions/[id]/route.js +1 -1
- 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 +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route.js +1 -1
- 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_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 -0
- package/.next/server/app/api/registry/auth/resend/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/registry/auth/route.js +1 -0
- package/.next/server/app/api/registry/auth/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/registry/publish/route.js +1 -0
- package/.next/server/app/api/registry/publish/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/registry/settings/route.js +1 -0
- package/.next/server/app/api/registry/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/restore/route.js +1 -1
- package/.next/server/app/api/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runs/active/route.js +2 -2
- package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
- package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update/route.js +1 -1
- package/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/waves/route.js +1 -1
- package/.next/server/app/api/waves/route.js.nft.json +1 -1
- package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +9 -10
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +3 -3
- package/.next/server/app/docs/page.js +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 +3 -3
- package/.next/server/app/executions/page.js +3 -3
- package/.next/server/app/executions/page.js.nft.json +1 -1
- package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/executions.html +1 -1
- package/.next/server/app/executions.rsc +3 -3
- package/.next/server/app/flows/page.js +3 -3
- package/.next/server/app/flows/page.js.nft.json +1 -1
- package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/flows.html +1 -1
- package/.next/server/app/flows.rsc +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 +6 -6
- package/.next/server/app/mcp/page.js.nft.json +1 -1
- package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-flows/route.js +1 -1
- package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
- package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
- package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp.html +1 -1
- package/.next/server/app/mcp.rsc +3 -3
- package/.next/server/app/models/page.js +2 -2
- package/.next/server/app/models/page.js.nft.json +1 -1
- package/.next/server/app/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages/page.js +3 -0
- package/.next/server/app/packages/page.js.nft.json +1 -0
- package/.next/server/app/packages/page_client-reference-manifest.js +1 -0
- package/.next/server/app/packages.html +1 -0
- package/.next/server/app/packages.meta +7 -0
- package/.next/server/app/packages.rsc +22 -0
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +3 -2
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +3 -3
- package/.next/server/app/v1/chat/completions/route.js +1 -1
- package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/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/models/route.js +2 -2
- package/.next/server/app/v1/models/route.js.nft.json +1 -1
- package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/waves/page.js +3 -3
- package/.next/server/app/waves/page.js.nft.json +1 -1
- package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
- package/.next/server/app/waves.html +1 -1
- package/.next/server/app/waves.rsc +3 -3
- package/.next/server/app-paths-manifest.json +15 -5
- package/.next/server/chunks/1083.js +1 -1
- package/.next/server/chunks/1089.js +1 -0
- package/.next/server/chunks/1114.js +1 -1
- package/.next/server/chunks/1197.js +1 -1
- package/.next/server/chunks/1226.js +1 -1
- package/.next/server/chunks/1314.js +1 -0
- package/.next/server/chunks/1604.js +65 -0
- package/.next/server/chunks/1659.js +1 -1
- package/.next/server/chunks/166.js +5 -5
- package/.next/server/chunks/1805.js +1 -0
- package/.next/server/chunks/1819.js +2 -0
- package/.next/server/chunks/1925.js +1 -0
- package/.next/server/chunks/237.js +1 -0
- package/.next/server/chunks/2373.js +1 -1
- package/.next/server/chunks/2388.js +1 -0
- package/.next/server/chunks/2434.js +2 -0
- package/.next/server/chunks/2666.js +1 -0
- package/.next/server/chunks/2859.js +1 -1
- package/.next/server/chunks/2940.js +41 -0
- package/.next/server/chunks/2985.js +1 -0
- package/.next/server/chunks/3298.js +1 -1
- package/.next/server/chunks/{8445.js → 3392.js} +2 -2
- package/.next/server/chunks/346.js +1 -0
- package/.next/server/chunks/3569.js +1 -0
- package/.next/server/chunks/3629.js +1 -0
- package/.next/server/chunks/4042.js +1 -0
- package/.next/server/chunks/4306.js +1 -0
- package/.next/server/chunks/4322.js +1 -0
- package/.next/server/chunks/{3774.js → 4426.js} +2 -2
- package/.next/server/chunks/4545.js +3 -3
- package/.next/server/chunks/{6745.js → 4661.js} +1 -1
- package/.next/server/chunks/4671.js +1 -1
- package/.next/server/chunks/4681.js +1 -0
- package/.next/server/chunks/4765.js +1 -0
- package/.next/server/chunks/4771.js +1 -1
- package/.next/server/chunks/5094.js +2 -0
- package/.next/server/chunks/5096.js +1 -0
- package/.next/server/chunks/510.js +1 -0
- package/.next/server/chunks/{4578.js → 5150.js} +1 -1
- package/.next/server/chunks/5463.js +1 -1
- package/.next/server/chunks/5544.js +5 -5
- package/.next/server/chunks/5708.js +1 -1
- package/.next/server/chunks/5880.js +1 -0
- package/.next/server/chunks/6005.js +1 -0
- package/.next/server/chunks/6529.js +5 -0
- package/.next/server/chunks/6537.js +1 -1
- package/.next/server/chunks/6826.js +1 -1
- package/.next/server/chunks/6996.js +1 -62
- package/.next/server/chunks/701.js +1 -1
- package/.next/server/chunks/7028.js +1 -0
- package/.next/server/chunks/7214.js +2 -2
- package/.next/server/chunks/724.js +1 -1
- package/.next/server/chunks/7362.js +13 -13
- package/.next/server/chunks/7463.js +2 -2
- package/.next/server/chunks/7485.js +1 -0
- package/.next/server/chunks/7498.js +42 -0
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7579.js +2 -2
- package/.next/server/chunks/{3030.js → 7674.js} +1 -1
- package/.next/server/chunks/7764.js +37 -0
- package/.next/server/chunks/7821.js +1 -1
- package/.next/server/chunks/8192.js +12 -0
- package/.next/server/chunks/826.js +52 -0
- package/.next/server/chunks/8387.js +1 -1
- package/.next/server/chunks/{5662.js → 8522.js} +1 -1
- package/.next/server/chunks/8667.js +1 -0
- package/.next/server/chunks/869.js +2 -0
- package/.next/server/chunks/{3489.js → 8730.js} +1 -1
- package/.next/server/chunks/8732.js +62 -0
- package/.next/server/chunks/8739.js +1 -1
- package/.next/server/chunks/8745.js +1 -1
- package/.next/server/chunks/8851.js +1 -0
- package/.next/server/chunks/94.js +1 -1
- package/.next/server/chunks/{1152.js → 9400.js} +1 -1
- package/.next/server/chunks/{4456.js → 9472.js} +2 -2
- package/.next/server/chunks/9583.js +1 -0
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/O-elWbT5rs6ci1CrCqez1/_buildManifest.js +1 -0
- package/.next/static/chunks/{2003-7710c23acaef11c9.js → 2003-f826c607d609d1fa.js} +1 -1
- package/.next/static/chunks/{4003-3b3768446ae333df.js → 2019-f22580cb726c5dca.js} +1 -1
- package/.next/static/chunks/256-a13a59247ac6cc68.js +1 -0
- package/.next/static/chunks/2566-60acd5838abd9f3f.js +1 -0
- package/.next/static/chunks/2822-8168e3bb8443a1ec.js +1 -0
- package/.next/static/chunks/289-98f50bfcf833d661.js +1 -0
- package/.next/static/chunks/2981-10313d395eb99645.js +1 -0
- package/.next/static/chunks/3028-fc1f04241ed578ff.js +1 -0
- package/.next/static/chunks/3089.9e15df4ffd0fe4e8.js +1 -0
- package/.next/static/chunks/{3217.f728df99ab5da33c.js → 3217.260785c2198d1e9d.js} +1 -1
- package/.next/static/chunks/3392-6dd9ad3be66a7ce9.js +1 -0
- package/.next/static/chunks/{3556-3b6f7c99b015b752.js → 3556-b9855146c7506696.js} +1 -1
- package/.next/static/chunks/3560-5bdceef09b50e1c3.js +1 -0
- package/.next/static/chunks/3574-94e9f20550550a58.js +1 -0
- package/.next/static/chunks/4483-463f8bfc6f3dd5fa.js +1 -0
- package/.next/static/chunks/{488-623d07c3fbc21e28.js → 488-7ab54d8ae2b4b550.js} +1 -1
- package/.next/static/chunks/{5512.d01d565f73109a1a.js → 5512.682bef7fd3a7c286.js} +1 -1
- package/.next/static/chunks/5578-49bc150686c13b6f.js +1 -0
- package/.next/static/chunks/5766-dbd21cb8435605aa.js +1 -0
- package/.next/static/chunks/5866-6834cbc4ab02d86f.js +1 -0
- package/.next/static/chunks/6669-012c73587a6628fc.js +1 -0
- package/.next/static/chunks/6961-a40e97c06e616300.js +1 -0
- package/.next/static/chunks/7111-44538f8a64241b74.js +1 -0
- package/.next/static/chunks/7445-2802e158c9093556.js +1 -0
- package/.next/static/chunks/7554-db290baed5782cab.js +8 -0
- package/.next/static/chunks/795-704a0e742ecc2ef6.js +1 -0
- package/.next/static/chunks/8041-05830e887c133085.js +1 -0
- package/.next/static/chunks/{812-624e93f4c0f671c7.js → 812-8b3d4e0f6546d6f9.js} +1 -1
- package/.next/static/chunks/{8345.fbc0af16acce7256.js → 8345.bc5534ec13abc9ee.js} +1 -1
- package/.next/static/chunks/8401-0f39d91810180a88.js +1 -0
- package/.next/static/chunks/{8405.e728bc83a7c9fed6.js → 8405.73e8be2c8e5b55c5.js} +1 -1
- package/.next/static/chunks/{8989-401559d9f3bc80a0.js → 8989-5fa9c7c670eb9a1a.js} +1 -1
- package/.next/static/chunks/{9164-829ab5b085ec06d6.js → 9164-840f056a0e11d979.js} +1 -1
- package/.next/static/chunks/9562-ef0ddd4e6b9023cf.js +1 -0
- package/.next/static/chunks/9720-5ecb48f1a28808fe.js +1 -0
- package/.next/static/chunks/app/api/approvals/[id]/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/approvals/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/backup/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/browse/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/bugs/enhance/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/cwd/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/encryption/secure/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/env/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/flow/compile/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/flow/generate/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/flow/improve/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/flow/quick-chat/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/flow/repair/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/flow/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/git/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/init/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/local-models/capability/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/local-models/pull/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/local-models/suggest/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/cancel/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/model/[id]/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/model/provider/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/model/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/model/test/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/oauth/callback/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/oauth/initiate/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/oauth/reset/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/packages/build/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/packages/derive-secrets/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/packages/install/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/packages/install/status/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/packages/resolve/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/resend/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/registry/publish/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/registry/settings/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/restore/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/runs/active/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/storage/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/update/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/waves/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[id]/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/chat/page-93403b0e520ba8d3.js +1 -0
- package/.next/static/chunks/app/docs/page-2c972a639cd9a41c.js +1 -0
- package/.next/static/chunks/app/executions/page-bb2fef60b2240f69.js +1 -0
- package/.next/static/chunks/app/flows/page-d60c5b47c923564a.js +1 -0
- package/.next/static/chunks/app/layout-eea7078d7553c21a.js +1 -0
- package/.next/static/chunks/app/mcp/page-92c03186d566a4f5.js +1 -0
- package/.next/static/chunks/app/mcp-flows/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/mcp-proxy/[server]/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/models/page-d71e5606a8e29479.js +1 -0
- package/.next/static/chunks/app/packages/page-e64480d78312edd0.js +1 -0
- package/.next/static/chunks/app/{page-0a95c40a65dbd2eb.js → page-d3ea90b065b95d1e.js} +1 -1
- package/.next/static/chunks/app/settings/page-d067a3a624ec2fa0.js +1 -0
- package/.next/static/chunks/app/v1/chat/completions/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/v1/models/route-3e3cc52436d34625.js +1 -0
- package/.next/static/chunks/app/waves/page-ff15db2f75fb5d62.js +1 -0
- package/.next/static/chunks/webpack-2b2d7505a2ac6538.js +1 -0
- package/.next/static/css/{64cb1f185b52a623.css → 69ab44eb350e0b6c.css} +1 -1
- package/.next/trace +9 -10
- package/.next/types/app/api/packages/build/route.ts +347 -0
- package/.next/types/app/api/packages/derive-secrets/route.ts +347 -0
- package/.next/types/app/api/packages/install/route.ts +347 -0
- package/.next/types/app/api/packages/install/status/route.ts +347 -0
- package/.next/types/app/api/packages/resolve/route.ts +347 -0
- package/.next/types/app/api/registry/auth/resend/route.ts +347 -0
- package/.next/types/app/api/registry/auth/route.ts +347 -0
- package/.next/types/app/api/registry/publish/route.ts +347 -0
- package/.next/types/app/api/registry/settings/route.ts +347 -0
- package/.next/types/app/packages/page.ts +84 -0
- package/.next/types/routes.d.ts +12 -2
- package/.next/types/validator.ts +90 -0
- package/README.md +1 -1
- package/package.json +6 -1
- package/.next/server/chunks/1223.js +0 -1
- package/.next/server/chunks/1377.js +0 -1
- package/.next/server/chunks/289.js +0 -1
- package/.next/server/chunks/3823.js +0 -41
- package/.next/server/chunks/3855.js +0 -1
- package/.next/server/chunks/3924.js +0 -52
- package/.next/server/chunks/4372.js +0 -1
- package/.next/server/chunks/4561.js +0 -65
- package/.next/server/chunks/4677.js +0 -37
- package/.next/server/chunks/472.js +0 -1
- package/.next/server/chunks/4793.js +0 -2
- package/.next/server/chunks/4836.js +0 -1
- package/.next/server/chunks/5148.js +0 -1
- package/.next/server/chunks/5311.js +0 -1
- package/.next/server/chunks/584.js +0 -1
- package/.next/server/chunks/62.js +0 -1
- package/.next/server/chunks/6240.js +0 -1
- package/.next/server/chunks/6306.js +0 -1
- package/.next/server/chunks/6793.js +0 -1
- package/.next/server/chunks/6908.js +0 -12
- package/.next/server/chunks/8216.js +0 -1
- package/.next/server/chunks/856.js +0 -5
- package/.next/server/chunks/8652.js +0 -42
- package/.next/server/chunks/9165.js +0 -1
- package/.next/server/chunks/9427.js +0 -1
- package/.next/static/Il6IDWxf3CN0dv-P6QQrp/_buildManifest.js +0 -1
- package/.next/static/chunks/1675-773454288de4309d.js +0 -1
- package/.next/static/chunks/1731-6e45fb529f9044a3.js +0 -1
- package/.next/static/chunks/2318-76fcb6c769b1a569.js +0 -1
- package/.next/static/chunks/2403-5c26e0abd76095b1.js +0 -1
- package/.next/static/chunks/2566-6e2b9d9349814789.js +0 -1
- package/.next/static/chunks/2734-59fbe2f62a59df86.js +0 -1
- package/.next/static/chunks/3089.6b4e21e1faa304e2.js +0 -1
- package/.next/static/chunks/3109-11bdec9bdfd996c3.js +0 -1
- package/.next/static/chunks/333-5f3c5be57c80c48c.js +0 -1
- package/.next/static/chunks/3333-b7b3e5758a568013.js +0 -1
- package/.next/static/chunks/4635-0fe310d3be64e71e.js +0 -1
- package/.next/static/chunks/4690-ec7d397cfacedac3.js +0 -1
- package/.next/static/chunks/4775-cb9c0be621363a08.js +0 -8
- package/.next/static/chunks/5336-81da1080de29ebfc.js +0 -1
- package/.next/static/chunks/7274-1184563607f2b5f5.js +0 -1
- package/.next/static/chunks/8166-e75acdc559b34fcd.js +0 -1
- package/.next/static/chunks/8607-5787e42775fc3acb.js +0 -1
- package/.next/static/chunks/8610-660d5088bc1dd7a7.js +0 -1
- package/.next/static/chunks/9240-d0a51f4d504f34b1.js +0 -1
- package/.next/static/chunks/9562-b7922ceb400ec536.js +0 -1
- package/.next/static/chunks/9704-6b7415964d7c042a.js +0 -1
- package/.next/static/chunks/app/api/approvals/[id]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/approvals/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/backup/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/browse/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/bugs/enhance/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/cwd/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/encryption/secure/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/env/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/compile/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/generate/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/improve/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/quick-chat/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/repair/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/flow/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/git/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/init/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/local-models/capability/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/local-models/pull/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/local-models/suggest/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/cancel/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/model/[id]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/model/provider/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/model/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/model/test/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/oauth/callback/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/oauth/initiate/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/oauth/reset/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/restore/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/runs/active/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/storage/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/update/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/waves/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[id]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/chat/page-04ad1fad78048afb.js +0 -1
- package/.next/static/chunks/app/docs/page-5475c616764dbb18.js +0 -1
- package/.next/static/chunks/app/executions/page-c18708ed96d228ec.js +0 -1
- package/.next/static/chunks/app/flows/page-f7e44aa545bcc56e.js +0 -1
- package/.next/static/chunks/app/layout-e6fbae80e0f456a6.js +0 -1
- package/.next/static/chunks/app/mcp/page-3638fbee04a3a6ea.js +0 -1
- package/.next/static/chunks/app/mcp-flows/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/mcp-proxy/[server]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/models/page-e690a986047b1e62.js +0 -1
- package/.next/static/chunks/app/settings/page-3ef9b95187e18a5a.js +0 -1
- package/.next/static/chunks/app/v1/chat/completions/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/v1/models/route-6b442f97c5062f2c.js +0 -1
- package/.next/static/chunks/app/waves/page-c9a307e2236423a4.js +0 -1
- package/.next/static/chunks/webpack-a6844e1074885c2f.js +0 -1
- /package/.next/static/{Il6IDWxf3CN0dv-P6QQrp → O-elWbT5rs6ci1CrCqez1}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-6b442f97c5062f2c.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-6b442f97c5062f2c.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-6b442f97c5062f2c.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9666,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-6b442f97c5062f2c.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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,397,405,624,761,846,1144,1189,1288,1337,1426,1677,1797,2047,2348,2437,2483,2567,3190,3292,3369,3371,3551,3587,3623,3691,4063,4216,4233,4267,4300,4524,4825,5196,5617,5618,5644,5817,6078,6600,6744,7002,7144,7221,7276,7591,7822,7824,7845,8046,8068,8140,8201,8350,8467,8479,8510,8563,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],{1877:(e,t,n)=>{"use strict";n.d(t,{Hm:()=>a,xc:()=>o,yo:()=>l});let r=["key","secret","token","password"],o=e=>r.some(t=>e.toLowerCase().includes(t)),a=e=>o(e)||"authorization"===e.trim().toLowerCase(),l=e=>{if(!e)return e;if(e.includes("_-_-_")){let t=e.split("_-_-_");return 3===t.length?t[2]:e}let t=/^mcp_(.+)_[0-9a-z]+$/.exec(e);if(t&&t[1])return t[1];let n=e.indexOf("__");return n>0&&n+2<e.length?e.slice(n+2):e}},9164:(e,t,n)=>{"use strict";n.r(t),n.d(t,{StorageProvider:()=>p,default:()=>f,useStorage:()=>u});var r=n(95155),o=n(12115),a=n(29692),l=n(1877),i=n(87021),s=n(31373);let d=(0,i.h)("frontend/contexts/StorageContext"),c=(0,o.createContext)({setKey:async()=>{},changeKey:async()=>!1,verifyKey:async()=>!1,isEncryptionInitialized:async()=>!1,globalEnvVars:{},setGlobalEnvVars:async()=>{},deleteGlobalEnvVar:async()=>{},encryptValue:async()=>null,decryptValue:async()=>null,isUserEncryptionEnabled:async()=>!1,isLoading:!0,settings:{speech:{enabled:!0},update:{checkOnStartup:!1}},settingsHydrated:!1,updateSettings:async()=>{}}),u=()=>(0,o.useContext)(c),p=e=>{let{children:t}=e,[n,i]=(0,o.useState)(!1),[u,p]=(0,o.useState)(!1),[f,h]=(0,o.useState)({}),[g,x]=(0,o.useState)({speech:{enabled:!0},update:{checkOnStartup:!1}}),m=(0,o.useCallback)(async()=>{d.debug("isEncryptionInitialized: Entering method");try{let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check_initialized"})});if(!e.ok)throw Error("Failed to check encryption status");let t=await e.json();return!0===t.initialized}catch(e){return d.warn("isEncryptionInitialized: Failed to check encryption status:",e),!1}},[]),v=(0,o.useCallback)(async e=>{d.debug("setKey: Entering method");try{if(!(await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize",password:e})})).ok)throw Error("Failed to set encryption key")}catch(e){d.warn("setKey: Failed to set encryption key:",e)}},[]),y=(0,o.useCallback)(async(e,t)=>{d.debug("changeKey: Entering method");try{let n=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"change_password",oldPassword:e,newPassword:t})});if(!n.ok)throw Error("Failed to change encryption key");let r=await n.json();if(r.success&&sessionStorage.getItem("encryption_token")){let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"authenticate",password:t})});if(e.ok){let t=await e.json();t.success&&t.token&&(sessionStorage.setItem("encryption_token",t.token),sessionStorage.setItem("encryption_authenticated","true"),sessionStorage.removeItem("encryption_key"))}}return!0===r.success}catch(e){return d.warn("changeKey: Failed to change encryption key:",e),!1}},[]),b=(0,o.useCallback)(async e=>{d.debug("verifyKey: Entering method");try{let t=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"verify_password",password:e})});if(!t.ok)throw Error("Failed to verify encryption key");let n=await t.json();return n.valid&&n.token&&(sessionStorage.setItem("encryption_token",n.token),sessionStorage.setItem("encryption_authenticated","true"),sessionStorage.removeItem("encryption_key")),!0===n.valid}catch(e){return d.warn("verifyKey: Failed to verify encryption key:",e),!1}},[]),w=(0,o.useCallback)(async()=>{let e={speech:{enabled:!0},update:{checkOnStartup:!1}};try{var t;let n=await fetch("/api/storage?key=".concat(encodeURIComponent(a.Zg.SPEECH_SETTINGS),"&defaultValue=").concat(encodeURIComponent(JSON.stringify(e))));if(!n.ok)return void d.debug("loadSettings: settings read not ok, keeping defaults",{status:n.status});let r=await n.json();d.debug("Loaded settings from storage",{settings:r.value}),x(null!=(t=r.value)?t:e),p(!0)}catch(e){d.warn("loadSettings: failed to load settings:",e)}},[]);(0,o.useEffect)(()=>{let e=()=>{d.info("Encryption unlocked signal received; reloading settings"),w()};return window.addEventListener(s.ZB,e),()=>window.removeEventListener(s.ZB,e)},[w]),(0,o.useEffect)(()=>{(async()=>{d.debug("loadData: Entering method");try{d.info("Calling initialization API to verify storage");let e=await fetch("/api/init");if(e.ok)d.info("Storage initialization completed successfully");else{let t=await e.json();d.warn("Storage initialization warning:",t.error)}await m()||await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize_default"})});let t=await fetch("/api/env?includeSecrets=false");if(t.ok){let e=await t.json();d.debug("Loaded environment variables",{count:Object.keys(e.variables||{}).length}),h(e.variables||{})}else d.error("loadData: Failed to load environment variables"),h({});await w(),i(!0)}catch(e){d.error("loadData: Error loading data:",e),i(!0)}})()},[m,w]);let j=(0,o.useCallback)(async(e,t)=>{d.debug("encryptValue: Entering method");try{let n=sessionStorage.getItem("encryption_token"),r=sessionStorage.getItem("encryption_key"),o={action:"encrypt",data:e};n?o.token=n:t?o.password=t:r&&(o.password=r);let a=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!a.ok)throw Error("Failed to encrypt value");return(await a.json()).result}catch(e){return d.warn("encryptValue: Failed to encrypt value:",e),null}},[]),A=(0,o.useCallback)(async(e,t)=>(d.debug("decryptValue: Entering method - THIS METHOD IS DEPRECATED"),d.warn("decryptValue: Frontend decryption is deprecated for security reasons"),null),[]),S=(0,o.useCallback)(async()=>{d.debug("isUserEncryptionEnabled: Entering method");try{let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check_user_encryption"})});if(!e.ok)throw Error("Failed to check user encryption status");let t=await e.json();return!0===t.userEncryption}catch(e){return d.warn("isUserEncryptionEnabled: Failed to check user encryption status:",e),!1}},[]),k=(0,o.useCallback)(async e=>{d.debug("setGlobalEnvVars: Entering method");try{await m()||await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"initialize_default"})});let t=await fetch("/api/env",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"setAll",variables:e})});if(!t.ok){let e=await t.json();d.error("setGlobalEnvVars: Failed to set environment variables:",e.error);return}let n={};for(let[t,r]of Object.entries(e)){let e="object"==typeof r&&null!==r&&"value"in r?r.value:r,o="object"==typeof r&&null!==r&&"metadata"in r?r.metadata:{isSecret:(0,l.xc)(t)};o.isSecret?n[t]={value:"********",metadata:o}:n[t]={value:e,metadata:o}}h(n)}catch(e){d.error("setGlobalEnvVars: Error setting environment variables:",e)}},[m]),I=(0,o.useCallback)(async e=>{d.debug("deleteGlobalEnvVar: Deleting environment variable: ".concat(e));try{let t=await fetch("/api/env",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",key:e})});if(!t.ok){let e=await t.json();d.error("deleteGlobalEnvVar: Failed to delete environment variable:",e.error);return}h(t=>{let n={...t};return delete n[e],n})}catch(e){d.error("deleteGlobalEnvVar: Error deleting environment variable:",e)}},[]),C=(0,o.useCallback)(async e=>{d.debug("updateSettings: Updating settings",{newSettings:e});try{await (0,a.VH)(a.Zg.SPEECH_SETTINGS,e),x(e)}catch(e){d.error("updateSettings: Error updating settings:",e)}},[]);return(0,r.jsx)(c.Provider,{value:{setKey:v,changeKey:y,verifyKey:b,isEncryptionInitialized:m,globalEnvVars:f,setGlobalEnvVars:k,deleteGlobalEnvVar:I,encryptValue:j,decryptValue:A,isUserEncryptionEnabled:S,isLoading:!n,settings:g,settingsHydrated:u,updateSettings:C},children:t})},f=c},31373:(e,t,n)=>{"use strict";n.d(t,{UJ:()=>r,ZB:()=>o,bx:()=>l});let r="flujo:encryption-locked",o="flujo:encryption-unlocked",a=!1;function l(){if(a||"function"!=typeof window.fetch)return;a=!0;let e=window.fetch.bind(window);window.fetch=async function(){for(var t=arguments.length,n=Array(t),o=0;o<t;o++)n[o]=arguments[o];let a=await e(...n);return 423===a.status&&function(){try{sessionStorage.removeItem("encryption_authenticated"),sessionStorage.removeItem("encryption_token")}catch(e){}window.dispatchEvent(new CustomEvent(r))}(),a}}},65818:(e,t,n)=>{"use strict";n.d(t,{mO:()=>a,oO:()=>l});var r=n(38459);let o=["stdio","websocket","sse","streamable"];function a(e,t){switch(t){case"name-asc":case"name-desc":return(0,r.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 l(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 r,a;let t=o.indexOf(null!=(r=e.transport)?r:""),l=o.indexOf(null!=(a=n.transport)?a:"");if(t!==l)return t-l;return e.name.localeCompare(n.name)}default:return 0}};return[...e].sort((e,t)=>{let r=Number(!!t.favorite)-Number(!!e.favorite);return 0!==r?r:n(e,t)})}},75870:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(95155),o=n(12115),a=n(94049),l=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:g=!1}=e,[x,m]=(0,o.useState)([]),[v,y]=(0,o.useState)(!0),[b,w]=(0,o.useState)(null),[j,A]=(0,o.useState)(!1);(0,o.useEffect)(()=>{(async()=>{y(!0),w(null);try{let e=await c.g.loadFlows();m(e)}catch(e){console.error("Error loading flows:",e),w("Failed to load flows")}finally{y(!1)}})()},[]);let S=e=>{n(e),A(!1)},k=async e=>{let t=x.find(t=>t.id===e);if(!t)return;let n=!t.favorite,r={...t,favorite:n||void 0};try{(await c.g.updateFlow(r)).success&&m(t=>t.map(t=>t.id===e?r:t))}catch(e){console.error("Error toggling flow favorite:",e)}},I=(0,f.E)("flows",x),C=e=>({key:e.id,content:(e=>(0,r.jsx)(p.A,{flow:e,selected:e.id===t,onSelect:S,onToggleFavorite:k,pickerMode:!0}))(e)}),E=I.items.map(C),T=I.groups?I.groups.map(e=>({...e,items:e.items.map(C)})):null,N=(()=>{if(!t)return"";let e=x.find(e=>e.id===t);return e?e.name:""})();return(0,r.jsxs)(a.default,{children:[!g&&(0,r.jsx)(l.default,{variant:"subtitle1",gutterBottom:!0,children:"Select Flow"}),v?(0,r.jsxs)(a.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,r.jsx)(i.default,{size:20}),(0,r.jsx)(l.default,{variant:"body2",color:"text.secondary",children:"Loading flows..."})]}):b?(0,r.jsx)(l.default,{color:"error",variant:"body2",children:b}):0===x.length?(0,r.jsx)(l.default,{variant:"body2",color:"text.secondary",children:"No flows available. Create some flows in the Flow Builder first."}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.A,{variant:"outlined",startIcon:(0,r.jsx)(d.A,{}),onClick:()=>A(!0),disabled:h,sx:{textTransform:"none",maxWidth:"100%"},children:(0,r.jsx)(a.default,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t&&N||"Select a flow"})}),(0,r.jsx)(l.default,{variant:"caption",color:"text.secondary",display:"block",sx:{mt:.5},children:t?'Using "'.concat(N,'" flow for this conversation'):"Select a flow to use for this conversation"}),(0,r.jsx)(u.A,{open:j,onClose:()=>A(!1),title:"Select a flow",description:"Pick the flow this conversation will run.",skeleton:(0,r.jsx)(p.o,{}),emptyMessage:"No flows available. Create some flows in the Flow Builder first.",searchable:!0,searchPlaceholder:"Search flows…",searchTerm:I.searchTerm,onSearchChange:I.setSearchTerm,items:E,groups:T,collapsedKeys:I.collapsedKeys,onToggleGroup:I.toggleGroup})]})]})}},84869:(e,t,n)=>{"use strict";n.d(t,{G:()=>l,S:()=>a});let r=(0,n(87021).h)("frontend/services/transcription/webSpeech"),o=()=>"webkitSpeechRecognition"in window||"SpeechRecognition"in window;async function a(e,t){if(!o())throw Error("Web Speech API is not supported in this browser");r.debug("Starting Web Speech API transcription");try{let n=URL.createObjectURL(e),o=new Audio(n),a=new(window.SpeechRecognition||window.webkitSpeechRecognition);return a.continuous=!0,a.interimResults=!0,(null==t?void 0:t.language)&&(a.lang=t.language),new Promise((e,n)=>{let l="";a.onresult=e=>{let n="";for(let t=e.resultIndex;t<e.results.length;t++){let r=e.results[t][0].transcript;e.results[t].isFinal?l+=r+" ":n+=r}(null==t?void 0:t.onInterimResult)&&t.onInterimResult(l+n),r.debug("Recognition interim result",{finalLength:l.length,interimLength:n.length})},a.onend=()=>{r.debug("Recognition ended",{transcriptLength:l.length}),e(l.trim())},a.onerror=e=>{r.error("Recognition error",{error:e.error}),n(Error("Speech recognition error: ".concat(e.error)))},o.onplay=()=>{a.start(),r.debug("Recognition started")},o.onended=()=>{a.stop(),r.debug("Audio playback ended")},o.onerror=e=>{r.error("Audio playback error",{error:e}),a.stop(),n(Error("Error playing audio"))},o.play().catch(e=>{r.error("Error starting audio playback",{error:e}),n(e)})})}catch(e){throw r.error("Error in Web Speech API transcription",{error:e}),e}}function l(){return{supported:o(),message:o()?"Web Speech API is supported":"Web Speech API is not supported in this browser"}}},96255:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>nf});var r=n(95155),o=n(12115),a=n(97322),l=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),g=n(3339),x=n(67895),m=n(2778),v=n(52363),y=n(65036),b=n(50001),w=n(75912),j=n(22719),A=n(11096),S=n(76530),k=n(36741),I=n(60691),C=n(47419),E=n(78410),T=n(14915),N=n(55930),z=n(29692),R=n(23820),D=n(73707),P=n(17681),_=n(21067),O=n(56422),F=n(52641),M=n(55606),W=n(86973),L=n(41602),H=n(50430),B=n(4484),J=n(86946),U=n(19219),q=n(51611),G=n(12140),V=n(63186),K=n(62962);function Y(e){return"string"==typeof e&&e.startsWith("quickchat-")}n(77890);var Q=n(88377),X=n(38459),Z=n(97104);let $={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"},ee=[{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"}],et=[{value:"all",label:"Any time"},{value:"today",label:"Last 24h"},{value:"7d",label:"Last 7 days"},{value:"30d",label:"Last 30 days"}],en=[{value:"none",label:"No grouping"},{value:"date",label:"Group by date"},{value:"flow",label:"Group by flow"}],er=e=>{let{conversations:t,currentConversationId:n,onSelectConversation:a,onDeleteConversation:l,onStopConversation:c,onNewConversation:g,onQuickChat:x,onCollapse:m,flowNames:v={}}=e,[y,b]=o.useState(""),[w,j]=(0,Z.Xk)($.group,"none"),[S,k]=(0,Z.Xk)($.status,"all"),[I,E]=(0,Z.Xk)($.flow,"all"),[T,N]=(0,Z.Xk)($.date,"all"),[z,er]=(0,Z.Xk)($.collapsed,{}),eo=o.useCallback(e=>{var t;return e?Y(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]),ea=(0,o.useMemo)(()=>{let e=new Map;for(let n of t){let t=eo(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,eo]),el=(0,o.useMemo)(()=>{let e=y.trim().toLowerCase(),n=Date.now(),r="today"===T?n-864e5:"7d"===T?n-6048e5:"30d"===T?n-2592e6:0;return t.filter(t=>("all"===S||t.status===S)&&("all"===I||eo(t.flowId).key===I)&&(!r||!(t.updatedAt<r))&&(!e||!!"".concat(t.title," ").concat(eo(t.flowId).label).toLowerCase().includes(e))&&!0).sort((e,t)=>t.updatedAt-e.updatedAt)},[t,y,S,I,T,eo]),ei=(0,o.useMemo)(()=>"none"===w?[{key:"all",label:"",items:el}]:(0,X.Az)(el,e=>"date"===w?(0,Q.K)(e.updatedAt):eo(e.flowId)),[el,w,eo]),es=+("all"!==S)+ +("all"!==I)+ +("all"!==T),ed=e=>{let t=!!c&&("running"===e.status||"awaiting_tool_approval"===e.status),o=eo(e.flowId),u="flow:__quickchat__"===o.key;return(0,r.jsx)(R.Ay,{disablePadding:!0,secondaryAction:(0,r.jsxs)(r.Fragment,{children:[t&&(0,r.jsx)(s.A,{title:"Stop this run",children:(0,r.jsx)(d.A,{edge:"end","aria-label":"stop run",onClick:t=>{t.stopPropagation(),c(e.id)},children:(0,r.jsx)(C.A,{color:"error"})})}),(0,r.jsx)(d.A,{edge:"end","aria-label":"delete",onClick:t=>{t.stopPropagation(),l(e.id)},children:(0,r.jsx)(B.A,{})})]}),sx:{opacity:e.id===n?1:.7},children:(0,r.jsx)(D.A,{selected:e.id===n,onClick:()=>a(e.id),sx:{pr:t?12:7},children:(0,r.jsx)(P.A,{primary:(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.status&&(0,r.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,r.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,r.jsx)(s.A,{title:e.title,enterDelay:500,children:(0,r.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,r.jsxs)(i.default,{component:"span",sx:{display:"flex",alignItems:"center",gap:.75,mt:.5,flexWrap:"wrap"},children:["flow"!==w&&(0,r.jsx)(s.A,{title:u?"Quick Chat (no saved flow)":"Flow: ".concat(o.label),children:(0,r.jsx)(f.A,{icon:u?(0,r.jsx)(A.A,{}):void 0,label:o.label,size:"small",variant:"outlined",color:u?"secondary":"default",sx:{maxWidth:"100%",height:20,"& .MuiChip-label":{px:.75,fontSize:"0.7rem"}}})}),(0,r.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,eu=el.length;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.default,{sx:{p:2,display:"flex",justifyContent:"space-between",alignItems:"center",gap:1},children:[m&&(0,r.jsx)(s.A,{title:"Hide sidebar",children:(0,r.jsx)(d.A,{size:"small",onClick:m,"aria-label":"Hide conversation sidebar",children:(0,r.jsx)(U.A,{})})}),(0,r.jsx)(p.default,{variant:"h6",sx:{flex:1},noWrap:!0,children:"Conversations"}),x&&(0,r.jsx)(s.A,{title:"Quick Chat: a model + optional MCP servers, no saved flow",children:(0,r.jsx)(h.A,{variant:"outlined",color:"primary",startIcon:(0,r.jsx)(A.A,{}),onClick:x,size:"small",children:"Quick"})}),(0,r.jsx)(h.A,{variant:"contained",color:"primary",startIcon:(0,r.jsx)(J.A,{}),onClick:g,size:"small",children:"New"})]}),(0,r.jsx)(_.A,{}),(0,r.jsxs)(i.default,{sx:{px:2,pt:1.5,pb:1,display:"flex",flexDirection:"column",gap:1},children:[(0,r.jsx)(u.A,{size:"small",fullWidth:!0,placeholder:"Search title or flow…",value:y,onChange:e=>b(e.target.value),InputProps:{startAdornment:(0,r.jsx)(O.A,{position:"start",children:(0,r.jsx)(q.A,{fontSize:"small"})}),endAdornment:y?(0,r.jsx)(O.A,{position:"end",children:(0,r.jsx)(d.A,{size:"small","aria-label":"Clear search",onClick:()=>b(""),children:(0,r.jsx)(G.A,{fontSize:"small"})})}):void 0}}),(0,r.jsxs)(i.default,{sx:{display:"flex",flexWrap:"wrap",gap:1},children:[(0,r.jsx)(F.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,r.jsx)(M.A,{value:w,onChange:e=>j(e.target.value),"aria-label":"Group conversations",children:en.map(e=>(0,r.jsx)(W.A,{value:e.value,children:e.label},e.value))})}),(0,r.jsx)(F.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,r.jsx)(M.A,{value:S,onChange:e=>k(e.target.value),"aria-label":"Filter by status",children:ee.map(e=>(0,r.jsx)(W.A,{value:e.value,children:e.label},e.value))})}),(0,r.jsx)(F.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,r.jsxs)(M.A,{value:ea.some(e=>e.key===I)?I:"all",onChange:e=>E(e.target.value),"aria-label":"Filter by flow",children:[(0,r.jsx)(W.A,{value:"all",children:"Any flow"}),ea.map(e=>(0,r.jsx)(W.A,{value:e.key,children:e.label},e.key))]})}),(0,r.jsx)(F.A,{size:"small",sx:{minWidth:128,flex:"1 1 128px"},children:(0,r.jsx)(M.A,{value:T,onChange:e=>N(e.target.value),"aria-label":"Filter by date",children:et.map(e=>(0,r.jsx)(W.A,{value:e.value,children:e.label},e.value))})})]}),(y||es>0)&&(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",children:[eu," of ",ec]}),(0,r.jsx)(h.A,{size:"small",onClick:()=>{b(""),k("all"),E("all"),N("all")},children:"Clear filters"})]})]}),(0,r.jsx)(_.A,{}),(0,r.jsx)(L.A,{sx:{overflow:"auto",flex:1},children:0===ec?(0,r.jsx)(R.Ay,{children:(0,r.jsx)(P.A,{primary:"No conversations yet",secondary:"Start a new conversation",primaryTypographyProps:{align:"center"},secondaryTypographyProps:{align:"center"}})}):0===eu?(0,r.jsx)(R.Ay,{children:(0,r.jsx)(P.A,{primary:"No matching conversations",secondary:"Try a different search or filter",primaryTypographyProps:{align:"center"},secondaryTypographyProps:{align:"center"}})}):"none"===w?el.map(ed):ei.map(e=>{let t=!!z[e.key];return(0,r.jsxs)(i.default,{children:[(0,r.jsxs)(D.A,{onClick:()=>(e=>{er(t=>({...t,[e]:!t[e]}))})(e.key),sx:{py:.5,bgcolor:"action.hover"},children:[t?(0,r.jsx)(V.A,{fontSize:"small"}):(0,r.jsx)(K.A,{fontSize:"small"}),(0,r.jsx)(p.default,{variant:"overline",sx:{ml:.5,flex:1,lineHeight:1.6},noWrap:!0,children:e.label}),(0,r.jsx)(f.A,{label:e.items.length,size:"small",sx:{height:18,"& .MuiChip-label":{px:.75,fontSize:"0.7rem"}}})]}),(0,r.jsx)(H.A,{in:!t,timeout:"auto",unmountOnExit:!0,children:e.items.map(ed)})]},e.key)})})]})};var eo=n(4474),ea=n(99944),el=n(9957),ei=n(2300),es=n(51221),ed=n(98267),ec=n(20537),eu=n(37960),ep=n(36314),ef=n(49501),eh=n(6504),eg=n(22133),ex=n(11665),em=n(97516),ev=n(91861),ey=n(53612),eb=n(3014),ew=n(70863),ej=n(67891),eA=n(12121),eS=n(63992),ek=n(59637),eI=n(30949),eC=n(1877),eE=n(18466);function eT(e){return!!e&&(e.startsWith(eE.n9)||"handoff"===e)}var eN=n(26188),ez=n(38952),eR=n(17897),eD=n(81029).hp,eP=n(87021);let e_=(0,eP.h)("frontend/components/Chat/McpAppFrame"),eO=e=>{let{serverName:t,uri:n}=e,[a,l]=(0,o.useState)(!1),[d,u]=(0,o.useState)(!1),[f,g]=(0,o.useState)(null),[x,m]=(0,o.useState)(null),v=(0,o.useCallback)(async()=>{u(!0),g(null);try{let e=await eR.S.readResource(t,n);if(!e||!1===e.success)return void g((null==e?void 0:e.error)||"Failed to read the UI resource.");let r=function(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2097152,r=null==e?void 0:e.contents;if(!Array.isArray(r)||0===r.length)return{error:"Resource has no contents"};let o=r.find(e=>(function(e){if("string"!=typeof e)return!1;let t=e.toLowerCase().replace(/\s+/g,"");return t.startsWith("text/html")&&t.includes("profile=mcp-app")})(e.mimeType)&&"string"==typeof e.text)||r.find(e=>"string"==typeof e.text);if(!o||"string"!=typeof o.text)return{error:"Resource has no HTML text body"};if((void 0!==eD?eD.byteLength(o.text,"utf8"):new TextEncoder().encode(o.text).length)>n)return{error:"Resource exceeds the ".concat(Math.round(n/1024)," KiB size cap")};let a=null==(t=o._meta)?void 0:t.ui;return{html:o.text,meta:a}}(e.data);if("error"in r)return void g(r.error);m(function(e,t){let n='<meta http-equiv="Content-Security-Policy" content="'.concat(function(e){let t=e=>(e||[]).map(e=>"string"==typeof e?e.trim():"").filter(e=>""!==e&&"string"==typeof e&&("'self'"===e||"'none'"===e||!(/[^\x21-\x7e]/.test(e)||/[;,'"`$<>\\()]/.test(e))&&/^(?:https|wss):\/\/(?:\*\.)?(?:[a-z0-9-]+\.)*[a-z0-9-]+(?::\d{1,5})?$/i.test(e))).join(" "),n=t(null==e?void 0:e.connectDomains),r=t(null==e?void 0:e.resourceDomains),o=t(null==e?void 0:e.frameDomains),a=t(null==e?void 0:e.baseUriDomains);return["default-src 'none'","script-src 'unsafe-inline'".concat(r?" ".concat(r):""),"style-src 'unsafe-inline'".concat(r?" ".concat(r):""),"img-src data: blob:".concat(r?" ".concat(r):""),"font-src".concat(r?" ".concat(r):" 'none'"),"media-src data: blob:".concat(r?" ".concat(r):""),"connect-src".concat(n?" ".concat(n):" 'none'"),"frame-src".concat(o?" ".concat(o):" 'none'"),"base-uri".concat(a?" ".concat(a):" 'none'"),"form-action 'none'"].join("; ")}(t),'">');return/<head[\s>]/i.test(e)?e.replace(/<head([^>]*)>/i,(e,t)=>"<head".concat(t,">").concat(n)):'<!DOCTYPE html><html><head><meta charset="utf-8">'.concat(n,"</head><body>").concat(e,"</body></html>")}(r.html,r.meta))}catch(e){e_.warn("Failed to load MCP App resource ".concat(n," from ").concat(t),e),g(e instanceof Error?e.message:"Failed to load the UI resource.")}finally{u(!1)}},[t,n]),y=(0,o.useCallback)(()=>{let e=!a;l(e),e&&null===x&&!d&&v()},[a,x,d,v]);return(0,r.jsxs)(i.default,{sx:{mt:1,border:"1px solid",borderColor:"divider",borderRadius:1,overflow:"hidden"},children:[(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.5,bgcolor:"action.hover"},children:[(0,r.jsx)(eN.A,{fontSize:"small",color:"primary"}),(0,r.jsxs)(p.default,{variant:"body2",sx:{fontWeight:500},children:["Interactive app from ",t]}),(0,r.jsx)(s.A,{title:"Rendered read-only in a strict sandbox (no same-origin access, no network unless the app declares it). The app cannot call tools in this view.",children:(0,r.jsx)(ez.A,{fontSize:"small",color:"action"})}),(0,r.jsx)(h.A,{size:"small",onClick:y,startIcon:a?(0,r.jsx)(K.A,{}):(0,r.jsx)(V.A,{}),sx:{ml:"auto"},children:a?"Hide":"Open app"})]}),(0,r.jsx)(H.A,{in:a,unmountOnExit:!0,children:(0,r.jsxs)(i.default,{sx:{p:1},children:[d&&(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1,py:2,justifyContent:"center"},children:[(0,r.jsx)(eo.default,{size:16,thickness:6}),(0,r.jsx)(p.default,{variant:"body2",color:"text.secondary",children:"Loading the app…"})]}),f&&(0,r.jsx)(c.A,{severity:"error",sx:{my:1},children:f}),!d&&!f&&null!==x&&(0,r.jsx)(i.default,{component:"iframe",title:"MCP App: ".concat(n),srcDoc:x,sandbox:"allow-scripts",referrerPolicy:"no-referrer",sx:{width:"100%",height:420,border:"none",borderRadius:1,bgcolor:"#fff"}})]})})]})},eF=(0,eP.h)("frontend/components/Chat/ChatMessages");function eM(e){return"assistant"===e.role&&"tool_calls"in e&&Array.isArray(e.tool_calls)}function eW(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 eL={p:e=>(0,r.jsx)(p.default,{variant:"body1",sx:{mb:.5,whiteSpace:"pre-line"},children:e.children}),h1:e=>(0,r.jsx)(p.default,{variant:"h5",sx:{mt:2,mb:.5},children:e.children}),h2:e=>(0,r.jsx)(p.default,{variant:"h6",sx:{mt:2,mb:.5},children:e.children}),h3:e=>(0,r.jsx)(p.default,{variant:"subtitle1",sx:{mt:1.5,mb:.5},children:e.children}),h4:e=>(0,r.jsx)(p.default,{variant:"subtitle2",sx:{mt:1.5,mb:.5},children:e.children}),h5:e=>(0,r.jsx)(p.default,{variant:"body1",sx:{mt:1,mb:.5,fontWeight:"bold"},children:e.children}),h6:e=>(0,r.jsx)(p.default,{variant:"body2",sx:{mt:1,mb:.5,fontWeight:"bold"},children:e.children}),ul:e=>(0,r.jsx)(i.default,{component:"ul",sx:{pl:2,mb:1},children:e.children}),ol:e=>(0,r.jsx)(i.default,{component:"ol",sx:{pl:2,mb:1},children:e.children}),li:e=>(0,r.jsx)(i.default,{component:"li",sx:{mb:.5,whiteSpace:"pre-line"},children:e.children}),a:e=>(0,r.jsx)(p.default,{component:"a",sx:{color:"primary.main"},href:e.href,children:e.children}),blockquote:e=>(0,r.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:o,...a}=e;return/language-(\w+)/.exec(n||"")||n?(0,r.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:o}):(0,r.jsx)(p.default,{component:"code",sx:{bgcolor:"action.hover",px:.5,py:.25,borderRadius:"4px",fontFamily:"monospace",wordBreak:"break-all"},children:o})}},eH=e=>{let{content:t,showRaw:n}=e;return n?(0,r.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,r.jsx)(p.default,{variant:"body2",fontStyle:"italic",color:"text.secondary",children:"[Invalid tool content]"}):(0,r.jsx)(i.default,{sx:{width:"100%",minWidth:0},children:(()=>{try{let e=JSON.parse(t);if(e&&Array.isArray(e.content))return(0,r.jsx)(i.default,{sx:{display:"flex",flexDirection:"column",gap:1},children:e.content.map((e,t)=>"text"===e.type?(0,r.jsx)(eh.oz,{remarkPlugins:[eg.A],children:e.text},t):"image"===e.type&&e.data&&e.mimeType?(0,r.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,r.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,r.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,r.jsx)(eh.oz,{remarkPlugins:[eg.A],children:"```json\n".concat(JSON.stringify(e,null,2),"\n```")})}catch(e){return(0,r.jsx)(eh.oz,{remarkPlugins:[eg.A],children:t})}})()})},eB=e=>{let{pairs:t,messageId:n}=e,[a,l]=(0,o.useState)(null),[d,c]=(0,o.useState)({}),u=(e,t)=>e.toolCall.id||"tc-".concat(n,"-").concat(t);return(0,r.jsxs)(i.default,{sx:{mt:1,pt:1,borderTop:"1px solid",borderColor:"divider"},children:[(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",color:"primary.main",mb:1},children:[(0,r.jsx)(ew.A,{fontSize:"small",sx:{mr:1}}),(0,r.jsx)(p.default,{variant:"body2",children:1===t.length?"The assistant used a tool":"The assistant used ".concat(t.length," tools")})]}),(0,r.jsx)(i.default,{sx:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:.5},children:t.map((e,t)=>{let n=u(e,t),d=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),c=a===n;return(0,r.jsxs)(o.Fragment,{children:[t>0&&(0,r.jsx)(i.default,{sx:{width:14,height:"2px",bgcolor:"divider",flexShrink:0}}),(0,r.jsx)(s.A,{title:c?"Hide call & result":"Show call & result",children:(0,r.jsx)(f.A,{icon:function(e){return"pending"===e?(0,r.jsx)(eo.default,{size:14,thickness:6}):"error"===e?(0,r.jsx)(I.A,{fontSize:"small"}):(0,r.jsx)(eA.A,{fontSize:"small"})}(d),label:(0,eC.yo)(e.toolCall.function.name),size:"small",clickable:!0,variant:c?"filled":"outlined",color:"error"===d?"error":"pending"===d?"default":"primary",onClick:()=>l(c?null:n),sx:{maxWidth:"100%"}})})]},n)})}),t.map((e,t)=>{var n,o;let l=u(e,t),s=e.toolCall.function.arguments;try{s=JSON.stringify(JSON.parse(e.toolCall.function.arguments),null,2)}catch(e){}let h=!!d[l];return(0,r.jsx)(H.A,{in:a===l,unmountOnExit:!0,children:(0,r.jsxs)(i.default,{sx:{mt:1,p:1,borderRadius:1,bgcolor:"rgba(0, 0, 0, 0.03)"},children:[(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",mb:.5},children:[(0,r.jsx)(ew.A,{fontSize:"small",sx:{mr:.5,color:"primary.main"}}),(0,r.jsx)(p.default,{variant:"caption",sx:{fontWeight:"bold"},children:"Parameters"}),(0,r.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,r.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:s}),(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",mt:1,mb:.5},children:[(0,r.jsx)(ej.A,{fontSize:"small",sx:{mr:.5,color:"text.secondary"}}),(0,r.jsx)(p.default,{variant:"caption",sx:{fontWeight:"bold"},children:"Result"}),e.result&&(0,r.jsx)(ea.A,{control:(0,r.jsx)(el.A,{size:"small",checked:h,onChange:e=>c(t=>({...t,[l]:e.target.checked}))}),label:"Raw",sx:{ml:"auto",mr:0,"& .MuiTypography-root":{fontSize:"0.75rem"}}})]}),e.result?(0,r.jsx)(eH,{content:e.result.content,showRaw:h}):(0,r.jsxs)(p.default,{variant:"body2",fontStyle:"italic",color:"text.secondary",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,r.jsx)(eo.default,{size:14,thickness:6})," Waiting for the tool to respond…"]}),(null==(o=e.result)||null==(n=o.ui)?void 0:n.uri)&&e.result.ui.serverName&&(0,r.jsx)(eO,{serverName:e.result.ui.serverName,uri:e.result.ui.uri})]})},l)})]})},eJ=o.memo(function(e){var t,n;let o,{message:a,nodeLabel:l,availableNodes:c,showRaw:u,toolCallPairs:g,hoistedHandoffs:x,edit:m,onMenuOpen:v,onToggleRaw:y,onEditContentChange:b,onEditNodeChange:w,onSaveEdit:j,onCancelEdit:A}=e,S=null!=(t=a.depth)?t:0;return(0,r.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",alignItems:"user"===a.role?"flex-end":"flex-start",opacity:a.disabled?.5:1,...S>0&&{pl:3*S,borderLeft:"2px solid",borderColor:"divider",ml:1}},children:[(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",mb:.5},children:[(0,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{mr:1},children:["user"===a.role?"You":"assistant"===a.role?"Assistant":"tool"===a.role?"Tool":"System"," • ","number"!=typeof(n=a.timestamp)||isNaN(n)?(eF.warn("formatTime received invalid timestamp:",n),"Invalid Date"):new Date(n).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})]}),a.processNodeId&&(0,r.jsx)(s.A,{title:"".concat(l?"".concat(l," — "):"","Process Node ID: ").concat(a.processNodeId),children:(0,r.jsx)(f.A,{label:"Node: ".concat(l||"".concat(a.processNodeId.substring(0,6),"...")),size:"small",color:"primary",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),S>0&&(0,r.jsx)(s.A,{title:"Nested subflow step (depth ".concat(S,")"),children:(0,r.jsx)(f.A,{label:"Subflow step",size:"small",color:"secondary",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),a.disabled&&(0,r.jsx)(f.A,{label:"Disabled",size:"small",color:"default",variant:"outlined",sx:{height:20,fontSize:"0.7rem"}}),a.usage&&(0,r.jsx)(s.A,{title:"".concat(a.usage.promptTokens.toLocaleString()," prompt + ").concat(a.usage.completionTokens.toLocaleString()," completion tokens (provider-reported)"),children:(0,r.jsx)(f.A,{label:"".concat((o=a.usage.totalTokens)>=1e3?"".concat((o/1e3).toFixed(o>=1e5?0:1),"k"):"".concat(o)," tok"),size:"small",color:"default",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),(0,r.jsx)(d.A,{size:"small",onClick:e=>v(e,a.id),sx:{ml:1},children:(0,r.jsx)(ex.A,{fontSize:"small"})})]}),(0,r.jsxs)(ei.A,{elevation:1,sx:{p:2,maxWidth:"75vw",borderRadius:2,bgcolor:"user"===a.role?"primary.light":"assistant"===a.role||"tool"===a.role?"background.paper":"info.light",color:"user"===a.role?"primary.contrastText":"assistant"===a.role||"tool"===a.role?"text.primary":"info.contrastText",position:"relative",borderLeft:"tool"===a.role?"4px solid":"none",borderColor:"tool"===a.role?"grey.400":"transparent",overflowWrap:"break-word",wordBreak:"break-word",overflow:"hidden"},children:[m?(0,r.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",gap:1},children:[(0,r.jsx)("textarea",{value:m.content,onChange:e=>b(e.target.value),style:{width:"100%",minHeight:"100px",padding:"8px",borderRadius:"4px",border:"1px solid var(--border)",fontFamily:"inherit",fontSize:"inherit",backgroundColor:"var(--surface-raised)",color:"var(--foreground)"}}),(0,r.jsxs)(F.A,{fullWidth:!0,size:"small",sx:{mt:1},children:[(0,r.jsx)(es.A,{id:"node-id-select-label",children:"Process Node"}),(0,r.jsx)(M.A,{labelId:"node-id-select-label",id:"node-id-select",value:m.nodeId||(c.length>0?c[0].id:""),label:"Process Node",onChange:e=>w(e.target.value),children:c.map(e=>(0,r.jsx)(W.A,{value:e.id,children:e.label||e.id.substring(0,8)},e.id))})]}),(0,r.jsxs)(i.default,{sx:{display:"flex",justifyContent:"flex-end",gap:1,mt:1},children:[(0,r.jsx)(h.A,{variant:"outlined",size:"small",onClick:A,children:"Cancel"}),(0,r.jsx)(h.A,{variant:"contained",size:"small",onClick:j,children:"Save"})]})]}):(0,r.jsxs)(r.Fragment,{children:["tool"!==a.role&&"string"==typeof a.content&&(0,r.jsx)(eh.oz,{remarkPlugins:[eg.A],components:eL,children:a.content}),"tool"!==a.role&&Array.isArray(a.content)&&(0,r.jsx)(i.default,{sx:{display:"flex",flexDirection:"column",gap:1},children:a.content.map((e,t)=>{var n;return(null==e?void 0:e.type)==="text"?(0,r.jsx)(eh.oz,{remarkPlugins:[eg.A],children:e.text},t):(null==e?void 0:e.type)==="image_url"&&(null==(n=e.image_url)?void 0:n.url)?(0,r.jsx)("img",{src:e.image_url.url,alt:"Image ".concat(t+1),style:{maxWidth:"100%",height:"auto",borderRadius:"4px"}},t):null})}),"tool"!==a.role&&"string"!=typeof a.content&&!Array.isArray(a.content)&&!eM(a)&&(0,r.jsx)(p.default,{variant:"body2",fontStyle:"italic",color:"text.secondary",children:"[No text content]"})]}),(()=>{let e=[...eM(a)?a.tool_calls.filter(e=>{var t;return!!(t=e.function.name)&&(t.startsWith(eE.n9)||"handoff"===t)}):[],...null!=x?x:[]];return(0,r.jsx)(i.default,{sx:{mt:1,display:"flex",flexWrap:"wrap",gap:.5},children:e.map((e,t)=>(0,r.jsx)(f.A,{size:"small",variant:"outlined",color:"secondary",icon:(0,r.jsx)(eI.A,{fontSize:"small"}),label:"Handoff → ".concat(function(e,t){let n=e.startsWith(eE.n9)?e.slice(eE.n9.length):e,r=n.replace(/_\d+$/,""),o=t.find(e=>{let t=(0,eE.RN)(e.label);return t===n||t===r});return(null==o?void 0:o.label)?o.label:r.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(a.id,"-").concat(t)))})})(),g&&g.length>0&&(0,r.jsx)(eB,{pairs:g,messageId:a.id}),"tool"===a.role&&a.tool_call_id&&!eW(a)&&(0,r.jsxs)(i.default,{children:[(0,r.jsxs)(p.default,{variant:"body2",sx:{display:"flex",alignItems:"center",color:"text.secondary",mb:1},children:[(0,r.jsx)(ej.A,{fontSize:"small",sx:{mr:1}}),"The tool responded to the assistant"]}),(0,r.jsxs)(ed.A,{defaultExpanded:!1,sx:{mb:.5,"&:before":{display:"none"},boxShadow:"none",bgcolor:"rgba(0, 0, 0, 0.02)"},children:[(0,r.jsx)(ec.A,{expandIcon:(0,r.jsx)(V.A,{}),children:(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center"},children:[(0,r.jsx)(ej.A,{fontSize:"small",sx:{mr:1,color:"text.secondary"}}),(0,r.jsx)(p.default,{variant:"subtitle2",children:"Tool Result"}),(0,r.jsx)(f.A,{label:"ID: ".concat(a.tool_call_id.substring(0,8),"..."),size:"small",color:"default",variant:"outlined",sx:{ml:1,height:20,fontSize:"0.7rem"}}),(0,r.jsx)(ea.A,{control:(0,r.jsx)(el.A,{size:"small",checked:u,onChange:e=>y(a.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,r.jsx)(eu.A,{sx:{pt:0,pb:1,overflow:"hidden"},children:(0,r.jsx)(eH,{content:a.content,showRaw:u})})]})]}),a.attachments&&a.attachments.length>0&&(0,r.jsxs)(i.default,{sx:{mt:1,pt:1,borderTop:"1px solid",borderColor:"divider"},children:[(0,r.jsx)(p.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Attachments:"}),a.attachments.map(e=>"image"===e.type?(0,r.jsx)(i.default,{sx:{mb:.5},children:(0,r.jsx)("img",{src:e.content,alt:e.originalName||"image attachment",style:{maxWidth:"100%",height:"auto",borderRadius:"4px"}})},e.id):(0,r.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,r.jsx)(ey.A,{fontSize:"small",sx:{mr:1}}):(0,r.jsx)(eb.A,{fontSize:"small",sx:{mr:1}}),(0,r.jsx)(p.default,{variant:"caption",sx:{wordBreak:"break-all"},children:e.originalName||"".concat(e.type," attachment")})]},e.id))]})]})]})}),eU=e=>{let{messages:t,pendingToolCalls:n,availableNodes:a=[],conversationId:l,onToggleDisabled:s,onSplitConversation:d,onEditMessage:c,onApproveToolCall:u,onRejectToolCall:g}=e,[x,m]=(0,o.useState)(50);(0,o.useEffect)(()=>{m(50)},[l]);let v=Math.max(0,(Array.isArray(t)?t.length:0)-x),y=(0,o.useMemo)(()=>Array.isArray(t)?v>0?t.slice(v):t:[],[t,v]),{pairsByAnchorId:b,handoffsByAnchorId:w,consumedToolCallIds:j,groups:A}=(0,o.useMemo)(()=>(function(e){let t=new Map,n=new Map,r=new Set,o=new Set,a=new Map,l=[];if(!Array.isArray(e))return{pairsByAnchorId:t,handoffsByAnchorId:n,hoistedAssistantIds:r,consumedToolCallIds:o,groups:l};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 r=a.get(e);return r||(r={anchorId:e,memberIds:[e],hoistedIds:[]},a.set(e,r),l.push(r),t.set(e,[]),n.set(e,[])),r},d=null;for(let a of e){if("user"===a.role||"system"===a.role){d=null;continue}if("assistant"!==a.role)continue;let e=Array.isArray(a.tool_calls)?a.tool_calls:[],l=[],u=[];for(let t of e){var c;if("function"!==t.type)continue;if(eT(null==(c=t.function)?void 0:c.name)){u.push(t);continue}let e=t.id,n=e?i.get(e):void 0;e&&o.add(e),l.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))})}(a),f=l.length>0||u.length>0;if(p){d=a.id,f&&(s(a.id),t.get(a.id).push(...l),n.get(a.id).push(...u));continue}if(f)if(d){let e=s(d);t.get(d).push(...l),n.get(d).push(...u),e.memberIds.push(a.id),e.hoistedIds.push(a.id),r.add(a.id)}else d=a.id,s(a.id),t.get(a.id).push(...l),n.get(a.id).push(...u)}return{pairsByAnchorId:t,handoffsByAnchorId:n,hoistedAssistantIds:r,consumedToolCallIds:o,groups:l}})(t),[t]),S=(0,o.useMemo)(()=>(function(e){let t=new Set;if(!Array.isArray(e))return t;for(let r of e){if("assistant"!==r.role)continue;let e=r.tool_calls;if(Array.isArray(e))for(let r of e){var n;"function"===r.type&&eT(null==(n=r.function)?void 0:n.name)&&"string"==typeof r.id&&r.id&&t.add(r.id)}}return t})(t),[t]),k=(0,o.useMemo)(()=>new Set(y.map(e=>e.id)),[y]),{renderPairsById:I,renderHandoffsById:C,suppressedIds:E}=(0,o.useMemo)(()=>{let e=new Map,t=new Map,n=new Set;for(let l of A){var r,o,a;let i=null!=(r=b.get(l.anchorId))?r:[],s=null!=(o=w.get(l.anchorId))?o:[],d=null!=(a=l.memberIds.find(e=>k.has(e)))?a:l.anchorId;for(let r of(i.length>0&&e.set(d,i),s.length>0&&t.set(d,s),l.hoistedIds))r!==d&&n.add(r)}return{renderPairsById:e,renderHandoffsById:t,suppressedIds:n}},[A,b,w,k]),[N,z]=o.useState(null),[R,D]=o.useState(null),[_,O]=o.useState(null),[F,M]=o.useState(!1),[L,H]=o.useState(""),[B,J]=o.useState(null),[U,q]=o.useState({}),G=(0,o.useCallback)((e,t)=>{eF.debug("handleMenuOpen called with messageId: ".concat(t)),z(e.currentTarget),D(t)},[]),K=(0,o.useCallback)((e,t)=>{q(n=>({...n,[e]:t}))},[]),Y=(0,o.useCallback)(e=>{H(e)},[]),Q=(0,o.useCallback)(e=>{J(e)},[]),X=()=>{z(null),D(null)},Z=()=>{if(R){let e=t.find(e=>e.id===R);e&&"user"===e.role&&"string"==typeof e.content&&(H(e.content),J(e.processNodeId||(a.length>0?a[0].id:"")),O(R),M(!0)),X()}},$=()=>{_&&c&&(c(_,L,B||""),M(!1),O(null),J(null))},ee=()=>{M(!1),O(null),J(null)},et=(0,o.useMemo)(()=>{let e=new Map;for(let t of a)e.set(t.id,t.label);return e},[a]),en=(0,o.useMemo)(()=>R&&t.find(e=>e.id===R)||null,[R,t]);return(0,r.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",gap:2},children:[v>0&&(0,r.jsx)(i.default,{sx:{display:"flex",justifyContent:"center"},children:(0,r.jsxs)(h.A,{size:"small",variant:"outlined",onClick:()=>m(e=>e+200),children:["Show earlier messages (",v," more)"]})}),y.map((e,t)=>{if(eW(e)||"tool"===e.role&&"string"==typeof e.tool_call_id&&S.has(e.tool_call_id)||"tool"===e.role&&"string"==typeof e.tool_call_id&&j.has(e.tool_call_id)||E.has(e.id))return null;let n=F&&e.id===_;return(0,r.jsx)(eJ,{message:e,nodeLabel:e.processNodeId?et.get(e.processNodeId):void 0,availableNodes:a,showRaw:!!U[e.id],toolCallPairs:I.get(e.id),hoistedHandoffs:C.get(e.id),edit:n?{content:L,nodeId:B}:null,onMenuOpen:G,onToggleRaw:K,onEditContentChange:Y,onEditNodeChange:Q,onSaveEdit:n?$:void 0,onCancelEdit:n?ee:void 0},e.id||"msg-".concat(v+t))}),(0,r.jsxs)(ep.A,{anchorEl:N,open:!!N,onClose:X,children:[en&&(()=>{eF.debug("Entering menu item rendering logic",{activeMessageId:R}),eF.debug("Active message object for menu:",en),eF.debug("Active message role for menu:",null==en?void 0:en.role);try{let e=!!c,t="user"===en.role&&e;if(eF.debug("Rendering Edit Message menu item check",{activeMessageId:en.id,messageRole:en.role,onEditMessagePropType:typeof c,hasOnEditMessageProp:e,shouldShowEdit:t}),t)return(0,r.jsxs)(W.A,{onClick:Z,children:[(0,r.jsx)(ef.A,{children:(0,r.jsx)(T.A,{fontSize:"small"})}),(0,r.jsx)(P.A,{children:"Edit Message"})]});return null}catch(e){return eF.error("Error rendering Edit Message menu item",{error:e}),null}})(),(0,r.jsxs)(W.A,{onClick:()=>{R&&(s(R),X())},children:[(0,r.jsx)(ef.A,{children:(0,r.jsx)(em.A,{fontSize:"small"})}),(0,r.jsx)(P.A,{children:(null==en?void 0:en.disabled)?"Enable Message":"Disable Message"})]}),(0,r.jsxs)(W.A,{onClick:()=>{R&&(d(R),X())},children:[(0,r.jsx)(ef.A,{children:(0,r.jsx)(ev.A,{fontSize:"small"})}),(0,r.jsx)(P.A,{children:"Split Conversation Here"})]})]}),n&&n.length>0&&(0,r.jsxs)(ei.A,{elevation:2,sx:{p:2,mt:2,bgcolor:"warning.light",border:"1px solid",borderColor:"warning.main",borderRadius:2},children:[(0,r.jsxs)(p.default,{variant:"h6",sx:{mb:1,display:"flex",alignItems:"center"},children:[(0,r.jsx)(ew.A,{sx:{mr:1}})," Tool Approval Required"]}),(0,r.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,eC.yo)(e.function.name),o=e.function.arguments;try{let t=JSON.parse(e.function.arguments);o=JSON.stringify(t,null,2)}catch(e){}return(0,r.jsxs)(ed.A,{defaultExpanded:!0,sx:{mb:1,"&:before":{display:"none"},boxShadow:1},children:[(0,r.jsx)(ec.A,{expandIcon:(0,r.jsx)(V.A,{}),children:(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",width:"100%"},children:[(0,r.jsx)(ew.A,{fontSize:"small",sx:{mr:1,color:"primary.main"}}),(0,r.jsx)(p.default,{variant:"subtitle2",sx:{fontWeight:"bold",flexGrow:1},children:n}),(0,r.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,r.jsxs)(eu.A,{sx:{pt:0},children:[(0,r.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:o}),(0,r.jsxs)(i.default,{sx:{display:"flex",justifyContent:"flex-end",gap:1,mt:1},children:[(0,r.jsx)(h.A,{variant:"outlined",color:"error",size:"small",startIcon:(0,r.jsx)(ek.A,{}),onClick:()=>g&&g(e.id),disabled:!g,children:"Reject"}),(0,r.jsx)(h.A,{variant:"contained",color:"success",size:"small",startIcon:(0,r.jsx)(eS.A,{}),onClick:()=>u&&u(e.id),disabled:!u,children:"Approve"})]})]})]},e.id||"ptc-".concat(t))})]})]})};var eq=n(84869);let eG=(0,eP.h)("frontend/services/transcription");async function eV(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{onProgress:n,onStatusChange:r,language:o}=t;try{if(eG.debug("Starting transcription service"),r&&r("Initializing transcription..."),!(0,eq.G)().supported)throw Error("Web Speech API is not supported in this browser");r&&r("Using browser speech recognition...");let t=await (0,eq.S)(e,{language:o,onInterimResult:e=>{r&&r("Transcribing: ".concat(e)),n&&n(50)}});return r&&r("Transcription completed"),eG.debug("Web Speech API transcription completed successfully",{textLength:t.length}),{text:t,success:!0,engine:"webspeech"}}catch(e){return eG.error("Transcription failed",{error:e}),r&&r("Transcription failed"),{text:"Transcription failed. Please check if your browser supports speech recognition.",success:!1,error:e instanceof Error?e.message:String(e)}}}var eK=n(9164),eY=n(22822),eQ=n(35205),eX=n(77073),eZ=n(9693),e$=n(4823),e0=n(74879);let e1=(0,eP.h)("frontend/components/Chat/ChatInput"),e2=e=>{var t;let{onSendMessage:n,disabled:a=!1,requireApproval:l=!1,onRequireApprovalChange:c,executeInDebugger:g=!1,onExecuteInDebuggerChange:x,availableNodes:b=[],currentNodeId:j=null,nodeOverrideActive:A=!1,onSelectNode:S}=e,{settings:k}=(0,eK.useStorage)(),[I,C]=(0,o.useState)(""),[E,T]=(0,o.useState)([]),[z,R]=(0,o.useState)(!1),[D,O]=(0,o.useState)(0),[F,M]=(0,o.useState)(null),L=(0,o.useRef)(null),H=(0,o.useRef)(null),B=(0,o.useRef)([]),[J,U]=(0,o.useState)(null),q=(null==(t=b.find(e=>e.id===j))?void 0:t.label)||(j?"".concat(j.substring(0,6),"..."):"Start"),[G,V]=(0,o.useState)(!1),[K,Y]=(0,o.useState)(""),[Q,X]=(0,o.useState)(""),[Z,$]=(0,o.useState)("document"),[ee,et]=(0,o.useState)(!1),[en,er]=(0,o.useState)(0),[el,es]=(0,o.useState)(""),ed=()=>{(I.trim()||E.length>0)&&(e1.debug("Sending message",{messageLength:I.length,attachmentsCount:E.length}),n(I,E),C(""),T([]))},ec=async e=>{let t=e.target.files;if(!t||0===t.length)return;let n=t[0];e1.debug("File selected",{fileName:n.name,fileSize:n.size,fileType:n.type}),X("Processing ".concat(n.name)),$("document"),Y(""),et(!0),V(!0);try{let e=await eu(n);e1.debug("File read successfully",{contentLength:e.length}),Y(e),et(!1)}catch(e){e1.error("Error reading file:",e),Y("Error reading file. Please try again with a text file."),et(!1)}L.current&&(L.current.value="")},eu=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=e=>{var r;(null==(r=e.target)?void 0:r.result)?t(e.target.result):n(Error("Failed to read file"))},r.onerror=()=>{n(Error("Error reading file"))},r.readAsText(e)}),eh=async()=>{e1.debug("Starting audio recording");try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});e1.debug("Audio stream obtained successfully"),B.current=[];let t=new MediaRecorder(e);H.current=t,t.ondataavailable=e=>{e.data.size>0&&B.current.push(e.data)},t.onstop=async()=>{let t=new Blob(B.current,{type:"audio/wav"});X("Audio Recording"),$("audio"),Y(""),et(!0),V(!0);try{if(((null==k?void 0:k.speech)||{enabled:!0,modelSize:"base",autoDownload:!1}).enabled){es("Initializing transcription..."),er(0);let e=await eV(t,{onProgress:er,onStatusChange:es,language:navigator.language});if(e.success){let t=e.text;Y(t),e1.debug("Transcription successful",{textLength:e.text.length,engine:e.engine})}else Y("Error transcribing audio: ".concat(e.error,".")),e1.error("Transcription failed",{error:e.error})}else Y("Speech recognition is disabled in settings. Enable it to get automatic transcriptions.")}catch(e){e1.error("Error handling audio recording",{error:e}),Y("Failed to process audio: ".concat(e))}finally{et(!1),e.getTracks().forEach(e=>e.stop())}},t.start(),R(!0);let n=setInterval(()=>{O(e=>e+1)},1e3);M(n)}catch(e){e1.error("Error starting recording:",e),alert("Could not access microphone. Please check permissions.")}};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(ei.A,{elevation:3,sx:{p:2,display:"flex",flexDirection:"column",borderRadius:2},children:[E.length>0&&(0,r.jsx)(i.default,{sx:{mb:2,display:"flex",flexWrap:"wrap",gap:1},children:E.map(e=>(0,r.jsxs)(ei.A,{variant:"outlined",sx:{p:1,display:"flex",alignItems:"center",borderRadius:1,bgcolor:"background.default"},children:["image"===e.type?(0,r.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,r.jsx)(ey.A,{fontSize:"small",sx:{mr:1}}):(0,r.jsx)(eb.A,{fontSize:"small",sx:{mr:1}}),(0,r.jsx)(p.default,{variant:"body2",noWrap:!0,sx:{maxWidth:150},children:e.originalName||"".concat(e.type," attachment")}),(0,r.jsx)(d.A,{size:"small",onClick:()=>(e=>{e1.debug("Removing attachment",{id:e}),T(E.filter(t=>t.id!==e))})(e.id),sx:{ml:1},children:(0,r.jsx)(eX.A,{fontSize:"small"})})]},e.id))}),(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"flex-end"},children:[(0,r.jsx)(u.A,{fullWidth:!0,multiline:!0,maxRows:4,"data-tour":"chat-input",placeholder:"Type a message...",value:I,onChange:e=>{C(e.target.value)},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e1.debug("Enter key pressed, sending message"),e.preventDefault(),ed())},onPaste:e=>{var t;let n=null==(t=e.clipboardData)?void 0:t.items;if(!n)return;let r=[];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&&r.push(e)}}0!==r.length&&(e.preventDefault(),e1.debug("Pasting image attachment(s)",{count:r.length}),r.forEach(e=>{let t=new FileReader;t.onload=t=>{var n;let r=null==(n=t.target)?void 0:n.result;if("string"!=typeof r)return;let o=(e.type.split("/")[1]||"png").split("+")[0];T(t=>[...t,{id:(0,e0.A)(),type:"image",content:r,originalName:e.name&&!/^image\.\w+$/i.test(e.name)?e.name:"Pasted image.".concat(o)}])},t.onerror=()=>e1.error("Failed to read pasted image"),t.readAsDataURL(e)}))},disabled:a,variant:"outlined",sx:{mr:1},InputProps:{sx:{borderRadius:2}}}),(0,r.jsx)(s.A,{title:"Attach document",children:(0,r.jsx)(d.A,{color:"primary",onClick:()=>{var e;e1.debug("File selection triggered"),null==(e=L.current)||e.click()},disabled:a||z,children:(0,r.jsx)(ey.A,{})})}),(0,r.jsx)("input",{type:"file",ref:L,onChange:ec,style:{display:"none"},accept:".txt,.md,.json,.csv,.html,.xml,.js,.ts,.jsx,.tsx,.css,.scss"}),(0,r.jsx)(s.A,{title:z?"Stop recording":"Record audio",children:(0,r.jsxs)(d.A,{color:z?"error":"primary",onClick:z?()=>{e1.debug("Stopping audio recording"),H.current&&"inactive"!==H.current.state&&(H.current.stop(),R(!1),F&&(clearInterval(F),M(null)),O(0))}:eh,disabled:a,children:[(0,r.jsx)(eb.A,{}),z&&(0,r.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"))})(D)})]})}),(0,r.jsx)(s.A,{title:"Send message",children:(0,r.jsx)(d.A,{color:"primary",onClick:ed,disabled:a||!I.trim()&&0===E.length,children:(0,r.jsx)(eQ.A,{})})})]})," ",(c||S&&b.length>0)&&(0,r.jsxs)(i.default,{sx:{mt:1,display:"flex",justifyContent:"flex-start",alignItems:"center",flexWrap:"wrap",gap:1},children:[S&&b.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.A,{title:A?"Next message will run on this manually picked node — click to change":"Node the next message will run on — click to pick a different one",children:(0,r.jsx)(f.A,{icon:(0,r.jsx)(N.A,{}),label:q,size:"small",color:A?"primary":"default",variant:A?"filled":"outlined",onClick:e=>U(e.currentTarget),disabled:a})}),(0,r.jsxs)(ep.A,{anchorEl:J,open:!!J,onClose:()=>U(null),children:[(0,r.jsxs)(W.A,{selected:!A,onClick:()=>{S(null),U(null)},children:[(0,r.jsx)(ef.A,{children:(0,r.jsx)(e$.A,{fontSize:"small"})}),(0,r.jsx)(P.A,{primary:"Automatic",secondary:"Follow the conversation",secondaryTypographyProps:{variant:"caption"}})]}),(0,r.jsx)(_.A,{}),b.map(e=>(0,r.jsxs)(W.A,{selected:A&&e.id===j,onClick:()=>{S(e.id),U(null)},children:[(0,r.jsx)(ef.A,{children:e.id===j?(0,r.jsx)(eZ.A,{fontSize:"small"}):null}),(0,r.jsx)(P.A,{primary:e.label})]},e.id))]})]}),c&&(0,r.jsx)(ea.A,{control:(0,r.jsx)(eY.A,{checked:l,onChange:e=>c(e.target.checked),size:"small",disabled:a}),label:(0,r.jsx)(p.default,{variant:"caption",children:"Require Tool Approvals"}),sx:{mr:"auto"}}),x&&(0,r.jsx)(ea.A,{control:(0,r.jsx)(eY.A,{checked:g,onChange:e=>x(e.target.checked),size:"small",disabled:a}),label:(0,r.jsx)(p.default,{variant:"caption",children:"Execute in Debugger"}),sx:{ml:2}})]})," "]})," ",(0,r.jsxs)(m.A,{open:G,onClose:()=>!ee&&V(!1),maxWidth:"md",fullWidth:!0,children:[(0,r.jsxs)(v.A,{children:[Q,!ee&&(0,r.jsx)(d.A,{"aria-label":"close",onClick:()=>V(!1),sx:{position:"absolute",right:8,top:8},children:(0,r.jsx)(eX.A,{})})]}),(0,r.jsx)(y.A,{dividers:!0,children:ee?(0,r.jsxs)(i.default,{sx:{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",p:4},children:[(0,r.jsx)(eo.default,{value:"audio"===Z&&en?en:void 0,variant:"audio"===Z&&en>0?"determinate":"indeterminate"}),"audio"===Z&&(0,r.jsxs)(i.default,{sx:{mt:2,textAlign:"center"},children:[(0,r.jsx)(p.default,{variant:"body2",children:el||"Processing audio..."}),en>0&&(0,r.jsxs)(p.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:[Math.round(en),"%"]})]})]}):(0,r.jsx)(u.A,{multiline:!0,fullWidth:!0,minRows:10,maxRows:20,value:K,onChange:e=>Y(e.target.value),variant:"outlined",placeholder:"document"===Z?"Document content":"Audio transcription"})}),(0,r.jsxs)(w.A,{children:[(0,r.jsx)(h.A,{onClick:()=>V(!1),disabled:ee,children:"Cancel"}),(0,r.jsx)(h.A,{onClick:()=>{e1.debug("Adding attachment",{type:Z,titleLength:Q.length}),T([...E,{id:(0,e0.A)(),type:Z,content:K,originalName:Q}]),V(!1)},variant:"contained",disabled:ee||!K.trim(),children:"Add to Message"})]})]})]})};var e5=n(25731),e6=n(12857),e4=n(16186);let e8={byIndex:{}};function e7(e,t,n){for(let r=0;r<t;r++)e[r]||(e[r]={laneIndex:r,laneCount:t,label:"Lane ".concat(r+1,"/").concat(t),status:"pending",lastEventAt:n})}let e3=e=>{let{lane:t,onOpenLane:n}=e,o=!!t.laneConversationId&&!!n,a="pending"===t.status;return(0,r.jsxs)(i.default,{onClick:o?()=>n(t.laneConversationId):void 0,sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.25,borderRadius:1,...o&&{cursor:"pointer","&:hover":{bgcolor:"action.hover",textDecoration:"underline"}}},children:["running"===t.status&&(0,r.jsx)(eo.default,{size:14,sx:{flexShrink:0}}),"completed"===t.status&&(0,r.jsx)(k.A,{sx:{fontSize:16,flexShrink:0},color:"success"}),"error"===t.status&&(0,r.jsx)(e6.A,{sx:{fontSize:16,flexShrink:0},color:"error"}),a&&(0,r.jsx)(e4.A,{sx:{fontSize:16,flexShrink:0},color:"disabled"}),(0,r.jsxs)(p.default,{variant:"caption",color:a?"text.disabled":"textSecondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[t.label,a&&" — queued","running"===t.status&&t.activity&&(0,r.jsxs)(p.default,{component:"span",variant:"caption",color:"text.disabled",children:[" \xb7 ",t.activity]})]})]})},e9=e=>{var t;let{liveStats:n,onStop:a,stopDisabled:l,awaitingApproval:s,lanes:d,onOpenLane:c}=e,[u,f]=(0,o.useState)(()=>Date.now());(0,o.useEffect)(()=>{let e=setInterval(()=>f(Date.now()),1e3);return()=>clearInterval(e)},[]);let g=n?Math.max(0,Math.round((u-n.startedAt)/1e3)):0,x=n?Math.round((u-n.lastEventAt)/1e3):0,m=!s&&!!n&&x>=60,v=d?Object.values(d.byIndex).sort((e,t)=>e.laneIndex-t.laneIndex):[],y=v.length>0?(e=>{let t=e.filter(e=>"running"===e.status).length,n=e.filter(e=>"pending"===e.status).length,r=e.filter(e=>"completed"===e.status).length,o=e.filter(e=>"error"===e.status).length;if(0===t&&0===n&&o>0)return{text:"".concat(o,"/").concat(e.length," lanes failed — partial results"),warning:!0};let a=[t>0?"".concat(t," running"):"",n>0?"".concat(n," queued"):"",r>0?"".concat(r," done"):"",o>0?"".concat(o," failed"):""].filter(Boolean);return{text:"".concat(e.length," lanes — ").concat(a.join(", ")),warning:o>0}})(v):null;return(0,r.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",my:2,gap:.5},children:[(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:2},children:[s?(0,r.jsx)(e5.A,{fontSize:"small",color:"warning"}):(0,r.jsx)(eo.default,{size:20,color:m?"warning":"primary"}),(0,r.jsx)(p.default,{variant:"body2",color:"textSecondary",children:s?"Waiting for tool approval":(null==n?void 0:n.activeNode)?"Running: ".concat(n.activeNode):"Working…"}),(0,r.jsx)(h.A,{variant:"outlined",color:"secondary",size:"small",onClick:a,disabled:l,children:"Stop"})]}),y&&(0,r.jsxs)(i.default,{sx:{display:"flex",flexDirection:"column",alignItems:"stretch",minWidth:280,maxWidth:520},children:[(0,r.jsx)(p.default,{variant:"caption",color:y.warning?"warning.main":"textSecondary",sx:{px:1,fontWeight:500},children:y.text}),v.map(e=>(0,r.jsx)(e3,{lane:e,onOpenLane:c},e.laneIndex))]}),!s&&(0,r.jsxs)(p.default,{variant:"caption",color:m?"warning.main":"textSecondary",children:[(null!=(t=null==n?void 0:n.totalTokens)?t:0).toLocaleString()," tokens \xb7 ",g,"s elapsed",m?" \xb7 no activity for ".concat(x,"s — may be stuck"):""]})]})};var te=n(88538),tt=n(16963),tn=n(2456),tr=n(64792),to=n(71356),ta=n(45202),tl=n(52005),ti=n(77998);let ts=e=>e>=1e3?"".concat((e/1e3).toFixed(e>=1e5?0:1),"k"):"".concat(e),td=e=>{var t;let{usage:n,contextInfo:a,availableNodes:l}=e,[d,c]=(0,o.useState)(null);if(!n&&!a)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,g=n?Math.max(0,n.promptTokens-h):0,x=n?Math.max(0,n.totalTokens-h):0,m=(null==a?void 0:a.contextWindow)&&a.contextWindow>0?Math.min(100,Math.round(a.promptTokens/a.contextWindow*100)):void 0;return(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1.5,flexShrink:0},children:[n&&x>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.A,{title:"Tokens this conversation — ".concat(g.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,r.jsx)(f.A,{icon:(0,r.jsx)(ti.A,{}),label:"".concat(ts(x)," tokens"),size:"small",variant:"outlined",onClick:e=>c(e.currentTarget),sx:{cursor:"pointer"}})}),(0,r.jsx)(te.Ay,{open:!!d,anchorEl:d,onClose:()=>c(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:(0,r.jsxs)(i.default,{sx:{p:2,maxWidth:420},children:[(0,r.jsx)(p.default,{variant:"subtitle2",sx:{mb:1},children:"Token usage by node"}),(0,r.jsxs)(tt.A,{size:"small",children:[(0,r.jsx)(tn.A,{children:(0,r.jsxs)(tr.A,{children:[(0,r.jsx)(to.A,{children:"Node"}),(0,r.jsx)(to.A,{align:"right",children:"Prompt"}),(0,r.jsx)(to.A,{align:"right",children:"Completion"}),(0,r.jsx)(to.A,{align:"right",children:"Total"})]})}),(0,r.jsxs)(ta.A,{children:[u.map(e=>{let[t,n]=e;return(0,r.jsxs)(tr.A,{children:[(0,r.jsx)(to.A,{children:(0,r.jsx)(s.A,{title:t,children:(0,r.jsx)("span",{children:(e=>{var t;return(null==(t=l.find(t=>t.id===e))?void 0:t.label)||"".concat(e.substring(0,8),"…")})(t)})})}),(0,r.jsx)(to.A,{align:"right",children:n.promptTokens.toLocaleString()}),(0,r.jsx)(to.A,{align:"right",children:n.completionTokens.toLocaleString()}),(0,r.jsx)(to.A,{align:"right",children:n.totalTokens.toLocaleString()})]},t)}),(0,r.jsxs)(tr.A,{children:[(0,r.jsx)(to.A,{sx:{fontWeight:"bold"},children:"Total"}),(0,r.jsx)(to.A,{align:"right",sx:{fontWeight:"bold"},children:n.promptTokens.toLocaleString()}),(0,r.jsx)(to.A,{align:"right",sx:{fontWeight:"bold"},children:n.completionTokens.toLocaleString()}),(0,r.jsx)(to.A,{align:"right",sx:{fontWeight:"bold"},children:n.totalTokens.toLocaleString()})]})]})]}),h>0&&(0,r.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 (",x.toLocaleString(),") with those cached reads excluded."]})]})})]}),a&&void 0!==m&&(0,r.jsx)(s.A,{title:"Context of the latest call".concat(a.modelDisplayName?" (".concat(a.modelDisplayName,")"):"",": ").concat(a.promptTokens.toLocaleString()," of ").concat(a.contextWindow.toLocaleString()," tokens"),children:(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1,minWidth:140},children:[(0,r.jsx)(tl.A,{variant:"determinate",value:m,color:m>=90?"error":m>=70?"warning":"primary",sx:{flex:1,height:6,borderRadius:3}}),(0,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:[ts(a.promptTokens),"/",ts(a.contextWindow)," (",m,"%)"]})]})}),a&&void 0===m&&(0,r.jsx)(s.A,{title:"Prompt size of the latest call".concat(a.modelDisplayName?" (".concat(a.modelDisplayName,")"):"",". Set the model's Context Window in its settings to see a usage meter."),children:(0,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:["ctx ",ts(a.promptTokens)]})})]})};var tc=n(75870),tu=n(43076);let tp=(0,eP.h)("frontend/components/Chat/QuickChatDialog"),tf=e=>{let{open:t,onClose:n,onStart:a}=e,[l,s]=(0,o.useState)([]),[g,x]=(0,o.useState)([]),[b,j]=(0,o.useState)(!1),[A,S]=(0,o.useState)(null),[k,I]=(0,o.useState)(""),[C,E]=(0,o.useState)(""),[T,N]=(0,o.useState)({}),[z,R]=(0,o.useState)(!1),[D,P]=(0,o.useState)(null);(0,o.useEffect)(()=>{if(!t)return;let e=!1;return j(!0),S(null),(async()=>{try{let[t,n]=await Promise.all([tu.N.loadModels(),eR.S.loadServerConfigs()]);if(e)return;s(t);let r=Array.isArray(n)?n.filter(e=>!e.disabled).map(e=>e.name):[];x(r),I(e=>{var n;return e||(null==(n=t[0])?void 0:n.id)||""})}catch(t){e||(tp.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,o.useEffect)(()=>{t||(E(""),N({}),P(null),R(!1))},[t]);let O=(0,o.useCallback)(e=>{N(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}}})},[]),L=(0,o.useCallback)(async e=>{N(t=>{var n;let r=null!=(n=t[e])?n:{selected:!1,tools:null,expanded:!1};return{...t,[e]:{...r,expanded:!r.expanded}}});let t=T[e];if(!(null==t?void 0:t.available)&&!(null==t?void 0:t.loading)){N(t=>{var n;return{...t,[e]:{...null!=(n=t[e])?n:{selected:!1,tools:null,expanded:!0},loading:!0}}});try{let{tools:t}=await eR.S.listServerTools(e),n=Array.isArray(t)?t.map(e=>e.name).filter(Boolean):[];N(t=>{var r;return{...t,[e]:{...null!=(r=t[e])?r:{selected:!1,tools:null,expanded:!0},available:n,loading:!1}}})}catch(t){tp.warn("Failed to load tools for ".concat(e),t),N(t=>{var n;return{...t,[e]:{...null!=(n=t[e])?n:{selected:!1,tools:null,expanded:!0},available:[],loading:!1}}})}}},[T]),B=(0,o.useCallback)((e,t,n)=>{N(r=>{var o,a;let l=null!=(o=r[e])?o:{selected:!0,tools:null,expanded:!0},i=new Set(null!=(a=l.tools)?a:new Set(n));return i.has(t)?i.delete(t):i.add(t),{...r,[e]:{...l,selected:!0,tools:i}}})},[]),J=!!k&&!z&&!b,U=async()=>{if(!k)return void P("Pick a model to chat with.");R(!0),P(null);let e=g.filter(e=>{var t;return null==(t=T[e])?void 0:t.selected}).map(e=>{let t=T[e];return!t.tools||t.available&&t.tools.size===t.available.length?{name:e}:{name:e,enabledTools:[...t.tools]}});try{await a({modelId:k,servers:e,systemPrompt:C.trim()||void 0})}catch(e){tp.warn("Quick chat failed to start",e),P(e instanceof Error?e.message:"Could not start the quick chat."),R(!1)}};return(0,r.jsxs)(m.A,{open:t,onClose:z?void 0:n,maxWidth:"sm",fullWidth:!0,children:[(0,r.jsx)(v.A,{children:"Quick Chat"}),(0,r.jsxs)(y.A,{children:[(0,r.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,r.jsx)(c.A,{severity:"error",sx:{mb:2},children:A}),(0,r.jsxs)(F.A,{fullWidth:!0,size:"small",sx:{mb:2},disabled:b,children:[(0,r.jsx)(es.A,{id:"quick-chat-model-label",children:"Model"}),(0,r.jsxs)(M.A,{labelId:"quick-chat-model-label",label:"Model",value:k,onChange:e=>I(e.target.value),children:[0===l.length&&(0,r.jsx)(W.A,{value:"",disabled:!0,children:b?"Loading…":"No models configured"}),l.map(e=>(0,r.jsx)(W.A,{value:e.id,children:e.displayName||e.name},e.id))]})]}),(0,r.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:C,onChange:e=>E(e.target.value),sx:{mb:2}}),(0,r.jsx)(_.A,{sx:{mb:1}}),(0,r.jsx)(p.default,{variant:"subtitle2",gutterBottom:!0,children:"MCP servers (optional)"}),b?(0,r.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,r.jsx)(eo.default,{size:22})}):0===g.length?(0,r.jsx)(p.default,{variant:"body2",color:"text.secondary",children:"No connected MCP servers. You can still chat with the model alone."}):g.map(e=>{let t=T[e],n=!!(null==t?void 0:t.selected),o=null==t?void 0:t.available,a=null==t?void 0:t.tools;return(0,r.jsxs)(i.default,{sx:{mb:.5},children:[(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center"},children:[(0,r.jsx)(ea.A,{sx:{flexGrow:1,mr:0},control:(0,r.jsx)(eY.A,{size:"small",checked:n,onChange:()=>O(e)}),label:(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,r.jsx)(p.default,{variant:"body2",children:e}),n&&(0,r.jsx)(f.A,{size:"small",variant:"outlined",label:a?"".concat(a.size," tool").concat(1===a.size?"":"s"):"all tools"})]})}),(0,r.jsx)(d.A,{size:"small",onClick:()=>L(e),"aria-label":"customize ".concat(e," tools"),children:(null==t?void 0:t.expanded)?(0,r.jsx)(K.A,{fontSize:"small"}):(0,r.jsx)(V.A,{fontSize:"small"})})]}),(0,r.jsx)(H.A,{in:!!(null==t?void 0:t.expanded),unmountOnExit:!0,children:(0,r.jsx)(i.default,{sx:{pl:4,pb:1},children:(null==t?void 0:t.loading)?(0,r.jsx)(eo.default,{size:16}):o&&o.length>0?o.map(t=>{let n=!a||a.has(t);return(0,r.jsx)(ea.A,{sx:{display:"flex"},control:(0,r.jsx)(eY.A,{size:"small",checked:n,onChange:()=>B(e,t,o)}),label:(0,r.jsx)(p.default,{variant:"caption",children:t})},t)}):(0,r.jsx)(p.default,{variant:"caption",color:"text.secondary",children:o?"No tools reported (server may be offline).":""})})})]},e)}),D&&(0,r.jsx)(c.A,{severity:"error",sx:{mt:2},children:D})]}),(0,r.jsxs)(w.A,{children:[(0,r.jsx)(h.A,{onClick:n,disabled:z,children:"Cancel"}),(0,r.jsx)(h.A,{variant:"contained",onClick:U,disabled:!J,startIcon:z?(0,r.jsx)(eo.default,{size:16,color:"inherit"}):void 0,children:z?"Starting…":"Start chat"})]})]})};var th=n(49692),tg=n(39486),tx=n(82446),tm=n(54178),tv=n(56900),ty=n(11305),tb=n(48116),tw=n(33567),tj=n(22539),tA=n(90057),tS=n(33420),tk=n(53911);let tI={byNode:{},byResource:{},byResourceName:{},resourceVersion:0};function tC(e,t){return"".concat(e," ").concat(t)}var tE=n(59323),tT=n(72308),tN=n(6422),tz=n(48363);let tR=(0,eP.h)("frontend/components/Chat/RunResourcesPanel"),tD=e=>{let{conversationId:t,refreshToken:n}=e,[a,l]=(0,o.useState)(null),[s,d]=(0,o.useState)(null);return((0,o.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||(l(Array.isArray(t.resources)?t.resources:[]),d(null))}).catch(t=>{e||(tR.warn("Failed to load run resources",t),d(t instanceof Error?t.message:String(t)))}),()=>{e=!0}},[t,n]),s)?(0,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",children:["Run data unavailable (",s,")"]}):null===a?(0,r.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",p:1},children:(0,r.jsx)(eo.default,{size:16})}):0===a.length?(0,r.jsx)(p.default,{variant:"caption",color:"text.secondary",children:"No data artifacts captured in this run yet."}):(0,r.jsx)(L.A,{dense:!0,disablePadding:!0,children:[...a].sort((e,t)=>t.createdAt-e.createdAt).map(e=>{var t;return(0,r.jsxs)(R.Ay,{disableGutters:!0,sx:{alignItems:"flex-start"},children:[(0,r.jsx)(ef.A,{sx:{minWidth:30,mt:.5},children:function(e){switch(e){case"image":return(0,r.jsx)(tT.A,{fontSize:"small",sx:{color:"#009688"}});case"audio":return(0,r.jsx)(tN.A,{fontSize:"small",sx:{color:"#009688"}});case"link":return(0,r.jsx)(tz.A,{fontSize:"small",sx:{color:"#009688"}});default:return(0,r.jsx)(tE.A,{fontSize:"small",sx:{color:"#009688"}})}}(e.kind)}),(0,r.jsx)(P.A,{primary:(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap"},children:[(0,r.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,r.jsx)(f.A,{label:e.mimeType,size:"small",variant:"outlined",sx:{height:18,fontSize:"0.65rem"}}),(0,r.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,r.jsxs)(p.default,{variant:"caption",color:"text.secondary",component:"span",sx:{wordBreak:"break-all"},children:["by ",function(e){var t,n,r,o,a,l,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!=(r=s.server)?r:"?","/").concat(null!=(o=s.toolName)?o:"?");case"capture":return"step ".concat(null!=(l=null!=(a=s.nodeName)?a:s.nodeId)?l:"?");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 tP=n(14913),t_=n(57883);let tO={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"}},tF={whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:"0.75rem",fontFamily:"inherit"},tM=e=>{let{role:t,content:n,toolCallNames:o,status:a,faded:l}=e;return(0,r.jsxs)(ei.A,{variant:"outlined",sx:{p:1,mb:.75,opacity:l?.55:1,borderStyle:l?"dashed":"solid"},children:[(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.5,flexWrap:"wrap"},children:[(0,r.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"}),o&&o.length>0&&(0,r.jsx)(f.A,{size:"small",variant:"outlined",label:"\uD83D\uDD27 ".concat(o.join(", ")),sx:{maxWidth:"100%"}}),a&&"sent"!==a&&"system"!==a&&(0,r.jsx)(f.A,{size:"small",color:tO[a].color,label:tO[a].label})]}),n.trim().length>0?(0,r.jsx)("pre",{style:tF,children:n}):(0,r.jsx)(p.default,{variant:"caption",color:"textSecondary",children:"(no text content)"})]})},tW=e=>{let{provenance:t}=e;return(0,r.jsxs)(i.default,{children:[(0,r.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,o;return(0,r.jsx)(tM,{role:e.role,content:null!=(n=e.preview)?n:"",toolCallNames:e.toolCallNames,status:e.status,faded:"sent"!==e.status&&"system"!==e.status},null!=(o=e.id)?o:"hist-".concat(t))}),t.some(e=>"sent"!==e.status&&"system"!==e.status)&&(0,r.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)."})]})},tL=()=>{},tH=e=>{let{modelInput:t,conversationId:n}=e,[a,l]=(0,o.useState)("wire"),{systemMessage:s,wireMessages:d,provenance:c,counts:u,inputMode:h}=t,g=(0,o.useMemo)(()=>(d||[]).filter(e=>"system"!==e.role),[d]);return(0,r.jsxs)(i.default,{sx:{height:"100%",display:"flex",flexDirection:"column",p:1},children:[(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5,flexWrap:"wrap",mb:1},children:[(0,r.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,r.jsx)(f.A,{size:"small",variant:"outlined",label:"inputMode: ".concat(h)})]}),(0,r.jsxs)(ed.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,r.jsx)(ec.A,{expandIcon:(0,r.jsx)(V.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,r.jsx)(p.default,{variant:"caption",children:(0,r.jsx)("b",{children:"System message"})})}),(0,r.jsx)(eu.A,{sx:{p:0},children:s&&s.content.trim().length>0?(0,r.jsx)(ei.A,{variant:"outlined",sx:{p:1,maxHeight:220,overflowY:"auto"},children:(0,r.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",margin:0,fontSize:"0.75rem",fontFamily:"inherit"},children:s.content})}):(0,r.jsx)(p.default,{variant:"caption",color:"textSecondary",children:"(no system message)"})})]}),(0,r.jsxs)(tP.A,{size:"small",exclusive:!0,value:a,onChange:(e,t)=>{t&&l(t)},sx:{my:1},children:[(0,r.jsx)(t_.A,{value:"wire",children:"What the model sees"}),(0,r.jsx)(t_.A,{value:"annotated",children:"Full history (annotated)"})]}),(0,r.jsx)(i.default,{sx:{flexGrow:1,overflowY:"auto",minHeight:0},children:"wire"===a?0===g.length?(0,r.jsx)(p.default,{variant:"body2",color:"textSecondary",sx:{p:1},children:"No conversation messages — the model sees only the system message."}):(0,r.jsx)(eU,{messages:g,conversationId:n?"debug-".concat(n):void 0,onToggleDisabled:tL,onSplitConversation:tL}):(0,r.jsx)(tW,{provenance:c})})]})},tB=(0,eP.h)("frontend/components/Chat/DebuggerCanvas"),tJ={start:tS.vm,process:tS.Uw,finish:tS.IK,mcp:tS.v2,subflow:tS.lA,resource:tS.z9},tU={custom:tk.jY,mcpEdge:tk.oY,resourceEdge:tk.sZ},tq=["conversation","tracker","detail"],tG={conversation:"Conversation",tracker:"Execution Tracker",detail:"Detail"},tV="flujo-debugger-section-order",tK="flujo-debugger-section-visible",tY="flujo-debugger-conv-width",tQ="flujo-debugger-detail-width";function tX(e,t){let n=Number(window.localStorage.getItem(e));return Number.isFinite(n)&&n>=240?n:t}let tZ=(0,tb.Ay)(ei.A)(e=>{let{theme:t}=e;return{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",padding:t.spacing(1)}}),t$=(0,tb.Ay)(i.default)(e=>{let{theme:t}=e;return{padding:t.spacing(1,2),borderBottom:"1px solid ".concat(t.palette.divider)}}),t0=(0,tb.Ay)(i.default)({flexGrow:1,display:"flex",overflow:"hidden",minHeight:0}),t1=(0,tb.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)}}),t2=(0,tb.Ay)(i.default)({flexGrow:1,position:"relative",height:"100%"}),t5=(0,tb.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"}}),t6=(0,tb.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}}}),t4=e=>{var t,n,a,l;let{debugState:u,conversationId:f,onStep:g,onStepOver:x,onContinue:m,onCancel:v,isLoading:y,breakpoints:b,onToggleBreakpoint:w,onClose:j,isExpanded:A,onToggleExpand:S,liveActivity:k}=e,I=(0,tw.A)(),[C,E]=(0,o.useState)(u.executionTrace&&u.executionTrace.length>0?u.executionTrace.length-1:-1),[T,N]=(0,o.useState)(()=>(function(){try{let e=JSON.parse(window.localStorage.getItem(tV)||"null");if(Array.isArray(e)){let t=e.filter(e=>tq.includes(e)),n=tq.filter(e=>!t.includes(e));if(t.length+n.length===tq.length)return[...t,...n]}}catch(e){}return[...tq]})()),[z,_]=(0,o.useState)(()=>(function(){let e={conversation:!0,tracker:!0,detail:!0};try{let t=JSON.parse(window.localStorage.getItem(tK)||"null");if(t&&"object"==typeof t)for(let n of tq)"boolean"==typeof t[n]&&(e[n]=t[n])}catch(e){}return e})()),[O,F]=(0,o.useState)(()=>tX(tY,480)),[M,W]=(0,o.useState)(()=>tX(tQ,320)),[H,B]=(0,o.useState)(null),[J,q]=(0,o.useState)(!0),[G,K]=(0,o.useState)(null),[Y,Q,X]=(0,tj.ck)([]),[Z,$,ee]=(0,tj.fM)([]);(0,o.useEffect)(()=>{window.localStorage.setItem(tV,JSON.stringify(T))},[T]),(0,o.useEffect)(()=>{window.localStorage.setItem(tK,JSON.stringify(z))},[z]),(0,o.useEffect)(()=>{window.localStorage.setItem(tY,String(Math.round(O)))},[O]),(0,o.useEffect)(()=>{window.localStorage.setItem(tQ,String(Math.round(M)))},[M]),(0,o.useEffect)(()=>{var e;let t=(null==(e=u.executionTrace)?void 0:e.length)||0;t>0?(E(e=>Math.min(e,t-1)),C<t-1&&E(t-1)):E(-1)},[u.executionTrace]),(0,o.useEffect)(()=>{(async()=>{if(!u.flowId){K("Flow ID is missing in debug state."),q(!1);return}q(!0),K(null);try{tB.debug("Loading flow definition for ID: ".concat(u.flowId));let e=await tA.g.getFlow(u.flowId);if(!e)throw Error("Flow with ID ".concat(u.flowId," not found."));B(e),tB.info("Flow definition loaded: ".concat(e.name))}catch(e){tB.error("Error loading flow definition:",e),K(e instanceof Error?e.message:"Failed to load flow definition."),B(null)}finally{q(!1)}})()},[u.flowId]),(0,o.useEffect)(()=>{if(H){tB.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}));Q(e),$(t)}},[H,Q,$]);let et=(0,o.useCallback)(()=>{if(tB.debug("Previous button clicked. Current index: ".concat(C)),C>0){let e=C-1;tB.debug("Setting current step index to: ".concat(e)),E(e)}else tB.debug("Already at the first step, cannot go previous.")},[C]),en=(0,o.useCallback)(()=>{var e;if(tB.debug("Next button clicked. Current index: ".concat(C,", Trace length: ").concat(null==(e=u.executionTrace)?void 0:e.length)),u.executionTrace&&C<u.executionTrace.length-1){let e=C+1;tB.debug("Navigating to next trace step: ".concat(e)),E(e)}else tB.info("At end of trace, triggering API call for next step."),g()},[C,u.executionTrace,g]),er=(0,o.useMemo)(()=>{if(u.executionTrace&&C>=0&&C<u.executionTrace.length)return u.executionTrace[C]},[u.executionTrace,C]),ea=(0,o.useMemo)(()=>(null==er?void 0:er.modelInputs)&&er.modelInputs.length>0?er.modelInputs:(null==er?void 0:er.modelInput)?[er.modelInput]:void 0,[er]),[el,ei]=(0,o.useState)(0);(0,o.useEffect)(()=>{ei(0)},[C]);let es=ea?Math.min(el,ea.length-1):0,ep=null==ea?void 0:ea[es],[ef,eh]=(0,o.useState)(()=>Date.now());(0,o.useEffect)(()=>{if(!k)return;let e=()=>{let e=Date.now();return[...Object.values(k.byNode),...Object.values(k.byResource),...Object.values(k.byResourceName)].some(t=>e-t.ts<4e3)};if(!e())return;let t=setInterval(()=>{eh(Date.now()),e()||clearInterval(t)},350);return()=>clearInterval(t)},[k]);let eg=(0,o.useCallback)(e=>{var t,n;if(!k)return null;let r=k.byNode[e.id];if(r&&ef-r.ts<4e3)return r;let o=e.data;if((null!=(t=null==o?void 0:o.type)?t:e.type)!=="resource")return null;let a=null!=(n=null==o?void 0:o.properties)?n:{},l="run"===a.scope?"string"==typeof a.runName?k.byResourceName[a.runName]:void 0:"string"==typeof a.boundServer&&"string"==typeof a.uri?k.byResource[tC(a.boundServer,a.uri)]:void 0;return l&&ef-l.ts<4e3?{kind:"read"===l.kind?"resource-read":"resource-write",ts:l.ts}:null},[k,ef]),ex=(0,o.useMemo)(()=>{let e=null==er?void 0:er.nodeId;return Y.map(t=>{var n;let r=t.id===e,o=null==b?void 0:b.includes(t.id),a=r?null:eg(t),l=a?Math.max(.25,1-(ef-a.ts)/4e3):0,i=(null==a?void 0:a.kind)==="active"?I.palette.primary.main:"#009688";return{...t,style:{...t.style,border:r?"2px solid ".concat(I.palette.warning.main):a?"2px solid ".concat(i):o?"2px dashed ".concat(I.palette.error.main):null==(n=t.style)?void 0:n.border,boxShadow:r?"0 0 10px ".concat(I.palette.warning.light):a?"0 0 ".concat("resource-write"===a.kind?14:10,"px ").concat(i).concat(Math.round(255*l).toString(16).padStart(2,"0")):void 0}}})},[Y,er,b,I,eg,ef]),em=(0,o.useMemo)(()=>T.filter(e=>z[e]),[T,z]),ev=(0,o.useCallback)(e=>{_(t=>({...t,[e]:!t[e]}))},[]),ey=(0,o.useCallback)((e,t)=>{N(n=>{let r=n.indexOf(e),o=r+t;if(r<0||o<0||o>=n.length)return n;let a=[...n];return[a[r],a[o]]=[a[o],a[r]],a})},[]),eb=(0,o.useCallback)((e,t,n)=>{n.preventDefault();let r=n.clientX,o="conversation"===e?O:M,a="conversation"===e?F:W,l=document.body.style.userSelect,i=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let s=e=>{a(Math.min(Math.max(o+t*(e.clientX-r),240),1100))},d=()=>{window.removeEventListener("pointermove",s),window.removeEventListener("pointerup",d),document.body.style.userSelect=l,document.body.style.cursor=i};window.addEventListener("pointermove",s),window.addEventListener("pointerup",d)},[O,M]),ew=(0,r.jsx)(i.default,{sx:{flexGrow:1,overflow:"hidden",minHeight:0,display:"flex",flexDirection:"column"},children:er?ep&&ea?(0,r.jsxs)(i.default,{sx:{flexGrow:1,minHeight:0,display:"flex",flexDirection:"column"},children:[ea.length>1&&(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"center",gap:.5,px:1,py:.5,borderBottom:"1px solid ".concat(I.palette.divider)},children:[(0,r.jsx)(s.A,{title:"Previous model call",children:(0,r.jsx)("span",{children:(0,r.jsx)(d.A,{size:"small",onClick:()=>ei(e=>Math.max(0,Math.min(e,ea.length-1)-1)),disabled:es<=0,"aria-label":"Previous model call",children:(0,r.jsx)(U.A,{fontSize:"small"})})})}),(0,r.jsxs)(p.default,{variant:"caption",color:"textSecondary",children:["Model call ",es+1," / ",ea.length]}),(0,r.jsx)(s.A,{title:"Next model call",children:(0,r.jsx)("span",{children:(0,r.jsx)(d.A,{size:"small",onClick:()=>ei(e=>Math.min(ea.length-1,Math.min(e,ea.length-1)+1)),disabled:es>=ea.length-1,"aria-label":"Next model call",children:(0,r.jsx)(th.A,{fontSize:"small"})})})})]}),(0,r.jsx)(i.default,{sx:{flexGrow:1,minHeight:0,overflow:"hidden",display:"flex",flexDirection:"column"},children:(0,r.jsx)(tH,{modelInput:ep,conversationId:f})})]}):(0,r.jsx)(p.default,{variant:"body2",color:"textSecondary",sx:{p:2},children:"No model call for this step."}):(0,r.jsx)(p.default,{variant:"body2",color:"textSecondary",sx:{p:2},children:"Select a step from the execution tracker."})}),ej={conversation:ew,tracker:(0,r.jsxs)(i.default,{sx:{flexGrow:1,display:"flex",overflow:"hidden",minHeight:0},children:[(0,r.jsxs)(t1,{children:[(0,r.jsx)(p.default,{variant:"caption",color:"textSecondary",gutterBottom:!0,sx:{display:"block"},children:"Execution Trace"}),(0,r.jsxs)(L.A,{dense:!0,disablePadding:!0,children:[null==(t=u.executionTrace)?void 0:t.map((e,t)=>(0,r.jsx)(R.Ay,{disablePadding:!0,children:(0,r.jsx)(D.A,{selected:t===C,onClick:()=>(e=>{u.executionTrace&&e>=0&&e<u.executionTrace.length?(tB.debug("Trace step selected: ".concat(e)),E(e)):tB.warn("Invalid step index selected: ".concat(e))})(t),children:(0,r.jsx)(P.A,{primary:"".concat(e.stepIndex,": ").concat(e.nodeName||e.nodeId),secondary:e.nodeType})})},e.stepIndex)),y&&(0,r.jsx)(R.Ay,{children:(0,r.jsx)(eo.default,{size:20,sx:{margin:"auto"}})})]})]}),(0,r.jsx)(t2,{children:J?(0,r.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,r.jsx)(eo.default,{})}):G?(0,r.jsx)(c.A,{severity:"error",sx:{margin:2},children:G}):(0,r.jsxs)(tj.Ln,{children:[" ",(0,r.jsx)(tj.Gc,{nodes:ex,edges:Z,onNodesChange:X,onEdgesChange:ee,nodeTypes:tJ,edgeTypes:tU,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,r.jsxs)(i.default,{sx:{flexGrow:1,overflowY:"auto",minHeight:0,p:2},children:[er?(0,r.jsxs)(i.default,{children:[(0,r.jsxs)(p.default,{variant:"body2",children:[(0,r.jsx)("b",{children:"Node:"})," ",er.nodeName," (",er.nodeId,")"]}),(0,r.jsxs)(p.default,{variant:"body2",children:[(0,r.jsx)("b",{children:"Type:"})," ",er.nodeType]}),(0,r.jsxs)(p.default,{variant:"body2",children:[(0,r.jsx)("b",{children:"Timestamp:"})," ",new Date(er.timestamp).toLocaleString()]}),(0,r.jsxs)(p.default,{variant:"body2",children:[(0,r.jsx)("b",{children:"Action Taken:"})," ",er.actionTaken]}),(0,r.jsxs)(ed.A,{sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,r.jsx)(ec.A,{expandIcon:(0,r.jsx)(V.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,r.jsx)(p.default,{variant:"caption",children:"Prep Result"})}),(0,r.jsx)(eu.A,{sx:{p:0},children:(0,r.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,r.jsxs)(ed.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,r.jsx)(ec.A,{expandIcon:(0,r.jsx)(V.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,r.jsxs)(p.default,{variant:"caption",color:(null==(n=er.execResultSnapshot)?void 0:n.success)===!1?"error":"inherit",children:["Exec Result ",(null==(a=er.execResultSnapshot)?void 0:a.success)===!1?"(Error)":""]})}),(0,r.jsx)(eu.A,{sx:{p:0},children:(null==(l=er.execResultSnapshot)?void 0:l.success)===!1?(0,r.jsxs)(i.default,{sx:{p:1,background:I.palette.error.light,borderRadius:1},children:[(0,r.jsxs)(p.default,{variant:"body2",color:"error",gutterBottom:!0,children:[(0,r.jsx)("b",{children:"Error:"})," ",er.execResultSnapshot.error||"Unknown error"]}),er.execResultSnapshot.errorDetails&&(0,r.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,r.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,r.jsxs)(ed.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,r.jsx)(ec.A,{expandIcon:(0,r.jsx)(V.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,r.jsx)(p.default,{variant:"caption",children:"State Before"})}),(0,r.jsx)(eu.A,{sx:{p:0},children:(0,r.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,r.jsxs)(ed.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,r.jsx)(ec.A,{expandIcon:(0,r.jsx)(V.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,r.jsx)(p.default,{variant:"caption",children:"State After"})}),(0,r.jsx)(eu.A,{sx:{p:0},children:(0,r.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,r.jsx)(p.default,{variant:"body2",color:"textSecondary",children:"Select a step from the execution tracker."}),(0,r.jsxs)(ed.A,{defaultExpanded:!0,sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,r.jsx)(ec.A,{expandIcon:(0,r.jsx)(V.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,r.jsx)(p.default,{variant:"caption",children:"Run Data"})}),(0,r.jsx)(eu.A,{sx:{p:0},children:(0,r.jsx)(tD,{conversationId:f,refreshToken:null==k?void 0:k.resourceVersion})})]})]})};return(0,r.jsxs)(tZ,{elevation:2,children:[(0,r.jsxs)(t$,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[(0,r.jsxs)(i.default,{children:[(0,r.jsx)(p.default,{variant:"h6",children:"Flow Debugger"}),(0,r.jsxs)(p.default,{variant:"caption",color:"textSecondary",display:"block",children:["Click a node to toggle a breakpoint",b&&b.length>0?" \xb7 ".concat(b.length," active"):""]})]}),(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,r.jsx)(s.A,{title:z.conversation?"Hide Conversation":"Show Conversation",children:(0,r.jsx)(d.A,{size:"small",onClick:()=>ev("conversation"),color:z.conversation?"primary":"default","aria-label":z.conversation?"Hide Conversation":"Show Conversation",children:(0,r.jsx)(tm.A,{fontSize:"small"})})}),(0,r.jsx)(s.A,{title:z.tracker?"Hide Execution Tracker":"Show Execution Tracker",children:(0,r.jsx)(d.A,{size:"small",onClick:()=>ev("tracker"),color:z.tracker?"primary":"default","aria-label":z.tracker?"Hide Execution Tracker":"Show Execution Tracker",children:(0,r.jsx)(tv.A,{fontSize:"small"})})}),(0,r.jsx)(s.A,{title:z.detail?"Hide Detail":"Show Detail",children:(0,r.jsx)(d.A,{size:"small",onClick:()=>ev("detail"),color:z.detail?"primary":"default","aria-label":z.detail?"Hide Detail":"Show Detail",children:(0,r.jsx)(ty.A,{fontSize:"small"})})}),S&&(0,r.jsx)(s.A,{title:A?"Exit full screen":"Expand to full screen",children:(0,r.jsx)(d.A,{size:"small",onClick:S,"aria-label":A?"Exit full screen":"Expand to full screen",children:A?(0,r.jsx)(tx.A,{fontSize:"small"}):(0,r.jsx)(tg.A,{fontSize:"small"})})}),j&&(0,r.jsx)(s.A,{title:"Close debugger",children:(0,r.jsx)(d.A,{size:"small",onClick:j,"aria-label":"Close debugger",children:(0,r.jsx)(eX.A,{fontSize:"small"})})})]})]}),(0,r.jsx)(t0,{children:0===em.length?(0,r.jsx)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",p:3},children:(0,r.jsx)(p.default,{variant:"body2",color:"textSecondary",children:"All sections are hidden — use the toolbar toggles above to show a section."})}):em.map((e,t)=>(0,r.jsxs)(o.Fragment,{children:[(e=>{let t="tracker"!==e,n="conversation"===e?O:"detail"===e?M:void 0;return(0,r.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=em.indexOf(e);return(0,r.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:1,py:.5,borderBottom:"1px solid ".concat(I.palette.divider)},children:[(0,r.jsx)(p.default,{variant:"subtitle2",noWrap:!0,children:tG[e]}),(0,r.jsxs)(i.default,{sx:{display:"flex"},children:[(0,r.jsx)(s.A,{title:"Move left",children:(0,r.jsx)("span",{children:(0,r.jsx)(d.A,{size:"small",onClick:()=>ey(e,-1),disabled:t<=0,"aria-label":"Move ".concat(tG[e]," left"),children:(0,r.jsx)(U.A,{fontSize:"small"})})})}),(0,r.jsx)(s.A,{title:"Move right",children:(0,r.jsx)("span",{children:(0,r.jsx)(d.A,{size:"small",onClick:()=>ey(e,1),disabled:t<0||t>=em.length-1,"aria-label":"Move ".concat(tG[e]," right"),children:(0,r.jsx)(th.A,{fontSize:"small"})})})}),(0,r.jsx)(s.A,{title:"Hide section",children:(0,r.jsx)(d.A,{size:"small",onClick:()=>ev(e),"aria-label":"Hide ".concat(tG[e]),children:(0,r.jsx)(eX.A,{fontSize:"small"})})})]})]})})(e),ej[e]]},e)})(e),t<em.length-1&&((e,t)=>{let n="tracker"!==e?e:"tracker"!==t?t:null;if(!n)return null;let o="tracker"!==e?1:-1;return(0,r.jsx)(t6,{onPointerDown:e=>eb(n,o,e),"aria-label":"Resize ".concat(tG[n]," section")},"resizer-".concat(e,"-").concat(t))})(e,em[t+1])]},e))}),(0,r.jsxs)(t5,{children:[(0,r.jsx)(h.A,{variant:"outlined",size:"small",onClick:et,disabled:y||C<=0,children:"Previous"}),(0,r.jsx)(h.A,{variant:"contained",size:"small",onClick:en,disabled:y||-1===C,children:u.executionTrace&&C<u.executionTrace.length-1?"Next Trace Step":"Step Next"}),x&&(0,r.jsx)(h.A,{variant:"outlined",size:"small",onClick:x,disabled:y,children:"Step Over"}),(0,r.jsx)(h.A,{variant:"contained",color:"secondary",size:"small",onClick:m,disabled:y,children:"Continue"}),(0,r.jsx)(h.A,{variant:"outlined",color:"error",size:"small",onClick:v,disabled:y,children:"Stop"})]})]})};var t8=n(94929),t7=n(29155),t3=n(63650);let t9=(0,eP.h)("frontend/services/chat/index");class ne extends Error{constructor(e,t,n){super(e),this.name="ChatApiError",this.status=t,this.body=n}}let nt="/v1/chat/conversations";async function nn(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 ne(t&&"object"==typeof t&&(t.error||t.message)||"Request failed with status ".concat(e.status),e.status,t);return t}class nr{async listConversations(){return t9.debug("listConversations: Entering method"),nn(await fetch(nt))}async getConversation(e){return t9.debug("getConversation: Entering method",{conversationId:e}),nn(await fetch("".concat(nt,"/").concat(encodeURIComponent(e))))}async createConversation(e){return t9.debug("createConversation: Entering method",{conversationId:e.id}),nn(await fetch(nt,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}))}async updateConversationFlow(e,t){return t9.debug("updateConversationFlow: Entering method",{conversationId:e,flowId:t}),nn(await fetch("".concat(nt,"/").concat(encodeURIComponent(e)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({flowId:t})}))}async updateConversationTitle(e,t){return t9.debug("updateConversationTitle: Entering method",{conversationId:e}),nn(await fetch("".concat(nt,"/").concat(encodeURIComponent(e)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:t})}))}async updateConversationApproval(e,t){return t9.debug("updateConversationApproval: Entering method",{conversationId:e,requireApproval:t}),nn(await fetch("".concat(nt,"/").concat(encodeURIComponent(e)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApproval:t})}))}async deleteConversation(e){t9.debug("deleteConversation: Entering method",{conversationId:e});let t=await fetch("".concat(nt,"/").concat(encodeURIComponent(e)),{method:"DELETE"});await nn(t)}async respondToToolCall(e,t,n){return t9.debug("respondToToolCall: Entering method",{conversationId:e,action:t,toolCallId:n}),nn(await fetch("".concat(nt,"/").concat(encodeURIComponent(e),"/respond"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:t,toolCallId:n})}))}async debugStep(e){return t9.debug("debugStep: Entering method",{conversationId:e}),nn(await fetch("".concat(nt,"/").concat(encodeURIComponent(e),"/debug/step"),{method:"POST"}))}async debugContinue(e){return t9.debug("debugContinue: Entering method",{conversationId:e}),nn(await fetch("".concat(nt,"/").concat(encodeURIComponent(e),"/debug/continue"),{method:"POST"}))}async setBreakpoints(e,t){t9.debug("setBreakpoints: Entering method",{conversationId:e,count:t.length});let n=await fetch("".concat(nt,"/").concat(encodeURIComponent(e),"/breakpoints"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({breakpoints:t})});await nn(n)}async synthesizeQuickChat(e){return t9.debug("synthesizeQuickChat: Entering method",{conversationId:e.conversationId}),nn(await fetch("/api/flow/quick-chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}))}async cancel(e){t9.debug("cancel: Entering method",{conversationId:e});let t=await fetch("".concat(nt,"/").concat(encodeURIComponent(e),"/cancel"),{method:"POST"});await nn(t)}subscribeToEvents(e,t,n){let r=new EventSource(void 0!==n?"".concat(nt,"/").concat(encodeURIComponent(e),"/events?fromSeq=").concat(n):"".concat(nt,"/").concat(encodeURIComponent(e),"/events"));return r.onopen=()=>{var n;t9.debug("Execution event stream open",{conversationId:e}),null==(n=t.onOpen)||n.call(t)},r.onmessage=e=>{try{t.onEvent(JSON.parse(e.data))}catch(e){t9.warn("Failed to parse SSE event",{err:e})}},r.onerror=e=>{var n;t9.debug("SSE stream error (browser will retry if still open)"),null==(n=t.onError)||n.call(t,e)},r}}let no=new nr,na=(0,eP.h)("frontend/components/Chat/index");function nl(e){var t;if(Array.isArray(e.content))return e.content;let n="string"==typeof e.content?e.content:"",r=null!=(t=e.attachments)?t:[],o=r.filter(e=>"image"!==e.type),a=r.filter(e=>"image"===e.type);if(o.length>0&&(n+="\n\n"+o.map(e=>"[".concat(e.type.toUpperCase(),"]: ").concat(e.content)).join("\n\n")),0===a.length)return n;let l=[];for(let e of(n.trim()&&l.push({type:"text",text:n}),a))l.push({type:"image_url",image_url:{url:e.content}});return l}let ni=/cancelled by user|execution cancelled/i,ns=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&&ni.test(e))},nd=()=>{var e;let t=(0,l.useRouter)(),[n,a]=(0,o.useState)([]),[R,D]=(0,o.useState)(!0),[P,_]=(0,o.useState)(null),[O,F]=(0,o.useState)(null),[M,W]=(0,o.useState)(!1),[L,H]=(0,o.useState)(null),[B,J]=(0,z.Mj)(z.Zg.CURRENT_CONVERSATION_ID,null),[U,q]=(0,z.Mj)(z.Zg.LAST_PICKED_FLOW_ID,null),[G,V]=(0,o.useState)(!1),[K,Q]=(0,o.useState)(new Set),X=(0,o.useCallback)((e,t)=>{e&&Q(n=>{if(t===n.has(e))return n;let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]),[Z,$]=(0,o.useState)(null),[ee,et]=(0,o.useState)([]),[en,eo]=(0,o.useState)(!1),[ea,el]=(0,o.useState)(!1),[ei,es]=(0,o.useState)(""),[ed,ec]=(0,o.useState)(!1),[eu,ep]=(0,o.useState)(null),[ef,eh]=(0,o.useState)(null),[eg,ex]=(0,o.useState)(null),[em,ev]=(0,o.useState)(!1),[ey,eb]=(0,o.useState)(null),[ew,ej]=(0,o.useState)(!1),[eA,eS]=(0,o.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-debugger-width"));return Number.isFinite(e)&&e>0?e:0}),[ek,eI]=(0,o.useState)(()=>"1"===window.localStorage.getItem("flujo-debugger-expanded"));(0,o.useEffect)(()=>{window.localStorage.setItem("flujo-debugger-expanded",ek?"1":"0")},[ek]);let eC=(0,o.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 r=e=>{eS(Math.min(Math.max(window.innerWidth-e.clientX,360),Math.round(.85*window.innerWidth)))},o=()=>{window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",o),document.body.style.userSelect=t,document.body.style.cursor=n,eS(e=>(e>0&&window.localStorage.setItem("flujo-debugger-width",String(Math.round(e))),e))};window.addEventListener("pointermove",r),window.addEventListener("pointerup",o)},[]),[eE,eT]=(0,o.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-chat-sidebar-width"));return Number.isFinite(e)&&e>0?e:300}),[eN,ez]=(0,o.useState)(()=>"1"===window.localStorage.getItem("flujo-chat-sidebar-collapsed")),eR=(0,o.useCallback)(()=>{ez(e=>{let t=!e;return window.localStorage.setItem("flujo-chat-sidebar-collapsed",t?"1":"0"),t})},[]),eD=(0,o.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 r=e=>{eT(Math.min(Math.max(e.clientX,220),560))},o=()=>{window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",o),document.body.style.userSelect=t,document.body.style.cursor=n,eT(e=>(e>0&&window.localStorage.setItem("flujo-chat-sidebar-width",String(Math.round(e))),e))};window.addEventListener("pointermove",r),window.addEventListener("pointerup",o)},[]),[eP,e_]=(0,o.useState)(null),[eO,eF]=(0,o.useState)(tI),[eM,eW]=(0,o.useState)(e8),[eL,eH]=(0,o.useState)([]),[eB,eJ]=(0,o.useState)(null),eq=(0,o.useRef)(null),eG=(0,o.useRef)(null),eV=(0,o.useRef)(null),eK=(0,o.useRef)(-1),eY=(0,o.useRef)(B);(0,o.useEffect)(()=>{eY.current=B},[B]);let eQ=(0,o.useRef)(new Set),eX=(0,o.useRef)(new Set),eZ=(0,o.useRef)(new Set),[e$,e1]=(0,o.useState)(new Set),e5=(0,o.useCallback)((e,t)=>{e&&(t?eZ.current.add(e):eZ.current.delete(e),e1(new Set(eZ.current)))},[]),e6=(0,o.useRef)(null),e4=(0,o.useRef)(!0),[e3,te]=(0,o.useState)(!1),tt=(0,o.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"auto",t=e6.current;t&&t.scrollTo({top:t.scrollHeight,behavior:e})},[]),tn=(0,o.useCallback)(()=>{let e=e6.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<80;e4.current=t,te(!t)},[]),tr=(0,o.useCallback)(()=>{e4.current=!0,te(!1),tt("smooth")},[tt]);(0,o.useEffect)(()=>{e4.current=!0,te(!1)},[B]),(0,o.useEffect)(()=>{e4.current&&tt("auto")},[null==O?void 0:O.messages,tt]);let to=(0,o.useRef)(null);(0,o.useEffect)(()=>{to.current=eB},[eB]),(0,o.useEffect)(()=>{let e=window.location.origin+"/v1";eq.current=new t7.Ay({baseURL:e,apiKey:"FLUJO",dangerouslyAllowBrowser:!0,maxRetries:0,timeout:18e6})},[]),(0,o.useEffect)(()=>{(async()=>{na.debug("Loading flows");try{let e=await tA.g.loadFlows();et(e)}catch(e){na.error("Error loading flows:",e)}})()},[]);let ta=(0,o.useCallback)(async(e,t)=>{var n;let r=null!=(n=null==t?void 0:t.silent)&&n;na.debug("Fetching conversation list from backend",{silent:r}),r||(D(!0),_(null));let o=[],l=!1;try{for(let e of o=(await no.listConversations()).filter(e=>!eX.current.has(e.id)).sort((e,t)=>t.updatedAt-e.updatedAt))eQ.current.delete(e.id);a(e=>{let t=e.filter(e=>eQ.current.has(e.id)),n=t.length>0?[...t,...o].sort((e,t)=>t.updatedAt-e.updatedAt):o;return((e,t)=>e.length===t.length&&e.every((e,n)=>{let r=t[n];return e.id===r.id&&e.title===r.title&&e.flowId===r.flowId&&e.status===r.status&&e.createdAt===r.createdAt&&e.updatedAt===r.updatedAt}))(e,n)?e:n}),na.info("Fetched ".concat(o.length," conversations for the list"))}catch(e){l=!0,na.error("Error fetching conversation list:",e),r||(_("Failed to load conversation history."),a([]))}finally{if(r||D(!1),r||l)return;let t=void 0!==e?e:eY.current,n=eY.current;if(t&&(e=>o.some(t=>t.id===e)||eQ.current.has(e))(t))t!==n&&(na.debug("Setting currentConversationId to ".concat(t," after fetch/operation.")),J(t));else if(o.length>0){let e=o[0].id;e!==n&&(na.debug("Selecting most recent conversation ".concat(e," after fetch/operation.")),J(e))}else null===n||eQ.current.has(n)||(na.debug("No conversations available after fetch/operation, clearing selection."),J(null))}},[J]);(0,o.useEffect)(()=>{ta()},[]),(0,o.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 tl=(0,o.useCallback)(async e=>{if(eQ.current.has(e))return void na.debug("Skipping detail fetch for client-only conversation",{conversationId:e});if(eY.current!==e){na.debug("Detail fetch requested for non-viewed conversation; refreshing list instead",{conversationId:e}),ta(void 0,{silent:!0});return}na.debug("Fetching detailed conversation",{conversationId:e}),W(!0),H(null),F(null);try{let t=await no.getConversation(e);if(eY.current!==e)return void na.debug("Discarding stale detailed conversation response",{fetchedId:e,currentId:eY.current});F(t),a(n=>n.map(n=>{var r;return n.id===e?{...n,title:t.title,flowId:t.flowId,updatedAt:t.updatedAt,status:null!=(r=t.status)?r:n.status}:n}).sort((e,t)=>t.updatedAt-e.updatedAt)),na.info("Fetched detailed conversation successfully",{conversationId:e})}catch(t){if(na.error("Error fetching detailed conversation:",{conversationId:e,err:t}),eY.current!==e)return;t instanceof ne&&404===t.status?(H("Conversation ".concat(e," not found.")),J(null),ta()):H("Failed to load details for conversation ".concat(e,".")),F(null)}finally{eY.current===e&&W(!1)}},[ta,J]);(0,o.useEffect)(()=>{ep(null),ex(null),B?tl(B):(F(null),W(!1),H(null))},[B,tl]),(0,o.useEffect)(()=>{if(O){var e;eo(null!=(e=O.requireApproval)&&e)}},[null==O?void 0:O.id]);let ti=(0,o.useCallback)(async e=>{if(eo(e),B)try{await no.updateConversationApproval(B,e)}catch(e){na.warn("Failed to persist requireApproval setting",{conversationId:B,err:e})}},[B]),ts=n.find(e=>e.id===B)||null,tu=(0,o.useMemo)(()=>{let e={};for(let t of ee)t.id&&(e[t.id]=t.name);return e},[ee]),tp=(0,o.useMemo)(()=>{var e,t;return(null==(t=ee.find(e=>e.id===(null==O?void 0:O.flowId)))||null==(e=t.nodes)?void 0:e.map(e=>({id:e.id,label:e.data.label||e.id})))||[]},[ee,null==O?void 0:O.flowId]),th=(0,o.useMemo)(()=>{var e,t,n;let r=e=>!!e&&tp.some(t=>t.id===e);if(r(eg))return eg;if(r(null==O?void 0:O.currentNodeId))return O.currentNodeId;let o=null!=(t=null==O?void 0:O.messages)?t:[];for(let e=o.length-1;e>=0;e--){let t=o[e];if("assistant"===t.role&&r(t.processNodeId))return t.processNodeId}return null!=(n=null==(e=tp[0])?void 0:e.id)?n:null},[eg,O,tp]),tg=async e=>{var t,n,r,o;na.debug("Attempting to create new conversation"),$(null);let l="string"!=typeof e||Y(e)?void 0:ee.find(t=>t.id===e),i=U&&!Y(U)?ee.find(e=>e.id===U):void 0,s=(null==(t=null!=(r=null!=(n=null!=l?l:i)?n:ee.find(e=>e.favorite))?r:ee[0])?void 0:t.id)||null;if(!s){na.error("Cannot create conversation: No flows available or first flow has no ID."),$("Cannot create a new conversation: No flows available.");return}let d=(0,e0.A)(),c=Date.now(),u={id:d,title:"New Conversation",flowId:s,createdAt:c,updatedAt:c};try{na.info("Sending request to create conversation on backend",{payload:JSON.stringify(u)});let e=await no.createConversation(u);na.info("Successfully created conversation on backend",{conversationId:e.id}),a(t=>[e,...t].sort((e,t)=>t.updatedAt-e.updatedAt)),J(e.id),F({id:e.id,title:e.title,flowId:e.flowId,createdAt:e.createdAt,updatedAt:e.updatedAt,messages:[]}),W(!1),H(null)}catch(t){na.error("Error creating conversation on backend:",t);let e="Failed to create conversation on the server.";t instanceof ne?e+=" Error: ".concat((null==(o=t.body)?void 0:o.error)||t.message):t instanceof Error&&(e+=" Error: ".concat(t.message)),$(e)}},tx=(0,o.useRef)(!1);(0,o.useEffect)(()=>{if(tx.current||0===ee.length)return;let e=new URLSearchParams(window.location.search).get("flow");if(!e){tx.current=!0;return}tx.current=!0,ee.some(t=>t.id===e)&&!Y(e)&&tg(e),t.replace("/chat")},[ee]);let[tm,tv]=(0,o.useState)(!1),ty=async e=>{$(null);let t=(0,e0.A)(),{flow:n}=await no.synthesizeQuickChat({conversationId:t,modelId:e.modelId,servers:e.servers,systemPrompt:e.systemPrompt}),r=Date.now(),o=await no.createConversation({id:t,title:"Quick Chat",flowId:n.id,flowSnapshot:n,createdAt:r,updatedAt:r});a(e=>[o,...e].sort((e,t)=>t.updatedAt-e.updatedAt)),J(o.id),F({id:o.id,title:o.title,flowId:o.flowId,createdAt:o.createdAt,updatedAt:o.updatedAt,messages:[]}),W(!1),H(null),tv(!1)},tb=(0,o.useCallback)(e=>{na.debug("Updating detailed conversation state locally",{conversationId:e.id});let t={...e,updatedAt:Date.now()};F(t),a(e=>e.map(e=>e.id===t.id?{...e,title:t.title,updatedAt:t.updatedAt}:e).sort((e,t)=>t.updatedAt-e.updatedAt))},[]),tw=(0,o.useCallback)(()=>{eV.current&&(na.debug("Closing execution event stream"),eV.current.close(),eV.current=null)},[]),tj=(0,o.useCallback)((e,t)=>{a(n=>{let r=n.findIndex(t=>t.id===e);if(-1===r||n[r].status===t)return n;let o=[...n];return o[r]={...o[r],status:t},o})},[]),tS=(0,o.useCallback)(e=>{var t,n,r,o;if("number"==typeof e.seq){if(e.seq<=eK.current)return;eK.current=e.seq}let a=e=>e_(t=>{var n,r,o,a;return{totalTokens:null!=(r=null!=(n=e.totalTokens)?n:null==t?void 0:t.totalTokens)?r:0,activeNode:void 0!==e.activeNode?e.activeNode:null!=(o=null==t?void 0:t.activeNode)?o:null,startedAt:null!=(a=null==t?void 0:t.startedAt)?a:Date.now(),lastEventAt:Date.now()}}),l=e=>eF(t=>{let n=Date.now(),r={byNode:{...t.byNode},byResource:{...t.byResource},byResourceName:{...t.byResourceName},resourceVersion:t.resourceVersion};return e(r),function(e,t){let n=e=>{let n={};for(let[r,o]of Object.entries(e))t-o.ts<4e3&&(n[r]=o);return n};return{byNode:n(e.byNode),byResource:n(e.byResource),byResourceName:n(e.byResourceName),resourceVersion:e.resourceVersion}}(r,n)});if(null!=e.laneIndex)switch(eW(t=>(function(e,t){var n,r,o,a,l,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 a=null==(n=t.node)?void 0:n.nodeId,l=e.ownerNodeId&&a&&e.ownerNodeId!==a?{}:{...e.byIndex};return e7(l,c,s),l[d]={laneIndex:d,laneCount:c,label:t.laneTitle||function(e,t,n){let r=e.subflowName||e.subflowId;return r?"".concat(r," ").concat(t+1,"/").concat(n):"Lane ".concat(t+1,"/").concat(n)}(t,d,c),laneConversationId:null!=(o=t.laneConversationId)?o:null==(r=l[d])?void 0:r.laneConversationId,status:"running",lastEventAt:s},{ownerNodeId:null!=a?a:e.ownerNodeId,byIndex:l}}if(u&&"subflow:done"===t.type){let n={...e.byIndex};e7(n,c,s);let r=n[d];return n[d]={...r,label:r.label&&"pending"!==r.status?r.label:t.laneTitle||r.label,laneConversationId:null!=(l=r.laneConversationId)?l:t.laneConversationId,status:t.status,activity:void 0,lastEventAt:s},{ownerNodeId:null!=(i=e.ownerNodeId)?i:null==(a=t.node)?void 0:a.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};e7(h,c,s);let g=h[d];return h[d]={...g,status:"pending"===g.status?"running":g.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;l(e=>{e.byNode[t]={kind:"active",ts:Date.now()}})}a({});return;case"tool:call":case"tool:progress":case"subflow:start":case"handoff":a({});return}switch(e.type){case"run:start":e_({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),eF(tI),eW(e8),e.conversationId&&(tj(e.conversationId,"running"),e5(e.conversationId,!1));break;case"message":{let t=e.message;a({}),F(n=>{let r;if(!n||n.id!==e.conversationId)return n;let o=n.messages.findIndex(e=>e.id===t.id);return o>=0?(r=[...n.messages])[o]={...r[o],...t}:r=[...n.messages,t],{...n,messages:r}});break}case"usage":e_(t=>{var n,r,o;return{totalTokens:(null!=(n=null==t?void 0:t.totalTokens)?n:0)+(e.totalTokens||0),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()}});break;case"node:enter":if(a({activeNode:(null==(n=e.node)?void 0:n.nodeName)||(null==(r=e.node)?void 0:r.nodeId)||null}),null==(o=e.node)?void 0:o.nodeId){let t=e.node.nodeId;l(e=>{e.byNode[t]={kind:"active",ts:Date.now()}})}break;case"resource:read":case"resource:write":{let t="resource:read"===e.type?"read":"write";l(n=>{var r;let o=Date.now();(null==(r=e.node)?void 0:r.nodeId)&&(n.byNode[e.node.nodeId]={kind:"read"===t?"resource-read":"resource-write",ts:o}),e.server&&e.uri&&(n.byResource[tC(e.server,e.uri)]={kind:t,ts:o}),e.name&&(n.byResourceName[e.name]={kind:t,ts:o}),"write"===t&&(n.resourceVersion=n.resourceVersion+1)}),a({});break}case"tool:call":a({activeNode:e.name});break;case"tool:progress":a({activeNode:e.message?"".concat(e.name," — ").concat(e.message):e.name});break;case"subflow:start":a({activeNode:"↳ ".concat(e.subflowName||e.subflowId)});break;case"handoff":a({activeNode:"→ ".concat(e.toNodeId)});break;case"run:awaiting_approval":e.conversationId&&e.conversationId===eY.current&&ep(e.pendingToolCalls||[]),e.conversationId&&tj(e.conversationId,"awaiting_tool_approval");break;case"breakpoint:hit":case"run:paused":V(!1),e.conversationId&&(X(e.conversationId,!1),tj(e.conversationId,"paused_debug")),ev(!0);break;case"run:done":if(e.conversationId&&(X(e.conversationId,!1),tj(e.conversationId,e.status)),e.conversationId&&to.current&&e.conversationId!==to.current)break;e_(null),eF(tI),eW(e8),V(!1),eJ(null),tw(),e.conversationId&&e.conversationId===eY.current?tl(e.conversationId):ta(void 0,{silent:!0});break;case"error":$(e.message||"Execution error");break;default:a({})}},[tw,tl,ta,X,tj,e5]),tk=(0,o.useCallback)((e,t)=>(tw(),eK.current=void 0!==t?t-1:-1,eW(e8),new Promise(n=>{let r=!1,o=()=>{r||(r=!0,n())};try{eV.current=no.subscribeToEvents(e,{onEvent:tS,onOpen:o},t),setTimeout(o,1500)}catch(t){na.error("Failed to open execution event stream",{conversationId:e,err:t}),o()}})),[tS,tw]);(0,o.useEffect)(()=>{if(B&&(null==ts?void 0:ts.status)==="running"&&to.current!==B){if(eZ.current.has(B))return void na.debug("Skipping re-attach to a conversation the user just stopped",{conversationId:B});na.info("Re-attaching to in-progress run",{conversationId:B}),to.current=B,V(!0),eJ(B),X(B,!0),e_(e=>null!=e?e:{totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),tk(B,0)}},[B,null==ts?void 0:ts.status,tk]);let tE=async e=>{na.debug("Attempting to delete conversation",{conversationId:e}),$(null),eX.current.add(e);let t=eQ.current.delete(e);to.current===e&&(tw(),V(!1),eJ(null),e_(null),eW(e8)),X(e,!1);let r=n.filter(t=>t.id!==e);a(r);let o=B;B===e&&(r.length>0?(o=r[0].id,na.debug("Deleted current conversation, selecting next most recent",{nextSelectionId:o})):(o=null,na.debug("Deleted last conversation, clearing selection")),J(o));try{await no.deleteConversation(e),na.info("Successfully deleted conversation on backend",{conversationId:e})}catch(r){na.error("Error deleting conversation:",{conversationId:e,err:r}),$("Failed to delete conversation ".concat(e,". Please try again.")),eX.current.delete(e),t&&eQ.current.add(e),a(n),J(B)}},tT=async e=>{if(na.debug("Flow selected, attempting to update",{flowId:e,currentConversationId:B}),$(null),!B){na.warn("Cannot update flow: No conversation selected."),$("Please select a conversation first.");return}O&&O.id===B&&F({...O,flowId:e,updatedAt:Date.now()}),a(t=>t.map(t=>t.id===B?{...t,flowId:e,updatedAt:Date.now()}:t).sort((e,t)=>t.updatedAt-e.updatedAt));try{let t=await no.updateConversationFlow(B,e);na.info("Successfully updated flowId on backend",{conversationId:B,flowId:e}),F(e=>e&&e.id===B?(na.debug("Confirming detailedConversation update from server response",{conversationId:B,flowId:t.flowId}),{...e,flowId:t.flowId,updatedAt:t.updatedAt}):(na.debug("Skipping detailedConversation update, ID mismatch or null state",{currentDetailedId:null==e?void 0:e.id,targetId:B}),e)),a(e=>e.map(e=>e.id===B?t:e).sort((e,t)=>t.updatedAt-e.updatedAt))}catch(o){na.error("Error updating flowId on backend:",{conversationId:B,flowId:e,err:o});let r="Failed to update the selected flow.";if(o instanceof ne){var t;r+=" Error: ".concat((null==(t=o.body)?void 0:t.error)||o.message)}else o instanceof Error&&(r+=" Error: ".concat(o.message));$(r),F(O),a(n)}},tN=()=>{var e,t;es(null!=(t=null!=(e=null==O?void 0:O.title)?e:null==ts?void 0:ts.title)?t:""),el(!0)},tz=async()=>{var e,t;if(el(!1),!B)return;let n=null!=(t=null!=(e=null==O?void 0:O.title)?e:null==ts?void 0:ts.title)?t:"",r=ei.trim().slice(0,200);if(r&&r!==n){F(e=>e&&e.id===B?{...e,title:r}:e),a(e=>e.map(e=>e.id===B?{...e,title:r}:e));try{let e=await no.updateConversationTitle(B,r);F(t=>t&&t.id===B?{...t,title:e.title}:t),a(t=>t.map(t=>t.id===B?{...t,title:e.title}:t))}catch(e){na.warn("Failed to rename conversation",{conversationId:B,err:e}),F(e=>e&&e.id===B?{...e,title:n}:e),a(e=>e.map(e=>e.id===B?{...e,title:n}:e)),$("Failed to rename the conversation.")}}},tR=async function(e){var t,n,r;let o,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e.trim()&&0===a.length)return;if(!O){na.error("Cannot send message, detailed conversation not loaded."),$("Cannot send message: conversation details not loaded.");return}na.debug("Sending message",{conversationId:O.id,contentLength:e.length,attachmentsCount:a.length});let l=O.messages,i=!l.some(e=>"user"===e.role),s=O.flowId;if(eg)o=eg,ex(null),na.debug("Assigning manually picked node ID to user message: ".concat(o));else if(i){let e=ee.find(e=>e.id===s),n=null==e||null==(t=e.nodes)?void 0:t[0];n?(o=n.id,na.debug("Assigning start node ID to first user message: ".concat(o))):na.warn("Could not find start node for flow ".concat(s,". User message will not have a processNodeId."))}else if((null==ts?void 0:ts.status)==="error"){let e=ee.find(e=>e.id===s),t=null==e||null==(n=e.nodes)?void 0:n[0];t?(o=t.id,na.debug("Post-error message: re-driving turn from start node ID: ".concat(o))):na.warn("Could not find start node for post-error message in flow ".concat(s,". User message will not have a processNodeId."))}else{for(let e=l.length-1;e>=0;e--){let t=l[e];if("assistant"===t.role&&t.processNodeId){o=t.processNodeId,na.debug("Assigning last assistant node ID to user message: ".concat(o));break}}if(!o){let e=ee.find(e=>e.id===s),t=null==e||null==(r=e.nodes)?void 0:r[0];t?(o=t.id,na.debug("No prior assistant node ID found, falling back to start node ID: ".concat(o))):na.warn("Could not find start node for fallback in flow ".concat(s,". User message will not have a processNodeId."))}}let d={id:(0,e0.A)(),role:"user",content:e,timestamp:Date.now(),attachments:a.length>0?a:void 0,processNodeId:o},c={...O,messages:[...O.messages,d]};tb(c),c.flowId?await t_(c):($("Please select a flow for this conversation before sending messages"),F(O))},tD=(0,o.useCallback)((e,t)=>{na.verbose("Handling API response data",JSON.stringify(e)),X(t,"running"===e.status);let n=to.current===t,r=eY.current===t;if("paused_debug"===e.status&&e.debugState)return(na.info("API Response: Paused for debugging",{conversationId:t}),r)?(eb(e.debugState),ev(!0),ej(!0),V(!1),eJ(null),tw(),tP(),F(n=>(null==n?void 0:n.id)===t&&e.debugState.messages&&JSON.stringify(n.messages)!==JSON.stringify(e.debugState.messages)?(na.debug("Updating detailed conversation messages from debug state"),{...n,messages:e.debugState.messages,updatedAt:e.debugState.updatedAt}):n),a(n=>n.map(n=>{var r,o;return n.id===t?{...n,title:null!=(r=e.debugState.title)?r:n.title,flowId:null!=(o=e.debugState.flowId)?o:n.flowId,status:"paused_debug",updatedAt:e.debugState.updatedAt}:n}).sort((e,t)=>t.updatedAt-e.updatedAt))):(tj(t,"paused_debug"),n&&(V(!1),eJ(null),tw(),tP())),!0;if(("completed"===e.status||"error"===e.status)&&r?(na.info("API Response: Execution completed or errored (Status: ".concat(e.status,"). Hiding debugger panel."),{conversationId:t}),ev(!1),eb(null),ej(!1)):na.debug("API Response: Status is '".concat(e.status,"'. Debugger panel visibility unchanged (currently ").concat(em?"visible":"hidden",")."),{conversationId:t}),e.messages&&e.conversation_id===t){let n=e.messages.map((e,n)=>"number"!=typeof e.timestamp||isNaN(e.timestamp)?(na.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);F(r=>{var o,a;let l=r;return(null==r?void 0:r.id)===t&&JSON.stringify(r.messages)!==JSON.stringify(n)&&(na.info("API Response/Polling: Updating detailed conversation messages",{conversationId:t,newMessageCount:n.length}),l={...r,messages:n,updatedAt:e.updatedAt||r.updatedAt}),na.debug("Polling: setDetailedConversation callback executed.",{conversationId:t,messagesChanged:l!==r,newMessageCount:null!=(a=null==l||null==(o=l.messages)?void 0:o.length)?a:"N/A"}),l})}if("awaiting_tool_approval"===e.status)na.info("API Response/Polling: Pausing for tool approval",{conversationId:t}),r&&ep(e.pendingToolCalls||[]),n&&(V(!1),eJ(null),tw(),tP());else if("completed"===e.status||"error"===e.status){if(na.info("API Response/Polling: Stopping due to final status",{conversationId:t,status:e.status}),n&&(tP(),V(!1),eJ(null),tw()),"error"===e.status){var o,l;let a=(null==(o=e.error)?void 0:o.message)||(null==(l=e.lastResponse)?void 0:l.error)||"Unknown error during execution";ni.test(a)||eZ.current.has(t)?(e5(t,!0),(n||r)&&$(null),na.info("API Response/Polling: Execution cancelled by user",{conversationId:t})):($(a),na.error("API Response/Polling: Execution resulted in error",{conversationId:t,error:e.error||e.lastResponse}))}tl(t)}else"running"!==e.status||em?r&&ep(null):(r&&ep(null),n&&!eG.current&&V(!0));return e.conversation_id===t&&a(n=>n.map(n=>{var r,o,a;return n.id===t?{...n,title:null!=(r=e.title)?r:n.title,flowId:null!=(o=e.flowId)?o:n.flowId,status:null!=(a=e.status)?a:n.status,updatedAt:e.updatedAt||n.updatedAt}:n}).sort((e,t)=>t.updatedAt-e.updatedAt)),!1},[F,ep,V,$,ev,eb,a,tl,tw,X,tj,e5]),tP=()=>{eG.current&&(na.debug("Stopping polling interval"),clearInterval(eG.current),eG.current=null)};(0,o.useEffect)(()=>()=>{tw()},[tw]);let t_=async e=>{if(!(null==e?void 0:e.id)||!e.flowId||!eq.current)return na.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}),$("Cannot send message: Missing conversation ID or flow ID."),!1;ep(null),$(null),V(!0),eJ(e.id),X(e.id,!0),e5(e.id,!1);let t=eQ.current.delete(e.id);e_({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await tk(e.id);let n=!1;try{let t;if(Y(e.flowId))t="flow-Quick Chat",na.debug("Sending quick chat to completions",{flowId:e.flowId,conversationId:e.id});else{let n=await tA.g.getFlow(e.flowId);if(!n)throw Error("Flow with ID ".concat(e.flowId," not found"));t="flow-".concat(n.name),na.debug("Sending to chat completions",{flowId:e.flowId,flowName:n.name,conversationId:e.id})}let r=e.messages.filter(e=>{var t;return!e.disabled&&!((null!=(t=e.depth)?t:0)>0)}).map(e=>{let t=nl(e),n=e.processNodeId,r={id:e.id,timestamp:e.timestamp};return"user"===e.role?{role:"user",content:t,...r,processNodeId:n}:"assistant"===e.role?{role:"assistant",content:t,tool_calls:e.tool_calls,...r,processNodeId:n}:"system"===e.role?{role:"system",content:t,...r,processNodeId:n}:"tool"===e.role?e.tool_call_id?{role:"tool",content:t,tool_call_id:e.tool_call_id,...r,processNodeId:n}:{role:"user",content:"string"==typeof t?"Tool result: ".concat(t):t,...r,processNodeId:n}:{role:"user",content:t,...r,processNodeId:n}}),o=await eq.current.chat.completions.create({model:t,messages:r,stream:!1,metadata:(()=>{let t={flujo:"true",requireApproval:en?"true":void 0,flujodebug:ed?"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})()});na.debug("Chat completion initial response received",{completionId:o.id}),n=!0;let a={...o,status:o.status||"completed",conversation_id:e.id,messages:o.messages||e.messages,pendingToolCalls:o.pendingToolCalls,debugState:o.debugState,error:o.error,lastResponse:o.lastResponse,updatedAt:o.updatedAt||Date.now()},l=tD(a,e.id);l||eG.current?l&&na.debug("Debug state handled, polling remains stopped."):na.debug("Starting polling after initial non-debug response.")}catch(a){if(ns(a)||eZ.current.has(e.id))return na.info("Chat completion cancelled by user",{conversationId:e.id}),n=!1,X(e.id,!1),e5(e.id,!0),to.current===e.id&&(tP(),V(!1),eJ(null),tw(),$(null)),n;na.error("Error calling chat completions API:",a),n=!1;let o="An error occurred while sending the message.";if(a instanceof t3.LG)o="API Error: ".concat(a.message," (Status: ").concat(a.status,")"),a.code&&(o+=" (Code: ".concat(a.code,")")),a.type&&(o+=" [Type: ".concat(a.type,"]")),na.verbose("APIError details",JSON.stringify(a));else if(a instanceof t3.vc){o="OpenAI Error: ".concat(a.message);let e=a.error;e&&"object"==typeof e&&(e.code&&(o+=" (Code: ".concat(e.code,")")),e.type&&(o+=" [Type: ".concat(e.type,"]"))),na.verbose("OpenAIError details",JSON.stringify(a))}else if(a instanceof ne){var r;o="Error: ".concat((null==(r=a.body)?void 0:r.error)||a.message),a.status&&(o+=" (Status: ".concat(a.status,")")),na.verbose("ChatApiError details",JSON.stringify(a.body))}else a instanceof Error&&(o=a.message);$(o),X(e.id,!1),to.current===e.id&&(tP(),V(!1),eJ(null),tw()),t&&eQ.current.add(e.id)}finally{}return n},tO=async(e,t,n)=>{if(!O)return;na.debug("Editing message",{messageId:e,contentLength:t.length,processNodeId:n});let r=O.messages.findIndex(t=>t.id===e);if(-1===r)return;let o={...O.messages[r],content:t,timestamp:Date.now(),processNodeId:n||void 0},a=[...O.messages.slice(0,r),o],l={...O,messages:a};if(tb(l),l.flowId){let e={flujo:"true",requireApproval:en?"true":void 0,flujodebug:ed?"true":void 0,conversationId:l.id,processNodeId:n||void 0};if(!eq.current)return;$(null),V(!0),eJ(l.id),X(l.id,!0),e5(l.id,!1),e_({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await tk(l.id);try{let t=await tA.g.getFlow(l.flowId);if(!t)throw Error("Flow with ID ".concat(l.flowId," not found"));let n=l.messages.filter(e=>{var t;return!e.disabled&&!((null!=(t=e.depth)?t:0)>0)}).map(e=>{let t=nl(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}}),r=await eq.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})()}),o={...r,status:r.status||"completed",conversation_id:l.id,messages:r.messages||l.messages,pendingToolCalls:r.pendingToolCalls,debugState:r.debugState,error:r.error,updatedAt:r.updatedAt||Date.now()};tD(o,l.id)}catch(e){ns(e)||eZ.current.has(l.id)?(na.info("Edited-message run cancelled by user",{conversationId:l.id}),e5(l.id,!0)):(na.error("Error sending edited message:",e),$(e instanceof Error?e.message:"Failed to send edited message")),X(l.id,!1),to.current===l.id&&(V(!1),eJ(null),tw())}}},tF=async(e,t)=>{if(B){na.info("Handling tool response: ".concat(e),{conversationId:B,toolCallId:t}),ep(null),V(!0),eJ(B),X(B,!0),$(null),await tk(B);try{let n=await no.respondToToolCall(B,e,t);na.debug("Tool response successful",{conversationId:B,action:e,toolCallId:t}),tD(n,B)}catch(o){if(ns(o)||eZ.current.has(B)){na.info("Tool-response resume cancelled by user",{conversationId:B}),e5(B,!0),to.current===B&&V(!1),X(B,!1);return}na.error("Error sending tool response (".concat(e,")"),{conversationId:B,toolCallId:t,err:o});let r="Failed to ".concat(e," tool call.");if(o instanceof ne){var n;r+=" Error: ".concat((null==(n=o.body)?void 0:n.error)||o.message)}else o instanceof Error&&(r+=" Error: ".concat(o.message));$(r),to.current===B&&V(!1),X(B,!1)}}},tM=async()=>{if(B&&em){na.info("Handling debug step request",{conversationId:B}),V(!0),eJ(B),X(B,!0),$(null),await tk(B);try{let e=await no.debugStep(B);tD(e,B)}catch(e){na.error("Error during debug step API call",{conversationId:B,err:e}),$(e instanceof Error?e.message:"Failed to execute debug step."),V(!1),X(B,!1),ev(!1),eb(null)}finally{}}},tW=async()=>{if(B&&em){na.info("Handling debug continue request",{conversationId:B}),V(!0),eJ(B),X(B,!0),$(null),ev(!1),await tk(B);try{let e=await no.debugContinue(B);tD(e,B)}catch(e){na.error("Error during debug continue API call",{conversationId:B,err:e}),$(e instanceof Error?e.message:"Failed to continue execution."),V(!1),X(B,!1)}finally{}}};(0,o.useEffect)(()=>{if(ey){var e;eH(null!=(e=ey.breakpoints)?e:[])}},[ey]);let tL=(0,o.useCallback)(async e=>{if(!B)return;let t=eL.includes(e)?eL.filter(t=>t!==e):[...eL,e];eH(t);try{await no.setBreakpoints(B,t)}catch(e){na.error("Failed to update breakpoints",{conversationId:B,err:e}),eH(eL)}},[eL,B]),tH=async()=>{if(!B||!em)return;let e=null==ey?void 0:ey.currentNodeId;V(!0),eJ(B),X(B,!0),$(null),await tk(B);try{for(let o=0;o<50;o++){var t,n,r;let o=await no.debugStep(B),a=null!=(r=null==o?void 0:o.status)?r:null==o||null==(t=o.debugState)?void 0:t.status,l=null==o||null==(n=o.debugState)?void 0:n.currentNodeId;if("paused_debug"!==a||l&&l!==e)return void tD(o,B)}na.warn("Step Over hit iteration cap",{conversationId:B}),V(!1),X(B,!1)}catch(e){na.error("Error during step over",{conversationId:B,err:e}),$(e instanceof Error?e.message:"Failed to step over."),V(!1),X(B,!1)}},tB=async()=>{if(B){na.info("Cancelling request",{conversationId:B}),tP(),V(!1),eJ(null),X(B,!1),e5(B,!0),ej(!1),tw(),ep(null),$(null);try{await no.cancel(B),na.debug("Cancel request sent successfully",{conversationId:B}),await tl(B)}catch(e){na.error("Error sending cancel request",{conversationId:B,err:e}),$("Failed to send cancel request to the server.")}}},tJ=async e=>{if(e===B)return void await tB();na.info("Stopping background conversation",{conversationId:e}),e5(e,!0);try{await no.cancel(e),X(e,!1),await ta(void 0,{silent:!0})}catch(t){na.error("Error stopping background conversation",{conversationId:e,err:t}),$("Failed to send cancel request to the server.")}},tU=async()=>{na.info("Closing debugger panel",{conversationId:B}),ev(!1),eb(null),ej(!1),await tB()};na.debug("Rendering Chat component",{currentConversationId:B,isHandleEditMessageDefined:!0});let tq=(ew||em)&&!!ey&&!!B,tG=(null==ts?void 0:ts.status)==="awaiting_tool_approval"||!!eu,tV=!(tG||(null==ts?void 0:ts.status)==="paused_debug")&&(G&&eB===B||!!B&&K.has(B)||(null==ts?void 0:ts.status)==="running"),tK=!tV&&!!B&&e$.has(B);return(0,r.jsxs)(i.default,{sx:{display:"flex",height:"calc(100vh - 64px)"},children:[eN&&(0,r.jsx)(i.default,{sx:{width:40,flexShrink:0,borderRight:1,borderColor:"divider",display:"flex",justifyContent:"center",pt:1},children:(0,r.jsx)(s.A,{title:"Show conversation sidebar",children:(0,r.jsx)(d.A,{size:"small",onClick:eR,"aria-label":"Show conversation sidebar",children:(0,r.jsx)(E.A,{fontSize:"small"})})})}),!eN&&(0,r.jsx)(i.default,{sx:{width:eE,flexShrink:0,borderRight:1,borderColor:"divider",display:"flex",flexDirection:"column"},children:R?(0,r.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%",p:2},children:(0,r.jsx)(t8.default,{size:"medium",color:"primary"})}):P?(0,r.jsx)(c.A,{severity:"error",sx:{m:2},children:P}):(0,r.jsx)(er,{conversations:n,flowNames:tu,currentConversationId:B,onSelectConversation:J,onDeleteConversation:tE,onStopConversation:tJ,onNewConversation:tg,onQuickChat:()=>tv(!0),onCollapse:eR})}),!eN&&(0,r.jsx)(i.default,{onPointerDown:eD,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,r.jsxs)(i.default,{sx:{flex:1,height:"100%",display:"flex",minWidth:0,minHeight:0},children:[(0,r.jsxs)(i.default,{sx:{flex:1,minWidth:0,display:"flex",flexDirection:"column",height:"100%"},children:[B&&(0,r.jsx)(i.default,{sx:{px:2,pt:2,pb:1,display:"flex",alignItems:"center",gap:1,minWidth:0},children:ea?(0,r.jsx)(u.A,{value:ei,onChange:e=>es(e.target.value),onBlur:tz,onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),tz()):"Escape"===e.key&&el(!1)},size:"small",autoFocus:!0,fullWidth:!0,inputProps:{maxLength:200,"aria-label":"Conversation title"}}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(p.default,{variant:"h6",noWrap:!0,onClick:tN,title:(null==O?void 0:O.title)||(null==ts?void 0:ts.title)||"",sx:{flex:1,minWidth:0,cursor:"text"},children:(null==O?void 0:O.title)||(null==ts?void 0:ts.title)||"Untitled Conversation"}),(0,r.jsx)(s.A,{title:"Rename conversation",children:(0,r.jsx)(d.A,{size:"small",onClick:tN,"aria-label":"Rename conversation",children:(0,r.jsx)(T.A,{fontSize:"small"})})})]})}),B&&(0,r.jsxs)(i.default,{sx:{p:2,borderBottom:1,borderColor:"divider",display:"flex",alignItems:"center",gap:2},children:[(0,r.jsx)(i.default,{sx:{flex:1,minWidth:0},children:Y((null==ts?void 0:ts.flowId)||(null==O?void 0:O.flowId))?(0,r.jsx)(f.A,{color:"primary",variant:"outlined",icon:(0,r.jsx)(A.A,{}),label:"Quick Chat"}):(0,r.jsx)(tc.A,{selectedFlowId:(null==ts?void 0:ts.flowId)||(null==O?void 0:O.flowId)||null,onSelectFlow:e=>{var t,n,r,o;if(!B){na.warn("Cannot update flow: No conversation selected."),$("Please select a conversation first.");return}Y(e)||q(e);let a=null!=(r=null!=(n=null==O?void 0:O.flowId)?n:null==ts?void 0:ts.flowId)?r:null;if((null!=(o=null==O||null==(t=O.messages)?void 0:t.length)?o:0)>0&&a&&e!==a){na.debug("Flow switch on executed conversation — asking for confirmation",{flowId:e,currentFlowId:a}),eh(e);return}tT(e)},disabled:em})}),(()=>{let e=(null==ts?void 0:ts.flowId)||(null==O?void 0:O.flowId)||null;return!e||Y(e)?null:(0,r.jsx)(s.A,{title:"Open this flow in the FlowBuilder",children:(0,r.jsx)(d.A,{color:"primary",onClick:()=>t.push("/flows?flow=".concat(encodeURIComponent(e))),children:(0,r.jsx)(N.A,{})})})})(),(0,r.jsx)(td,{usage:null==O?void 0:O.usage,contextInfo:null==O?void 0:O.contextInfo,availableNodes:tp})]}),(0,r.jsxs)(i.default,{sx:{flex:1,minHeight:0,position:"relative",display:"flex",flexDirection:"column"},children:[(0,r.jsx)(i.default,{ref:e6,onScroll:tn,sx:{flex:1,overflow:"auto",p:2},children:M?(0,r.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,r.jsx)(t8.default,{size:"medium",color:"primary"})}):L?(0,r.jsx)(c.A,{severity:"error",sx:{m:2},children:L}):O?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eU,{messages:O.messages,pendingToolCalls:eu,availableNodes:tp,conversationId:O.id,onToggleDisabled:e=>{if(!O)return;na.debug("Toggling message disabled state",{messageId:e});let t=O.messages.map(t=>t.id===e?{...t,disabled:!t.disabled}:t);tb({...O,messages:t})},onSplitConversation:e=>{if(!O)return;na.debug("Splitting conversation at message",{messageId:e});let t=O.messages.findIndex(t=>t.id===e);if(-1===t)return;let n=O.messages.slice(0,t+1),r=(0,e0.A)(),o={id:r,title:"Split from ".concat(O.title),messages:n,flowId:O.flowId,createdAt:Date.now(),updatedAt:Date.now()},l={id:r,title:o.title,flowId:o.flowId,createdAt:o.createdAt,updatedAt:o.updatedAt};eQ.current.add(r),a(e=>[l,...e].sort((e,t)=>t.updatedAt-e.updatedAt)),J(r),F(o),W(!1),H(null)},onEditMessage:tO,onApproveToolCall:e=>{tF("approve",e)},onRejectToolCall:e=>{tF("reject",e)}}),!G&&!em&&O.messages.length>0&&(null==ts?void 0:ts.status)==="completed"&&(0,r.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,r.jsx)(c.A,{icon:(0,r.jsx)(k.A,{fontSize:"inherit"}),severity:"success",variant:"filled",sx:{borderRadius:2,py:.5},children:"Conversation completed"})}),!G&&!em&&tK&&(0,r.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,r.jsx)(c.A,{icon:(0,r.jsx)(C.A,{fontSize:"inherit"}),severity:"info",variant:"outlined",sx:{borderRadius:2,py:.5,alignItems:"center"},action:(0,r.jsx)(h.A,{color:"inherit",size:"small",startIcon:(0,r.jsx)(S.A,{}),onClick:()=>t_(O),children:"Resume"}),children:"Conversation stopped"})}),!G&&!em&&!Z&&!tK&&(null==ts?void 0:ts.status)==="error"&&(0,r.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,r.jsx)(c.A,{icon:(0,r.jsx)(I.A,{fontSize:"inherit"}),severity:"error",variant:"filled",sx:{borderRadius:2,py:.5,alignItems:"center"},action:(0,r.jsx)(h.A,{color:"inherit",size:"small",startIcon:(0,r.jsx)(S.A,{}),onClick:()=>{t_(O)},children:"Retry"}),children:"Conversation ended with an error"})}),tV&&!em&&(0,r.jsx)(e9,{liveStats:eP,lanes:eM,onOpenLane:J,onStop:tB,stopDisabled:!B}),!tV&&tG&&!em&&(0,r.jsx)(e9,{liveStats:eP,lanes:eM,onOpenLane:J,awaitingApproval:!0,onStop:tB,stopDisabled:!B}),Z&&(0,r.jsx)(c.A,{severity:"error",sx:{mt:2},action:(0,r.jsx)(h.A,{color:"inherit",size:"small",startIcon:(0,r.jsx)(S.A,{}),onClick:()=>{O&&t_(O)},children:"Retry"}),children:Z})]}):(0,r.jsx)(p.default,{variant:"body1",color:"textSecondary",align:"center",sx:{mt:4},children:n.length>0?"Select a conversation or create a new one.":"Create a new conversation to start chatting."})}),(0,r.jsx)(g.A,{in:e3,unmountOnExit:!0,children:(0,r.jsx)(x.A,{size:"small",color:"primary","aria-label":"Scroll to latest messages",onClick:tr,sx:{position:"absolute",bottom:16,right:24,zIndex:2},children:(0,r.jsx)(j.A,{})})})]}),(0,r.jsx)(i.default,{sx:{p:2,borderTop:1,borderColor:"divider"},children:(0,r.jsx)(e2,{onSendMessage:tR,disabled:M||!!B&&K.has(B)||!((null==O?void 0:O.flowId)||(null==ts?void 0:ts.flowId))||!!eu||em,requireApproval:en,onRequireApprovalChange:ti,executeInDebugger:ed,onExecuteInDebuggerChange:ec,availableNodes:tp,currentNodeId:th,nodeOverrideActive:!!eg,onSelectNode:ex})})]})," ",tq&&ey&&B&&!ek&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.default,{onPointerDown:eC,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,r.jsx)(i.default,{sx:{width:eA?"".concat(eA,"px"):"50%",minWidth:360,maxWidth:"85vw",flexShrink:0,display:"flex",flexDirection:"column",height:"100%"},children:(0,r.jsx)(t4,{debugState:ey,conversationId:B,liveActivity:eO,onStep:tM,onStepOver:tH,onContinue:tW,onCancel:tB,isLoading:G,breakpoints:eL,onToggleBreakpoint:tL,onClose:tU,isExpanded:ek,onToggleExpand:()=>eI(e=>!e)})})]})]})," ",tq&&ey&&B&&ek&&(0,r.jsx)(m.A,{fullScreen:!0,open:!0,onClose:()=>eI(!1),children:(0,r.jsx)(i.default,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:(0,r.jsx)(t4,{debugState:ey,conversationId:B,liveActivity:eO,onStep:tM,onStepOver:tH,onContinue:tW,onCancel:tB,isLoading:G,breakpoints:eL,onToggleBreakpoint:tL,onClose:tU,isExpanded:ek,onToggleExpand:()=>eI(e=>!e)})})}),(0,r.jsxs)(m.A,{open:!!ef,onClose:()=>eh(null),children:[(0,r.jsx)(v.A,{children:"Switch flow?"}),(0,r.jsx)(y.A,{children:(0,r.jsxs)(b.A,{children:["This conversation has already been processed with its current flow."," ","If you switch to"," ",(0,r.jsx)("strong",{children:(null==(e=ee.find(e=>e.id===ef))?void 0:e.name)||"the selected flow"}),","," ","the conversation will continue processing from that flow's Start node again."]})}),(0,r.jsxs)(w.A,{children:[(0,r.jsx)(h.A,{onClick:()=>eh(null),children:"Cancel"}),(0,r.jsx)(h.A,{variant:"contained",onClick:()=>{eh(null),ef&&tT(ef)},children:"Switch Flow"})]})]}),(0,r.jsx)(tf,{open:tm,onClose:()=>tv(!1),onStart:ty})]})},nc=(0,eP.h)("frontend/components/ClientOnly");function nu(e){let{children:t}=e,[n,a]=(0,o.useState)(!1);return((0,o.useEffect)(()=>(nc.debug("ClientOnly component mounted"),a(!0),()=>{nc.debug("ClientOnly component unmounted")}),[]),n)?(nc.debug("ClientOnly component rendering children"),(0,r.jsx)(r.Fragment,{children:t})):(nc.debug("ClientOnly component rendering null (not yet mounted)"),null)}let np=(0,eP.h)("app/chat/page");function nf(){return np.debug("Rendering ChatPage"),(0,r.jsx)(a.A,{maxWidth:!1,disableGutters:!0,children:(0,r.jsx)(nu,{children:(0,r.jsx)(nd,{})})})}},97206:(e,t,n)=>{Promise.resolve().then(n.bind(n,96255))}},e=>{e.O(0,[3862,2678,4754,9244,7274,1871,9704,2003,9562,488,3272,8470,3077,9240,2403,3333,3556,1731,1675,9554,8607,2005,4003,4775,812,5336,6691,8441,1255,7358],()=>e(e.s=97206)),_N_E=e.O()}]);
|