flujo-ai 3.9.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 -0
- package/.next/app-build-manifest.json +592 -0
- package/.next/app-path-routes-manifest.json +63 -0
- package/.next/build-manifest.json +33 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +58 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +205 -0
- package/.next/react-loadable-manifest.json +83 -0
- package/.next/required-server-files.json +328 -0
- package/.next/routes-manifest.json +305 -0
- package/.next/server/app/_not-found/page.js +4 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +8 -0
- package/.next/server/app/_not-found.rsc +16 -0
- package/.next/server/app/api/backup/route.js +2 -0
- package/.next/server/app/api/backup/route.js.nft.json +1 -0
- package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/browse/route.js +2 -0
- package/.next/server/app/api/browse/route.js.nft.json +1 -0
- package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/route.js +2 -0
- package/.next/server/app/api/cwd/route.js.nft.json +1 -0
- package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/encryption/secure/route.js +1 -0
- package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -0
- package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/env/route.js +2 -0
- package/.next/server/app/api/env/route.js.nft.json +1 -0
- package/.next/server/app/api/env/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/flow/[id]/route.js +1 -0
- package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/flow/prompt-renderer/route.js +2 -0
- package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -0
- package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/flow/route.js +1 -0
- package/.next/server/app/api/flow/route.js.nft.json +1 -0
- package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/route.js +3 -0
- package/.next/server/app/api/git/route.js.nft.json +1 -0
- package/.next/server/app/api/git/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/init/route.js +1 -0
- package/.next/server/app/api/init/route.js.nft.json +1 -0
- package/.next/server/app/api/init/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/cancel/route.js +2 -0
- package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/route.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -0
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/servers/route.js +1 -0
- package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/test-connection/route.js +1 -0
- package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp-registry/route.js +2 -0
- package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp-registry/spotlight/route.js +2 -0
- package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/model/[id]/route.js +1 -0
- package/.next/server/app/api/model/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/model/provider/route.js +2 -0
- package/.next/server/app/api/model/provider/route.js.nft.json +1 -0
- package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/model/route.js +1 -0
- package/.next/server/app/api/model/route.js.nft.json +1 -0
- package/.next/server/app/api/model/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/model/test/route.js +2 -0
- package/.next/server/app/api/model/test/route.js.nft.json +1 -0
- package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/oauth/callback/route.js +2 -0
- package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -0
- package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/oauth/initiate/route.js +2 -0
- package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -0
- package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/oauth/reset/route.js +2 -0
- package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -0
- package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/planned-executions/[id]/route.js +1 -0
- package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/planned-executions/[id]/run/route.js +1 -0
- package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -0
- package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/planned-executions/[id]/runs/route.js +1 -0
- package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -0
- package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/planned-executions/preview-schedule/route.js +2 -0
- package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -0
- package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/planned-executions/route.js +1 -0
- package/.next/server/app/api/planned-executions/route.js.nft.json +1 -0
- package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/restore/route.js +2 -0
- package/.next/server/app/api/restore/route.js.nft.json +1 -0
- package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/storage/route.js +2 -0
- package/.next/server/app/api/storage/route.js.nft.json +1 -0
- package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/update/route.js +2 -0
- package/.next/server/app/api/update/route.js.nft.json +1 -0
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/webhooks/[id]/route.js +1 -0
- package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/chat/page.js +10 -0
- package/.next/server/app/chat/page.js.nft.json +1 -0
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -0
- package/.next/server/app/chat.html +1 -0
- package/.next/server/app/chat.meta +7 -0
- package/.next/server/app/chat.rsc +20 -0
- package/.next/server/app/docs/page.js +2 -0
- package/.next/server/app/docs/page.js.nft.json +1 -0
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -0
- package/.next/server/app/docs.html +1 -0
- package/.next/server/app/docs.meta +7 -0
- package/.next/server/app/docs.rsc +20 -0
- package/.next/server/app/executions/page.js +5 -0
- package/.next/server/app/executions/page.js.nft.json +1 -0
- package/.next/server/app/executions/page_client-reference-manifest.js +1 -0
- package/.next/server/app/executions.html +1 -0
- package/.next/server/app/executions.meta +7 -0
- package/.next/server/app/executions.rsc +20 -0
- package/.next/server/app/flows/page.js +40 -0
- package/.next/server/app/flows/page.js.nft.json +1 -0
- package/.next/server/app/flows/page_client-reference-manifest.js +1 -0
- package/.next/server/app/flows.html +1 -0
- package/.next/server/app/flows.meta +7 -0
- package/.next/server/app/flows.rsc +21 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +7 -0
- package/.next/server/app/index.rsc +20 -0
- package/.next/server/app/mcp/page.js +50 -0
- package/.next/server/app/mcp/page.js.nft.json +1 -0
- package/.next/server/app/mcp/page_client-reference-manifest.js +1 -0
- package/.next/server/app/mcp-flows/route.js +1 -0
- package/.next/server/app/mcp-flows/route.js.nft.json +1 -0
- package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -0
- package/.next/server/app/mcp-proxy/[server]/route.js +1 -0
- package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -0
- package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/mcp.html +1 -0
- package/.next/server/app/mcp.meta +7 -0
- package/.next/server/app/mcp.rsc +20 -0
- package/.next/server/app/models/page.js +3 -0
- package/.next/server/app/models/page.js.nft.json +1 -0
- package/.next/server/app/models/page_client-reference-manifest.js +1 -0
- package/.next/server/app/page.js +2 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +1 -0
- package/.next/server/app/settings/page.js +46 -0
- package/.next/server/app/settings/page.js.nft.json +1 -0
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -0
- package/.next/server/app/settings.html +1 -0
- package/.next/server/app/settings.meta +7 -0
- package/.next/server/app/settings.rsc +20 -0
- package/.next/server/app/v1/chat/completions/route.js +2 -0
- package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +11 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/route.js +2 -0
- package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/models/route.js +2 -0
- package/.next/server/app/v1/models/route.js.nft.json +1 -0
- package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +63 -0
- package/.next/server/chunks/120.js +15 -0
- package/.next/server/chunks/1223.js +1 -0
- package/.next/server/chunks/1373.js +1 -0
- package/.next/server/chunks/1381.js +1 -0
- package/.next/server/chunks/1403.js +6 -0
- package/.next/server/chunks/1555.js +1 -0
- package/.next/server/chunks/1692.js +1 -0
- package/.next/server/chunks/1870.js +1 -0
- package/.next/server/chunks/1905.js +2 -0
- package/.next/server/chunks/1986.js +1 -0
- package/.next/server/chunks/2181.js +17 -0
- package/.next/server/chunks/22.js +4 -0
- package/.next/server/chunks/2253.js +1 -0
- package/.next/server/chunks/232.js +1 -0
- package/.next/server/chunks/2471.js +1 -0
- package/.next/server/chunks/2666.js +1 -0
- package/.next/server/chunks/2695.js +95 -0
- package/.next/server/chunks/2776.js +3 -0
- package/.next/server/chunks/3736.js +1 -0
- package/.next/server/chunks/3984.js +9 -0
- package/.next/server/chunks/4239.js +1 -0
- package/.next/server/chunks/4322.js +1 -0
- package/.next/server/chunks/4706.js +1 -0
- package/.next/server/chunks/4729.js +6 -0
- package/.next/server/chunks/473.js +2 -0
- package/.next/server/chunks/4753.js +8 -0
- package/.next/server/chunks/4989.js +1 -0
- package/.next/server/chunks/5389.js +154 -0
- package/.next/server/chunks/5443.js +1 -0
- package/.next/server/chunks/5486.js +1 -0
- package/.next/server/chunks/5547.js +2 -0
- package/.next/server/chunks/558.js +1 -0
- package/.next/server/chunks/5611.js +6 -0
- package/.next/server/chunks/5734.js +60 -0
- package/.next/server/chunks/5838.js +1 -0
- package/.next/server/chunks/5873.js +22 -0
- package/.next/server/chunks/598.js +1 -0
- package/.next/server/chunks/6064.js +1 -0
- package/.next/server/chunks/62.js +1 -0
- package/.next/server/chunks/6283.js +2 -0
- package/.next/server/chunks/6390.js +28 -0
- package/.next/server/chunks/6542.js +1 -0
- package/.next/server/chunks/6637.js +2 -0
- package/.next/server/chunks/6760.js +1 -0
- package/.next/server/chunks/6936.js +35 -0
- package/.next/server/chunks/6996.js +62 -0
- package/.next/server/chunks/701.js +10 -0
- package/.next/server/chunks/7214.js +6 -0
- package/.next/server/chunks/724.js +27 -0
- package/.next/server/chunks/7412.js +5 -0
- package/.next/server/chunks/7506.js +10 -0
- package/.next/server/chunks/7531.js +52 -0
- package/.next/server/chunks/805.js +2 -0
- package/.next/server/chunks/812.js +2 -0
- package/.next/server/chunks/8298.js +1 -0
- package/.next/server/chunks/8312.js +5 -0
- package/.next/server/chunks/8445.js +82 -0
- package/.next/server/chunks/8460.js +1 -0
- package/.next/server/chunks/8693.js +1 -0
- package/.next/server/chunks/8739.js +2 -0
- package/.next/server/chunks/8938.js +8 -0
- package/.next/server/chunks/9042.js +1 -0
- package/.next/server/chunks/9188.js +1 -0
- package/.next/server/chunks/9273.js +4 -0
- package/.next/server/chunks/9314.js +12 -0
- package/.next/server/chunks/9343.js +5 -0
- package/.next/server/chunks/9406.js +95 -0
- package/.next/server/chunks/9938.js +1 -0
- package/.next/server/chunks/9989.js +1 -0
- package/.next/server/functions-config-manifest.json +10 -0
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages/_app.js +1 -0
- package/.next/server/pages/_app.js.nft.json +1 -0
- package/.next/server/pages/_document.js +1 -0
- package/.next/server/pages/_document.js.nft.json +1 -0
- package/.next/server/pages/_error.js +19 -0
- package/.next/server/pages/_error.js.nft.json +1 -0
- package/.next/server/pages-manifest.json +6 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/GbXXL_8DLT2oVwT-JdpbM/_buildManifest.js +1 -0
- package/.next/static/GbXXL_8DLT2oVwT-JdpbM/_ssgManifest.js +1 -0
- package/.next/static/chunks/1255-13d973e0759ea6d6.js +1 -0
- package/.next/static/chunks/1374-e084b3c40554288a.js +1 -0
- package/.next/static/chunks/1424-01898260211a09d0.js +1 -0
- package/.next/static/chunks/1646.a93085a0445ba909.js +1 -0
- package/.next/static/chunks/1a258343-bcffff1604e3797c.js +1 -0
- package/.next/static/chunks/2003-7710c23acaef11c9.js +1 -0
- package/.next/static/chunks/2005-f9d38c39f10c321f.js +1 -0
- package/.next/static/chunks/2160-4d9f132965bc2a89.js +1 -0
- package/.next/static/chunks/2380-2a7acfa037ec8e80.js +1 -0
- package/.next/static/chunks/2619-04bc32f026a0d946.js +1 -0
- package/.next/static/chunks/2624-b985ab3eac1139c3.js +1 -0
- package/.next/static/chunks/2678-c88052addfb0478a.js +1 -0
- package/.next/static/chunks/2720-2a926505ec98a6de.js +1 -0
- package/.next/static/chunks/3077-565833c67440a7fa.js +1 -0
- package/.next/static/chunks/3217.79ca74c918fc772c.js +1 -0
- package/.next/static/chunks/3235-dfcb73b8d483f8cd.js +1 -0
- package/.next/static/chunks/3272-fd8d59523f61da96.js +1 -0
- package/.next/static/chunks/3403-7c5037145e384171.js +1 -0
- package/.next/static/chunks/3545.c3fbe14528517a75.js +1 -0
- package/.next/static/chunks/3750-38474d67566af4c3.js +1 -0
- package/.next/static/chunks/3810-cee95063d5535307.js +1 -0
- package/.next/static/chunks/39-1732a0b689c7b641.js +1 -0
- package/.next/static/chunks/4754-5c62bb61142f82d1.js +1 -0
- package/.next/static/chunks/488-623d07c3fbc21e28.js +1 -0
- package/.next/static/chunks/4bd1b696-182b6b13bdad92e3.js +1 -0
- package/.next/static/chunks/5139.e4ff9cc3669129ed.js +1 -0
- package/.next/static/chunks/5648-2c6caf3d55f95e11.js +1 -0
- package/.next/static/chunks/5961-828f4f7efc3e1381.js +1 -0
- package/.next/static/chunks/6134-758747aabd77289d.js +8 -0
- package/.next/static/chunks/690-391bc0f482a9f67c.js +1 -0
- package/.next/static/chunks/7126-2bafddf1b09cacac.js +1 -0
- package/.next/static/chunks/7329-78f54f68ea2d37e2.js +1 -0
- package/.next/static/chunks/7396-807a034f58b57712.js +1 -0
- package/.next/static/chunks/7488-b58bc701d0deda00.js +1 -0
- package/.next/static/chunks/7539.41f0448cf9783388.js +1 -0
- package/.next/static/chunks/7583.8a518353bd072db9.js +1 -0
- package/.next/static/chunks/8187.5d6523f30e705998.js +1 -0
- package/.next/static/chunks/8198.cd0d3f8429c02862.js +1 -0
- package/.next/static/chunks/8345.76f420453fc0dee7.js +1 -0
- package/.next/static/chunks/8548-8e4a95334064e8b2.js +1 -0
- package/.next/static/chunks/8598-1b627b3d682b364a.js +1 -0
- package/.next/static/chunks/8862-1314a13b011c4817.js +1 -0
- package/.next/static/chunks/9164-81ca1a1bccdc5ed2.js +1 -0
- package/.next/static/chunks/9195.01a57af6d6cdf1a5.js +1 -0
- package/.next/static/chunks/9244-3281f7fd02003a2c.js +1 -0
- package/.next/static/chunks/9562-93cc45aef3630781.js +1 -0
- package/.next/static/chunks/9718-12d33c1a26bb002d.js +1 -0
- package/.next/static/chunks/app/_not-found/page-81dc485d60f94046.js +1 -0
- package/.next/static/chunks/app/api/backup/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/browse/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/cwd/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/encryption/secure/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/env/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/flow/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/git/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/init/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp/cancel/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/model/[id]/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/model/provider/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/model/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/model/test/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/oauth/callback/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/oauth/initiate/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/oauth/reset/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/restore/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/storage/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/update/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[id]/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/chat/page-019d2b836f34f40d.js +1 -0
- package/.next/static/chunks/app/docs/page-2a4cff7c40706a48.js +1 -0
- package/.next/static/chunks/app/executions/page-b46744c507a6e810.js +1 -0
- package/.next/static/chunks/app/flows/page-7b5c0e06951398ac.js +1 -0
- package/.next/static/chunks/app/layout-2878f13d7e253503.js +1 -0
- package/.next/static/chunks/app/mcp/page-1ca55f88a3045b5d.js +1 -0
- package/.next/static/chunks/app/mcp-flows/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/mcp-proxy/[server]/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/models/error-2b00c98abf1e02cf.js +1 -0
- package/.next/static/chunks/app/models/loading-57d1c02d0817fc47.js +1 -0
- package/.next/static/chunks/app/models/page-a20e6c4e1a5a0c9a.js +1 -0
- package/.next/static/chunks/app/page-471879d3918aeeb6.js +1 -0
- package/.next/static/chunks/app/settings/page-88f7e1b65a6681ec.js +1 -0
- package/.next/static/chunks/app/v1/chat/completions/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/app/v1/models/route-acd5b6e731d45f1a.js +1 -0
- package/.next/static/chunks/ccd63cfe-4a75b90fa4cb53ad.js +1 -0
- package/.next/static/chunks/framework-1548034a53843b9f.js +1 -0
- package/.next/static/chunks/main-app-faff38c77cb00119.js +1 -0
- package/.next/static/chunks/main-be8e823624954fab.js +1 -0
- package/.next/static/chunks/pages/_app-e8b861c87f6f033c.js +1 -0
- package/.next/static/chunks/pages/_error-c8f84f7bd11d43d4.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-6f17a022ac16e8bd.js +1 -0
- package/.next/static/css/64cb1f185b52a623.css +1 -0
- package/.next/static/css/d1484588c616b291.css +31 -0
- package/.next/static/media/013b72fa676f92e0-s.woff2 +0 -0
- package/.next/static/media/22a5144ee8d83bca-s.p.woff2 +0 -0
- package/.next/static/media/2b5b02fc7e511755-s.woff2 +0 -0
- package/.next/static/media/65f03d54ccadf4a8-s.woff2 +0 -0
- package/.next/static/media/7d4881bb7e1bf84d-s.p.woff2 +0 -0
- package/.next/static/media/9766a7e9e2e0ad5a-s.woff2 +0 -0
- package/.next/static/media/aa016aab0e6d1295-s.woff2 +0 -0
- package/.next/static/media/b66cf8e69499582a-s.woff2 +0 -0
- package/.next/static/media/b9408752a0c24fb9-s.woff2 +0 -0
- package/.next/static/media/e038a29029a234f2-s.woff2 +0 -0
- package/.next/static/media/f639721981034f88-s.woff2 +0 -0
- package/.next/trace +7 -0
- package/.next/types/app/api/backup/route.ts +347 -0
- package/.next/types/app/api/browse/route.ts +347 -0
- package/.next/types/app/api/cwd/route.ts +347 -0
- package/.next/types/app/api/encryption/secure/route.ts +347 -0
- package/.next/types/app/api/env/route.ts +347 -0
- package/.next/types/app/api/flow/[id]/route.ts +347 -0
- package/.next/types/app/api/flow/prompt-renderer/route.ts +347 -0
- package/.next/types/app/api/flow/route.ts +347 -0
- package/.next/types/app/api/git/route.ts +347 -0
- package/.next/types/app/api/init/route.ts +347 -0
- package/.next/types/app/api/mcp/cancel/route.ts +347 -0
- package/.next/types/app/api/mcp/servers/[name]/prompts/get/route.ts +347 -0
- package/.next/types/app/api/mcp/servers/[name]/prompts/route.ts +347 -0
- package/.next/types/app/api/mcp/servers/[name]/resources/read/route.ts +347 -0
- package/.next/types/app/api/mcp/servers/[name]/resources/route.ts +347 -0
- package/.next/types/app/api/mcp/servers/[name]/route.ts +347 -0
- package/.next/types/app/api/mcp/servers/[name]/status/route.ts +347 -0
- package/.next/types/app/api/mcp/servers/[name]/tools/[toolName]/route.ts +347 -0
- package/.next/types/app/api/mcp/servers/[name]/tools/route.ts +347 -0
- package/.next/types/app/api/mcp/servers/route.ts +347 -0
- package/.next/types/app/api/mcp/test-connection/route.ts +347 -0
- package/.next/types/app/api/mcp-registry/route.ts +347 -0
- package/.next/types/app/api/mcp-registry/spotlight/route.ts +347 -0
- package/.next/types/app/api/model/[id]/route.ts +347 -0
- package/.next/types/app/api/model/provider/route.ts +347 -0
- package/.next/types/app/api/model/route.ts +347 -0
- package/.next/types/app/api/model/test/route.ts +347 -0
- package/.next/types/app/api/oauth/callback/route.ts +347 -0
- package/.next/types/app/api/oauth/initiate/route.ts +347 -0
- package/.next/types/app/api/oauth/reset/route.ts +347 -0
- package/.next/types/app/api/planned-executions/[id]/route.ts +347 -0
- package/.next/types/app/api/planned-executions/[id]/run/route.ts +347 -0
- package/.next/types/app/api/planned-executions/[id]/runs/route.ts +347 -0
- package/.next/types/app/api/planned-executions/preview-schedule/route.ts +347 -0
- package/.next/types/app/api/planned-executions/route.ts +347 -0
- package/.next/types/app/api/restore/route.ts +347 -0
- package/.next/types/app/api/storage/route.ts +347 -0
- package/.next/types/app/api/update/route.ts +347 -0
- package/.next/types/app/api/webhooks/[id]/route.ts +347 -0
- package/.next/types/app/chat/page.ts +84 -0
- package/.next/types/app/docs/page.ts +84 -0
- package/.next/types/app/executions/page.ts +84 -0
- package/.next/types/app/flows/page.ts +84 -0
- package/.next/types/app/layout.ts +84 -0
- package/.next/types/app/mcp/page.ts +84 -0
- package/.next/types/app/mcp-flows/route.ts +347 -0
- package/.next/types/app/mcp-proxy/[server]/route.ts +347 -0
- package/.next/types/app/models/page.ts +84 -0
- package/.next/types/app/page.ts +84 -0
- package/.next/types/app/settings/page.ts +84 -0
- package/.next/types/app/v1/chat/completions/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/[conversationId]/breakpoints/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/[conversationId]/cancel/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/[conversationId]/debug/continue/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/[conversationId]/debug/step/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/[conversationId]/edit-state/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/[conversationId]/events/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/[conversationId]/respond/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/[conversationId]/route.ts +347 -0
- package/.next/types/app/v1/chat/conversations/route.ts +347 -0
- package/.next/types/app/v1/models/route.ts +347 -0
- package/.next/types/cache-life.d.ts +141 -0
- package/.next/types/package.json +1 -0
- package/.next/types/routes.d.ts +131 -0
- package/.next/types/validator.ts +601 -0
- package/LICENSE +21 -0
- package/README.md +372 -0
- package/bin/flujo.mjs +120 -0
- package/next.config.ts +99 -0
- package/package.json +91 -0
- package/public/favicon.ico +0 -0
- package/public/file.svg +1 -0
- package/public/globe.svg +1 -0
- package/public/next.svg +1 -0
- package/public/vercel.svg +1 -0
- package/public/window.svg +1 -0
- package/scripts/launch-next.mjs +98 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9718],{8567:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return o.workAsyncStorageInstance}});let o=n(17828)},17828:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return o}});let o=(0,n(64054).createAsyncLocalStorage)()},20063:(e,t,n)=>{var o=n(47260);n.o(o,"usePathname")&&n.d(t,{usePathname:function(){return o.usePathname}}),n.o(o,"useRouter")&&n.d(t,{useRouter:function(){return o.useRouter}}),n.o(o,"useSearchParams")&&n.d(t,{useSearchParams:function(){return o.useSearchParams}})},24437:(e,t,n)=>{function o(e){let{reason:t,children:n}=e;return n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return o}}),n(24553)},36552:(e,t,n)=>{function o(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return o}}),n(95155),n(47650),n(8567),n(77278)},48363:(e,t,n)=>{n.d(t,{A:()=>a});var o=n(36697),r=n(95155);let a=(0,o.A)((0,r.jsx)("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5"}),"Link")},48563:(e,t,n)=>{n.d(t,{A:()=>a});var o=n(36697),r=n(95155);let a=(0,o.A)((0,r.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}),"Error")},63109:(e,t,n)=>{n.d(t,{A:()=>ee});var o,r,a=n(12115),l=n(2821),i=n(57001),c=n(8532),u=n(99347),s=n(69827),p=n(2457),d=n(57421),g=n(65083);function f(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}let h=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{ignoreAccents:t=!0,ignoreCase:n=!0,limit:o,matchFrom:r="any",stringify:a,trim:l=!1}=e;return(e,i)=>{let{inputValue:c,getOptionLabel:u}=i,s=l?c.trim():c;n&&(s=s.toLowerCase()),t&&(s=f(s));let p=s?e.filter(e=>{let o=(a||u)(e);return n&&(o=o.toLowerCase()),t&&(o=f(o)),"start"===r?o.startsWith(s):o.includes(s)}):e;return"number"==typeof o?p.slice(0,o):p}}(),m=e=>{var t;return null!==e.current&&(null==(t=e.current.parentElement)?void 0:t.contains(document.activeElement))},b=[];function v(e,t,n){if(t||null==e)return"";let o=n(e);return"string"==typeof o?o:""}let y=function(e){let{unstable_isActiveElementInListbox:t=m,unstable_classNamePrefix:n="Mui",autoComplete:o=!1,autoHighlight:r=!1,autoSelect:l=!1,blurOnSelect:i=!1,clearOnBlur:c=!e.freeSolo,clearOnEscape:f=!1,componentName:y="useAutocomplete",defaultValue:A=e.multiple?b:null,disableClearable:x=!1,disableCloseOnSelect:S=!1,disabled:k,disabledItemsFocusable:P=!1,disableListWrap:I=!1,filterOptions:w=h,filterSelectedOptions:R=!1,freeSolo:O=!1,getOptionDisabled:C,getOptionKey:L,getOptionLabel:M=e=>{var t;return null!=(t=e.label)?t:e},groupBy:j,handleHomeEndKeys:T=!e.freeSolo,id:D,includeInputInList:N=!1,inputValue:z,isOptionEqualToValue:E=(e,t)=>e===t,multiple:H=!1,onChange:_,onClose:W,onHighlightChange:V,onInputChange:F,onOpen:B,open:U,openOnFocus:q=!1,options:G,readOnly:K=!1,selectOnFocus:X=!e.freeSolo,value:J}=e,Q=(0,u.A)(D),Y=M;Y=e=>{let t=M(e);return"string"!=typeof t?String(t):t};let Z=a.useRef(!1),$=a.useRef(!0),ee=a.useRef(null),et=a.useRef(null),[en,eo]=a.useState(null),[er,ea]=a.useState(-1),el=r?0:-1,ei=a.useRef(el),ec=a.useRef(v(null!=A?A:J,H,Y)).current,[eu,es]=(0,s.A)({controlled:J,default:A,name:y}),[ep,ed]=(0,s.A)({controlled:z,default:ec,name:y,state:"inputValue"}),[eg,ef]=a.useState(!1),eh=a.useCallback((e,t,n)=>{if(!(H?eu.length<t.length:null!==t)&&!c)return;let o=v(t,H,Y);ep!==o&&(ed(o),F&&F(e,o,n))},[Y,ep,H,F,ed,c,eu]),[em,eb]=(0,s.A)({controlled:U,default:!1,name:y,state:"open"}),[ev,ey]=a.useState(!0),eA=!H&&null!=eu&&ep===Y(eu),ex=em&&!K,eS=ex?w(G.filter(e=>!(R&&(H?eu:[eu]).some(t=>null!==t&&E(e,t)))),{inputValue:eA&&ev?"":ep,getOptionLabel:Y}):[],ek=(0,p.A)({filteredOptions:eS,value:eu,inputValue:ep});a.useEffect(()=>{let e=eu!==ek.value;(!eg||e)&&(!O||e)&&eh(null,eu,"reset")},[eu,eh,eg,ek.value,O]);let eP=em&&eS.length>0&&!K,eI=(0,d.A)(e=>{-1===e?ee.current.focus():en.querySelector('[data-tag-index="'.concat(e,'"]')).focus()});a.useEffect(()=>{H&&er>eu.length-1&&(ea(-1),eI(-1))},[eu,H,er,eI]);let ew=(0,d.A)(e=>{let{event:t,index:o,reason:r}=e;if(ei.current=o,-1===o?ee.current.removeAttribute("aria-activedescendant"):ee.current.setAttribute("aria-activedescendant","".concat(Q,"-option-").concat(o)),V&&["mouse","keyboard","touch"].includes(r)&&V(t,-1===o?null:eS[o],r),!et.current)return;let a=et.current.querySelector('[role="option"].'.concat(n,"-focused"));a&&(a.classList.remove("".concat(n,"-focused")),a.classList.remove("".concat(n,"-focusVisible")));let l=et.current;if("listbox"!==et.current.getAttribute("role")&&(l=et.current.parentElement.querySelector('[role="listbox"]')),!l)return;if(-1===o){l.scrollTop=0;return}let i=et.current.querySelector('[data-option-index="'.concat(o,'"]'));if(i&&(i.classList.add("".concat(n,"-focused")),"keyboard"===r&&i.classList.add("".concat(n,"-focusVisible")),l.scrollHeight>l.clientHeight&&"mouse"!==r&&"touch"!==r)){let e=l.clientHeight+l.scrollTop,t=i.offsetTop+i.offsetHeight;t>e?l.scrollTop=t-l.clientHeight:i.offsetTop-i.offsetHeight*(1.3*!!j)<l.scrollTop&&(l.scrollTop=i.offsetTop-i.offsetHeight*(1.3*!!j))}}),eR=(0,d.A)(e=>{let{event:t,diff:n,direction:r="next",reason:a}=e;if(!ex)return;let l=function(e,t){if(!et.current||e<0||e>=eS.length)return -1;let n=e;for(;;){let o=et.current.querySelector('[data-option-index="'.concat(n,'"]')),r=!P&&(!o||o.disabled||"true"===o.getAttribute("aria-disabled"));if(o&&o.hasAttribute("tabindex")&&!r)return n;if((n="next"===t?(n+1)%eS.length:(n-1+eS.length)%eS.length)===e)return -1}}((()=>{let e=eS.length-1;if("reset"===n)return el;if("start"===n)return 0;if("end"===n)return e;let t=ei.current+n;return t<0?-1===t&&N?-1:I&&-1!==ei.current||Math.abs(n)>1?0:e:t>e?t===e+1&&N?-1:I||Math.abs(n)>1?e:0:t})(),r);if(ew({index:l,reason:a,event:t}),o&&"reset"!==n)if(-1===l)ee.current.value=ep;else{let e=Y(eS[l]);ee.current.value=e,0===e.toLowerCase().indexOf(ep.toLowerCase())&&ep.length>0&&ee.current.setSelectionRange(ep.length,e.length)}}),eO=a.useCallback(()=>{if(!ex)return;let e=(()=>{var e,t;if(-1!==ei.current&&ek.filteredOptions&&ek.filteredOptions.length!==eS.length&&ek.inputValue===ep&&(H?eu.length===ek.value.length&&ek.value.every((e,t)=>Y(eu[t])===Y(e)):(e=ek.value,t=eu,(e?Y(e):"")===(t?Y(t):"")))){let e=ek.filteredOptions[ei.current];if(e)return eS.findIndex(t=>Y(t)===Y(e))}return -1})();if(-1!==e){ei.current=e;return}let t=H?eu[0]:eu;if(0===eS.length||null==t)return void eR({diff:"reset"});if(et.current){if(null!=t){let e=eS[ei.current];if(H&&e&&-1!==eu.findIndex(t=>E(e,t)))return;let n=eS.findIndex(e=>E(e,t));-1===n?eR({diff:"reset"}):ew({index:n});return}if(ei.current>=eS.length-1)return void ew({index:eS.length-1});ew({index:ei.current})}},[eS.length,!H&&eu,R,eR,ew,ex,ep,H]),eC=(0,d.A)(e=>{(0,g.A)(et,e),e&&eO()});a.useEffect(()=>{eO()},[eO]);let eL=e=>{!em&&(eb(!0),ey(!0),B&&B(e))},eM=(e,t)=>{em&&(eb(!1),W&&W(e,t))},ej=(e,t,n,o)=>{if(H){if(eu.length===t.length&&eu.every((e,n)=>e===t[n]))return}else if(eu===t)return;_&&_(e,t,n,o),es(t)},eT=a.useRef(!1),eD=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"selectOption",o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"options",r=n,a=t;if(H){let e=(a=Array.isArray(eu)?eu.slice():[]).findIndex(e=>E(t,e));-1===e?a.push(t):"freeSolo"!==o&&(a.splice(e,1),r="removeOption")}eh(e,a,r),ej(e,a,r,{option:t}),S||e&&(e.ctrlKey||e.metaKey)||eM(e,r),(!0===i||"touch"===i&&eT.current||"mouse"===i&&!eT.current)&&ee.current.blur()},eN=(e,t)=>{if(!H)return;""===ep&&eM(e,"toggleInput");let n=er;-1===er?""===ep&&"previous"===t&&(n=eu.length-1):((n+="next"===t?1:-1)<0&&(n=0),n===eu.length&&(n=-1)),ea(n=function(e,t){if(-1===e)return -1;let n=e;for(;;){if("next"===t&&n===eu.length||"previous"===t&&-1===n)return -1;let e=en.querySelector('[data-tag-index="'.concat(n,'"]'));if(e&&e.hasAttribute("tabindex")&&!e.disabled&&"true"!==e.getAttribute("aria-disabled"))return n;n+="next"===t?1:-1}}(n,t)),eI(n)},ez=e=>{Z.current=!0,ed(""),F&&F(e,"","clear"),ej(e,H?[]:null,"clear")},eE=e=>{ef(!0),q&&!Z.current&&eL(e)},eH=e=>{if(t(et))return void ee.current.focus();ef(!1),$.current=!0,Z.current=!1,l&&-1!==ei.current&&ex?eD(e,eS[ei.current],"blur"):l&&O&&""!==ep?eD(e,ep,"blur","freeSolo"):c&&eh(e,eu,"blur"),eM(e,"blur")},e_=e=>{let t=e.target.value;ep!==t&&(ed(t),ey(!1),F&&F(e,t,"input")),""===t?x||H||ej(e,null,"clear"):eL(e)},eW=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));ei.current!==t&&ew({event:e,index:t,reason:"mouse"})},eV=e=>{ew({event:e,index:Number(e.currentTarget.getAttribute("data-option-index")),reason:"touch"}),eT.current=!0},eF=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));eD(e,eS[t],"selectOption"),eT.current=!1},eB=e=>{em?eM(e,"toggleInput"):eL(e)},eU=e=>{e.currentTarget.contains(e.target)&&e.target.getAttribute("id")!==Q&&e.preventDefault()},eq=e=>{e.currentTarget.contains(e.target)&&(ee.current.focus(),X&&$.current&&ee.current.selectionEnd-ee.current.selectionStart==0&&ee.current.select(),$.current=!1)},eG=e=>{k||""!==ep&&em||eB(e)},eK=O&&ep.length>0;eK=eK||(H?eu.length>0:null!==eu);let eX=eS;return j&&(eX=eS.reduce((e,t,n)=>{let o=j(t);return e.length>0&&e[e.length-1].group===o?e[e.length-1].options.push(t):e.push({key:n,index:n,group:o,options:[t]}),e},[])),k&&eg&&eH(),{getRootProps:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{...e,onKeyDown:t=>{if(e.onKeyDown&&e.onKeyDown(t),!t.defaultMuiPrevented&&(-1===er||["ArrowLeft","ArrowRight"].includes(t.key)||(ea(-1),eI(-1)),229!==t.which))switch(t.key){case"Home":ex&&T&&(t.preventDefault(),eR({diff:"start",direction:"next",reason:"keyboard",event:t}));break;case"End":ex&&T&&(t.preventDefault(),eR({diff:"end",direction:"previous",reason:"keyboard",event:t}));break;case"PageUp":t.preventDefault(),eR({diff:-5,direction:"previous",reason:"keyboard",event:t}),eL(t);break;case"PageDown":t.preventDefault(),eR({diff:5,direction:"next",reason:"keyboard",event:t}),eL(t);break;case"ArrowDown":t.preventDefault(),eR({diff:1,direction:"next",reason:"keyboard",event:t}),eL(t);break;case"ArrowUp":t.preventDefault(),eR({diff:-1,direction:"previous",reason:"keyboard",event:t}),eL(t);break;case"ArrowLeft":eN(t,"previous");break;case"ArrowRight":eN(t,"next");break;case"Enter":if(-1!==ei.current&&ex){let e=eS[ei.current],n=!!C&&C(e);if(t.preventDefault(),n)return;eD(t,e,"selectOption"),o&&ee.current.setSelectionRange(ee.current.value.length,ee.current.value.length)}else O&&""!==ep&&!1===eA&&(H&&t.preventDefault(),eD(t,ep,"createOption","freeSolo"));break;case"Escape":ex?(t.preventDefault(),t.stopPropagation(),eM(t,"escape")):f&&(""!==ep||H&&eu.length>0)&&(t.preventDefault(),t.stopPropagation(),ez(t));break;case"Backspace":if(H&&!K&&""===ep&&eu.length>0){let e=-1===er?eu.length-1:er,n=eu.slice();n.splice(e,1),ej(t,n,"removeOption",{option:eu[e]})}break;case"Delete":if(H&&!K&&""===ep&&eu.length>0&&-1!==er){let e=eu.slice();e.splice(er,1),ej(t,e,"removeOption",{option:eu[er]})}}},onMouseDown:eU,onClick:eq}},getInputLabelProps:()=>({id:"".concat(Q,"-label"),htmlFor:Q}),getInputProps:()=>({id:Q,value:ep,onBlur:eH,onFocus:eE,onChange:e_,onMouseDown:eG,"aria-activedescendant":ex?"":null,"aria-autocomplete":o?"both":"list","aria-controls":eP?"".concat(Q,"-listbox"):void 0,"aria-expanded":eP,autoComplete:"off",ref:ee,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:k}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:ez}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:eB}),getTagProps:e=>{let{index:t}=e;return{key:t,"data-tag-index":t,tabIndex:-1,...!K&&{onDelete:e=>{let n=eu.slice();n.splice(t,1),ej(e,n,"removeOption",{option:eu[t]})}}}},getListboxProps:()=>({role:"listbox",id:"".concat(Q,"-listbox"),"aria-labelledby":"".concat(Q,"-label"),ref:eC,onMouseDown:e=>{e.preventDefault()}}),getOptionProps:e=>{var t;let{index:n,option:o}=e,r=(H?eu:[eu]).some(e=>null!=e&&E(o,e)),a=!!C&&C(o);return{key:null!=(t=null==L?void 0:L(o))?t:Y(o),tabIndex:-1,role:"option",id:"".concat(Q,"-option-").concat(n),onMouseMove:eW,onClick:eF,onTouchStart:eV,"data-option-index":n,"aria-disabled":a,"aria-selected":r}},id:Q,inputValue:ep,value:eu,dirty:eK,expanded:ex&&en,popupOpen:ex,focused:eg||-1!==er,anchorEl:en,setAnchorEl:eo,focusedTag:er,groupedOptions:eX}};var A=n(3004),x=n(48116),S=n(66964),k=n(16625),P=n(81852),I=n(85795),w=n(95195);function R(e){return(0,w.Ay)("MuiListSubheader",e)}(0,I.A)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);var O=n(95155);let C=(0,x.Ay)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,"default"!==n.color&&t["color".concat((0,P.A)(n.color))],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})((0,S.A)(e=>{let{theme:t}=e;return{boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(t.vars||t).palette.text.secondary,fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(t.vars||t).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:e=>{let{ownerState:t}=e;return!t.disableGutters},style:{paddingLeft:16,paddingRight:16}},{props:e=>{let{ownerState:t}=e;return t.inset},style:{paddingLeft:72}},{props:e=>{let{ownerState:t}=e;return!t.disableSticky},style:{position:"sticky",top:0,zIndex:1,backgroundColor:(t.vars||t).palette.background.paper}}]}})),L=a.forwardRef(function(e,t){let n=(0,k.b)({props:e,name:"MuiListSubheader"}),{className:o,color:r="default",component:a="li",disableGutters:c=!1,disableSticky:u=!1,inset:s=!1,...p}=n,d={...n,color:r,component:a,disableGutters:c,disableSticky:u,inset:s},g=(e=>{let{classes:t,color:n,disableGutters:o,inset:r,disableSticky:a}=e,l={root:["root","default"!==n&&"color".concat((0,P.A)(n)),!o&&"gutters",r&&"inset",!a&&"sticky"]};return(0,i.A)(l,R,t)})(d);return(0,O.jsx)(C,{as:a,className:(0,l.A)(g.root,o),ref:t,ownerState:d,...p})});L&&(L.muiSkipListHighlight=!0);var M=n(2300),j=n(41983),T=n(28548),D=n(40353),N=n(13693),z=n(44877),E=n(81781),H=n(57908),_=n(10556);function W(e){return(0,w.Ay)("MuiAutocomplete",e)}let V=(0,I.A)("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var F=n(77765);let B=(0,x.Ay)("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e,{fullWidth:o,hasClearIcon:r,hasPopupIcon:a,inputFocused:l,size:i}=n;return[{["& .".concat(V.tag)]:t.tag},{["& .".concat(V.tag)]:t["tagSize".concat((0,P.A)(i))]},{["& .".concat(V.inputRoot)]:t.inputRoot},{["& .".concat(V.input)]:t.input},{["& .".concat(V.input)]:l&&t.inputFocused},t.root,o&&t.fullWidth,a&&t.hasPopupIcon,r&&t.hasClearIcon]}})({["&.".concat(V.focused," .").concat(V.clearIndicator)]:{visibility:"visible"},"@media (pointer: fine)":{["&:hover .".concat(V.clearIndicator)]:{visibility:"visible"}},["& .".concat(V.tag)]:{margin:3,maxWidth:"calc(100% - 6px)"},["& .".concat(V.inputRoot)]:{[".".concat(V.hasPopupIcon,"&, .").concat(V.hasClearIcon,"&")]:{paddingRight:30},[".".concat(V.hasPopupIcon,".").concat(V.hasClearIcon,"&")]:{paddingRight:56},["& .".concat(V.input)]:{width:0,minWidth:30}},["& .".concat(D.A.root)]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},["& .".concat(D.A.root,".").concat(N.A.sizeSmall)]:{["& .".concat(D.A.input)]:{padding:"2px 4px 3px 0"}},["& .".concat(z.A.root)]:{padding:9,[".".concat(V.hasPopupIcon,"&, .").concat(V.hasClearIcon,"&")]:{paddingRight:39},[".".concat(V.hasPopupIcon,".").concat(V.hasClearIcon,"&")]:{paddingRight:65},["& .".concat(V.input)]:{padding:"7.5px 4px 7.5px 5px"},["& .".concat(V.endAdornment)]:{right:9}},["& .".concat(z.A.root,".").concat(N.A.sizeSmall)]:{paddingTop:6,paddingBottom:6,paddingLeft:6,["& .".concat(V.input)]:{padding:"2.5px 4px 2.5px 8px"}},["& .".concat(E.A.root)]:{paddingTop:19,paddingLeft:8,[".".concat(V.hasPopupIcon,"&, .").concat(V.hasClearIcon,"&")]:{paddingRight:39},[".".concat(V.hasPopupIcon,".").concat(V.hasClearIcon,"&")]:{paddingRight:65},["& .".concat(E.A.input)]:{padding:"7px 4px"},["& .".concat(V.endAdornment)]:{right:9}},["& .".concat(E.A.root,".").concat(N.A.sizeSmall)]:{paddingBottom:1,["& .".concat(E.A.input)]:{padding:"2.5px 4px"}},["& .".concat(N.A.hiddenLabel)]:{paddingTop:8},["& .".concat(E.A.root,".").concat(N.A.hiddenLabel)]:{paddingTop:0,paddingBottom:0,["& .".concat(V.input)]:{paddingTop:16,paddingBottom:17}},["& .".concat(E.A.root,".").concat(N.A.hiddenLabel,".").concat(N.A.sizeSmall)]:{["& .".concat(V.input)]:{paddingTop:8,paddingBottom:9}},["& .".concat(V.input)]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{["& .".concat(V.tag)]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{["& .".concat(V.input)]:{opacity:1}}},{props:{multiple:!0},style:{["& .".concat(V.inputRoot)]:{flexWrap:"wrap"}}}]}),U=(0,x.Ay)("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(e,t)=>t.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),q=(0,x.Ay)(j.A,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(e,t)=>t.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),G=(0,x.Ay)(j.A,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.popupIndicator,n.popupOpen&&t.popupIndicatorOpen]}})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),K=(0,x.Ay)(A.A,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{["& .".concat(V.option)]:t.option},t.popper,n.disablePortal&&t.popperDisablePortal]}})((0,S.A)(e=>{let{theme:t}=e;return{zIndex:(t.vars||t).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}})),X=(0,x.Ay)(M.A,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(e,t)=>t.paper})((0,S.A)(e=>{let{theme:t}=e;return{...t.typography.body1,overflow:"auto"}})),J=(0,x.Ay)("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(e,t)=>t.loading})((0,S.A)(e=>{let{theme:t}=e;return{color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}})),Q=(0,x.Ay)("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(e,t)=>t.noOptions})((0,S.A)(e=>{let{theme:t}=e;return{color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}})),Y=(0,x.Ay)("ul",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(e,t)=>t.listbox})((0,S.A)(e=>{let{theme:t}=e;return{listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",["& .".concat(V.option)]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[t.breakpoints.up("sm")]:{minHeight:"auto"},["&.".concat(V.focused)]:{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},["&.".concat(V.focusVisible)]:{backgroundColor:(t.vars||t).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / ").concat(t.vars.palette.action.selectedOpacity,")"):(0,c.X4)(t.palette.primary.main,t.palette.action.selectedOpacity),["&.".concat(V.focused)]:{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.hoverOpacity,"))"):(0,c.X4)(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}},["&.".concat(V.focusVisible)]:{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.focusOpacity,"))"):(0,c.X4)(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}}}}})),Z=(0,x.Ay)(L,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(e,t)=>t.groupLabel})((0,S.A)(e=>{let{theme:t}=e;return{backgroundColor:(t.vars||t).palette.background.paper,top:-8}})),$=(0,x.Ay)("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(e,t)=>t.groupUl})({padding:0,["& .".concat(V.option)]:{paddingLeft:24}}),ee=a.forwardRef(function(e,t){let n,c=(0,k.b)({props:e,name:"MuiAutocomplete"}),{autoComplete:u=!1,autoHighlight:s=!1,autoSelect:p=!1,blurOnSelect:d=!1,ChipProps:g,className:f,clearIcon:h=o||(o=(0,O.jsx)(H.A,{fontSize:"small"})),clearOnBlur:m=!c.freeSolo,clearOnEscape:b=!1,clearText:v="Clear",closeText:x="Close",componentsProps:S,defaultValue:I=c.multiple?[]:null,disableClearable:w=!1,disableCloseOnSelect:R=!1,disabled:C=!1,disabledItemsFocusable:L=!1,disableListWrap:j=!1,disablePortal:D=!1,filterOptions:N,filterSelectedOptions:z=!1,forcePopupIcon:E="auto",freeSolo:V=!1,fullWidth:ee=!1,getLimitTagsText:et=e=>"+".concat(e),getOptionDisabled:en,getOptionKey:eo,getOptionLabel:er,isOptionEqualToValue:ea,groupBy:el,handleHomeEndKeys:ei=!c.freeSolo,id:ec,includeInputInList:eu=!1,inputValue:es,limitTags:ep=-1,ListboxComponent:ed,ListboxProps:eg,loading:ef=!1,loadingText:eh="Loading…",multiple:em=!1,noOptionsText:eb="No options",onChange:ev,onClose:ey,onHighlightChange:eA,onInputChange:ex,onOpen:eS,open:ek,openOnFocus:eP=!1,openText:eI="Open",options:ew,PaperComponent:eR,PopperComponent:eO,popupIcon:eC=r||(r=(0,O.jsx)(_.A,{})),readOnly:eL=!1,renderGroup:eM,renderInput:ej,renderOption:eT,renderTags:eD,selectOnFocus:eN=!c.freeSolo,size:ez="medium",slots:eE={},slotProps:eH={},value:e_,...eW}=c,{getRootProps:eV,getInputProps:eF,getInputLabelProps:eB,getPopupIndicatorProps:eU,getClearProps:eq,getTagProps:eG,getListboxProps:eK,getOptionProps:eX,value:eJ,dirty:eQ,expanded:eY,id:eZ,popupOpen:e$,focused:e1,focusedTag:e0,anchorEl:e5,setAnchorEl:e3,inputValue:e6,groupedOptions:e2}=y({...c,componentName:"Autocomplete"}),e4=!w&&!C&&eQ&&!eL,e8=(!V||!0===E)&&!1!==E,{onMouseDown:e7}=eF(),{ref:e9,...te}=eK(),tt=er||(e=>{var t;return null!=(t=e.label)?t:e}),tn={...c,disablePortal:D,expanded:eY,focused:e1,fullWidth:ee,getOptionLabel:tt,hasClearIcon:e4,hasPopupIcon:e8,inputFocused:-1===e0,popupOpen:e$,size:ez},to=(e=>{let{classes:t,disablePortal:n,expanded:o,focused:r,fullWidth:a,hasClearIcon:l,hasPopupIcon:c,inputFocused:u,popupOpen:s,size:p}=e,d={root:["root",o&&"expanded",r&&"focused",a&&"fullWidth",l&&"hasClearIcon",c&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",u&&"inputFocused"],tag:["tag","tagSize".concat((0,P.A)(p))],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",s&&"popupIndicatorOpen"],popper:["popper",n&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return(0,i.A)(d,W,t)})(tn),tr={slots:{paper:eR,popper:eO,...eE},slotProps:{chip:g,listbox:eg,...S,...eH}},[ta,tl]=(0,F.A)("listbox",{elementType:Y,externalForwardedProps:tr,ownerState:tn,className:to.listbox,additionalProps:te,ref:e9}),[ti,tc]=(0,F.A)("paper",{elementType:M.A,externalForwardedProps:tr,ownerState:tn,className:to.paper}),[tu,ts]=(0,F.A)("popper",{elementType:A.A,externalForwardedProps:tr,ownerState:tn,className:to.popper,additionalProps:{disablePortal:D,style:{width:e5?e5.clientWidth:null},role:"presentation",anchorEl:e5,open:e$}});if(em&&eJ.length>0){let e=e=>({className:to.tag,disabled:C,...eG(e)});n=eD?eD(eJ,e,tn):eJ.map((t,n)=>{let{key:o,...r}=e({index:n});return(0,O.jsx)(T.A,{label:tt(t),size:ez,...r,...tr.slotProps.chip},o)})}if(ep>-1&&Array.isArray(n)){let e=n.length-ep;!e1&&e>0&&(n=n.splice(0,ep)).push((0,O.jsx)("span",{className:to.tag,children:et(e)},n.length))}let tp=eM||(e=>(0,O.jsxs)("li",{children:[(0,O.jsx)(Z,{className:to.groupLabel,ownerState:tn,component:"div",children:e.group}),(0,O.jsx)($,{className:to.groupUl,ownerState:tn,children:e.children})]},e.key)),td=eT||((e,t)=>{let{key:n,...o}=e;return(0,O.jsx)("li",{...o,children:tt(t)},n)}),tg=(e,t)=>{let n=eX({option:e,index:t});return td({...n,className:to.option},e,{selected:n["aria-selected"],index:t,inputValue:e6},tn)},tf=tr.slotProps.clearIndicator,th=tr.slotProps.popupIndicator;return(0,O.jsxs)(a.Fragment,{children:[(0,O.jsx)(B,{ref:t,className:(0,l.A)(to.root,f),ownerState:tn,...eV(eW),children:ej({id:eZ,disabled:C,fullWidth:!0,size:"small"===ez?"small":void 0,InputLabelProps:eB(),InputProps:{ref:e3,className:to.inputRoot,startAdornment:n,onMouseDown:e=>{e.target===e.currentTarget&&e7(e)},...(e4||e8)&&{endAdornment:(0,O.jsxs)(U,{className:to.endAdornment,ownerState:tn,children:[e4?(0,O.jsx)(q,{...eq(),"aria-label":v,title:v,ownerState:tn,...tf,className:(0,l.A)(to.clearIndicator,null==tf?void 0:tf.className),children:h}):null,e8?(0,O.jsx)(G,{...eU(),disabled:C,"aria-label":e$?x:eI,title:e$?x:eI,ownerState:tn,...th,className:(0,l.A)(to.popupIndicator,null==th?void 0:th.className),children:eC}):null]})}},inputProps:{className:to.input,disabled:C,readOnly:eL,...eF()}})}),e5?(0,O.jsx)(K,{as:tu,...ts,children:(0,O.jsxs)(X,{as:ti,...tc,children:[ef&&0===e2.length?(0,O.jsx)(J,{className:to.loading,ownerState:tn,children:eh}):null,0!==e2.length||V||ef?null:(0,O.jsx)(Q,{className:to.noOptions,ownerState:tn,role:"presentation",onMouseDown:e=>{e.preventDefault()},children:eb}),e2.length>0?(0,O.jsx)(ta,{as:ed,...tl,children:e2.map((e,t)=>el?tp({key:e.key,group:e.group,children:e.options.map((t,n)=>tg(t,e.index+n))}):tg(e,t))}):null]})}):null]})})},64054:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{bindSnapshot:function(){return l},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return i}});let n=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class o{disable(){throw n}getStore(){}run(){throw n}exit(){throw n}enterWith(){throw n}static bind(e){return e}}let r="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return r?new r:new o}function l(e){return r?r.bind(e):o.bind(e)}function i(){return r?r.snapshot():function(e,...t){return e(...t)}}},89623:(e,t,n)=>{n.d(t,{A:()=>a});var o=n(36697),r=n(95155);let a=(0,o.A)((0,r.jsx)("path",{d:"M19.8 18.4 14 10.67V6.5l1.35-1.69c.26-.33.03-.81-.39-.81H9.04c-.42 0-.65.48-.39.81L10 6.5v4.17L4.2 18.4c-.49.66-.02 1.6.8 1.6h14c.82 0 1.29-.94.8-1.6"}),"Science")},90426:(e,t,n)=>{n.d(t,{A:()=>a});var o=n(36697),r=n(95155);let a=(0,o.A)((0,r.jsx)("path",{d:"M21 10h-8.35C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H13l2 2 2-2 2 2 4-4.04zM7 15c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3"}),"Key")}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9492],{24585:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"styles",{enumerable:!0,get:function(){return l}});let l={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},38886:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return o}});let r=l(95155),n=l(24585);function o(e){let{status:t,message:l}=e;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("title",{children:t+": "+l}),(0,r.jsx)("div",{style:n.styles.error,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,r.jsx)("h1",{className:"next-error-h1",style:n.styles.h1,children:t}),(0,r.jsx)("div",{style:n.styles.desc,children:(0,r.jsx)("h2",{style:n.styles.h2,children:l})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},52888:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return l(79520)}])},79520:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let r=l(95155),n=l(38886),o=function(){return(0,r.jsx)("html",{children:(0,r.jsx)("body",{children:(0,r.jsx)(n.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})})})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{e.O(0,[8441,1255,7358],()=>e(e.s=52888)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,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-acd5b6e731d45f1a.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,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-acd5b6e731d45f1a.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,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-acd5b6e731d45f1a.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8457],{67421:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ta});var o=n(95155),r=n(12115),a=n(97322),l=n(94049),i=n(22003),s=n(70690),d=n(25635),c=n(2778),u=n(52363),p=n(65036),g=n(50001),f=n(75912),h=n(76530),m=n(36741),x=n(60691),v=n(29692),b=n(21067),y=n(41602),w=n(23820),j=n(17681),A=n(41983),S=n(73707),I=n(78470),C=n(4484),k=n(86946);let E=e=>{let{conversations:t,currentConversationId:n,onSelectConversation:r,onDeleteConversation:a,onNewConversation:i}=e;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(l.default,{sx:{p:2,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,o.jsx)(d.default,{variant:"h6",children:"Conversations"}),(0,o.jsx)(s.A,{variant:"contained",color:"primary",startIcon:(0,o.jsx)(k.A,{}),onClick:i,size:"small",children:"New"})]}),(0,o.jsx)(b.A,{}),(0,o.jsx)(y.A,{sx:{overflow:"auto",flex:1},children:0===t.length?(0,o.jsx)(w.Ay,{children:(0,o.jsx)(j.A,{primary:"No conversations yet",secondary:"Start a new conversation",primaryTypographyProps:{align:"center"},secondaryTypographyProps:{align:"center"}})}):t.sort((e,t)=>t.updatedAt-e.updatedAt).map(e=>(0,o.jsx)(w.Ay,{disablePadding:!0,secondaryAction:(0,o.jsx)(A.A,{edge:"end","aria-label":"delete",onClick:t=>{t.stopPropagation(),a(e.id)},children:(0,o.jsx)(C.A,{})}),sx:{opacity:e.id===n?1:.7},children:(0,o.jsx)(S.A,{selected:e.id===n,onClick:()=>r(e.id),sx:{pr:7},children:(0,o.jsx)(j.A,{primary:(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.status&&(0,o.jsx)(I.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,o.jsx)(l.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,o.jsx)(d.default,{component:"span",noWrap:!0,fontWeight:e.id===n?"bold":"normal",children:e.title})]}),secondary:new Date(e.updatedAt).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})})},e.id))})]})};var T=n(28548),N=n(2300),R=n(52641),D=n(51221),z=n(55606),P=n(86973),O=n(98267),F=n(20537),W=n(37960),L=n(99944),_=n(9957),M=n(36314),B=n(49501),U=n(6504),J=n(22133),q=n(11665),H=n(97516),G=n(91861),Y=n(53612),V=n(3014),X=n(63186),K=n(70863),Z=n(67891),$=n(14915),Q=n(63992),ee=n(59637),et=n(1877),en=n(87021);let eo=(0,en.h)("frontend/components/Chat/ChatMessages");function er(e){return"assistant"===e.role&&"tool_calls"in e&&Array.isArray(e.tool_calls)}let ea={p:e=>(0,o.jsx)(d.default,{variant:"body1",sx:{mb:.5,whiteSpace:"pre-line"},children:e.children}),h1:e=>(0,o.jsx)(d.default,{variant:"h5",sx:{mt:2,mb:.5},children:e.children}),h2:e=>(0,o.jsx)(d.default,{variant:"h6",sx:{mt:2,mb:.5},children:e.children}),h3:e=>(0,o.jsx)(d.default,{variant:"subtitle1",sx:{mt:1.5,mb:.5},children:e.children}),h4:e=>(0,o.jsx)(d.default,{variant:"subtitle2",sx:{mt:1.5,mb:.5},children:e.children}),h5:e=>(0,o.jsx)(d.default,{variant:"body1",sx:{mt:1,mb:.5,fontWeight:"bold"},children:e.children}),h6:e=>(0,o.jsx)(d.default,{variant:"body2",sx:{mt:1,mb:.5,fontWeight:"bold"},children:e.children}),ul:e=>(0,o.jsx)(l.default,{component:"ul",sx:{pl:2,mb:1},children:e.children}),ol:e=>(0,o.jsx)(l.default,{component:"ol",sx:{pl:2,mb:1},children:e.children}),li:e=>(0,o.jsx)(l.default,{component:"li",sx:{mb:.5,whiteSpace:"pre-line"},children:e.children}),a:e=>(0,o.jsx)(d.default,{component:"a",sx:{color:"primary.main"},href:e.href,children:e.children}),blockquote:e=>(0,o.jsx)(l.default,{component:"blockquote",sx:{borderLeft:"4px solid",borderColor:"divider",pl:2,py:.5,my:1,bgcolor:"action.hover",borderRadius:"4px"},children:e.children}),code:e=>{let{node:t,className:n,children:r,...a}=e;return/language-(\w+)/.exec(n||"")||n?(0,o.jsx)(l.default,{component:"pre",sx:{bgcolor:"action.hover",p:1.5,borderRadius:"4px",overflowX:"auto",fontFamily:"monospace",fontSize:"0.875rem",my:1,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:r}):(0,o.jsx)(d.default,{component:"code",sx:{bgcolor:"action.hover",px:.5,py:.25,borderRadius:"4px",fontFamily:"monospace",wordBreak:"break-all"},children:r})}},el=r.memo(function(e){var t,n;let r,{message:a,nodeLabel:i,availableNodes:c,showRaw:u,edit:p,onMenuOpen:g,onToggleRaw:f,onEditContentChange:h,onEditNodeChange:m,onSaveEdit:x,onCancelEdit:v}=e,b=null!=(t=a.depth)?t:0;return(0,o.jsxs)(l.default,{sx:{display:"flex",flexDirection:"column",alignItems:"user"===a.role?"flex-end":"flex-start",opacity:a.disabled?.5:1,...b>0&&{pl:3*b,borderLeft:"2px solid",borderColor:"divider",ml:1}},children:[(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",mb:.5},children:[(0,o.jsxs)(d.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)?(eo.warn("formatTime received invalid timestamp:",n),"Invalid Date"):new Date(n).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})]}),a.processNodeId&&(0,o.jsx)(I.A,{title:"".concat(i?"".concat(i," — "):"","Process Node ID: ").concat(a.processNodeId),children:(0,o.jsx)(T.A,{label:"Node: ".concat(i||"".concat(a.processNodeId.substring(0,6),"...")),size:"small",color:"primary",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),b>0&&(0,o.jsx)(I.A,{title:"Nested subflow step (depth ".concat(b,")"),children:(0,o.jsx)(T.A,{label:"Subflow step",size:"small",color:"secondary",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),a.disabled&&(0,o.jsx)(T.A,{label:"Disabled",size:"small",color:"default",variant:"outlined",sx:{height:20,fontSize:"0.7rem"}}),a.usage&&(0,o.jsx)(I.A,{title:"".concat(a.usage.promptTokens.toLocaleString()," prompt + ").concat(a.usage.completionTokens.toLocaleString()," completion tokens (provider-reported)"),children:(0,o.jsx)(T.A,{label:"".concat((r=a.usage.totalTokens)>=1e3?"".concat((r/1e3).toFixed(r>=1e5?0:1),"k"):"".concat(r)," tok"),size:"small",color:"default",variant:"outlined",sx:{height:20,fontSize:"0.7rem",mr:1}})}),(0,o.jsx)(A.A,{size:"small",onClick:e=>g(e,a.id),sx:{ml:1},children:(0,o.jsx)(q.A,{fontSize:"small"})})]}),(0,o.jsxs)(N.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:[p?(0,o.jsxs)(l.default,{sx:{display:"flex",flexDirection:"column",gap:1},children:[(0,o.jsx)("textarea",{value:p.content,onChange:e=>h(e.target.value),style:{width:"100%",minHeight:"100px",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontFamily:"inherit",fontSize:"inherit",backgroundColor:"white",color:"black"}}),(0,o.jsxs)(R.A,{fullWidth:!0,size:"small",sx:{mt:1},children:[(0,o.jsx)(D.A,{id:"node-id-select-label",children:"Process Node"}),(0,o.jsx)(z.A,{labelId:"node-id-select-label",id:"node-id-select",value:p.nodeId||(c.length>0?c[0].id:""),label:"Process Node",onChange:e=>m(e.target.value),children:c.map(e=>(0,o.jsx)(P.A,{value:e.id,children:e.label||e.id.substring(0,8)},e.id))})]}),(0,o.jsxs)(l.default,{sx:{display:"flex",justifyContent:"flex-end",gap:1,mt:1},children:[(0,o.jsx)(s.A,{variant:"outlined",size:"small",onClick:v,children:"Cancel"}),(0,o.jsx)(s.A,{variant:"contained",size:"small",onClick:x,children:"Save"})]})]}):(0,o.jsxs)(o.Fragment,{children:["tool"!==a.role&&"string"==typeof a.content&&(0,o.jsx)(U.oz,{remarkPlugins:[J.A],components:ea,children:a.content}),"tool"!==a.role&&Array.isArray(a.content)&&(0,o.jsx)(l.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,o.jsx)(U.oz,{remarkPlugins:[J.A],children:e.text},t):(null==e?void 0:e.type)==="image_url"&&(null==(n=e.image_url)?void 0:n.url)?(0,o.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)&&!er(a)&&(0,o.jsx)(d.default,{variant:"body2",fontStyle:"italic",color:"text.secondary",children:"[No text content]"})]}),er(a)&&a.tool_calls.length>0&&(0,o.jsxs)(l.default,{sx:{mt:1,pt:1,borderTop:"1px solid",borderColor:"divider"},children:[(0,o.jsxs)(d.default,{variant:"body2",sx:{display:"flex",alignItems:"center",color:"primary.main",mb:1},children:[(0,o.jsx)(K.A,{fontSize:"small",sx:{mr:1}}),"The assistant is using a tool"]}),a.tool_calls.map((e,t)=>{let n=(0,et.yo)(e.function.name),r=e.function.arguments;try{let t=JSON.parse(e.function.arguments);r=JSON.stringify(t,null,2)}catch(e){}return(0,o.jsxs)(O.A,{defaultExpanded:!1,sx:{mb:.5,"&:before":{display:"none"},boxShadow:"none",bgcolor:"rgba(0, 0, 0, 0.04)"},children:[(0,o.jsx)(F.A,{expandIcon:(0,o.jsx)(X.A,{}),children:(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center"},children:[(0,o.jsx)(K.A,{fontSize:"small",sx:{mr:1,color:"primary.main"}}),(0,o.jsx)(d.default,{variant:"subtitle2",sx:{fontWeight:"bold"},children:n}),(0,o.jsx)(T.A,{label:"ID: ".concat(e.id?e.id.substring(0,8):"N/A","..."),size:"small",color:"default",variant:"outlined",sx:{ml:1,height:20,fontSize:"0.7rem"}})]})}),(0,o.jsx)(W.A,{sx:{p:0,pl:2,pr:2,pb:1},children:(0,o.jsx)(l.default,{component:"pre",sx:{bgcolor:"action.hover",p:1,borderRadius:"4px",overflowX:"auto",fontFamily:"monospace",fontSize:"0.75rem",my:.5,maxHeight:"150px",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:r})})]},e.id||"tc-".concat(a.id,"-").concat(t))})]}),"tool"===a.role&&a.tool_call_id&&(0,o.jsxs)(l.default,{children:[(0,o.jsxs)(d.default,{variant:"body2",sx:{display:"flex",alignItems:"center",color:"text.secondary",mb:1},children:[(0,o.jsx)(Z.A,{fontSize:"small",sx:{mr:1}}),"The tool responded to the assistant"]}),(0,o.jsxs)(O.A,{defaultExpanded:!1,sx:{mb:.5,"&:before":{display:"none"},boxShadow:"none",bgcolor:"rgba(0, 0, 0, 0.02)"},children:[(0,o.jsx)(F.A,{expandIcon:(0,o.jsx)(X.A,{}),children:(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center"},children:[(0,o.jsx)(Z.A,{fontSize:"small",sx:{mr:1,color:"text.secondary"}}),(0,o.jsx)(d.default,{variant:"subtitle2",children:"Tool Result"}),(0,o.jsx)(T.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,o.jsx)(L.A,{control:(0,o.jsx)(_.A,{size:"small",checked:u,onChange:e=>f(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,o.jsx)(W.A,{sx:{pt:0,pb:1,overflow:"hidden"},children:u?(0,o.jsx)(l.default,{component:"pre",sx:{whiteSpace:"pre-wrap",wordBreak:"break-all",fontSize:"0.8rem",p:1,borderRadius:1,border:1,borderColor:e=>"dark"===e.palette.mode?"#3a3a3a":"#e5e7eb",bgcolor:"action.hover",color:e=>e.palette.text.primary,overflow:"auto",maxHeight:"300px"},children:"string"==typeof a.content?a.content:"[Invalid tool content]"}):(0,o.jsx)(l.default,{sx:{width:"100%",minWidth:0},children:"string"==typeof a.content?(()=>{try{let e=JSON.parse(a.content);if(e&&Array.isArray(e.content))return(0,o.jsx)(l.default,{sx:{display:"flex",flexDirection:"column",gap:1},children:e.content.map((e,t)=>"text"===e.type?(0,o.jsx)(U.oz,{remarkPlugins:[J.A],children:e.text},t):"image"===e.type&&e.data&&e.mimeType?(0,o.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,o.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,o.jsx)(l.default,{component:"pre",sx:{whiteSpace:"pre-wrap",wordBreak:"break-all",fontSize:"0.8rem",p:1,borderRadius:1,border:1,borderColor:e=>"dark"===e.palette.mode?"#3a3a3a":"#e5e7eb",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,o.jsx)(U.oz,{remarkPlugins:[J.A],children:"```json\n".concat(JSON.stringify(e,null,2),"\n```")})}catch(e){return(0,o.jsx)(U.oz,{remarkPlugins:[J.A],children:a.content})}})():(0,o.jsx)(d.default,{variant:"body2",fontStyle:"italic",color:"text.secondary",children:"[Invalid tool content]"})})})]})]}),a.attachments&&a.attachments.length>0&&(0,o.jsxs)(l.default,{sx:{mt:1,pt:1,borderTop:"1px solid",borderColor:"divider"},children:[(0,o.jsx)(d.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Attachments:"}),a.attachments.map(e=>"image"===e.type?(0,o.jsx)(l.default,{sx:{mb:.5},children:(0,o.jsx)("img",{src:e.content,alt:e.originalName||"image attachment",style:{maxWidth:"100%",height:"auto",borderRadius:"4px"}})},e.id):(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",p:1,borderRadius:1,bgcolor:"rgba(0, 0, 0, 0.04)",mb:.5},children:["document"===e.type?(0,o.jsx)(Y.A,{fontSize:"small",sx:{mr:1}}):(0,o.jsx)(V.A,{fontSize:"small",sx:{mr:1}}),(0,o.jsx)(d.default,{variant:"caption",sx:{wordBreak:"break-all"},children:e.originalName||"".concat(e.type," attachment")})]},e.id))]})]})]})}),ei=e=>{let{messages:t,pendingToolCalls:n,availableNodes:a=[],conversationId:i,onToggleDisabled:c,onSplitConversation:u,onEditMessage:p,onApproveToolCall:g,onRejectToolCall:f}=e,h=(0,r.useRef)(null),[m,x]=(0,r.useState)(50);(0,r.useEffect)(()=>{x(50)},[i]);let v=Array.isArray(t)?t.length:0,b=Math.max(0,v-m),y=(0,r.useMemo)(()=>Array.isArray(t)?b>0?t.slice(b):t:[],[t,b]),w=v>0?t[v-1].id:void 0,A=(0,r.useRef)(void 0);(0,r.useEffect)(()=>{var e;w!==A.current&&(A.current=w,null==(e=h.current)||e.scrollIntoView({behavior:"smooth"}))},[w]);let[S,I]=r.useState(null),[C,k]=r.useState(null),[E,R]=r.useState(null),[D,z]=r.useState(!1),[L,_]=r.useState(""),[U,J]=r.useState(null),[q,Y]=r.useState({}),V=(0,r.useCallback)((e,t)=>{eo.debug("handleMenuOpen called with messageId: ".concat(t)),I(e.currentTarget),k(t)},[]),Z=(0,r.useCallback)((e,t)=>{Y(n=>({...n,[e]:t}))},[]),en=(0,r.useCallback)(e=>{_(e)},[]),er=(0,r.useCallback)(e=>{J(e)},[]),ea=()=>{I(null),k(null)},ei=()=>{if(C){let e=t.find(e=>e.id===C);e&&"user"===e.role&&"string"==typeof e.content&&(_(e.content),J(e.processNodeId||(a.length>0?a[0].id:"")),R(C),z(!0)),ea()}},es=()=>{E&&p&&(p(E,L,U||""),z(!1),R(null),J(null))},ed=()=>{z(!1),R(null),J(null)},ec=(0,r.useMemo)(()=>{let e=new Map;for(let t of a)e.set(t.id,t.label);return e},[a]),eu=(0,r.useMemo)(()=>C&&t.find(e=>e.id===C)||null,[C,t]);return(0,o.jsxs)(l.default,{sx:{display:"flex",flexDirection:"column",gap:2},children:[b>0&&(0,o.jsx)(l.default,{sx:{display:"flex",justifyContent:"center"},children:(0,o.jsxs)(s.A,{size:"small",variant:"outlined",onClick:()=>x(e=>e+200),children:["Show earlier messages (",b," more)"]})}),y.map((e,t)=>{let n=D&&e.id===E;return(0,o.jsx)(el,{message:e,nodeLabel:e.processNodeId?ec.get(e.processNodeId):void 0,availableNodes:a,showRaw:!!q[e.id],edit:n?{content:L,nodeId:U}:null,onMenuOpen:V,onToggleRaw:Z,onEditContentChange:en,onEditNodeChange:er,onSaveEdit:n?es:void 0,onCancelEdit:n?ed:void 0},e.id||"msg-".concat(b+t))}),(0,o.jsxs)(M.A,{anchorEl:S,open:!!S,onClose:ea,children:[eu&&(()=>{eo.debug("Entering menu item rendering logic",{activeMessageId:C}),eo.debug("Active message object for menu:",eu),eo.debug("Active message role for menu:",null==eu?void 0:eu.role);try{let e=!!p,t="user"===eu.role&&e;if(eo.debug("Rendering Edit Message menu item check",{activeMessageId:eu.id,messageRole:eu.role,onEditMessagePropType:typeof p,hasOnEditMessageProp:e,shouldShowEdit:t}),t)return(0,o.jsxs)(P.A,{onClick:ei,children:[(0,o.jsx)(B.A,{children:(0,o.jsx)($.A,{fontSize:"small"})}),(0,o.jsx)(j.A,{children:"Edit Message"})]});return null}catch(e){return eo.error("Error rendering Edit Message menu item",{error:e}),null}})(),(0,o.jsxs)(P.A,{onClick:()=>{C&&(c(C),ea())},children:[(0,o.jsx)(B.A,{children:(0,o.jsx)(H.A,{fontSize:"small"})}),(0,o.jsx)(j.A,{children:(null==eu?void 0:eu.disabled)?"Enable Message":"Disable Message"})]}),(0,o.jsxs)(P.A,{onClick:()=>{C&&(u(C),ea())},children:[(0,o.jsx)(B.A,{children:(0,o.jsx)(G.A,{fontSize:"small"})}),(0,o.jsx)(j.A,{children:"Split Conversation Here"})]})]}),(0,o.jsx)("div",{ref:h}),n&&n.length>0&&(0,o.jsxs)(N.A,{elevation:2,sx:{p:2,mt:2,bgcolor:"warning.light",border:"1px solid",borderColor:"warning.main",borderRadius:2},children:[(0,o.jsxs)(d.default,{variant:"h6",sx:{mb:1,display:"flex",alignItems:"center"},children:[(0,o.jsx)(K.A,{sx:{mr:1}})," Tool Approval Required"]}),(0,o.jsx)(d.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,et.yo)(e.function.name),r=e.function.arguments;try{let t=JSON.parse(e.function.arguments);r=JSON.stringify(t,null,2)}catch(e){}return(0,o.jsxs)(O.A,{defaultExpanded:!0,sx:{mb:1,"&:before":{display:"none"},boxShadow:1},children:[(0,o.jsx)(F.A,{expandIcon:(0,o.jsx)(X.A,{}),children:(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",width:"100%"},children:[(0,o.jsx)(K.A,{fontSize:"small",sx:{mr:1,color:"primary.main"}}),(0,o.jsx)(d.default,{variant:"subtitle2",sx:{fontWeight:"bold",flexGrow:1},children:n}),(0,o.jsx)(T.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,o.jsxs)(W.A,{sx:{pt:0},children:[(0,o.jsx)(l.default,{component:"pre",sx:{bgcolor:"action.hover",p:1,borderRadius:"4px",overflowX:"auto",fontFamily:"monospace",fontSize:"0.75rem",my:.5,maxHeight:"150px",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:r}),(0,o.jsxs)(l.default,{sx:{display:"flex",justifyContent:"flex-end",gap:1,mt:1},children:[(0,o.jsx)(s.A,{variant:"outlined",color:"error",size:"small",startIcon:(0,o.jsx)(ee.A,{}),onClick:()=>f&&f(e.id),disabled:!f,children:"Reject"}),(0,o.jsx)(s.A,{variant:"contained",color:"success",size:"small",startIcon:(0,o.jsx)(Q.A,{}),onClick:()=>g&&g(e.id),disabled:!g,children:"Approve"})]})]})]},e.id||"ptc-".concat(t))})]})]})};var es=n(84869);let ed=(0,en.h)("frontend/services/transcription");async function ec(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{onProgress:n,onStatusChange:o,language:r}=t;try{if(ed.debug("Starting transcription service"),o&&o("Initializing transcription..."),!(0,es.G)().supported)throw Error("Web Speech API is not supported in this browser");o&&o("Using browser speech recognition...");let t=await (0,es.S)(e,{language:r,onInterimResult:e=>{o&&o("Transcribing: ".concat(e)),n&&n(50)}});return o&&o("Transcription completed"),ed.debug("Web Speech API transcription completed successfully",{textLength:t.length}),{text:t,success:!0,engine:"webspeech"}}catch(e){return ed.error("Transcription failed",{error:e}),o&&o("Transcription failed"),{text:"Transcription failed. Please check if your browser supports speech recognition.",success:!1,error:e instanceof Error?e.message:String(e)}}}var eu=n(9164),ep=n(9562),eg=n(22822),ef=n(4474),eh=n(35205),em=n(77073),ex=n(55930),ev=n(9693),eb=n(4823),ey=n(74879);let ew=(0,en.h)("frontend/components/Chat/ChatInput"),ej=e=>{var t;let{onSendMessage:n,disabled:a=!1,requireApproval:i=!1,onRequireApprovalChange:g,executeInDebugger:h=!1,onExecuteInDebuggerChange:m,availableNodes:x=[],currentNodeId:v=null,nodeOverrideActive:y=!1,onSelectNode:w}=e,{settings:S}=(0,eu.useStorage)(),[C,k]=(0,r.useState)(""),[E,R]=(0,r.useState)([]),[D,z]=(0,r.useState)(!1),[O,F]=(0,r.useState)(0),[W,_]=(0,r.useState)(null),U=(0,r.useRef)(null),J=(0,r.useRef)(null),q=(0,r.useRef)([]),[H,G]=(0,r.useState)(null),X=(null==(t=x.find(e=>e.id===v))?void 0:t.label)||(v?"".concat(v.substring(0,6),"..."):"Start"),[K,Z]=(0,r.useState)(!1),[$,Q]=(0,r.useState)(""),[ee,et]=(0,r.useState)(""),[en,eo]=(0,r.useState)("document"),[er,ea]=(0,r.useState)(!1),[el,ei]=(0,r.useState)(0),[es,ed]=(0,r.useState)(""),ej=()=>{(C.trim()||E.length>0)&&(ew.debug("Sending message",{messageLength:C.length,attachmentsCount:E.length}),n(C,E),k(""),R([]))},eA=async e=>{let t=e.target.files;if(!t||0===t.length)return;let n=t[0];ew.debug("File selected",{fileName:n.name,fileSize:n.size,fileType:n.type}),et("Processing ".concat(n.name)),eo("document"),Q(""),ea(!0),Z(!0);try{let e=await eS(n);ew.debug("File read successfully",{contentLength:e.length}),Q(e),ea(!1)}catch(e){ew.error("Error reading file:",e),Q("Error reading file. Please try again with a text file."),ea(!1)}U.current&&(U.current.value="")},eS=e=>new Promise((t,n)=>{let o=new FileReader;o.onload=e=>{var o;(null==(o=e.target)?void 0:o.result)?t(e.target.result):n(Error("Failed to read file"))},o.onerror=()=>{n(Error("Error reading file"))},o.readAsText(e)}),eI=async()=>{ew.debug("Starting audio recording");try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});ew.debug("Audio stream obtained successfully"),q.current=[];let t=new MediaRecorder(e);J.current=t,t.ondataavailable=e=>{e.data.size>0&&q.current.push(e.data)},t.onstop=async()=>{let t=new Blob(q.current,{type:"audio/wav"});et("Audio Recording"),eo("audio"),Q(""),ea(!0),Z(!0);try{if(((null==S?void 0:S.speech)||{enabled:!0,modelSize:"base",autoDownload:!1}).enabled){ed("Initializing transcription..."),ei(0);let e=await ec(t,{onProgress:ei,onStatusChange:ed,language:navigator.language});if(e.success){let t=e.text;Q(t),ew.debug("Transcription successful",{textLength:e.text.length,engine:e.engine})}else Q("Error transcribing audio: ".concat(e.error,".")),ew.error("Transcription failed",{error:e.error})}else Q("Speech recognition is disabled in settings. Enable it to get automatic transcriptions.")}catch(e){ew.error("Error handling audio recording",{error:e}),Q("Failed to process audio: ".concat(e))}finally{ea(!1),e.getTracks().forEach(e=>e.stop())}},t.start(),z(!0);let n=setInterval(()=>{F(e=>e+1)},1e3);_(n)}catch(e){ew.error("Error starting recording:",e),alert("Could not access microphone. Please check permissions.")}};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(N.A,{elevation:3,sx:{p:2,display:"flex",flexDirection:"column",borderRadius:2},children:[E.length>0&&(0,o.jsx)(l.default,{sx:{mb:2,display:"flex",flexWrap:"wrap",gap:1},children:E.map(e=>(0,o.jsxs)(N.A,{variant:"outlined",sx:{p:1,display:"flex",alignItems:"center",borderRadius:1,bgcolor:"background.default"},children:["image"===e.type?(0,o.jsx)(l.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,o.jsx)(Y.A,{fontSize:"small",sx:{mr:1}}):(0,o.jsx)(V.A,{fontSize:"small",sx:{mr:1}}),(0,o.jsx)(d.default,{variant:"body2",noWrap:!0,sx:{maxWidth:150},children:e.originalName||"".concat(e.type," attachment")}),(0,o.jsx)(A.A,{size:"small",onClick:()=>(e=>{ew.debug("Removing attachment",{id:e}),R(E.filter(t=>t.id!==e))})(e.id),sx:{ml:1},children:(0,o.jsx)(em.A,{fontSize:"small"})})]},e.id))}),(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"flex-end"},children:[(0,o.jsx)(ep.A,{fullWidth:!0,multiline:!0,maxRows:4,"data-tour":"chat-input",placeholder:"Type a message...",value:C,onChange:e=>{k(e.target.value)},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(ew.debug("Enter key pressed, sending message"),e.preventDefault(),ej())},onPaste:e=>{var t;let n=null==(t=e.clipboardData)?void 0:t.items;if(!n)return;let o=[];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&&o.push(e)}}0!==o.length&&(e.preventDefault(),ew.debug("Pasting image attachment(s)",{count:o.length}),o.forEach(e=>{let t=new FileReader;t.onload=t=>{var n;let o=null==(n=t.target)?void 0:n.result;if("string"!=typeof o)return;let r=(e.type.split("/")[1]||"png").split("+")[0];R(t=>[...t,{id:(0,ey.A)(),type:"image",content:o,originalName:e.name&&!/^image\.\w+$/i.test(e.name)?e.name:"Pasted image.".concat(r)}])},t.onerror=()=>ew.error("Failed to read pasted image"),t.readAsDataURL(e)}))},disabled:a,variant:"outlined",sx:{mr:1},InputProps:{sx:{borderRadius:2}}}),(0,o.jsx)(I.A,{title:"Attach document",children:(0,o.jsx)(A.A,{color:"primary",onClick:()=>{var e;ew.debug("File selection triggered"),null==(e=U.current)||e.click()},disabled:a||D,children:(0,o.jsx)(Y.A,{})})}),(0,o.jsx)("input",{type:"file",ref:U,onChange:eA,style:{display:"none"},accept:".txt,.md,.json,.csv,.html,.xml,.js,.ts,.jsx,.tsx,.css,.scss"}),(0,o.jsx)(I.A,{title:D?"Stop recording":"Record audio",children:(0,o.jsxs)(A.A,{color:D?"error":"primary",onClick:D?()=>{ew.debug("Stopping audio recording"),J.current&&"inactive"!==J.current.state&&(J.current.stop(),z(!1),W&&(clearInterval(W),_(null)),F(0))}:eI,disabled:a,children:[(0,o.jsx)(V.A,{}),D&&(0,o.jsx)(d.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"))})(O)})]})}),(0,o.jsx)(I.A,{title:"Send message",children:(0,o.jsx)(A.A,{color:"primary",onClick:ej,disabled:a||!C.trim()&&0===E.length,children:(0,o.jsx)(eh.A,{})})})]})," ",(g||w&&x.length>0)&&(0,o.jsxs)(l.default,{sx:{mt:1,display:"flex",justifyContent:"flex-start",alignItems:"center",flexWrap:"wrap",gap:1},children:[w&&x.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(I.A,{title:y?"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,o.jsx)(T.A,{icon:(0,o.jsx)(ex.A,{}),label:X,size:"small",color:y?"primary":"default",variant:y?"filled":"outlined",onClick:e=>G(e.currentTarget),disabled:a})}),(0,o.jsxs)(M.A,{anchorEl:H,open:!!H,onClose:()=>G(null),children:[(0,o.jsxs)(P.A,{selected:!y,onClick:()=>{w(null),G(null)},children:[(0,o.jsx)(B.A,{children:(0,o.jsx)(eb.A,{fontSize:"small"})}),(0,o.jsx)(j.A,{primary:"Automatic",secondary:"Follow the conversation",secondaryTypographyProps:{variant:"caption"}})]}),(0,o.jsx)(b.A,{}),x.map(e=>(0,o.jsxs)(P.A,{selected:y&&e.id===v,onClick:()=>{w(e.id),G(null)},children:[(0,o.jsx)(B.A,{children:e.id===v?(0,o.jsx)(ev.A,{fontSize:"small"}):null}),(0,o.jsx)(j.A,{primary:e.label})]},e.id))]})]}),g&&(0,o.jsx)(L.A,{control:(0,o.jsx)(eg.A,{checked:i,onChange:e=>g(e.target.checked),size:"small",disabled:a}),label:(0,o.jsx)(d.default,{variant:"caption",children:"Require Tool Approvals"}),sx:{mr:"auto"}}),m&&(0,o.jsx)(L.A,{control:(0,o.jsx)(eg.A,{checked:h,onChange:e=>m(e.target.checked),size:"small",disabled:a}),label:(0,o.jsx)(d.default,{variant:"caption",children:"Execute in Debugger"}),sx:{ml:2}})]})," "]})," ",(0,o.jsxs)(c.A,{open:K,onClose:()=>!er&&Z(!1),maxWidth:"md",fullWidth:!0,children:[(0,o.jsxs)(u.A,{children:[ee,!er&&(0,o.jsx)(A.A,{"aria-label":"close",onClick:()=>Z(!1),sx:{position:"absolute",right:8,top:8},children:(0,o.jsx)(em.A,{})})]}),(0,o.jsx)(p.A,{dividers:!0,children:er?(0,o.jsxs)(l.default,{sx:{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",p:4},children:[(0,o.jsx)(ef.default,{value:"audio"===en&&el?el:void 0,variant:"audio"===en&&el>0?"determinate":"indeterminate"}),"audio"===en&&(0,o.jsxs)(l.default,{sx:{mt:2,textAlign:"center"},children:[(0,o.jsx)(d.default,{variant:"body2",children:es||"Processing audio..."}),el>0&&(0,o.jsxs)(d.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:[Math.round(el),"%"]})]})]}):(0,o.jsx)(ep.A,{multiline:!0,fullWidth:!0,minRows:10,maxRows:20,value:$,onChange:e=>Q(e.target.value),variant:"outlined",placeholder:"document"===en?"Document content":"Audio transcription"})}),(0,o.jsxs)(f.A,{children:[(0,o.jsx)(s.A,{onClick:()=>Z(!1),disabled:er,children:"Cancel"}),(0,o.jsx)(s.A,{onClick:()=>{ew.debug("Adding attachment",{type:en,titleLength:ee.length}),R([...E,{id:(0,ey.A)(),type:en,content:$,originalName:ee}]),Z(!1)},variant:"contained",disabled:er||!$.trim(),children:"Add to Message"})]})]})]})},eA=e=>{var t;let{liveStats:n,onStop:a,stopDisabled:i}=e,[c,u]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{let e=setInterval(()=>u(Date.now()),1e3);return()=>clearInterval(e)},[]);let p=n?Math.max(0,Math.round((c-n.startedAt)/1e3)):0,g=n?Math.round((c-n.lastEventAt)/1e3):0,f=!!n&&g>=60;return(0,o.jsxs)(l.default,{sx:{display:"flex",flexDirection:"column",alignItems:"center",my:2,gap:.5},children:[(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,o.jsx)(ef.default,{size:20,color:f?"warning":"primary"}),(0,o.jsx)(d.default,{variant:"body2",color:"textSecondary",children:(null==n?void 0:n.activeNode)?"Running: ".concat(n.activeNode):"Working…"}),(0,o.jsx)(s.A,{variant:"outlined",color:"secondary",size:"small",onClick:a,disabled:i,children:"Stop"})]}),(0,o.jsxs)(d.default,{variant:"caption",color:f?"warning.main":"textSecondary",children:[(null!=(t=null==n?void 0:n.totalTokens)?t:0).toLocaleString()," tokens \xb7 ",p,"s elapsed",f?" \xb7 no activity for ".concat(g,"s — may be stuck"):""]})]})};var eS=n(88538),eI=n(16963),eC=n(2456),ek=n(64792),eE=n(71356),eT=n(45202),eN=n(52005),eR=n(77998);let eD=e=>e>=1e3?"".concat((e/1e3).toFixed(e>=1e5?0:1),"k"):"".concat(e),ez=e=>{let{usage:t,contextInfo:n,availableNodes:a}=e,[i,s]=(0,r.useState)(null);if(!t&&!n)return null;let c=(null==t?void 0:t.byNode)?Object.entries(t.byNode):[],u=(null==n?void 0:n.contextWindow)&&n.contextWindow>0?Math.min(100,Math.round(n.promptTokens/n.contextWindow*100)):void 0;return(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1.5,flexShrink:0},children:[t&&t.totalTokens>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(I.A,{title:"Total tokens this conversation — ".concat(t.promptTokens.toLocaleString()," prompt / ").concat(t.completionTokens.toLocaleString()," completion. Click for the per-node breakdown."),children:(0,o.jsx)(T.A,{icon:(0,o.jsx)(eR.A,{}),label:"".concat(eD(t.totalTokens)," tokens"),size:"small",variant:"outlined",onClick:e=>s(e.currentTarget),sx:{cursor:"pointer"}})}),(0,o.jsx)(eS.Ay,{open:!!i,anchorEl:i,onClose:()=>s(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:(0,o.jsxs)(l.default,{sx:{p:2,maxWidth:420},children:[(0,o.jsx)(d.default,{variant:"subtitle2",sx:{mb:1},children:"Token usage by node"}),(0,o.jsxs)(eI.A,{size:"small",children:[(0,o.jsx)(eC.A,{children:(0,o.jsxs)(ek.A,{children:[(0,o.jsx)(eE.A,{children:"Node"}),(0,o.jsx)(eE.A,{align:"right",children:"Prompt"}),(0,o.jsx)(eE.A,{align:"right",children:"Completion"}),(0,o.jsx)(eE.A,{align:"right",children:"Total"})]})}),(0,o.jsxs)(eT.A,{children:[c.map(e=>{let[t,n]=e;return(0,o.jsxs)(ek.A,{children:[(0,o.jsx)(eE.A,{children:(0,o.jsx)(I.A,{title:t,children:(0,o.jsx)("span",{children:(e=>{var t;return(null==(t=a.find(t=>t.id===e))?void 0:t.label)||"".concat(e.substring(0,8),"…")})(t)})})}),(0,o.jsx)(eE.A,{align:"right",children:n.promptTokens.toLocaleString()}),(0,o.jsx)(eE.A,{align:"right",children:n.completionTokens.toLocaleString()}),(0,o.jsx)(eE.A,{align:"right",children:n.totalTokens.toLocaleString()})]},t)}),(0,o.jsxs)(ek.A,{children:[(0,o.jsx)(eE.A,{sx:{fontWeight:"bold"},children:"Total"}),(0,o.jsx)(eE.A,{align:"right",sx:{fontWeight:"bold"},children:t.promptTokens.toLocaleString()}),(0,o.jsx)(eE.A,{align:"right",sx:{fontWeight:"bold"},children:t.completionTokens.toLocaleString()}),(0,o.jsx)(eE.A,{align:"right",sx:{fontWeight:"bold"},children:t.totalTokens.toLocaleString()})]})]})]})]})})]}),n&&void 0!==u&&(0,o.jsx)(I.A,{title:"Context of the latest call".concat(n.modelDisplayName?" (".concat(n.modelDisplayName,")"):"",": ").concat(n.promptTokens.toLocaleString()," of ").concat(n.contextWindow.toLocaleString()," tokens"),children:(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1,minWidth:140},children:[(0,o.jsx)(eN.A,{variant:"determinate",value:u,color:u>=90?"error":u>=70?"warning":"primary",sx:{flex:1,height:6,borderRadius:3}}),(0,o.jsxs)(d.default,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:[eD(n.promptTokens),"/",eD(n.contextWindow)," (",u,"%)"]})]})}),n&&void 0===u&&(0,o.jsx)(I.A,{title:"Prompt size of the latest call".concat(n.modelDisplayName?" (".concat(n.modelDisplayName,")"):"",". Set the model's Context Window in its settings to see a usage meter."),children:(0,o.jsxs)(d.default,{variant:"caption",color:"text.secondary",sx:{whiteSpace:"nowrap"},children:["ctx ",eD(n.promptTokens)]})})]})};var eP=n(18369),eO=n(90057);let eF=e=>{let{selectedFlowId:t,onSelectFlow:n,disabled:a=!1}=e,[i,s]=(0,r.useState)([]),[c,u]=(0,r.useState)(!0),[p,g]=(0,r.useState)(null);return(0,r.useEffect)(()=>{(async()=>{u(!0),g(null);try{let e=await eO.g.loadFlows();s(e)}catch(e){console.error("Error loading flows:",e),g("Failed to load flows")}finally{u(!1)}})()},[]),(0,o.jsxs)(l.default,{children:[(0,o.jsx)(d.default,{variant:"subtitle1",gutterBottom:!0,children:"Select Flow"}),c?(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,o.jsx)(ef.default,{size:20}),(0,o.jsx)(d.default,{variant:"body2",color:"text.secondary",children:"Loading flows..."})]}):p?(0,o.jsx)(d.default,{color:"error",variant:"body2",children:p}):0===i.length?(0,o.jsx)(d.default,{variant:"body2",color:"text.secondary",children:"No flows available. Create some flows in the Flow Builder first."}):(0,o.jsxs)(R.A,{fullWidth:!0,disabled:a,children:[" ",(0,o.jsx)(D.A,{id:"flow-select-label",children:"Flow"}),(0,o.jsx)(z.A,{labelId:"flow-select-label",id:"flow-select",value:t||"",label:"Flow",onChange:e=>{n(e.target.value)},disabled:a,children:i.map(e=>(0,o.jsx)(P.A,{value:e.id,children:e.name},e.id))}),(0,o.jsx)(eP.A,{children:t?'Using "'.concat((()=>{if(!t)return"";let e=i.find(e=>e.id===t);return e?e.name:""})(),'" flow for this conversation'):"Select a flow to use for this conversation"})]})]})};var eW=n(53940),eL=n(48116),e_=n(33567),eM=n(22539),eB=n(33420),eU=n(80685);let eJ=(0,en.h)("frontend/components/Chat/DebuggerCanvas"),eq={start:eB.vm,process:eB.Uw,finish:eB.IK,mcp:eB.v2,subflow:eB.lA},eH={custom:eU.jY,mcpEdge:eU.oY},eG=(0,eL.Ay)(N.A)(e=>{let{theme:t}=e;return{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",padding:t.spacing(1)}}),eY=(0,eL.Ay)(l.default)(e=>{let{theme:t}=e;return{padding:t.spacing(1,2),borderBottom:"1px solid ".concat(t.palette.divider)}}),eV=(0,eL.Ay)(l.default)({flexGrow:1,display:"flex",overflow:"hidden"}),eX=(0,eL.Ay)(l.default)(e=>{let{theme:t}=e;return{width:"200px",borderRight:"1px solid ".concat(t.palette.divider),overflowY:"auto",padding:t.spacing(1)}}),eK=(0,eL.Ay)(l.default)({flexGrow:1,position:"relative",height:"100%"}),eZ=(0,eL.Ay)(l.default)(e=>{let{theme:t}=e;return{width:"300px",borderLeft:"1px solid ".concat(t.palette.divider),overflowY:"auto",padding:t.spacing(2)}}),e$=(0,eL.Ay)(l.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"}}),eQ=e=>{var t,n,a,c;let{debugState:u,conversationId:p,onStep:g,onStepOver:f,onContinue:h,onCancel:m,isLoading:x,breakpoints:v,onToggleBreakpoint:b,onClose:C}=e,k=(0,e_.A)(),[E,T]=(0,r.useState)(u.executionTrace&&u.executionTrace.length>0?u.executionTrace.length-1:-1),[N,R]=(0,r.useState)(!0),[D,z]=(0,r.useState)(!0),[P,L]=(0,r.useState)(null),[_,M]=(0,r.useState)(!0),[B,U]=(0,r.useState)(null),[J,q,H]=(0,eM.ck)([]),[G,Y,V]=(0,eM.fM)([]);(0,r.useEffect)(()=>{var e;let t=(null==(e=u.executionTrace)?void 0:e.length)||0;t>0?(T(e=>Math.min(e,t-1)),E<t-1&&T(t-1)):T(-1)},[u.executionTrace]),(0,r.useEffect)(()=>{(async()=>{if(!u.flowId){U("Flow ID is missing in debug state."),M(!1);return}M(!0),U(null);try{eJ.debug("Loading flow definition for ID: ".concat(u.flowId));let e=await eO.g.getFlow(u.flowId);if(!e)throw Error("Flow with ID ".concat(u.flowId," not found."));L(e),eJ.info("Flow definition loaded: ".concat(e.name))}catch(e){eJ.error("Error loading flow definition:",e),U(e instanceof Error?e.message:"Failed to load flow definition."),L(null)}finally{M(!1)}})()},[u.flowId]),(0,r.useEffect)(()=>{if(P){eJ.debug("Setting nodes and edges from flow definition");let e=P.nodes.map(e=>({...e,draggable:!1,selectable:!1,connectable:!1})),t=P.edges.map(e=>({...e,selectable:!1}));q(e),Y(t)}},[P,q,Y]);let K=(0,r.useCallback)(()=>{if(eJ.debug("Previous button clicked. Current index: ".concat(E)),E>0){let e=E-1;eJ.debug("Setting current step index to: ".concat(e)),T(e)}else eJ.debug("Already at the first step, cannot go previous.")},[E]),Z=(0,r.useCallback)(()=>{var e;if(eJ.debug("Next button clicked. Current index: ".concat(E,", Trace length: ").concat(null==(e=u.executionTrace)?void 0:e.length)),u.executionTrace&&E<u.executionTrace.length-1){let e=E+1;eJ.debug("Navigating to next trace step: ".concat(e)),T(e)}else eJ.info("At end of trace, triggering API call for next step."),g()},[E,u.executionTrace,g]),$=(0,r.useMemo)(()=>{if(u.executionTrace&&E>=0&&E<u.executionTrace.length)return u.executionTrace[E]},[u.executionTrace,E]),Q=(0,r.useMemo)(()=>{let e=null==$?void 0:$.nodeId;return J.map(t=>{var n;let o=t.id===e,r=null==v?void 0:v.includes(t.id);return{...t,style:{...t.style,border:o?"2px solid ".concat(k.palette.warning.main):r?"2px dashed ".concat(k.palette.error.main):null==(n=t.style)?void 0:n.border,boxShadow:o?"0 0 10px ".concat(k.palette.warning.light):void 0}}})},[J,$,v,k]);return(0,o.jsxs)(eG,{elevation:2,children:[(0,o.jsxs)(eY,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[(0,o.jsxs)(l.default,{children:[(0,o.jsx)(d.default,{variant:"h6",children:"Flow Debugger"}),(0,o.jsxs)(d.default,{variant:"caption",color:"textSecondary",display:"block",children:["Click a node to toggle a breakpoint",v&&v.length>0?" \xb7 ".concat(v.length," active"):""]})]}),(0,o.jsxs)(l.default,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,o.jsx)(I.A,{title:N?"Hide execution trace":"Show execution trace",children:(0,o.jsx)(A.A,{size:"small",onClick:()=>R(e=>!e),color:N?"primary":"default","aria-label":N?"Hide execution trace":"Show execution trace",children:(0,o.jsx)(eW.A,{fontSize:"small",sx:{transform:"scaleX(-1)"}})})}),(0,o.jsx)(I.A,{title:D?"Hide step inspector":"Show step inspector",children:(0,o.jsx)(A.A,{size:"small",onClick:()=>z(e=>!e),color:D?"primary":"default","aria-label":D?"Hide step inspector":"Show step inspector",children:(0,o.jsx)(eW.A,{fontSize:"small"})})}),C&&(0,o.jsx)(I.A,{title:"Close debugger",children:(0,o.jsx)(A.A,{size:"small",onClick:C,"aria-label":"Close debugger",children:(0,o.jsx)(em.A,{fontSize:"small"})})})]})]}),(0,o.jsxs)(eV,{children:[N&&(0,o.jsxs)(eX,{children:[(0,o.jsx)(d.default,{variant:"subtitle2",gutterBottom:!0,children:"Execution Trace"}),(0,o.jsxs)(y.A,{dense:!0,disablePadding:!0,children:[null==(t=u.executionTrace)?void 0:t.map((e,t)=>(0,o.jsx)(w.Ay,{disablePadding:!0,children:(0,o.jsx)(S.A,{selected:t===E,onClick:()=>(e=>{u.executionTrace&&e>=0&&e<u.executionTrace.length?(eJ.debug("Trace step selected: ".concat(e)),T(e)):eJ.warn("Invalid step index selected: ".concat(e)),T(e),T(e)})(t),children:(0,o.jsx)(j.A,{primary:"".concat(e.stepIndex,": ").concat(e.nodeName||e.nodeId),secondary:e.nodeType})})},e.stepIndex)),x&&(0,o.jsx)(w.Ay,{children:(0,o.jsx)(ef.default,{size:20,sx:{margin:"auto"}})})]})]}),(0,o.jsx)(eK,{children:_?(0,o.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,o.jsx)(ef.default,{})}):B?(0,o.jsx)(i.A,{severity:"error",sx:{margin:2},children:B}):(0,o.jsxs)(eM.Ln,{children:[" ",(0,o.jsx)(eM.Gc,{nodes:Q,edges:G,onNodesChange:H,onEdgesChange:V,nodeTypes:eq,edgeTypes:eH,fitView:!0,attributionPosition:"bottom-right",nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!1,onNodeClick:(e,t)=>{e.preventDefault(),b&&b(t.id)},onEdgeClick:e=>e.preventDefault(),onPaneClick:()=>{},children:" "})]})}),D&&(0,o.jsxs)(eZ,{children:[(0,o.jsx)(d.default,{variant:"subtitle2",gutterBottom:!0,children:"Step Inspector"}),$?(0,o.jsxs)(l.default,{children:[(0,o.jsxs)(d.default,{variant:"body2",children:[(0,o.jsx)("b",{children:"Node:"})," ",$.nodeName," (",$.nodeId,")"]}),(0,o.jsxs)(d.default,{variant:"body2",children:[(0,o.jsx)("b",{children:"Type:"})," ",$.nodeType]}),(0,o.jsxs)(d.default,{variant:"body2",children:[(0,o.jsx)("b",{children:"Timestamp:"})," ",new Date($.timestamp).toLocaleString()]}),(0,o.jsxs)(d.default,{variant:"body2",children:[(0,o.jsx)("b",{children:"Action Taken:"})," ",$.actionTaken]}),(0,o.jsxs)(O.A,{sx:{mt:2,boxShadow:"none","&:before":{display:"none"}},children:[(0,o.jsx)(F.A,{expandIcon:(0,o.jsx)(X.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,o.jsx)(d.default,{variant:"caption",children:"Prep Result"})}),(0,o.jsx)(W.A,{sx:{p:0},children:(0,o.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"#f5f5f5",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify($.prepResultSnapshot,null,2)})})]}),(0,o.jsxs)(O.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,o.jsx)(F.A,{expandIcon:(0,o.jsx)(X.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,o.jsxs)(d.default,{variant:"caption",color:(null==(n=$.execResultSnapshot)?void 0:n.success)===!1?"error":"inherit",children:["Exec Result ",(null==(a=$.execResultSnapshot)?void 0:a.success)===!1?"(Error)":""]})}),(0,o.jsx)(W.A,{sx:{p:0},children:(null==(c=$.execResultSnapshot)?void 0:c.success)===!1?(0,o.jsxs)(l.default,{sx:{p:1,background:k.palette.error.light,borderRadius:1},children:[" ",(0,o.jsxs)(d.default,{variant:"body2",color:"error",gutterBottom:!0,children:[(0,o.jsx)("b",{children:"Error:"})," ",$.execResultSnapshot.error||"Unknown error"]}),$.execResultSnapshot.errorDetails&&(0,o.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"150px",overflowY:"auto",background:"#f5f5f5",padding:"4px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify($.execResultSnapshot.errorDetails,null,2)})]}):(0,o.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"#f5f5f5",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify($.execResultSnapshot,null,2)})})]}),(0,o.jsxs)(O.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,o.jsx)(F.A,{expandIcon:(0,o.jsx)(X.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,o.jsx)(d.default,{variant:"caption",children:"State Before"})}),(0,o.jsx)(W.A,{sx:{p:0},children:(0,o.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"#f5f5f5",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify($.stateBefore,null,2)})})]}),(0,o.jsxs)(O.A,{sx:{boxShadow:"none","&:before":{display:"none"}},children:[(0,o.jsx)(F.A,{expandIcon:(0,o.jsx)(X.A,{}),sx:{minHeight:"36px","& .MuiAccordionSummary-content":{margin:"8px 0"}},children:(0,o.jsx)(d.default,{variant:"caption",children:"State After"})}),(0,o.jsx)(W.A,{sx:{p:0},children:(0,o.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:"200px",overflowY:"auto",background:"#f5f5f5",padding:"8px",borderRadius:"4px",fontSize:"0.75rem",margin:0},children:JSON.stringify($.stateAfter,null,2)})})]})]}):(0,o.jsx)(d.default,{variant:"body2",color:"textSecondary",children:"Select a step from the trace."})]})]}),(0,o.jsxs)(e$,{children:[(0,o.jsx)(s.A,{variant:"outlined",size:"small",onClick:K,disabled:x||E<=0,children:"Previous"}),(0,o.jsx)(s.A,{variant:"contained",size:"small",onClick:Z,disabled:x||-1===E,children:u.executionTrace&&E<u.executionTrace.length-1?"Next Trace Step":"Step Next"}),f&&(0,o.jsx)(s.A,{variant:"outlined",size:"small",onClick:f,disabled:x,children:"Step Over"}),(0,o.jsx)(s.A,{variant:"contained",color:"secondary",size:"small",onClick:h,disabled:x,children:"Continue"}),(0,o.jsx)(s.A,{variant:"outlined",color:"error",size:"small",onClick:m,disabled:x,children:"Stop"})]})]})};var e0=n(94929),e1=n(29155),e2=n(63650);let e5=(0,en.h)("frontend/services/chat/index");class e4 extends Error{constructor(e,t,n){super(e),this.name="ChatApiError",this.status=t,this.body=n}}let e6="/v1/chat/conversations";async function e3(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 e4(t&&"object"==typeof t&&(t.error||t.message)||"Request failed with status ".concat(e.status),e.status,t);return t}class e7{async listConversations(){return e5.debug("listConversations: Entering method"),e3(await fetch(e6))}async getConversation(e){return e5.debug("getConversation: Entering method",{conversationId:e}),e3(await fetch("".concat(e6,"/").concat(encodeURIComponent(e))))}async createConversation(e){return e5.debug("createConversation: Entering method",{conversationId:e.id}),e3(await fetch(e6,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}))}async updateConversationFlow(e,t){return e5.debug("updateConversationFlow: Entering method",{conversationId:e,flowId:t}),e3(await fetch("".concat(e6,"/").concat(encodeURIComponent(e)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({flowId:t})}))}async updateConversationApproval(e,t){return e5.debug("updateConversationApproval: Entering method",{conversationId:e,requireApproval:t}),e3(await fetch("".concat(e6,"/").concat(encodeURIComponent(e)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApproval:t})}))}async deleteConversation(e){e5.debug("deleteConversation: Entering method",{conversationId:e});let t=await fetch("".concat(e6,"/").concat(encodeURIComponent(e)),{method:"DELETE"});await e3(t)}async respondToToolCall(e,t,n){return e5.debug("respondToToolCall: Entering method",{conversationId:e,action:t,toolCallId:n}),e3(await fetch("".concat(e6,"/").concat(encodeURIComponent(e),"/respond"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:t,toolCallId:n})}))}async debugStep(e){return e5.debug("debugStep: Entering method",{conversationId:e}),e3(await fetch("".concat(e6,"/").concat(encodeURIComponent(e),"/debug/step"),{method:"POST"}))}async debugContinue(e){return e5.debug("debugContinue: Entering method",{conversationId:e}),e3(await fetch("".concat(e6,"/").concat(encodeURIComponent(e),"/debug/continue"),{method:"POST"}))}async setBreakpoints(e,t){e5.debug("setBreakpoints: Entering method",{conversationId:e,count:t.length});let n=await fetch("".concat(e6,"/").concat(encodeURIComponent(e),"/breakpoints"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({breakpoints:t})});await e3(n)}async cancel(e){e5.debug("cancel: Entering method",{conversationId:e});let t=await fetch("".concat(e6,"/").concat(encodeURIComponent(e),"/cancel"),{method:"POST"});await e3(t)}subscribeToEvents(e,t,n){let o=new EventSource(void 0!==n?"".concat(e6,"/").concat(encodeURIComponent(e),"/events?fromSeq=").concat(n):"".concat(e6,"/").concat(encodeURIComponent(e),"/events"));return o.onopen=()=>{var n;e5.debug("Execution event stream open",{conversationId:e}),null==(n=t.onOpen)||n.call(t)},o.onmessage=e=>{try{t.onEvent(JSON.parse(e.data))}catch(e){e5.warn("Failed to parse SSE event",{err:e})}},o.onerror=e=>{var n;e5.debug("SSE stream error (browser will retry if still open)"),null==(n=t.onError)||n.call(t,e)},o}}let e8=new e7,e9=(0,en.h)("frontend/components/Chat/index");function te(e){var t;if(Array.isArray(e.content))return e.content;let n="string"==typeof e.content?e.content:"",o=null!=(t=e.attachments)?t:[],r=o.filter(e=>"image"!==e.type),a=o.filter(e=>"image"===e.type);if(r.length>0&&(n+="\n\n"+r.map(e=>"[".concat(e.type.toUpperCase(),"]: ").concat(e.content)).join("\n\n")),0===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 tt=()=>{var e;let[t,n]=(0,r.useState)([]),[a,b]=(0,r.useState)(!0),[y,w]=(0,r.useState)(null),[j,A]=(0,r.useState)(null),[S,I]=(0,r.useState)(!1),[C,k]=(0,r.useState)(null),[T,N]=(0,v.Mj)(v.Zg.CURRENT_CONVERSATION_ID,null),[R,D]=(0,r.useState)(!1),[z,P]=(0,r.useState)(new Set),O=(0,r.useCallback)((e,t)=>{e&&P(n=>{if(t===n.has(e))return n;let o=new Set(n);return t?o.add(e):o.delete(e),o})},[]),[F,W]=(0,r.useState)(null),[L,_]=(0,r.useState)([]),[M,B]=(0,r.useState)(!1),[U,J]=(0,r.useState)(!1),[q,H]=(0,r.useState)(null),[G,Y]=(0,r.useState)(null),[V,X]=(0,r.useState)(null),[K,Z]=(0,r.useState)(!1),[$,Q]=(0,r.useState)(null),[ee,et]=(0,r.useState)(!1),[en,eo]=(0,r.useState)(()=>{let e=Number(window.localStorage.getItem("flujo-debugger-width"));return Number.isFinite(e)&&e>0?e:0}),er=(0,r.useCallback)(e=>{e.preventDefault();let t=document.body.style.userSelect,n=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="col-resize";let o=e=>{eo(Math.min(Math.max(window.innerWidth-e.clientX,360),Math.round(.85*window.innerWidth)))},r=()=>{window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",r),document.body.style.userSelect=t,document.body.style.cursor=n,eo(e=>(e>0&&window.localStorage.setItem("flujo-debugger-width",String(Math.round(e))),e))};window.addEventListener("pointermove",o),window.addEventListener("pointerup",r)},[]),[ea,el]=(0,r.useState)(null),[es,ed]=(0,r.useState)([]),[ec,eu]=(0,r.useState)(null),ep=(0,r.useRef)(null),eg=(0,r.useRef)(null),ef=(0,r.useRef)(null),eh=(0,r.useRef)(-1),em=(0,r.useRef)(T);(0,r.useEffect)(()=>{em.current=T},[T]);let ex=(0,r.useRef)(null);(0,r.useEffect)(()=>{ex.current=ec},[ec]),(0,r.useEffect)(()=>{let e=window.location.origin+"/v1";ep.current=new e1.Ay({baseURL:e,apiKey:"FLUJO",dangerouslyAllowBrowser:!0,maxRetries:0,timeout:18e6})},[]),(0,r.useEffect)(()=>{(async()=>{e9.debug("Loading flows");try{let e=await eO.g.loadFlows();_(e)}catch(e){e9.error("Error loading flows:",e)}})()},[]);let ev=(0,r.useCallback)(async(e,t)=>{var o;let r=null!=(o=null==t?void 0:t.silent)&&o;e9.debug("Fetching conversation list from backend",{silent:r}),r||(b(!0),w(null));let a=[],l=!1;try{a=(await e8.listConversations()).sort((e,t)=>t.updatedAt-e.updatedAt),n(a),e9.info("Fetched ".concat(a.length," conversations for the list"))}catch(e){l=!0,e9.error("Error fetching conversation list:",e),r||(w("Failed to load conversation history."),n([]))}finally{if(r||b(!1),r||l)return;let t=void 0!==e?e:em.current,n=em.current;if(t&&a.some(e=>e.id===t))t!==n&&(e9.debug("Setting currentConversationId to ".concat(t," after fetch/operation.")),N(t));else if(a.length>0){let e=a[0].id;e!==n&&(e9.debug("Selecting most recent conversation ".concat(e," after fetch/operation.")),N(e))}else null!==n&&(e9.debug("No conversations available after fetch/operation, clearing selection."),N(null))}},[N]);(0,r.useEffect)(()=>{ev()},[]);let eb=(0,r.useCallback)(async e=>{e9.debug("Fetching detailed conversation",{conversationId:e}),I(!0),k(null),A(null);try{let t=await e8.getConversation(e);if(em.current!==e)return void e9.debug("Discarding stale detailed conversation response",{fetchedId:e,currentId:em.current});A(t),n(n=>n.map(n=>n.id===e?{...n,title:t.title,flowId:t.flowId,updatedAt:t.updatedAt}:n).sort((e,t)=>t.updatedAt-e.updatedAt)),e9.info("Fetched detailed conversation successfully",{conversationId:e})}catch(t){if(e9.error("Error fetching detailed conversation:",{conversationId:e,err:t}),em.current!==e)return;t instanceof e4&&404===t.status?(k("Conversation ".concat(e," not found.")),N(null),ev()):k("Failed to load details for conversation ".concat(e,".")),A(null)}finally{em.current===e&&I(!1)}},[ev,N]);(0,r.useEffect)(()=>{H(null),X(null),T?eb(T):(A(null),I(!1),k(null))},[T,eb]),(0,r.useEffect)(()=>{if(j){var e;B(null!=(e=j.requireApproval)&&e)}},[null==j?void 0:j.id]);let ew=(0,r.useCallback)(async e=>{if(B(e),T)try{await e8.updateConversationApproval(T,e)}catch(e){e9.warn("Failed to persist requireApproval setting",{conversationId:T,err:e})}},[T]),eS=t.find(e=>e.id===T)||null,eI=(0,r.useMemo)(()=>{var e,t;return(null==(t=L.find(e=>e.id===(null==j?void 0:j.flowId)))||null==(e=t.nodes)?void 0:e.map(e=>({id:e.id,label:e.data.label||e.id})))||[]},[L,null==j?void 0:j.flowId]),eC=(0,r.useMemo)(()=>{var e,t,n;let o=e=>!!e&&eI.some(t=>t.id===e);if(o(V))return V;if(o(null==j?void 0:j.currentNodeId))return j.currentNodeId;let r=null!=(t=null==j?void 0:j.messages)?t:[];for(let e=r.length-1;e>=0;e--){let t=r[e];if("assistant"===t.role&&o(t.processNodeId))return t.processNodeId}return null!=(n=null==(e=eI[0])?void 0:e.id)?n:null},[V,j,eI]),ek=async()=>{var e,t;e9.debug("Attempting to create new conversation"),W(null);let o=(null==(e=L[0])?void 0:e.id)||null;if(!o){e9.error("Cannot create conversation: No flows available or first flow has no ID."),W("Cannot create a new conversation: No flows available.");return}let r=(0,ey.A)(),a=Date.now(),l={id:r,title:"New Conversation",flowId:o,createdAt:a,updatedAt:a};try{e9.info("Sending request to create conversation on backend",{payload:JSON.stringify(l)});let e=await e8.createConversation(l);e9.info("Successfully created conversation on backend",{conversationId:e.id}),n(t=>[e,...t].sort((e,t)=>t.updatedAt-e.updatedAt)),N(e.id),A({id:e.id,title:e.title,flowId:e.flowId,createdAt:e.createdAt,updatedAt:e.updatedAt,messages:[]}),I(!1),k(null)}catch(n){e9.error("Error creating conversation on backend:",n);let e="Failed to create conversation on the server.";n instanceof e4?e+=" Error: ".concat((null==(t=n.body)?void 0:t.error)||n.message):n instanceof Error&&(e+=" Error: ".concat(n.message)),W(e)}},eE=(0,r.useCallback)(e=>{e9.debug("Updating detailed conversation state locally",{conversationId:e.id});let t={...e,updatedAt:Date.now()};A(t),n(e=>e.map(e=>e.id===t.id?{...e,title:t.title,updatedAt:t.updatedAt}:e).sort((e,t)=>t.updatedAt-e.updatedAt))},[]),eT=(0,r.useCallback)(()=>{ef.current&&(e9.debug("Closing execution event stream"),ef.current.close(),ef.current=null)},[]),eN=(0,r.useCallback)(e=>{if("number"==typeof e.seq){if(e.seq<=eh.current)return;eh.current=e.seq}let t=e=>el(t=>{var n,o,r,a;return{totalTokens:null!=(o=null!=(n=e.totalTokens)?n:null==t?void 0:t.totalTokens)?o:0,activeNode:void 0!==e.activeNode?e.activeNode:null!=(r=null==t?void 0:t.activeNode)?r:null,startedAt:null!=(a=null==t?void 0:t.startedAt)?a:Date.now(),lastEventAt:Date.now()}});switch(e.type){case"run:start":el({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()});break;case"message":{let n=e.message;t({}),A(t=>{let o;if(!t||t.id!==e.conversationId)return t;let r=t.messages.findIndex(e=>e.id===n.id);return r>=0?(o=[...t.messages])[r]={...o[r],...n}:o=[...t.messages,n],{...t,messages:o}});break}case"usage":el(t=>{var n,o,r;return{totalTokens:(null!=(n=null==t?void 0:t.totalTokens)?n:0)+(e.totalTokens||0),activeNode:null!=(o=null==t?void 0:t.activeNode)?o:null,startedAt:null!=(r=null==t?void 0:t.startedAt)?r:Date.now(),lastEventAt:Date.now()}});break;case"node:enter":var n,o;t({activeNode:(null==(n=e.node)?void 0:n.nodeName)||(null==(o=e.node)?void 0:o.nodeId)||null});break;case"tool:call":t({activeNode:e.name});break;case"tool:progress":t({activeNode:e.message?"".concat(e.name," — ").concat(e.message):e.name});break;case"subflow:start":t({activeNode:"↳ ".concat(e.subflowName||e.subflowId)});break;case"handoff":t({activeNode:"→ ".concat(e.toNodeId)});break;case"run:awaiting_approval":e.conversationId&&e.conversationId===em.current&&H(e.pendingToolCalls||[]);break;case"breakpoint:hit":case"run:paused":D(!1),e.conversationId&&O(e.conversationId,!1),Z(!0);break;case"run:done":el(null),D(!1),eu(null),e.conversationId&&O(e.conversationId,!1),eT(),e.conversationId&&e.conversationId===em.current?eb(e.conversationId):ev(void 0,{silent:!0});break;case"error":W(e.message||"Execution error");break;default:t({})}},[eT,eb,ev,O]),eR=(0,r.useCallback)((e,t)=>(eT(),eh.current=void 0!==t?t-1:-1,new Promise(n=>{let o=!1,r=()=>{o||(o=!0,n())};try{ef.current=e8.subscribeToEvents(e,{onEvent:eN,onOpen:r},t),setTimeout(r,1500)}catch(t){e9.error("Failed to open execution event stream",{conversationId:e,err:t}),r()}})),[eN,eT]);(0,r.useEffect)(()=>{T&&(null==eS?void 0:eS.status)==="running"&&ex.current!==T&&(e9.info("Re-attaching to in-progress run",{conversationId:T}),ex.current=T,D(!0),eu(T),O(T,!0),el(e=>null!=e?e:{totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),eR(T,0))},[T,null==eS?void 0:eS.status,eR]);let eD=async e=>{e9.debug("Attempting to delete conversation",{conversationId:e}),W(null);let o=t.filter(t=>t.id!==e);n(o);let r=T;T===e&&(o.length>0?(r=o[0].id,e9.debug("Deleted current conversation, selecting next most recent",{nextSelectionId:r})):(r=null,e9.debug("Deleted last conversation, clearing selection")),N(r));try{await e8.deleteConversation(e),e9.info("Successfully deleted conversation on backend",{conversationId:e})}catch(o){e9.error("Error deleting conversation:",{conversationId:e,err:o}),W("Failed to delete conversation ".concat(e,". Please try again.")),n(t),N(T)}},eP=async e=>{if(e9.debug("Flow selected, attempting to update",{flowId:e,currentConversationId:T}),W(null),!T){e9.warn("Cannot update flow: No conversation selected."),W("Please select a conversation first.");return}j&&j.id===T&&A({...j,flowId:e,updatedAt:Date.now()}),n(t=>t.map(t=>t.id===T?{...t,flowId:e,updatedAt:Date.now()}:t).sort((e,t)=>t.updatedAt-e.updatedAt));try{let t=await e8.updateConversationFlow(T,e);e9.info("Successfully updated flowId on backend",{conversationId:T,flowId:e}),A(e=>e&&e.id===T?(e9.debug("Confirming detailedConversation update from server response",{conversationId:T,flowId:t.flowId}),{...e,flowId:t.flowId,updatedAt:t.updatedAt}):(e9.debug("Skipping detailedConversation update, ID mismatch or null state",{currentDetailedId:null==e?void 0:e.id,targetId:T}),e)),n(e=>e.map(e=>e.id===T?t:e).sort((e,t)=>t.updatedAt-e.updatedAt))}catch(a){e9.error("Error updating flowId on backend:",{conversationId:T,flowId:e,err:a});let r="Failed to update the selected flow.";if(a instanceof e4){var o;r+=" Error: ".concat((null==(o=a.body)?void 0:o.error)||a.message)}else a instanceof Error&&(r+=" Error: ".concat(a.message));W(r),A(j),n(t)}},eW=async function(e){var t,n;let o,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e.trim()&&0===r.length)return;if(!j){e9.error("Cannot send message, detailed conversation not loaded."),W("Cannot send message: conversation details not loaded.");return}e9.debug("Sending message",{conversationId:j.id,contentLength:e.length,attachmentsCount:r.length});let a=j.messages,l=!a.some(e=>"user"===e.role),i=j.flowId;if(V)o=V,X(null),e9.debug("Assigning manually picked node ID to user message: ".concat(o));else if(l){let e=L.find(e=>e.id===i),n=null==e||null==(t=e.nodes)?void 0:t[0];n?(o=n.id,e9.debug("Assigning start node ID to first user message: ".concat(o))):e9.warn("Could not find start node for flow ".concat(i,". User message will not have a processNodeId."))}else{for(let e=a.length-1;e>=0;e--){let t=a[e];if("assistant"===t.role&&t.processNodeId){o=t.processNodeId,e9.debug("Assigning last assistant node ID to user message: ".concat(o));break}}if(!o){let e=L.find(e=>e.id===i),t=null==e||null==(n=e.nodes)?void 0:n[0];t?(o=t.id,e9.debug("No prior assistant node ID found, falling back to start node ID: ".concat(o))):e9.warn("Could not find start node for fallback in flow ".concat(i,". User message will not have a processNodeId."))}}let s={id:(0,ey.A)(),role:"user",content:e,timestamp:Date.now(),attachments:r.length>0?r:void 0,processNodeId:o},d={...j,messages:[...j.messages,s]};eE(d),d.flowId?await eM(d):(W("Please select a flow for this conversation before sending messages"),A(j))},eL=(0,r.useCallback)((e,t)=>{if(e9.verbose("Handling API response data",JSON.stringify(e)),O(t,"running"===e.status),"paused_debug"===e.status&&e.debugState)return e9.info("API Response: Paused for debugging",{conversationId:t}),Q(e.debugState),Z(!0),et(!0),D(!1),eu(null),eT(),e_(),A(n=>(null==n?void 0:n.id)===t&&e.debugState.messages&&JSON.stringify(n.messages)!==JSON.stringify(e.debugState.messages)?(e9.debug("Updating detailed conversation messages from debug state"),{...n,messages:e.debugState.messages,updatedAt:e.debugState.updatedAt}):n),n(n=>n.map(n=>{var o,r;return n.id===t?{...n,title:null!=(o=e.debugState.title)?o:n.title,flowId:null!=(r=e.debugState.flowId)?r:n.flowId,status:"paused_debug",updatedAt:e.debugState.updatedAt}:n}).sort((e,t)=>t.updatedAt-e.updatedAt)),!0;if("completed"===e.status||"error"===e.status?(e9.info("API Response: Execution completed or errored (Status: ".concat(e.status,"). Hiding debugger panel."),{conversationId:t}),Z(!1),Q(null),et(!1)):e9.debug("API Response: Status is '".concat(e.status,"'. Debugger panel visibility unchanged (currently ").concat(K?"visible":"hidden",")."),{conversationId:t}),e.messages&&e.conversation_id===t){let n=e.messages.map((e,n)=>"number"!=typeof e.timestamp||isNaN(e.timestamp)?(e9.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);A(o=>{var r,a;let l=o;return(null==o?void 0:o.id)===t&&JSON.stringify(o.messages)!==JSON.stringify(n)&&(e9.info("API Response/Polling: Updating detailed conversation messages",{conversationId:t,newMessageCount:n.length}),l={...o,messages:n,updatedAt:e.updatedAt||o.updatedAt}),e9.debug("Polling: setDetailedConversation callback executed.",{conversationId:t,messagesChanged:l!==o,newMessageCount:null!=(a=null==l||null==(r=l.messages)?void 0:r.length)?a:"N/A"}),l})}if("awaiting_tool_approval"===e.status)e9.info("API Response/Polling: Pausing for tool approval",{conversationId:t}),H(e.pendingToolCalls||[]),D(!1),eu(null),eT(),e_();else if("completed"===e.status||"error"===e.status){if(e9.info("API Response/Polling: Stopping due to final status",{conversationId:t,status:e.status}),e_(),D(!1),eu(null),eT(),"error"===e.status){var o,r;W((null==(o=e.error)?void 0:o.message)||(null==(r=e.lastResponse)?void 0:r.error)||"Unknown error during execution"),e9.error("API Response/Polling: Execution resulted in error",{conversationId:t,error:e.error||e.lastResponse})}eb(t)}else"running"!==e.status||K?H(null):(H(null),eg.current||D(!0));return e.conversation_id===t&&n(n=>n.map(n=>{var o,r,a;return n.id===t?{...n,title:null!=(o=e.title)?o:n.title,flowId:null!=(r=e.flowId)?r:n.flowId,status:null!=(a=e.status)?a:n.status,updatedAt:e.updatedAt||n.updatedAt}:n}).sort((e,t)=>t.updatedAt-e.updatedAt)),!1},[A,H,D,W,Z,Q,n,eb,eT,O]),e_=()=>{eg.current&&(e9.debug("Stopping polling interval"),clearInterval(eg.current),eg.current=null)};(0,r.useEffect)(()=>()=>{eT()},[eT]);let eM=async e=>{if(!(null==e?void 0:e.id)||!e.flowId||!ep.current)return e9.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}),W("Cannot send message: Missing conversation ID or flow ID."),!1;H(null),W(null),D(!0),eu(e.id),O(e.id,!0),el({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await eR(e.id);let t=!1;try{let n=await eO.g.getFlow(e.flowId);if(!n)throw Error("Flow with ID ".concat(e.flowId," not found"));e9.debug("Sending to chat completions",{flowId:e.flowId,flowName:n.name,conversationId:e.id});let o=e.messages.filter(e=>{var t;return!e.disabled&&!((null!=(t=e.depth)?t:0)>0)}).map(e=>{let t=te(e),n=e.processNodeId,o={id:e.id,timestamp:e.timestamp};return"user"===e.role?{role:"user",content:t,...o,processNodeId:n}:"assistant"===e.role?{role:"assistant",content:t,tool_calls:e.tool_calls,...o,processNodeId:n}:"system"===e.role?{role:"system",content:t,...o,processNodeId:n}:"tool"===e.role?e.tool_call_id?{role:"tool",content:t,tool_call_id:e.tool_call_id,...o,processNodeId:n}:{role:"user",content:"string"==typeof t?"Tool result: ".concat(t):t,...o,processNodeId:n}:{role:"user",content:t,...o,processNodeId:n}}),r=await ep.current.chat.completions.create({model:"flow-".concat(n.name),messages:o,stream:!1,metadata:(()=>{let t={flujo:"true",requireApproval:M?"true":void 0,flujodebug:U?"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})()});e9.debug("Chat completion initial response received",{completionId:r.id}),t=!0;let a={...r,status:r.status||"completed",conversation_id:e.id,messages:r.messages||e.messages,pendingToolCalls:r.pendingToolCalls,debugState:r.debugState,error:r.error,lastResponse:r.lastResponse,updatedAt:r.updatedAt||Date.now()},l=eL(a,e.id);l||eg.current?l&&e9.debug("Debug state handled, polling remains stopped."):e9.debug("Starting polling after initial non-debug response.")}catch(r){e9.error("Error calling chat completions API:",r),t=!1;let o="An error occurred while sending the message.";if(r instanceof e2.LG)o="API Error: ".concat(r.message," (Status: ").concat(r.status,")"),r.code&&(o+=" (Code: ".concat(r.code,")")),r.type&&(o+=" [Type: ".concat(r.type,"]")),e9.verbose("APIError details",JSON.stringify(r));else if(r instanceof e2.vc){o="OpenAI Error: ".concat(r.message);let e=r.error;e&&"object"==typeof e&&(e.code&&(o+=" (Code: ".concat(e.code,")")),e.type&&(o+=" [Type: ".concat(e.type,"]"))),e9.verbose("OpenAIError details",JSON.stringify(r))}else if(r instanceof e4){var n;o="Error: ".concat((null==(n=r.body)?void 0:n.error)||r.message),r.status&&(o+=" (Status: ".concat(r.status,")")),e9.verbose("ChatApiError details",JSON.stringify(r.body))}else r instanceof Error&&(o=r.message);W(o),e_(),D(!1),eu(null),O(e.id,!1),eT()}finally{}return t},eB=async(e,t,n)=>{if(!j)return;e9.debug("Editing message",{messageId:e,contentLength:t.length,processNodeId:n});let o=j.messages.findIndex(t=>t.id===e);if(-1===o)return;let r={...j.messages[o],content:t,timestamp:Date.now(),processNodeId:n||void 0},a=[...j.messages.slice(0,o),r],l={...j,messages:a};if(eE(l),l.flowId){let e={flujo:"true",requireApproval:M?"true":void 0,flujodebug:U?"true":void 0,conversationId:l.id,processNodeId:n||void 0};if(!ep.current)return;W(null),D(!0),eu(l.id),O(l.id,!0),el({totalTokens:0,activeNode:null,startedAt:Date.now(),lastEventAt:Date.now()}),await eR(l.id);try{let t=await eO.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=te(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}}),o=await ep.current.chat.completions.create({model:"flow-".concat(t.name),messages:n,stream:!1,metadata:(()=>{let t={};return e.flujo&&(t.flujo=e.flujo),e.requireApproval&&(t.requireApproval=e.requireApproval),e.flujodebug&&(t.flujodebug=e.flujodebug),e.conversationId&&(t.conversationId=e.conversationId),e.processNodeId&&(t.processNodeId=e.processNodeId),t})()}),r={...o,status:o.status||"completed",conversation_id:l.id,messages:o.messages||l.messages,pendingToolCalls:o.pendingToolCalls,debugState:o.debugState,error:o.error,updatedAt:o.updatedAt||Date.now()};eL(r,l.id)}catch(e){e9.error("Error sending edited message:",e),W(e instanceof Error?e.message:"Failed to send edited message"),D(!1),eu(null),O(l.id,!1),eT()}}},eU=async(e,t)=>{if(T){e9.info("Handling tool response: ".concat(e),{conversationId:T,toolCallId:t}),H(null),D(!0),eu(T),O(T,!0),W(null),await eR(T);try{let n=await e8.respondToToolCall(T,e,t);e9.debug("Tool response successful",{conversationId:T,action:e,toolCallId:t}),eL(n,T)}catch(r){e9.error("Error sending tool response (".concat(e,")"),{conversationId:T,toolCallId:t,err:r});let o="Failed to ".concat(e," tool call.");if(r instanceof e4){var n;o+=" Error: ".concat((null==(n=r.body)?void 0:n.error)||r.message)}else r instanceof Error&&(o+=" Error: ".concat(r.message));W(o),D(!1),O(T,!1)}}},eJ=async()=>{if(T&&K){e9.info("Handling debug step request",{conversationId:T}),D(!0),eu(T),O(T,!0),W(null),await eR(T);try{let e=await e8.debugStep(T);eL(e,T)}catch(e){e9.error("Error during debug step API call",{conversationId:T,err:e}),W(e instanceof Error?e.message:"Failed to execute debug step."),D(!1),O(T,!1),Z(!1),Q(null)}finally{}}},eq=async()=>{if(T&&K){e9.info("Handling debug continue request",{conversationId:T}),D(!0),eu(T),O(T,!0),W(null),Z(!1),await eR(T);try{let e=await e8.debugContinue(T);eL(e,T)}catch(e){e9.error("Error during debug continue API call",{conversationId:T,err:e}),W(e instanceof Error?e.message:"Failed to continue execution."),D(!1),O(T,!1)}finally{}}};(0,r.useEffect)(()=>{if($){var e;ed(null!=(e=$.breakpoints)?e:[])}},[$]);let eH=(0,r.useCallback)(async e=>{if(!T)return;let t=es.includes(e)?es.filter(t=>t!==e):[...es,e];ed(t);try{await e8.setBreakpoints(T,t)}catch(e){e9.error("Failed to update breakpoints",{conversationId:T,err:e}),ed(es)}},[es,T]),eG=async()=>{if(!T||!K)return;let e=null==$?void 0:$.currentNodeId;D(!0),eu(T),O(T,!0),W(null),await eR(T);try{for(let r=0;r<50;r++){var t,n,o;let r=await e8.debugStep(T),a=null!=(o=null==r?void 0:r.status)?o:null==r||null==(t=r.debugState)?void 0:t.status,l=null==r||null==(n=r.debugState)?void 0:n.currentNodeId;if("paused_debug"!==a||l&&l!==e)return void eL(r,T)}e9.warn("Step Over hit iteration cap",{conversationId:T}),D(!1),O(T,!1)}catch(e){e9.error("Error during step over",{conversationId:T,err:e}),W(e instanceof Error?e.message:"Failed to step over."),D(!1),O(T,!1)}},eY=async()=>{if(T){e9.info("Cancelling request",{conversationId:T}),e_(),D(!1),eu(null),O(T,!1),et(!1),eT(),H(null);try{await e8.cancel(T),e9.debug("Cancel request sent successfully",{conversationId:T}),await eb(T)}catch(e){e9.error("Error sending cancel request",{conversationId:T,err:e}),W("Failed to send cancel request to the server.")}}},eV=async()=>{e9.info("Closing debugger panel",{conversationId:T}),Z(!1),Q(null),et(!1),await eY()};e9.debug("Rendering Chat component",{currentConversationId:T,isHandleEditMessageDefined:!0});let eX=(ee||K)&&!!$&&!!T;return(0,o.jsxs)(l.default,{sx:{display:"flex",height:"calc(100vh - 64px)"},children:[(0,o.jsx)(l.default,{sx:{width:300,borderRight:1,borderColor:"divider",display:"flex",flexDirection:"column"},children:a?(0,o.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%",p:2},children:(0,o.jsx)(e0.default,{size:"medium",color:"primary"})}):y?(0,o.jsx)(i.A,{severity:"error",sx:{m:2},children:y}):(0,o.jsx)(E,{conversations:t,currentConversationId:T,onSelectConversation:N,onDeleteConversation:eD,onNewConversation:ek})}),(0,o.jsxs)(l.default,{sx:{flex:1,height:"100%",display:"flex",minWidth:0,minHeight:0},children:[(0,o.jsxs)(l.default,{sx:{flex:1,minWidth:0,display:"flex",flexDirection:"column",height:"100%"},children:[T&&(0,o.jsxs)(l.default,{sx:{p:2,borderBottom:1,borderColor:"divider",display:"flex",alignItems:"center",gap:2},children:[(0,o.jsx)(l.default,{sx:{flex:1,minWidth:0},children:(0,o.jsx)(eF,{selectedFlowId:(null==eS?void 0:eS.flowId)||(null==j?void 0:j.flowId)||null,onSelectFlow:e=>{var t,n,o,r;if(!T){e9.warn("Cannot update flow: No conversation selected."),W("Please select a conversation first.");return}let a=null!=(o=null!=(n=null==j?void 0:j.flowId)?n:null==eS?void 0:eS.flowId)?o:null;if((null!=(r=null==j||null==(t=j.messages)?void 0:t.length)?r:0)>0&&a&&e!==a){e9.debug("Flow switch on executed conversation — asking for confirmation",{flowId:e,currentFlowId:a}),Y(e);return}eP(e)},disabled:K})}),(0,o.jsx)(ez,{usage:null==j?void 0:j.usage,contextInfo:null==j?void 0:j.contextInfo,availableNodes:eI})]}),(0,o.jsx)(l.default,{sx:{flex:1,overflow:"auto",p:2},children:S?(0,o.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"},children:(0,o.jsx)(e0.default,{size:"medium",color:"primary"})}):C?(0,o.jsx)(i.A,{severity:"error",sx:{m:2},children:C}):j?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ei,{messages:j.messages,pendingToolCalls:q,availableNodes:eI,conversationId:j.id,onToggleDisabled:e=>{if(!j)return;e9.debug("Toggling message disabled state",{messageId:e});let t=j.messages.map(t=>t.id===e?{...t,disabled:!t.disabled}:t);eE({...j,messages:t})},onSplitConversation:e=>{if(!j)return;e9.debug("Splitting conversation at message",{messageId:e});let t=j.messages.findIndex(t=>t.id===e);if(-1===t)return;let o=j.messages.slice(0,t+1),r=(0,ey.A)(),a={id:r,title:"Split from ".concat(j.title),messages:o,flowId:j.flowId,createdAt:Date.now(),updatedAt:Date.now()},l={id:r,title:a.title,flowId:a.flowId,createdAt:a.createdAt,updatedAt:a.updatedAt};n(e=>[l,...e].sort((e,t)=>t.updatedAt-e.updatedAt)),N(r),A(a),I(!1),k(null)},onEditMessage:eB,onApproveToolCall:e=>{eU("approve",e)},onRejectToolCall:e=>{eU("reject",e)}}),!R&&!K&&j.messages.length>0&&(null==eS?void 0:eS.status)==="completed"&&(0,o.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,o.jsx)(i.A,{icon:(0,o.jsx)(m.A,{fontSize:"inherit"}),severity:"success",variant:"filled",sx:{borderRadius:2,py:.5},children:"Conversation completed"})}),!R&&!K&&!F&&(null==eS?void 0:eS.status)==="error"&&(0,o.jsx)(l.default,{sx:{display:"flex",justifyContent:"center",my:2},children:(0,o.jsx)(i.A,{icon:(0,o.jsx)(x.A,{fontSize:"inherit"}),severity:"error",variant:"filled",sx:{borderRadius:2,py:.5,alignItems:"center"},action:(0,o.jsx)(s.A,{color:"inherit",size:"small",startIcon:(0,o.jsx)(h.A,{}),onClick:()=>{eM(j)},children:"Retry"}),children:"Conversation ended with an error"})}),R&&ec===T&&(0,o.jsx)(eA,{liveStats:ea,onStop:eY,stopDisabled:!T}),F&&(0,o.jsx)(i.A,{severity:"error",sx:{mt:2},action:(0,o.jsx)(s.A,{color:"inherit",size:"small",startIcon:(0,o.jsx)(h.A,{}),onClick:()=>{j&&eM(j)},children:"Retry"}),children:F})]}):(0,o.jsx)(d.default,{variant:"body1",color:"textSecondary",align:"center",sx:{mt:4},children:t.length>0?"Select a conversation or create a new one.":"Create a new conversation to start chatting."})}),(0,o.jsx)(l.default,{sx:{p:2,borderTop:1,borderColor:"divider"},children:(0,o.jsx)(ej,{onSendMessage:eW,disabled:S||!!T&&z.has(T)||!((null==j?void 0:j.flowId)||(null==eS?void 0:eS.flowId))||!!q||K,requireApproval:M,onRequireApprovalChange:ew,executeInDebugger:U,onExecuteInDebuggerChange:J,availableNodes:eI,currentNodeId:eC,nodeOverrideActive:!!V,onSelectNode:X})})]})," ",eX&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.default,{onPointerDown:er,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,o.jsx)(l.default,{sx:{width:en?"".concat(en,"px"):"50%",minWidth:360,maxWidth:"85vw",flexShrink:0,display:"flex",flexDirection:"column",height:"100%"},children:(0,o.jsx)(eQ,{debugState:$,conversationId:T,onStep:eJ,onStepOver:eG,onContinue:eq,onCancel:eY,isLoading:R,breakpoints:es,onToggleBreakpoint:eH,onClose:eV})})]})]})," ",(0,o.jsxs)(c.A,{open:!!G,onClose:()=>Y(null),children:[(0,o.jsx)(u.A,{children:"Switch flow?"}),(0,o.jsx)(p.A,{children:(0,o.jsxs)(g.A,{children:["This conversation has already been processed with its current flow."," ","If you switch to"," ",(0,o.jsx)("strong",{children:(null==(e=L.find(e=>e.id===G))?void 0:e.name)||"the selected flow"}),","," ","the conversation will continue processing from that flow's Start node again."]})}),(0,o.jsxs)(f.A,{children:[(0,o.jsx)(s.A,{onClick:()=>Y(null),children:"Cancel"}),(0,o.jsx)(s.A,{variant:"contained",onClick:()=>{Y(null),G&&eP(G)},children:"Switch Flow"})]})]})]})},tn=(0,en.h)("frontend/components/ClientOnly");function to(e){let{children:t}=e,[n,a]=(0,r.useState)(!1);return((0,r.useEffect)(()=>(tn.debug("ClientOnly component mounted"),a(!0),()=>{tn.debug("ClientOnly component unmounted")}),[]),n)?(tn.debug("ClientOnly component rendering children"),(0,o.jsx)(o.Fragment,{children:t})):(tn.debug("ClientOnly component rendering null (not yet mounted)"),null)}let tr=(0,en.h)("app/chat/page");function ta(){return tr.debug("Rendering ChatPage"),(0,o.jsx)(a.A,{maxWidth:!1,disableGutters:!0,children:(0,o.jsx)(to,{children:(0,o.jsx)(tt,{})})})}},84869:(e,t,n)=>{"use strict";n.d(t,{G:()=>l,S:()=>a});let o=(0,n(87021).h)("frontend/services/transcription/webSpeech"),r=()=>"webkitSpeechRecognition"in window||"SpeechRecognition"in window;async function a(e,t){if(!r())throw Error("Web Speech API is not supported in this browser");o.debug("Starting Web Speech API transcription");try{let n=URL.createObjectURL(e),r=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 o=e.results[t][0].transcript;e.results[t].isFinal?l+=o+" ":n+=o}(null==t?void 0:t.onInterimResult)&&t.onInterimResult(l+n),o.debug("Recognition interim result",{finalLength:l.length,interimLength:n.length})},a.onend=()=>{o.debug("Recognition ended",{transcriptLength:l.length}),e(l.trim())},a.onerror=e=>{o.error("Recognition error",{error:e.error}),n(Error("Speech recognition error: ".concat(e.error)))},r.onplay=()=>{a.start(),o.debug("Recognition started")},r.onended=()=>{a.stop(),o.debug("Audio playback ended")},r.onerror=e=>{o.error("Audio playback error",{error:e}),a.stop(),n(Error("Error playing audio"))},r.play().catch(e=>{o.error("Error starting audio playback",{error:e}),n(e)})})}catch(e){throw o.error("Error in Web Speech API transcription",{error:e}),e}}function l(){return{supported:r(),message:r()?"Web Speech API is supported":"Web Speech API is not supported in this browser"}}},87021:(e,t,n)=>{"use strict";n.d(t,{h:()=>s});let o={LOG_LEVEL:3},r={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},a="number"==typeof o.LOG_LEVEL?o.LOG_LEVEL:r.ERROR;function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t>6)return String(e);if(!(e instanceof Error))return e;let n={name:e.name,message:e.message};for(let o of Object.getOwnPropertyNames(e)){if("name"===o||"message"===o)continue;let r=e[o];"function"!=typeof r&&("stack"===o?n.stack=r:"cause"===o?n.cause=l(r,t+1):"errors"===o&&Array.isArray(r)?n.errors=r.map(e=>l(e,t+1)):n[o]=r)}return n}function i(e,t,n,o,i){if(e>=("number"==typeof i?i:a)){if("function"==typeof o)try{o=o()}catch(e){o="[lazy log data threw]"}let a=new Date().toISOString(),i="[".concat(a,"] [").concat(t,"]"),s="".concat(i," ").concat(n);if(void 0!==o)if(o instanceof Error||"object"==typeof o)try{let e=o instanceof Error?l(o):o,t=JSON.stringify(e,(e,t)=>t instanceof Error?l(t):t,2);s+=":\n".concat(t)}catch(e){s+=": [Object cannot be stringified]"}else s+=": ".concat(o);switch(e){case r.VERBOSE:console.debug("[VERBOSE] ".concat(s));break;case r.DEBUG:console.debug(s);break;case r.INFO:console.info(s);break;case r.WARN:console.warn(s);break;case r.ERROR:console.error(s);break;default:console.log(s)}}}function s(e,t){let n,o=((n=e.replace(/^src\//,"")).startsWith("/")&&(n=n.substring(1)),n);return{verbose:(e,n)=>{i(r.VERBOSE,o,e,n,t)},debug:(e,n)=>{i(r.DEBUG,o,e,n,t)},info:(e,n)=>{i(r.INFO,o,e,n,t)},warn:(e,n)=>{i(r.WARN,o,e,n,t)},error:(e,n)=>{i(r.ERROR,o,e,n,t)}}}},94929:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var o=n(95155);n(12115);var r=n(94049),a=n(4474);let l=e=>{let{size:t="medium",color:n="primary",className:l="",sx:i={}}=e,s="white"===n?{color:"#fff",...i}:i;return(0,o.jsxs)(r.default,{component:"span",sx:{display:"inline-block",lineHeight:0,...s},className:l,role:"status",children:[(0,o.jsx)(a.default,{size:{small:16,medium:24,large:36}[t],color:"white"===n?"inherit":n,"aria-hidden":"true"}),(0,o.jsx)(r.default,{component:"span",sx:{position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:0},children:"Loading..."})]})}},97206:(e,t,n)=>{Promise.resolve().then(n.bind(n,67421))}},e=>{e.O(0,[3862,2678,4754,9244,8548,690,9562,2003,488,3272,5648,7396,7329,3750,1424,2005,7126,5961,6134,9164,8862,8441,1255,7358],()=>e(e.s=97206)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9040],{11947:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(19868),s=a(89505);function o(e){let{props:t,name:a,defaultTheme:o,themeId:r}=e,i=(0,s.A)(o);return r&&(i=i[r]||i),(0,n.A)({theme:i,name:a,props:t})}},19868:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(37821);function s(e){let{theme:t,name:a,props:s}=e;return t&&t.components&&t.components[a]&&t.components[a].defaultProps?(0,n.A)(t.components[a].defaultProps,s):s}},27127:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>E});var n=a(95155),s=a(94049),o=a(12115),r=a(28548),i=a(2300),d=a(25635),l=a(97322),p=a(9562),c=a(56422),m=a(21067),u=a(32683),h=a(51611);let y=[{id:"openai",name:"Chat — OpenAI-compatible",description:'A drop-in OpenAI-compatible surface. In OpenAI-compatible clients (Roo Code, Cline, Cursor, the OpenAI SDK, …) set the Base URL to this instance + "/v1" (e.g. http://localhost:4200/v1) and the model to a flow id (format flow-<NAME>, as listed by /v1/models).',endpoints:[{method:"POST",alsoMethods:["GET","OPTIONS"],path:"/v1/chat/completions",summary:"OpenAI-compatible chat completion. Runs a FLUJO flow as the model. Supports streaming and non-streaming. CORS-enabled; rate-limited (~6000 req/min).",paramsLabel:"Body",params:[{name:"model",type:"string",required:!0,description:"Flow to run, as flow-<NAME>."},{name:"messages",type:"ChatMessage[]",required:!0,description:"Conversation messages (OpenAI shape)."},{name:"stream",type:"boolean",description:"Stream the response as SSE chunks."},{name:"flujo",type:"boolean",description:"Enable FLUJO-specific behavior."},{name:"conversation_id",type:"string",description:"Reuse/continue an existing conversation."},{name:"requireApproval",type:"boolean",description:"Pause for manual tool-call approval."},{name:"flujodebug",type:"boolean",description:"Run in the visual debugger (single-step)."}],response:"OpenAI ChatCompletion object, or an SSE stream of chunks when stream=true."},{method:"GET",path:"/v1/models",summary:"List all flows as OpenAI-style models.",response:'{ object: "list", data: [{ id: "flow-<NAME>", object: "model" }, ...] }'}]},{id:"conversations",name:"Conversations & Execution",description:"Manage conversations and drive flow execution: live event streaming (SSE), tool-call approval, cancellation, and visual-debugger stepping.",endpoints:[{method:"GET",path:"/v1/chat/conversations",summary:"List all conversations (id, title, flowId, createdAt, updatedAt, status), newest first.",response:"Conversation summary array."},{method:"POST",path:"/v1/chat/conversations",summary:"Create a new conversation and initialize its execution state.",paramsLabel:"Body",params:[{name:"id",type:"string",required:!0,description:"Client-generated conversation id."},{name:"title",type:"string",required:!0,description:"Display title."},{name:"flowId",type:"string",required:!0,description:"Flow bound to this conversation."},{name:"createdAt",type:"number",required:!0,description:"Unix ms timestamp."},{name:"updatedAt",type:"number",required:!0,description:"Unix ms timestamp."}]},{method:"GET",alsoMethods:["PATCH","DELETE"],path:"/v1/chat/conversations/{conversationId}",summary:"GET the displayed conversation (messages + metadata); PATCH updates flowId; DELETE removes the conversation and its event log.",paramsLabel:"Body",params:[{name:"flowId",type:"string",description:"New flow id (PATCH only)."}],response:"Conversation with messages, plus usage (token totals, per-node breakdown), status, and contextInfo (latest prompt-token count + the bound model's context window — what the chat token counter and context meter display).",notes:["Messages are a projection of the append-only conversation log when one exists (legacy conversations without a log are served as stored). Node system prompts are never included.","Subflow steps appear inline as depth-tagged, display-only messages (nested in the chat UI); they are never part of the parent's model context."]},{method:"GET",path:"/v1/chat/conversations/{conversationId}/events",summary:"Server-Sent Events stream of execution events (node:enter/exit, message, usage, run:*). Supports Last-Event-ID reconnect.",paramsLabel:"Query",params:[{name:"fromSeq",type:"number",description:"Replay events from this sequence number."}],response:"text/event-stream of ExecutionEvent objects with monotonic seq ids."},{method:"POST",path:"/v1/chat/conversations/{conversationId}/respond",summary:"Approve or reject a pending tool call; resumes execution when all pending calls are handled.",paramsLabel:"Body",params:[{name:"action",type:'"approve" | "reject"',required:!0,description:"Decision for the tool call."},{name:"toolCallId",type:"string",required:!0,description:"Which pending tool call."}]},{method:"POST",path:"/v1/chat/conversations/{conversationId}/cancel",summary:"Request cancellation of an in-progress run (sets the isCancelled flag)."},{method:"PUT",path:"/v1/chat/conversations/{conversationId}/breakpoints",summary:"Set the visual-debugger breakpoint node ids.",paramsLabel:"Body",params:[{name:"breakpoints",type:"string[]",required:!0,description:"Node ids to break on."}]},{method:"POST",path:"/v1/chat/conversations/{conversationId}/debug/step",summary:"Execute exactly one productive step (only when status is paused_debug); pauses after advancing."},{method:"POST",path:"/v1/chat/conversations/{conversationId}/debug/continue",summary:"Resume a debug session — run freely to the next pause, tool approval, or completion."},{method:"PATCH",path:"/v1/chat/conversations/{conversationId}/edit-state",summary:"Edit paused debug state (a message's content, or the next node to run). Only when paused_debug.",paramsLabel:"Body",params:[{name:"messageId",type:"string",description:"Message to edit."},{name:"content",type:"string",description:"New message content."},{name:"currentNodeId",type:"string",description:"Override the next node."}]}]},{id:"model",name:"Models",description:"CRUD for model configurations and provider model discovery. API keys are encrypted at rest and never returned to the browser in clear text.",endpoints:[{method:"GET",alsoMethods:["POST"],path:"/api/model",summary:"GET lists all models; POST creates a model (409 on duplicate name, 201 on success).",paramsLabel:"Body",params:[{name:"model",type:"Model",required:!0,description:"Model config (POST). Secrets are stored encrypted."}],notes:["Stored API keys are masked before reaching the frontend — never expect a clear-text key in a response."]},{method:"GET",alsoMethods:["PUT","DELETE"],path:"/api/model/{id}",summary:"GET / PUT / DELETE a single model. The path id is authoritative on PUT. DELETE returns 204."},{method:"POST",path:"/api/model/provider",summary:"Fetch available models from a provider, using a supplied or stored API key (resolved server-side).",paramsLabel:"Body",params:[{name:"baseUrl",type:"string",required:!0,description:"Provider base URL."},{name:"modelId",type:"string",description:"Existing model whose stored key to reuse."},{name:"searchTerm",type:"string",description:"Filter the returned model list."}],notes:["Accepts an apiKey only inbound to query the provider; keys are never echoed back to the client."]}]},{id:"flow",name:"Flows",description:"CRUD for flow definitions plus prompt rendering for individual nodes.",endpoints:[{method:"GET",alsoMethods:["POST"],path:"/api/flow",summary:"GET lists all flow definitions; POST creates a flow (create-only; 409 if the id exists).",paramsLabel:"Body",params:[{name:"flow",type:"Flow",required:!0,description:"Flow object including id (POST)."}]},{method:"GET",alsoMethods:["PUT","DELETE"],path:"/api/flow/{id}",summary:"GET / PUT / DELETE a single flow. On PUT the path id wins over the body id (404 if missing)."},{method:"POST",path:"/api/flow/prompt-renderer",summary:"Render the assembled prompt for a node within a flow.",paramsLabel:"Body",params:[{name:"flowId",type:"string",required:!0,description:"Flow containing the node."},{name:"nodeId",type:"string",required:!0,description:"Node to render."},{name:"options",type:"object",description:"Render options."}]}]},{id:"planned-executions",name:"Planned Executions",description:"Run flows headlessly on triggers: schedules (cron), inbound webhooks, and more. Managed from the Executions page; each run is recorded in a per-execution run history.",endpoints:[{method:"GET",alsoMethods:["POST","PATCH"],path:"/api/planned-executions",summary:"GET lists all planned executions with live trigger status and last run; POST creates one; PATCH toggles the global pause switch ({ paused: boolean }).",response:"GET: { paused, executions: [{ execution, status, lastRun }] }."},{method:"GET",alsoMethods:["PATCH","DELETE"],path:"/api/planned-executions/{id}",summary:"GET / PATCH / DELETE a single planned execution. PATCH takes a partial config and re-arms the trigger."},{method:"POST",path:"/api/planned-executions/{id}/run",summary:"Run now: fire the execution immediately (even while disabled or paused) and wait for the run.",response:"{ record: RunRecord } with status, output preview, and token usage."},{method:"GET",path:"/api/planned-executions/{id}/runs",summary:"The execution’s run history (newest 100 runs, oldest first)."},{method:"POST",path:"/api/planned-executions/preview-schedule",summary:"Validate a cron pattern and preview its next fire times (editor helper).",paramsLabel:"Body",params:[{name:"cron",type:"string",required:!0,description:"Cron pattern (5 or 6 fields)."},{name:"timezone",type:"string",description:"IANA timezone name."}],response:"{ valid, error?, nextRuns: string[] }."},{method:"POST",path:"/api/webhooks/{id}",summary:"Inbound webhook trigger. Fires the planned execution with the request body as trigger context and responds 202 { runId } immediately (the flow runs in the background). For a synchronous answer use /v1/chat/completions instead.",paramsLabel:"Query",params:[{name:"token",type:"string",required:!0,description:"Per-execution secret (alternatively send the X-Flujo-Token header)."}],notes:["Localhost-only by default; external callers must be explicitly allowed per execution.","The webhook body is untrusted input to the flow — prompts should treat it as data."]}]},{id:"mcp",name:"MCP Servers",description:"Manage MCP server configurations, connection state, tool discovery, and tool invocation.",endpoints:[{method:"GET",alsoMethods:["POST"],path:"/api/mcp/servers",summary:"GET lists all MCP server configs; POST registers a new one (409 on duplicate name).",paramsLabel:"Body",params:[{name:"config",type:"MCPServerConfig",required:!0,description:"Server config (POST)."}]},{method:"GET",alsoMethods:["PUT","DELETE"],path:"/api/mcp/servers/{name}",summary:"GET / PUT / DELETE a server config. PUT merges fields; toggling disabled connects/disconnects; a new name triggers a validated rename."},{method:"GET",path:"/api/mcp/servers/{name}/status",summary:"Live connection status. Always 200, even when the server is down.",response:"{ status, ... }"},{method:"GET",path:"/api/mcp/servers/{name}/tools",summary:"List tools exposed by a connected server.",response:"{ tools, error? } (empty tools + error when disconnected)."},{method:"POST",path:"/api/mcp/servers/{name}/tools/{toolName}",summary:"Invoke a tool on a server. Status may reflect the tool itself (408 on timeout).",paramsLabel:"Body",params:[{name:"args",type:"Record<string, unknown>",required:!0,description:"Tool arguments."},{name:"timeout",type:"number",description:"Optional timeout (ms)."}]},{method:"POST",path:"/api/mcp/test-connection",summary:"Run a real MCP handshake against an unsaved config (tests custom CAs and headers) without registering it.",paramsLabel:"Body",params:[{name:"config",type:"MCPServerConfig",required:!0,description:"Config to test."}]},{method:"POST",path:"/api/mcp/cancel",summary:"Cancel an in-progress tool execution; force-reconnects if no token is supplied.",paramsLabel:"Body",params:[{name:"reason",type:"string",required:!0,description:"Cancellation reason."}]}]},{id:"mcp-proxy",name:"FLUJO as an MCP server (proxy)",description:'Re-expose a configured MCP server to EXTERNAL MCP clients (Claude Desktop, Cursor, Cline, mcp-inspector, …) so you configure the server once in FLUJO and reach it everywhere. Enable per server via the "Expose to external apps" toggle on its card. In your MCP client, add a Streamable-HTTP server with the URL below. One downstream server per endpoint, so tool names are unchanged. Localhost-only for now (no auth token in this version — see the security roadmap).',endpoints:[{method:"POST",alsoMethods:["GET","DELETE"],path:"/mcp-proxy/{server}",summary:'A Streamable-HTTP MCP endpoint that forwards tools/list and tools/call to the named downstream MCP server. {server} is the configured server name; it must have "Expose to external apps" enabled (otherwise 404). Rejects non-localhost requests.',response:"MCP JSON-RPC over Streamable HTTP (handled by your MCP client, not called directly)."}]},{id:"oauth",name:"OAuth (for MCP)",description:"OAuth authorization flow for MCP servers that require it. Tokens are stored server-side and never sent to the browser.",endpoints:[{method:"POST",path:"/api/oauth/initiate",summary:"Begin the OAuth flow for a server; dynamically registers a client and returns an authorization URL.",paramsLabel:"Body",params:[{name:"serverName",type:"string",required:!0,description:"MCP server to authorize."}]},{method:"GET",alsoMethods:["POST"],path:"/api/oauth/callback",summary:"OAuth redirect target; exchanges the code for tokens, updates the config, and redirects to /mcp.",notes:["Tokens are persisted server-side only."]},{method:"POST",path:"/api/oauth/reset",summary:"Clear a server's OAuth tokens and force re-authentication on the next connection.",paramsLabel:"Body",params:[{name:"serverName",type:"string",required:!0,description:"Server to reset."}]}]},{id:"env",name:"Environment & Secrets",description:"Global environment variables and server-side encryption operations. Secret values are encrypted at rest and masked as ******** in responses.",endpoints:[{method:"GET",alsoMethods:["POST"],path:"/api/env",summary:"GET reads env vars (secrets masked); POST sets/deletes vars (secrets encrypted server-side).",paramsLabel:"Body",params:[{name:"action",type:'"set" | "setAll" | "delete"',required:!0,description:"Operation."},{name:"key",type:"string",description:"Variable name (set/delete)."},{name:"value",type:"string",description:"Value; the placeholder ******** is ignored."},{name:"metadata",type:"{ isSecret: boolean }",description:"Marks a value for encryption."}],notes:["GET masks secret values unless an internal includeSecrets flag is set; the browser never receives clear-text secrets."]},{method:"POST",path:"/api/encryption/secure",summary:"Server-side encryption operations: initialize, authenticate, change_password, encrypt, verify_password, check_initialized, and status queries.",paramsLabel:"Body",params:[{name:"action",type:"string",required:!0,description:"One of the encryption actions."}],notes:["Passwords and tokens are handled here and stay server-side — never log or surface them in the UI."]}]},{id:"storage",name:"Storage & Backup",description:"Generic key-value storage plus zip backup/restore of selected data.",endpoints:[{method:"GET",alsoMethods:["POST","DELETE"],path:"/api/storage",summary:"GET loads an item by StorageKey (with optional default); POST saves; DELETE clears.",paramsLabel:"Query",params:[{name:"key",type:"StorageKey",required:!0,description:"Storage key."},{name:"defaultValue",type:"JSON",description:"Returned when the key is missing (GET)."}]},{method:"POST",path:"/api/backup",summary:"Create a zip backup of selected items and download it.",paramsLabel:"Body",params:[{name:"selections",type:"string[]",required:!0,description:"e.g. models, mcpServers, flows, chatHistory, settings."}],notes:["A backup may include the encryption key and secrets — handle the downloaded file carefully."]},{method:"POST",path:"/api/restore",summary:"Restore data from a backup zip.",paramsLabel:"Form data",params:[{name:"file",type:"File (zip)",required:!0,description:"Backup archive."},{name:"selections",type:"JSON string[]",required:!0,description:"Which items to restore."}]}]},{id:"system",name:"System & Updates",description:"App initialization, working-directory info, repository operations, and self-update.",endpoints:[{method:"GET",path:"/api/init",summary:"Server-side initialization: verify storage and start enabled MCP servers."},{method:"GET",path:"/api/cwd",summary:"Return the current working directory and the mcp-servers directory path."},{method:"GET",path:"/api/browse",summary:"List a directory of the machine running FLUJO, for the folder-picker dialogs (file-watch triggers, MCP server paths). Defaults to the home directory; includes available drives on Windows.",paramsLabel:"Query",params:[{name:"path",type:"string",description:"Absolute directory path to list."}],response:"{ path, parent, home, sep, drives, entries: [{ name, path, isDirectory }] }",notes:["Exposes backend filesystem listings — like the rest of the API it assumes a single trusted user."]},{method:"POST",path:"/api/git",summary:"Repository operations for MCP servers: clone, install, build, run, exists, readFile, listDir, list, checkUpdates, checkUpdatesBatch, pullUpdates.",paramsLabel:"Body",params:[{name:"action",type:"string",required:!0,description:"Operation to perform."}]},{method:"GET",alsoMethods:["POST"],path:"/api/update",summary:'GET checks for a newer version (git fetch + behind count); POST { action: "apply" } pulls, rebuilds, and restarts.',response:"{ success, isGitRepo, updateAvailable, behindBy?, branch?, currentVersion }"}]}],f={GET:"#2e7d32",POST:"#1565c0",PUT:"#ed6c02",PATCH:"#9c27b0",DELETE:"#c62828",OPTIONS:"#616161"};function v(e){let{method:t}=e;return(0,n.jsx)(r.A,{label:t,size:"small",sx:{bgcolor:f[t],color:"#fff",fontWeight:700,fontFamily:"var(--font-geist-mono), monospace",fontSize:"0.7rem",height:22}})}function g(e){var t,a,o,r;let{endpoint:l}=e;return(0,n.jsxs)(i.A,{variant:"outlined",sx:{p:2,mb:1.5},children:[(0,n.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",gap:1,flexWrap:"wrap",mb:1},children:[(0,n.jsx)(v,{method:l.method}),null==(t=l.alsoMethods)?void 0:t.map(e=>(0,n.jsx)(v,{method:e},e)),(0,n.jsx)(d.default,{component:"code",sx:{fontFamily:"var(--font-geist-mono), monospace",fontSize:"0.9rem",wordBreak:"break-all"},children:l.path})]}),(0,n.jsx)(d.default,{variant:"body2",color:"text.secondary",sx:{mb:1.5*(null!=(a=l.params)&&!!a.length)},children:l.summary}),l.params&&l.params.length>0&&(0,n.jsxs)(s.default,{sx:{mb:1},children:[(0,n.jsx)(d.default,{variant:"caption",sx:{fontWeight:700,textTransform:"uppercase",color:"text.secondary"},children:null!=(r=l.paramsLabel)?r:"Parameters"}),(0,n.jsx)(s.default,{component:"ul",sx:{m:0,mt:.5,pl:2.5},children:l.params.map(e=>(0,n.jsx)(s.default,{component:"li",sx:{mb:.25},children:(0,n.jsxs)(d.default,{variant:"body2",component:"span",children:[(0,n.jsx)(s.default,{component:"code",sx:{fontFamily:"var(--font-geist-mono), monospace",fontWeight:600},children:e.name}),(0,n.jsxs)(s.default,{component:"span",sx:{color:"text.secondary"},children:[" ",e.type,e.required?" \xb7 required":""," — ",e.description]})]})},e.name))})]}),l.response&&(0,n.jsxs)(d.default,{variant:"body2",sx:{mt:.5},children:[(0,n.jsxs)(s.default,{component:"span",sx:{fontWeight:600},children:["Response:"," "]}),(0,n.jsx)(s.default,{component:"span",sx:{color:"text.secondary"},children:l.response})]}),null==(o=l.notes)?void 0:o.map((e,t)=>(0,n.jsxs)(d.default,{variant:"caption",sx:{display:"block",mt:1,color:"warning.main"},children:["⚠ ",e]},t))]})}function b(){let[e,t]=(0,o.useState)(""),[a,r]=(0,o.useState)("");o.useEffect(()=>{r(window.location.origin)},[]);let f=(0,o.useMemo)(()=>{let t=e.trim().toLowerCase();return t?y.map(e=>{let a=e.endpoints.filter(a=>{var n;return"".concat(a.method," ").concat((null!=(n=a.alsoMethods)?n:[]).join(" ")," ").concat(a.path," ").concat(a.summary).toLowerCase().includes(t)||e.name.toLowerCase().includes(t)});return{...e,endpoints:a}}).filter(e=>e.endpoints.length>0):y},[e]);return(0,n.jsxs)(l.A,{maxWidth:"md",sx:{py:5},children:[(0,n.jsx)(d.default,{variant:"h4",gutterBottom:!0,children:"API Documentation"}),(0,n.jsx)(d.default,{variant:"body1",color:"text.secondary",sx:{mb:2},children:"FLUJO exposes an OpenAI-compatible chat API and a REST surface for managing models, MCP servers, flows, and conversations. All endpoints are served from this instance."}),(0,n.jsxs)(i.A,{variant:"outlined",sx:{p:2,mb:3},children:[(0,n.jsx)(d.default,{variant:"subtitle2",gutterBottom:!0,children:"Base URL"}),(0,n.jsx)(s.default,{component:"code",sx:{fontFamily:"var(--font-geist-mono), monospace",fontSize:"0.9rem"},children:a||"http://localhost:4200"}),(0,n.jsxs)(d.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:["Point any OpenAI SDK at"," ",(0,n.jsx)(s.default,{component:"code",sx:{fontFamily:"var(--font-geist-mono), monospace"},children:(a||"http://localhost:4200")+"/v1"})," ","and set the model to"," ",(0,n.jsx)(s.default,{component:"code",sx:{fontFamily:"var(--font-geist-mono), monospace"},children:"flow-<NAME>"}),". Any API key value is accepted locally."]})]}),(0,n.jsx)(p.A,{fullWidth:!0,size:"small",placeholder:"Search endpoints (path, method, description)…",value:e,onChange:e=>t(e.target.value),sx:{mb:3},InputProps:{startAdornment:(0,n.jsx)(c.A,{position:"start",children:(0,n.jsx)(h.A,{fontSize:"small"})})}}),0===f.length&&(0,n.jsxs)(d.default,{color:"text.secondary",children:["No endpoints match “",e,"”."]}),f.map(e=>(0,n.jsxs)(s.default,{sx:{mb:4},id:e.id,children:[(0,n.jsx)(d.default,{variant:"h6",gutterBottom:!0,children:e.name}),(0,n.jsx)(d.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:e.description}),e.endpoints.map(e=>(0,n.jsx)(g,{endpoint:e},"".concat(e.method," ").concat(e.path)))]},e.id)),(0,n.jsx)(m.A,{sx:{my:3}}),(0,n.jsxs)(d.default,{variant:"caption",color:"text.secondary",children:["Secrets (API keys, encryption passwords, OAuth tokens) are encrypted at rest and never returned to the browser in clear text. See the project"," ",(0,n.jsx)(u.A,{href:"https://github.com/mario-andreschak/FLUJO",target:"_blank",rel:"noopener",children:"repository"})," ","for source-level details."]})]})}let x=(0,a(87021).h)("app/docs/page");function E(){return x.debug("Rendering DocsPage"),(0,n.jsx)(s.default,{component:"main",sx:{minHeight:"100vh"},children:(0,n.jsx)(b,{})})}},32651:(e,t,a)=>{Promise.resolve().then(a.bind(a,27127))},78831:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});let n=(0,a(80271).Ay)()},87021:(e,t,a)=>{"use strict";a.d(t,{h:()=>d});let n={LOG_LEVEL:3},s={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},o="number"==typeof n.LOG_LEVEL?n.LOG_LEVEL:s.ERROR;function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t>6)return String(e);if(!(e instanceof Error))return e;let a={name:e.name,message:e.message};for(let n of Object.getOwnPropertyNames(e)){if("name"===n||"message"===n)continue;let s=e[n];"function"!=typeof s&&("stack"===n?a.stack=s:"cause"===n?a.cause=r(s,t+1):"errors"===n&&Array.isArray(s)?a.errors=s.map(e=>r(e,t+1)):a[n]=s)}return a}function i(e,t,a,n,i){if(e>=("number"==typeof i?i:o)){if("function"==typeof n)try{n=n()}catch(e){n="[lazy log data threw]"}let o=new Date().toISOString(),i="[".concat(o,"] [").concat(t,"]"),d="".concat(i," ").concat(a);if(void 0!==n)if(n instanceof Error||"object"==typeof n)try{let e=n instanceof Error?r(n):n,t=JSON.stringify(e,(e,t)=>t instanceof Error?r(t):t,2);d+=":\n".concat(t)}catch(e){d+=": [Object cannot be stringified]"}else d+=": ".concat(n);switch(e){case s.VERBOSE:console.debug("[VERBOSE] ".concat(d));break;case s.DEBUG:console.debug(d);break;case s.INFO:console.info(d);break;case s.WARN:console.warn(d);break;case s.ERROR:console.error(d);break;default:console.log(d)}}}function d(e,t){let a,n=((a=e.replace(/^src\//,"")).startsWith("/")&&(a=a.substring(1)),a);return{verbose:(e,a)=>{i(s.VERBOSE,n,e,a,t)},debug:(e,a)=>{i(s.DEBUG,n,e,a,t)},info:(e,a)=>{i(s.INFO,n,e,a,t)},warn:(e,a)=>{i(s.WARN,n,e,a,t)},error:(e,a)=>{i(s.ERROR,n,e,a,t)}}}},97322:(e,t,a)=>{"use strict";a.d(t,{A:()=>g});var n=a(12115),s=a(2821),o=a(95195),r=a(57001),i=a(88133),d=a(11947),l=a(78831),p=a(41934),c=a(95155);let m=(0,p.A)(),u=(0,l.A)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:a}=e;return[t.root,t["maxWidth".concat((0,i.A)(String(a.maxWidth)))],a.fixed&&t.fixed,a.disableGutters&&t.disableGutters]}}),h=e=>(0,d.A)({props:e,name:"MuiContainer",defaultTheme:m});var y=a(81852),f=a(48116),v=a(16625);let g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{createStyledComponent:t=u,useThemeProps:a=h,componentName:d="MuiContainer"}=e,l=t(e=>{let{theme:t,ownerState:a}=e;return{width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",...!a.disableGutters&&{paddingLeft:t.spacing(2),paddingRight:t.spacing(2),[t.breakpoints.up("sm")]:{paddingLeft:t.spacing(3),paddingRight:t.spacing(3)}}}},e=>{let{theme:t,ownerState:a}=e;return a.fixed&&Object.keys(t.breakpoints.values).reduce((e,a)=>{let n=t.breakpoints.values[a];return 0!==n&&(e[t.breakpoints.up(a)]={maxWidth:"".concat(n).concat(t.breakpoints.unit)}),e},{})},e=>{let{theme:t,ownerState:a}=e;return{..."xs"===a.maxWidth&&{[t.breakpoints.up("xs")]:{maxWidth:Math.max(t.breakpoints.values.xs,444)}},...a.maxWidth&&"xs"!==a.maxWidth&&{[t.breakpoints.up(a.maxWidth)]:{maxWidth:"".concat(t.breakpoints.values[a.maxWidth]).concat(t.breakpoints.unit)}}}});return n.forwardRef(function(e,t){let n=a(e),{className:p,component:m="div",disableGutters:u=!1,fixed:h=!1,maxWidth:y="lg",classes:f,...v}=n,g={...n,component:m,disableGutters:u,fixed:h,maxWidth:y},b=((e,t)=>{let{classes:a,fixed:n,disableGutters:s,maxWidth:d}=e,l={root:["root",d&&"maxWidth".concat((0,i.A)(String(d))),n&&"fixed",s&&"disableGutters"]};return(0,r.A)(l,e=>(0,o.Ay)(t,e),a)})(g,d);return(0,c.jsx)(l,{as:m,ownerState:g,className:(0,s.A)(b.root,p),ref:t,...v})})}({createStyledComponent:(0,f.Ay)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:a}=e;return[t.root,t["maxWidth".concat((0,y.A)(String(a.maxWidth)))],a.fixed&&t.fixed,a.disableGutters&&t.disableGutters]}}),useThemeProps:e=>(0,v.b)({props:e,name:"MuiContainer"})})}},e=>{e.O(0,[2678,4754,9244,8548,9562,488,1374,8441,1255,7358],()=>e(e.s=32651)),_N_E=e.O()}]);
|