flujo-ai 3.22.0 → 3.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +171 -168
- package/.next/app-path-routes-manifest.json +13 -13
- package/.next/build-manifest.json +7 -7
- package/.next/prerender-manifest.json +12 -12
- package/.next/react-loadable-manifest.json +6 -6
- package/.next/routes-manifest.json +19 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/api/approvals/[id]/route.js +1 -1
- package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/approvals/route.js +1 -1
- package/.next/server/app/api/approvals/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/backup/route.js +1 -1
- package/.next/server/app/api/backup/route.js.nft.json +1 -1
- package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/browse/route.js +1 -1
- package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/bugs/enhance/route.js +1 -1
- package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
- package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/route.js +1 -1
- package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/encryption/secure/route.js +1 -1
- package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
- package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/env/route.js +1 -1
- package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/compile/route.js +1 -1
- package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/generate/route.js +1 -1
- package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/improve/route.js +1 -1
- package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/repair/route.js +1 -1
- package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/route.js +5 -5
- package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/init/route.js +1 -1
- package/.next/server/app/api/init/route.js.nft.json +1 -1
- package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/cancel/route.js +1 -1
- package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/route.js +1 -1
- package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp-registry/route.js +1 -1
- package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/[id]/route.js +1 -1
- package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/provider/route.js +1 -1
- package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
- package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/route.js +1 -1
- package/.next/server/app/api/model/route.js.nft.json +1 -1
- package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/test/route.js +1 -1
- package/.next/server/app/api/model/test/route.js.nft.json +1 -1
- package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/reset/route.js +1 -1
- package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/route.js +1 -1
- package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/restore/route.js +1 -1
- package/.next/server/app/api/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runs/active/route.js +1 -1
- package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
- package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update/route.js +1 -1
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/waves/route.js +1 -1
- package/.next/server/app/api/waves/route.js.nft.json +1 -1
- package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +10 -10
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +2 -2
- package/.next/server/app/docs/page.js +8 -2
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +2 -2
- package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/executions.html +1 -1
- package/.next/server/app/executions.rsc +2 -2
- package/.next/server/app/flows/page.js +3 -3
- package/.next/server/app/flows/page.js.nft.json +1 -1
- package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/flows.html +1 -1
- package/.next/server/app/flows.rsc +2 -2
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/mcp/page.js +7 -7
- package/.next/server/app/mcp/page.js.nft.json +1 -1
- package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-flows/route.js +1 -1
- package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
- package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
- package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp.html +1 -1
- package/.next/server/app/mcp.rsc +2 -2
- package/.next/server/app/models/page.js +1 -1
- package/.next/server/app/models/page.js.nft.json +1 -1
- package/.next/server/app/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +2 -2
- package/.next/server/app/v1/chat/completions/route.js +1 -1
- package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +3 -3
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/route.js +2 -2
- package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/models/route.js +1 -1
- package/.next/server/app/v1/models/route.js.nft.json +1 -1
- package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/waves/page.js +1 -1
- package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
- package/.next/server/app/waves.html +1 -1
- package/.next/server/app/waves.rsc +1 -1
- package/.next/server/app-paths-manifest.json +13 -13
- package/.next/server/chunks/1083.js +1 -1
- package/.next/server/chunks/1197.js +1 -1
- package/.next/server/chunks/1226.js +1 -1
- package/.next/server/chunks/1373.js +1 -1
- package/.next/server/chunks/2823.js +6 -0
- package/.next/server/chunks/2859.js +1 -1
- package/.next/server/chunks/289.js +1 -1
- package/.next/server/chunks/{1556.js → 2998.js} +1 -1
- package/.next/server/chunks/3291.js +1 -0
- package/.next/server/chunks/3774.js +1 -1
- package/.next/server/chunks/3823.js +7 -6
- package/.next/server/chunks/3984.js +4 -4
- package/.next/server/chunks/4239.js +1 -1
- package/.next/server/chunks/4545.js +17 -0
- package/.next/server/chunks/4561.js +7 -6
- package/.next/server/chunks/4637.js +8 -2
- package/.next/server/chunks/4671.js +1 -1
- package/.next/server/chunks/472.js +1 -1
- package/.next/server/chunks/4771.js +3 -3
- package/.next/server/chunks/5708.js +7 -1
- package/.next/server/chunks/5734.js +4 -4
- package/.next/server/chunks/6996.js +3 -3
- package/.next/server/chunks/701.js +1 -1
- package/.next/server/chunks/7362.js +11 -11
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7723.js +1 -0
- package/.next/server/chunks/7769.js +6 -0
- package/.next/server/chunks/7821.js +1 -1
- package/.next/server/chunks/8652.js +1 -1
- package/.next/server/chunks/8739.js +1 -1
- package/.next/server/chunks/9509.js +2 -2
- package/.next/server/edge-instrumentation.js +2 -0
- package/.next/server/edge-instrumentation.js.map +1 -0
- package/.next/server/edge-runtime-webpack.js +2 -0
- package/.next/server/edge-runtime-webpack.js.map +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +33 -2
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/server/src/middleware.js +14 -0
- package/.next/server/src/middleware.js.map +1 -0
- package/.next/static/chunks/3454-a8db9caba457e5fa.js +1 -0
- package/.next/static/chunks/3730-149f2f058529f75f.js +1 -0
- package/.next/static/chunks/4749-f8796d16ff604d54.js +1 -0
- package/.next/static/chunks/6016.8201fa15ab6aa90e.js +1 -0
- package/.next/static/chunks/{6730-c330b55cd0fe4f47.js → 6257-ee5d8d88050d7705.js} +1 -1
- package/.next/static/chunks/{7583.7cb88044a5212b29.js → 7583.7af90b94e3c263f2.js} +1 -1
- package/.next/static/chunks/812-624e93f4c0f671c7.js +1 -0
- package/.next/static/chunks/{9181-8d8ecd3f641b7209.js → 8611-f6d51119761d52ff.js} +3 -3
- package/.next/static/chunks/{9164-3d34bf7eab100ac7.js → 9164-d9f1abba780231e0.js} +1 -1
- package/.next/static/chunks/app/chat/page-6a5b5f9ea2542fb3.js +1 -0
- package/.next/static/chunks/app/docs/page-935b0386917b91bb.js +1 -0
- package/.next/static/chunks/app/executions/page-d72027b0179e8fa2.js +1 -0
- package/.next/static/chunks/app/flows/page-fbce5abe34500f28.js +1 -0
- package/.next/static/chunks/app/mcp/{page-770a870b3d40766b.js → page-8666173926cabf31.js} +1 -1
- package/.next/static/chunks/app/models/{page-5a13ea6ff5ac1b9c.js → page-18dbd8e01cf87e98.js} +1 -1
- package/.next/static/chunks/{main-be8e823624954fab.js → main-9bda5041078d2b6a.js} +1 -1
- package/.next/static/chunks/{webpack-dded92b3d7b33173.js → webpack-f4a471ab560eb19e.js} +1 -1
- package/.next/trace +8 -9
- package/README.md +1 -1
- package/next.config.mjs +139 -119
- package/package.json +1 -1
- package/.next/server/chunks/264.js +0 -17
- package/.next/server/chunks/7214.js +0 -6
- package/.next/server/chunks/7463.js +0 -6
- package/.next/server/chunks/8357.js +0 -1
- package/.next/static/chunks/5545-2ab6e5d749e103cd.js +0 -1
- package/.next/static/chunks/6016.a157e5bde2faa652.js +0 -1
- package/.next/static/chunks/6920-a83ad5c0d5a54cf3.js +0 -1
- package/.next/static/chunks/812-181496bc32cd0cd3.js +0 -1
- package/.next/static/chunks/app/chat/page-3a3efba25b59a747.js +0 -1
- package/.next/static/chunks/app/docs/page-84a92c3d5d8d5e13.js +0 -1
- package/.next/static/chunks/app/executions/page-445afbf37819e3ce.js +0 -1
- package/.next/static/chunks/app/flows/page-74ebca19957cc6db.js +0 -1
- /package/.next/static/{MMmWHUQ3UAJBdRB7G1zGj → eUM7C1boixGI469h5wtIk}/_buildManifest.js +0 -0
- /package/.next/static/{MMmWHUQ3UAJBdRB7G1zGj → eUM7C1boixGI469h5wtIk}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=1373,exports.ids=[1373],exports.modules={1858:a=>{a.exports=function(a,b){for(var c=-1,d=Array(a);++c<a;)d[c]=b(c);return d}},1885:(a,b,c)=>{var d=c(58807);a.exports=function(a){return d(this.__data__,a)>-1}},2428:(a,b,c)=>{var d=c(52685);a.exports=function(a){var b=d(this,a).delete(a);return this.size-=!!b,b}},3821:(a,b,c)=>{a.exports=c(25501)(Object.getPrototypeOf,Object)},4133:(a,b,c)=>{var d=c(38819),e=c(94203),f=c(54187),g=c(54958),h=c(27299);a.exports=function(a,b,c){var i=a.constructor;switch(b){case"[object ArrayBuffer]":return d(a);case"[object Boolean]":case"[object Date]":return new i(+a);case"[object DataView]":return e(a,c);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return h(a,c);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(a);case"[object RegExp]":return f(a);case"[object Symbol]":return g(a)}}},4229:(a,b,c)=>{var d=c(87978),e=c(3821),f=c(24214),g=c(43431);a.exports=Object.getOwnPropertySymbols?function(a){for(var b=[];a;)d(b,f(a)),a=e(a);return b}:g},4643:(a,b,c)=>{var d=c(41760);a.exports=function(a,b){var c=this.__data__;return this.size+=+!this.has(a),c[a]=d&&void 0===b?"__lodash_hash_undefined__":b,this}},5105:(a,b,c)=>{var d=c(87978),e=c(46923);a.exports=function(a,b,c){var f=b(a);return e(a)?f:d(f,c(a))}},5985:(a,b,c)=>{var d=c(20251),e=c(17931),f=c(69107),g=f&&f.isTypedArray;a.exports=g?e(g):d},6559:(a,b,c)=>{var d=c(52685);a.exports=function(a,b){var c=d(this,a),e=c.size;return c.set(a,b),this.size+=+(c.size!=e),this}},7663:a=>{a.exports=function(a){return this.__data__.get(a)}},9571:a=>{a.exports=function(a){return this.__data__.has(a)}},10032:a=>{a.exports=function(){this.__data__=[],this.size=0}},10580:(a,b,c)=>{var d=c(5105),e=c(24214),f=c(71540);a.exports=function(a){return d(a,f,e)}},10919:(a,b,c)=>{a.exports=c(34555)["__core-js_shared__"]},12041:(a,b,c)=>{var d=c(58807);a.exports=function(a){var b=this.__data__,c=d(b,a);return c<0?void 0:b[c][1]}},12253:(a,b,c)=>{var d=c(98880),e=c(56046),f=c(89387),g=c(87863),h=/^\[object .+?Constructor\]$/,i=Object.prototype,j=Function.prototype.toString,k=i.hasOwnProperty,l=RegExp("^"+j.call(k).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");a.exports=function(a){return!(!f(a)||e(a))&&(d(a)?l:h).test(g(a))}},12384:(a,b,c)=>{var d=c(27975),e=c(35264);a.exports=function(a){return e(a)&&"[object Set]"==d(a)}},14082:(a,b,c)=>{var d=c(78023),e=c(14317),f=c(16920),g=d?d.toStringTag:void 0;a.exports=function(a){return null==a?void 0===a?"[object Undefined]":"[object Null]":g&&g in Object(a)?e(a):f(a)}},14303:a=>{var b=/^(?:0|[1-9]\d*)$/;a.exports=function(a,c){var d=typeof a;return!!(c=null==c?0x1fffffffffffff:c)&&("number"==d||"symbol"!=d&&b.test(a))&&a>-1&&a%1==0&&a<c}},14317:(a,b,c)=>{var d=c(78023),e=Object.prototype,f=e.hasOwnProperty,g=e.toString,h=d?d.toStringTag:void 0;a.exports=function(a){var b=f.call(a,h),c=a[h];try{a[h]=void 0;var d=!0}catch(a){}var e=g.call(a);return d&&(b?a[h]=c:delete a[h]),e}},15623:(a,b,c)=>{var d=c(41760),e=Object.prototype.hasOwnProperty;a.exports=function(a){var b=this.__data__;if(d){var c=b[a];return"__lodash_hash_undefined__"===c?void 0:c}return e.call(b,a)?b[a]:void 0}},15974:(a,b,c)=>{var d=c(53373),e=c(4229);a.exports=function(a,b){return d(a,e(a),b)}},16920:a=>{var b=Object.prototype.toString;a.exports=function(a){return b.call(a)}},17931:a=>{a.exports=function(a){return function(b){return a(b)}}},19520:(a,b,c)=>{var d=c(53373),e=c(26111);a.exports=function(a,b){return a&&d(b,e(b),a)}},20251:(a,b,c)=>{var d=c(14082),e=c(50112),f=c(35264),g={};g["[object Float32Array]"]=g["[object Float64Array]"]=g["[object Int8Array]"]=g["[object Int16Array]"]=g["[object Int32Array]"]=g["[object Uint8Array]"]=g["[object Uint8ClampedArray]"]=g["[object Uint16Array]"]=g["[object Uint32Array]"]=!0,g["[object Arguments]"]=g["[object Array]"]=g["[object ArrayBuffer]"]=g["[object Boolean]"]=g["[object DataView]"]=g["[object Date]"]=g["[object Error]"]=g["[object Function]"]=g["[object Map]"]=g["[object Number]"]=g["[object Object]"]=g["[object RegExp]"]=g["[object Set]"]=g["[object String]"]=g["[object WeakMap]"]=!1,a.exports=function(a){return f(a)&&e(a.length)&&!!g[d(a)]}},24106:(a,b,c)=>{var d=c(47901);a.exports=function(a,b,c){"__proto__"==b&&d?d(a,b,{configurable:!0,enumerable:!0,value:c,writable:!0}):a[b]=c}},24214:(a,b,c)=>{var d=c(67524),e=c(43431),f=Object.prototype.propertyIsEnumerable,g=Object.getOwnPropertySymbols;a.exports=g?function(a){return null==a?[]:d(g(a=Object(a)),function(b){return f.call(a,b)})}:e},25295:(a,b,c)=>{var d=c(88418),e=c(3821),f=c(84329);a.exports=function(a){return"function"!=typeof a.constructor||f(a)?{}:d(e(a))}},25501:a=>{a.exports=function(a,b){return function(c){return a(b(c))}}},26111:(a,b,c)=>{var d=c(93181),e=c(92761),f=c(85312);a.exports=function(a){return f(a)?d(a,!0):e(a)}},27194:a=>{a.exports=function(a,b){return a===b||a!=a&&b!=b}},27299:(a,b,c)=>{var d=c(38819);a.exports=function(a,b){var c=b?d(a.buffer):a.buffer;return new a.constructor(c,a.byteOffset,a.length)}},27975:(a,b,c)=>{var d=c(67366),e=c(35073),f=c(32078),g=c(92451),h=c(47817),i=c(14082),j=c(87863),k="[object Map]",l="[object Promise]",m="[object Set]",n="[object WeakMap]",o="[object DataView]",p=j(d),q=j(e),r=j(f),s=j(g),t=j(h),u=i;(d&&u(new d(new ArrayBuffer(1)))!=o||e&&u(new e)!=k||f&&u(f.resolve())!=l||g&&u(new g)!=m||h&&u(new h)!=n)&&(u=function(a){var b=i(a),c="[object Object]"==b?a.constructor:void 0,d=c?j(c):"";if(d)switch(d){case p:return o;case q:return k;case r:return l;case s:return m;case t:return n}return b}),a.exports=u},30343:(a,b,c)=>{var d=c(52685);a.exports=function(a){return d(this,a).has(a)}},30979:(a,b,c)=>{var d=c(51805),e=c(42306),f=c(80672),g=c(7663),h=c(9571),i=c(65291);function j(a){var b=this.__data__=new d(a);this.size=b.size}j.prototype.clear=e,j.prototype.delete=f,j.prototype.get=g,j.prototype.has=h,j.prototype.set=i,a.exports=j},31105:(a,b,c)=>{var d=c(53373),e=c(24214);a.exports=function(a,b){return d(a,e(a),b)}},32078:(a,b,c)=>{a.exports=c(65044)(c(34555),"Promise")},34335:(a,b,c)=>{var d=c(47238),e=c(2428),f=c(35611),g=c(30343),h=c(6559);function i(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}i.prototype.clear=d,i.prototype.delete=e,i.prototype.get=f,i.prototype.has=g,i.prototype.set=h,a.exports=i},34555:(a,b,c)=>{var d=c(86038),e="object"==typeof self&&self&&self.Object===Object&&self;a.exports=d||e||Function("return this")()},35073:(a,b,c)=>{a.exports=c(65044)(c(34555),"Map")},35264:a=>{a.exports=function(a){return null!=a&&"object"==typeof a}},35611:(a,b,c)=>{var d=c(52685);a.exports=function(a){return d(this,a).get(a)}},38819:(a,b,c)=>{var d=c(74258);a.exports=function(a){var b=new a.constructor(a.byteLength);return new d(b).set(new d(a)),b}},39473:a=>{a.exports=function(){return!1}},40056:(a,b,c)=>{a=c.nmd(a);var d=c(34555),e=b&&!b.nodeType&&b,f=e&&a&&!a.nodeType&&a,g=f&&f.exports===e?d.Buffer:void 0,h=g?g.allocUnsafe:void 0;a.exports=function(a,b){if(b)return a.slice();var c=a.length,d=h?h(c):new a.constructor(c);return a.copy(d),d}},41760:(a,b,c)=>{a.exports=c(65044)(Object,"create")},42306:(a,b,c)=>{var d=c(51805);a.exports=function(){this.__data__=new d,this.size=0}},42818:(a,b,c)=>{var d=c(58807),e=Array.prototype.splice;a.exports=function(a){var b=this.__data__,c=d(b,a);return!(c<0)&&(c==b.length-1?b.pop():e.call(b,c,1),--this.size,!0)}},43431:a=>{a.exports=function(){return[]}},45131:(a,b,c)=>{var d=c(60170),e=c(56312),f=c(15623),g=c(52555),h=c(4643);function i(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}i.prototype.clear=d,i.prototype.delete=e,i.prototype.get=f,i.prototype.has=g,i.prototype.set=h,a.exports=i},46923:a=>{a.exports=Array.isArray},47238:(a,b,c)=>{var d=c(45131),e=c(51805),f=c(35073);a.exports=function(){this.size=0,this.__data__={hash:new d,map:new(f||e),string:new d}}},47817:(a,b,c)=>{a.exports=c(65044)(c(34555),"WeakMap")},47901:(a,b,c)=>{var d=c(65044);a.exports=function(){try{var a=d(Object,"defineProperty");return a({},"",{}),a}catch(a){}}()},48704:a=>{a.exports=function(a){var b=typeof a;return"string"==b||"number"==b||"symbol"==b||"boolean"==b?"__proto__"!==a:null===a}},50112:a=>{a.exports=function(a){return"number"==typeof a&&a>-1&&a%1==0&&a<=0x1fffffffffffff}},50942:(a,b,c)=>{var d=c(27975),e=c(35264);a.exports=function(a){return e(a)&&"[object Map]"==d(a)}},51805:(a,b,c)=>{var d=c(10032),e=c(42818),f=c(12041),g=c(1885),h=c(76773);function i(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}i.prototype.clear=d,i.prototype.delete=e,i.prototype.get=f,i.prototype.has=g,i.prototype.set=h,a.exports=i},52555:(a,b,c)=>{var d=c(41760),e=Object.prototype.hasOwnProperty;a.exports=function(a){var b=this.__data__;return d?void 0!==b[a]:e.call(b,a)}},52685:(a,b,c)=>{var d=c(48704);a.exports=function(a,b){var c=a.__data__;return d(b)?c["string"==typeof b?"string":"hash"]:c.map}},52786:a=>{a.exports=function(a,b){return null==a?void 0:a[b]}},53373:(a,b,c)=>{var d=c(59265),e=c(24106);a.exports=function(a,b,c,f){var g=!c;c||(c={});for(var h=-1,i=b.length;++h<i;){var j=b[h],k=f?f(c[j],a[j],j,c,a):void 0;void 0===k&&(k=a[j]),g?e(c,j,k):d(c,j,k)}return c}},54187:a=>{var b=/\w*$/;a.exports=function(a){var c=new a.constructor(a.source,b.exec(a));return c.lastIndex=a.lastIndex,c}},54958:(a,b,c)=>{var d=c(78023),e=d?d.prototype:void 0,f=e?e.valueOf:void 0;a.exports=function(a){return f?Object(f.call(a)):{}}},56046:(a,b,c)=>{var d=c(10919),e=function(){var a=/[^.]+$/.exec(d&&d.keys&&d.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}();a.exports=function(a){return!!e&&e in a}},56312:a=>{a.exports=function(a){var b=this.has(a)&&delete this.__data__[a];return this.size-=!!b,b}},58461:(a,b,c)=>{var d=c(30979),e=c(68331),f=c(59265),g=c(63647),h=c(19520),i=c(40056),j=c(95129),k=c(31105),l=c(15974),m=c(10580),n=c(87903),o=c(27975),p=c(75023),q=c(4133),r=c(25295),s=c(46923),t=c(79038),u=c(75392),v=c(89387),w=c(70878),x=c(71540),y=c(26111),z="[object Arguments]",A="[object Function]",B="[object Object]",C={};C[z]=C["[object Array]"]=C["[object ArrayBuffer]"]=C["[object DataView]"]=C["[object Boolean]"]=C["[object Date]"]=C["[object Float32Array]"]=C["[object Float64Array]"]=C["[object Int8Array]"]=C["[object Int16Array]"]=C["[object Int32Array]"]=C["[object Map]"]=C["[object Number]"]=C[B]=C["[object RegExp]"]=C["[object Set]"]=C["[object String]"]=C["[object Symbol]"]=C["[object Uint8Array]"]=C["[object Uint8ClampedArray]"]=C["[object Uint16Array]"]=C["[object Uint32Array]"]=!0,C["[object Error]"]=C[A]=C["[object WeakMap]"]=!1,a.exports=function a(b,c,D,E,F,G){var H,I=1&c,J=2&c,K=4&c;if(D&&(H=F?D(b,E,F,G):D(b)),void 0!==H)return H;if(!v(b))return b;var L=s(b);if(L){if(H=p(b),!I)return j(b,H)}else{var M=o(b),N=M==A||"[object GeneratorFunction]"==M;if(t(b))return i(b,I);if(M==B||M==z||N&&!F){if(H=J||N?{}:r(b),!I)return J?l(b,h(H,b)):k(b,g(H,b))}else{if(!C[M])return F?b:{};H=q(b,M,I)}}G||(G=new d);var O=G.get(b);if(O)return O;G.set(b,H),w(b)?b.forEach(function(d){H.add(a(d,c,D,d,b,G))}):u(b)&&b.forEach(function(d,e){H.set(e,a(d,c,D,e,b,G))});var P=K?J?n:m:J?y:x,Q=L?void 0:P(b);return e(Q||b,function(d,e){Q&&(d=b[e=d]),f(H,e,a(d,c,D,e,b,G))}),H}},58807:(a,b,c)=>{var d=c(27194);a.exports=function(a,b){for(var c=a.length;c--;)if(d(a[c][0],b))return c;return -1}},59265:(a,b,c)=>{var d=c(24106),e=c(27194),f=Object.prototype.hasOwnProperty;a.exports=function(a,b,c){var g=a[b];f.call(a,b)&&e(g,c)&&(void 0!==c||b in a)||d(a,b,c)}},60170:(a,b,c)=>{var d=c(41760);a.exports=function(){this.__data__=d?d(null):{},this.size=0}},63647:(a,b,c)=>{var d=c(53373),e=c(71540);a.exports=function(a,b){return a&&d(b,e(b),a)}},65044:(a,b,c)=>{var d=c(12253),e=c(52786);a.exports=function(a,b){var c=e(a,b);return d(c)?c:void 0}},65291:(a,b,c)=>{var d=c(51805),e=c(35073),f=c(34335);a.exports=function(a,b){var c=this.__data__;if(c instanceof d){var g=c.__data__;if(!e||g.length<199)return g.push([a,b]),this.size=++c.size,this;c=this.__data__=new f(g)}return c.set(a,b),this.size=c.size,this}},67366:(a,b,c)=>{a.exports=c(65044)(c(34555),"DataView")},67524:a=>{a.exports=function(a,b){for(var c=-1,d=null==a?0:a.length,e=0,f=[];++c<d;){var g=a[c];b(g,c,a)&&(f[e++]=g)}return f}},68331:a=>{a.exports=function(a,b){for(var c=-1,d=null==a?0:a.length;++c<d&&!1!==b(a[c],c,a););return a}},69107:(a,b,c)=>{a=c.nmd(a);var d=c(86038),e=b&&!b.nodeType&&b,f=e&&a&&!a.nodeType&&a,g=f&&f.exports===e&&d.process,h=function(){try{var a=f&&f.require&&f.require("util").types;if(a)return a;return g&&g.binding&&g.binding("util")}catch(a){}}();a.exports=h},70386:(a,b,c)=>{var d=c(84329),e=c(82584),f=Object.prototype.hasOwnProperty;a.exports=function(a){if(!d(a))return e(a);var b=[];for(var c in Object(a))f.call(a,c)&&"constructor"!=c&&b.push(c);return b}},70878:(a,b,c)=>{var d=c(12384),e=c(17931),f=c(69107),g=f&&f.isSet;a.exports=g?e(g):d},71540:(a,b,c)=>{var d=c(93181),e=c(70386),f=c(85312);a.exports=function(a){return f(a)?d(a):e(a)}},71932:(a,b,c)=>{var d=c(14082),e=c(35264);a.exports=function(a){return e(a)&&"[object Arguments]"==d(a)}},74258:(a,b,c)=>{a.exports=c(34555).Uint8Array},75023:a=>{var b=Object.prototype.hasOwnProperty;a.exports=function(a){var c=a.length,d=new a.constructor(c);return c&&"string"==typeof a[0]&&b.call(a,"index")&&(d.index=a.index,d.input=a.input),d}},75392:(a,b,c)=>{var d=c(50942),e=c(17931),f=c(69107),g=f&&f.isMap;a.exports=g?e(g):d},76166:(a,b,c)=>{var d=c(71932),e=c(35264),f=Object.prototype,g=f.hasOwnProperty,h=f.propertyIsEnumerable;a.exports=d(function(){return arguments}())?d:function(a){return e(a)&&g.call(a,"callee")&&!h.call(a,"callee")}},76773:(a,b,c)=>{var d=c(58807);a.exports=function(a,b){var c=this.__data__,e=d(c,a);return e<0?(++this.size,c.push([a,b])):c[e][1]=b,this}},78023:(a,b,c)=>{a.exports=c(34555).Symbol},79038:(a,b,c)=>{a=c.nmd(a);var d=c(34555),e=c(39473),f=b&&!b.nodeType&&b,g=f&&a&&!a.nodeType&&a,h=g&&g.exports===f?d.Buffer:void 0,i=h?h.isBuffer:void 0;a.exports=i||e},80672:a=>{a.exports=function(a){var b=this.__data__,c=b.delete(a);return this.size=b.size,c}},82584:(a,b,c)=>{a.exports=c(25501)(Object.keys,Object)},84329:a=>{var b=Object.prototype;a.exports=function(a){var c=a&&a.constructor;return a===("function"==typeof c&&c.prototype||b)}},85312:(a,b,c)=>{var d=c(98880),e=c(50112);a.exports=function(a){return null!=a&&e(a.length)&&!d(a)}},86038:a=>{a.exports="object"==typeof global&&global&&global.Object===Object&&global},87863:a=>{var b=Function.prototype.toString;a.exports=function(a){if(null!=a){try{return b.call(a)}catch(a){}try{return a+""}catch(a){}}return""}},87903:(a,b,c)=>{var d=c(5105),e=c(4229),f=c(26111);a.exports=function(a){return d(a,f,e)}},87963:a=>{a.exports=function(a){var b=[];if(null!=a)for(var c in Object(a))b.push(c);return b}},87978:a=>{a.exports=function(a,b){for(var c=-1,d=b.length,e=a.length;++c<d;)a[e+c]=b[c];return a}},88418:(a,b,c)=>{var d=c(89387),e=Object.create;a.exports=function(){function a(){}return function(b){if(!d(b))return{};if(e)return e(b);a.prototype=b;var c=new a;return a.prototype=void 0,c}}()},89387:a=>{a.exports=function(a){var b=typeof a;return null!=a&&("object"==b||"function"==b)}},91373:(a,b,c)=>{var d=c(58461);a.exports=function(a){return d(a,5)}},92451:(a,b,c)=>{a.exports=c(65044)(c(34555),"Set")},92761:(a,b,c)=>{var d=c(89387),e=c(84329),f=c(87963),g=Object.prototype.hasOwnProperty;a.exports=function(a){if(!d(a))return f(a);var b=e(a),c=[];for(var h in a)"constructor"==h&&(b||!g.call(a,h))||c.push(h);return c}},93181:(a,b,c)=>{var d=c(1858),e=c(76166),f=c(46923),g=c(79038),h=c(14303),i=c(5985),j=Object.prototype.hasOwnProperty;a.exports=function(a,b){var c=f(a),k=!c&&e(a),l=!c&&!k&&g(a),m=!c&&!k&&!l&&i(a),n=c||k||l||m,o=n?d(a.length,String):[],p=o.length;for(var q in a)(b||j.call(a,q))&&!(n&&("length"==q||l&&("offset"==q||"parent"==q)||m&&("buffer"==q||"byteLength"==q||"byteOffset"==q)||h(q,p)))&&o.push(q);return o}},94203:(a,b,c)=>{var d=c(38819);a.exports=function(a,b){var c=b?d(a.buffer):a.buffer;return new a.constructor(c,a.byteOffset,a.byteLength)}},95129:a=>{a.exports=function(a,b){var c=-1,d=a.length;for(b||(b=Array(d));++c<d;)b[c]=a[c];return b}},98880:(a,b,c)=>{var d=c(14082),e=c(89387);a.exports=function(a){if(!e(a))return!1;var b=d(a);return"[object Function]"==b||"[object GeneratorFunction]"==b||"[object AsyncFunction]"==b||"[object Proxy]"==b}}};
|
|
1
|
+
exports.id=1373,exports.ids=[1373],exports.modules={1858:a=>{a.exports=function(a,b){for(var c=-1,d=Array(a);++c<a;)d[c]=b(c);return d}},1885:(a,b,c)=>{var d=c(58807);a.exports=function(a){return d(this.__data__,a)>-1}},2428:(a,b,c)=>{var d=c(52685);a.exports=function(a){var b=d(this,a).delete(a);return this.size-=!!b,b}},3821:(a,b,c)=>{a.exports=c(25501)(Object.getPrototypeOf,Object)},4133:(a,b,c)=>{var d=c(38819),e=c(94203),f=c(54187),g=c(54958),h=c(27299);a.exports=function(a,b,c){var i=a.constructor;switch(b){case"[object ArrayBuffer]":return d(a);case"[object Boolean]":case"[object Date]":return new i(+a);case"[object DataView]":return e(a,c);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return h(a,c);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(a);case"[object RegExp]":return f(a);case"[object Symbol]":return g(a)}}},4229:(a,b,c)=>{var d=c(87978),e=c(3821),f=c(24214),g=c(43431);a.exports=Object.getOwnPropertySymbols?function(a){for(var b=[];a;)d(b,f(a)),a=e(a);return b}:g},4643:(a,b,c)=>{var d=c(41760);a.exports=function(a,b){var c=this.__data__;return this.size+=+!this.has(a),c[a]=d&&void 0===b?"__lodash_hash_undefined__":b,this}},5105:(a,b,c)=>{var d=c(87978),e=c(46923);a.exports=function(a,b,c){var f=b(a);return e(a)?f:d(f,c(a))}},5985:(a,b,c)=>{var d=c(20251),e=c(17931),f=c(69107),g=f&&f.isTypedArray;a.exports=g?e(g):d},6559:(a,b,c)=>{var d=c(52685);a.exports=function(a,b){var c=d(this,a),e=c.size;return c.set(a,b),this.size+=+(c.size!=e),this}},7663:a=>{a.exports=function(a){return this.__data__.get(a)}},9571:a=>{a.exports=function(a){return this.__data__.has(a)}},10032:a=>{a.exports=function(){this.__data__=[],this.size=0}},10580:(a,b,c)=>{var d=c(5105),e=c(24214),f=c(71540);a.exports=function(a){return d(a,f,e)}},10919:(a,b,c)=>{a.exports=c(34555)["__core-js_shared__"]},12041:(a,b,c)=>{var d=c(58807);a.exports=function(a){var b=this.__data__,c=d(b,a);return c<0?void 0:b[c][1]}},12253:(a,b,c)=>{var d=c(98880),e=c(56046),f=c(89387),g=c(87863),h=/^\[object .+?Constructor\]$/,i=Object.prototype,j=Function.prototype.toString,k=i.hasOwnProperty,l=RegExp("^"+j.call(k).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");a.exports=function(a){return!(!f(a)||e(a))&&(d(a)?l:h).test(g(a))}},12384:(a,b,c)=>{var d=c(27975),e=c(35264);a.exports=function(a){return e(a)&&"[object Set]"==d(a)}},14082:(a,b,c)=>{var d=c(78023),e=c(14317),f=c(16920),g=d?d.toStringTag:void 0;a.exports=function(a){return null==a?void 0===a?"[object Undefined]":"[object Null]":g&&g in Object(a)?e(a):f(a)}},14303:a=>{var b=/^(?:0|[1-9]\d*)$/;a.exports=function(a,c){var d=typeof a;return!!(c=null==c?0x1fffffffffffff:c)&&("number"==d||"symbol"!=d&&b.test(a))&&a>-1&&a%1==0&&a<c}},14317:(a,b,c)=>{var d=c(78023),e=Object.prototype,f=e.hasOwnProperty,g=e.toString,h=d?d.toStringTag:void 0;a.exports=function(a){var b=f.call(a,h),c=a[h];try{a[h]=void 0;var d=!0}catch(a){}var e=g.call(a);return d&&(b?a[h]=c:delete a[h]),e}},15623:(a,b,c)=>{var d=c(41760),e=Object.prototype.hasOwnProperty;a.exports=function(a){var b=this.__data__;if(d){var c=b[a];return"__lodash_hash_undefined__"===c?void 0:c}return e.call(b,a)?b[a]:void 0}},15974:(a,b,c)=>{var d=c(53373),e=c(4229);a.exports=function(a,b){return d(a,e(a),b)}},16920:a=>{var b=Object.prototype.toString;a.exports=function(a){return b.call(a)}},17931:a=>{a.exports=function(a){return function(b){return a(b)}}},19520:(a,b,c)=>{var d=c(53373),e=c(26111);a.exports=function(a,b){return a&&d(b,e(b),a)}},20251:(a,b,c)=>{var d=c(14082),e=c(50112),f=c(35264),g={};g["[object Float32Array]"]=g["[object Float64Array]"]=g["[object Int8Array]"]=g["[object Int16Array]"]=g["[object Int32Array]"]=g["[object Uint8Array]"]=g["[object Uint8ClampedArray]"]=g["[object Uint16Array]"]=g["[object Uint32Array]"]=!0,g["[object Arguments]"]=g["[object Array]"]=g["[object ArrayBuffer]"]=g["[object Boolean]"]=g["[object DataView]"]=g["[object Date]"]=g["[object Error]"]=g["[object Function]"]=g["[object Map]"]=g["[object Number]"]=g["[object Object]"]=g["[object RegExp]"]=g["[object Set]"]=g["[object String]"]=g["[object WeakMap]"]=!1,a.exports=function(a){return f(a)&&e(a.length)&&!!g[d(a)]}},24106:(a,b,c)=>{var d=c(70282);a.exports=function(a,b,c){"__proto__"==b&&d?d(a,b,{configurable:!0,enumerable:!0,value:c,writable:!0}):a[b]=c}},24214:(a,b,c)=>{var d=c(67524),e=c(43431),f=Object.prototype.propertyIsEnumerable,g=Object.getOwnPropertySymbols;a.exports=g?function(a){return null==a?[]:d(g(a=Object(a)),function(b){return f.call(a,b)})}:e},25295:(a,b,c)=>{var d=c(88418),e=c(3821),f=c(84329);a.exports=function(a){return"function"!=typeof a.constructor||f(a)?{}:d(e(a))}},25501:a=>{a.exports=function(a,b){return function(c){return a(b(c))}}},26111:(a,b,c)=>{var d=c(93181),e=c(92761),f=c(85312);a.exports=function(a){return f(a)?d(a,!0):e(a)}},27194:a=>{a.exports=function(a,b){return a===b||a!=a&&b!=b}},27299:(a,b,c)=>{var d=c(38819);a.exports=function(a,b){var c=b?d(a.buffer):a.buffer;return new a.constructor(c,a.byteOffset,a.length)}},27975:(a,b,c)=>{var d=c(67366),e=c(35073),f=c(32078),g=c(92451),h=c(47817),i=c(14082),j=c(87863),k="[object Map]",l="[object Promise]",m="[object Set]",n="[object WeakMap]",o="[object DataView]",p=j(d),q=j(e),r=j(f),s=j(g),t=j(h),u=i;(d&&u(new d(new ArrayBuffer(1)))!=o||e&&u(new e)!=k||f&&u(f.resolve())!=l||g&&u(new g)!=m||h&&u(new h)!=n)&&(u=function(a){var b=i(a),c="[object Object]"==b?a.constructor:void 0,d=c?j(c):"";if(d)switch(d){case p:return o;case q:return k;case r:return l;case s:return m;case t:return n}return b}),a.exports=u},30343:(a,b,c)=>{var d=c(52685);a.exports=function(a){return d(this,a).has(a)}},30979:(a,b,c)=>{var d=c(51805),e=c(42306),f=c(80672),g=c(7663),h=c(9571),i=c(65291);function j(a){var b=this.__data__=new d(a);this.size=b.size}j.prototype.clear=e,j.prototype.delete=f,j.prototype.get=g,j.prototype.has=h,j.prototype.set=i,a.exports=j},31105:(a,b,c)=>{var d=c(53373),e=c(24214);a.exports=function(a,b){return d(a,e(a),b)}},32078:(a,b,c)=>{a.exports=c(65044)(c(34555),"Promise")},34335:(a,b,c)=>{var d=c(47238),e=c(2428),f=c(35611),g=c(30343),h=c(6559);function i(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}i.prototype.clear=d,i.prototype.delete=e,i.prototype.get=f,i.prototype.has=g,i.prototype.set=h,a.exports=i},34555:(a,b,c)=>{var d=c(86038),e="object"==typeof self&&self&&self.Object===Object&&self;a.exports=d||e||Function("return this")()},35073:(a,b,c)=>{a.exports=c(65044)(c(34555),"Map")},35264:a=>{a.exports=function(a){return null!=a&&"object"==typeof a}},35611:(a,b,c)=>{var d=c(52685);a.exports=function(a){return d(this,a).get(a)}},38819:(a,b,c)=>{var d=c(74258);a.exports=function(a){var b=new a.constructor(a.byteLength);return new d(b).set(new d(a)),b}},39473:a=>{a.exports=function(){return!1}},40056:(a,b,c)=>{a=c.nmd(a);var d=c(34555),e=b&&!b.nodeType&&b,f=e&&a&&!a.nodeType&&a,g=f&&f.exports===e?d.Buffer:void 0,h=g?g.allocUnsafe:void 0;a.exports=function(a,b){if(b)return a.slice();var c=a.length,d=h?h(c):new a.constructor(c);return a.copy(d),d}},41760:(a,b,c)=>{a.exports=c(65044)(Object,"create")},42306:(a,b,c)=>{var d=c(51805);a.exports=function(){this.__data__=new d,this.size=0}},42818:(a,b,c)=>{var d=c(58807),e=Array.prototype.splice;a.exports=function(a){var b=this.__data__,c=d(b,a);return!(c<0)&&(c==b.length-1?b.pop():e.call(b,c,1),--this.size,!0)}},43431:a=>{a.exports=function(){return[]}},45131:(a,b,c)=>{var d=c(60170),e=c(56312),f=c(15623),g=c(52555),h=c(4643);function i(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}i.prototype.clear=d,i.prototype.delete=e,i.prototype.get=f,i.prototype.has=g,i.prototype.set=h,a.exports=i},46923:a=>{a.exports=Array.isArray},47238:(a,b,c)=>{var d=c(45131),e=c(51805),f=c(35073);a.exports=function(){this.size=0,this.__data__={hash:new d,map:new(f||e),string:new d}}},47817:(a,b,c)=>{a.exports=c(65044)(c(34555),"WeakMap")},48704:a=>{a.exports=function(a){var b=typeof a;return"string"==b||"number"==b||"symbol"==b||"boolean"==b?"__proto__"!==a:null===a}},50112:a=>{a.exports=function(a){return"number"==typeof a&&a>-1&&a%1==0&&a<=0x1fffffffffffff}},50942:(a,b,c)=>{var d=c(27975),e=c(35264);a.exports=function(a){return e(a)&&"[object Map]"==d(a)}},51805:(a,b,c)=>{var d=c(10032),e=c(42818),f=c(12041),g=c(1885),h=c(76773);function i(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}i.prototype.clear=d,i.prototype.delete=e,i.prototype.get=f,i.prototype.has=g,i.prototype.set=h,a.exports=i},52555:(a,b,c)=>{var d=c(41760),e=Object.prototype.hasOwnProperty;a.exports=function(a){var b=this.__data__;return d?void 0!==b[a]:e.call(b,a)}},52685:(a,b,c)=>{var d=c(48704);a.exports=function(a,b){var c=a.__data__;return d(b)?c["string"==typeof b?"string":"hash"]:c.map}},52786:a=>{a.exports=function(a,b){return null==a?void 0:a[b]}},53373:(a,b,c)=>{var d=c(59265),e=c(24106);a.exports=function(a,b,c,f){var g=!c;c||(c={});for(var h=-1,i=b.length;++h<i;){var j=b[h],k=f?f(c[j],a[j],j,c,a):void 0;void 0===k&&(k=a[j]),g?e(c,j,k):d(c,j,k)}return c}},54187:a=>{var b=/\w*$/;a.exports=function(a){var c=new a.constructor(a.source,b.exec(a));return c.lastIndex=a.lastIndex,c}},54958:(a,b,c)=>{var d=c(78023),e=d?d.prototype:void 0,f=e?e.valueOf:void 0;a.exports=function(a){return f?Object(f.call(a)):{}}},56046:(a,b,c)=>{var d=c(10919),e=function(){var a=/[^.]+$/.exec(d&&d.keys&&d.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}();a.exports=function(a){return!!e&&e in a}},56312:a=>{a.exports=function(a){var b=this.has(a)&&delete this.__data__[a];return this.size-=!!b,b}},58461:(a,b,c)=>{var d=c(30979),e=c(68331),f=c(59265),g=c(63647),h=c(19520),i=c(40056),j=c(95129),k=c(31105),l=c(15974),m=c(10580),n=c(87903),o=c(27975),p=c(75023),q=c(4133),r=c(25295),s=c(46923),t=c(79038),u=c(75392),v=c(89387),w=c(70878),x=c(71540),y=c(26111),z="[object Arguments]",A="[object Function]",B="[object Object]",C={};C[z]=C["[object Array]"]=C["[object ArrayBuffer]"]=C["[object DataView]"]=C["[object Boolean]"]=C["[object Date]"]=C["[object Float32Array]"]=C["[object Float64Array]"]=C["[object Int8Array]"]=C["[object Int16Array]"]=C["[object Int32Array]"]=C["[object Map]"]=C["[object Number]"]=C[B]=C["[object RegExp]"]=C["[object Set]"]=C["[object String]"]=C["[object Symbol]"]=C["[object Uint8Array]"]=C["[object Uint8ClampedArray]"]=C["[object Uint16Array]"]=C["[object Uint32Array]"]=!0,C["[object Error]"]=C[A]=C["[object WeakMap]"]=!1,a.exports=function a(b,c,D,E,F,G){var H,I=1&c,J=2&c,K=4&c;if(D&&(H=F?D(b,E,F,G):D(b)),void 0!==H)return H;if(!v(b))return b;var L=s(b);if(L){if(H=p(b),!I)return j(b,H)}else{var M=o(b),N=M==A||"[object GeneratorFunction]"==M;if(t(b))return i(b,I);if(M==B||M==z||N&&!F){if(H=J||N?{}:r(b),!I)return J?l(b,h(H,b)):k(b,g(H,b))}else{if(!C[M])return F?b:{};H=q(b,M,I)}}G||(G=new d);var O=G.get(b);if(O)return O;G.set(b,H),w(b)?b.forEach(function(d){H.add(a(d,c,D,d,b,G))}):u(b)&&b.forEach(function(d,e){H.set(e,a(d,c,D,e,b,G))});var P=K?J?n:m:J?y:x,Q=L?void 0:P(b);return e(Q||b,function(d,e){Q&&(d=b[e=d]),f(H,e,a(d,c,D,e,b,G))}),H}},58807:(a,b,c)=>{var d=c(27194);a.exports=function(a,b){for(var c=a.length;c--;)if(d(a[c][0],b))return c;return -1}},59265:(a,b,c)=>{var d=c(24106),e=c(27194),f=Object.prototype.hasOwnProperty;a.exports=function(a,b,c){var g=a[b];f.call(a,b)&&e(g,c)&&(void 0!==c||b in a)||d(a,b,c)}},60170:(a,b,c)=>{var d=c(41760);a.exports=function(){this.__data__=d?d(null):{},this.size=0}},63647:(a,b,c)=>{var d=c(53373),e=c(71540);a.exports=function(a,b){return a&&d(b,e(b),a)}},65044:(a,b,c)=>{var d=c(12253),e=c(52786);a.exports=function(a,b){var c=e(a,b);return d(c)?c:void 0}},65291:(a,b,c)=>{var d=c(51805),e=c(35073),f=c(34335);a.exports=function(a,b){var c=this.__data__;if(c instanceof d){var g=c.__data__;if(!e||g.length<199)return g.push([a,b]),this.size=++c.size,this;c=this.__data__=new f(g)}return c.set(a,b),this.size=c.size,this}},67366:(a,b,c)=>{a.exports=c(65044)(c(34555),"DataView")},67524:a=>{a.exports=function(a,b){for(var c=-1,d=null==a?0:a.length,e=0,f=[];++c<d;){var g=a[c];b(g,c,a)&&(f[e++]=g)}return f}},68331:a=>{a.exports=function(a,b){for(var c=-1,d=null==a?0:a.length;++c<d&&!1!==b(a[c],c,a););return a}},69107:(a,b,c)=>{a=c.nmd(a);var d=c(86038),e=b&&!b.nodeType&&b,f=e&&a&&!a.nodeType&&a,g=f&&f.exports===e&&d.process,h=function(){try{var a=f&&f.require&&f.require("util").types;if(a)return a;return g&&g.binding&&g.binding("util")}catch(a){}}();a.exports=h},70282:(a,b,c)=>{var d=c(65044);a.exports=function(){try{var a=d(Object,"defineProperty");return a({},"",{}),a}catch(a){}}()},70386:(a,b,c)=>{var d=c(84329),e=c(82584),f=Object.prototype.hasOwnProperty;a.exports=function(a){if(!d(a))return e(a);var b=[];for(var c in Object(a))f.call(a,c)&&"constructor"!=c&&b.push(c);return b}},70878:(a,b,c)=>{var d=c(12384),e=c(17931),f=c(69107),g=f&&f.isSet;a.exports=g?e(g):d},71540:(a,b,c)=>{var d=c(93181),e=c(70386),f=c(85312);a.exports=function(a){return f(a)?d(a):e(a)}},71932:(a,b,c)=>{var d=c(14082),e=c(35264);a.exports=function(a){return e(a)&&"[object Arguments]"==d(a)}},74258:(a,b,c)=>{a.exports=c(34555).Uint8Array},75023:a=>{var b=Object.prototype.hasOwnProperty;a.exports=function(a){var c=a.length,d=new a.constructor(c);return c&&"string"==typeof a[0]&&b.call(a,"index")&&(d.index=a.index,d.input=a.input),d}},75392:(a,b,c)=>{var d=c(50942),e=c(17931),f=c(69107),g=f&&f.isMap;a.exports=g?e(g):d},76166:(a,b,c)=>{var d=c(71932),e=c(35264),f=Object.prototype,g=f.hasOwnProperty,h=f.propertyIsEnumerable;a.exports=d(function(){return arguments}())?d:function(a){return e(a)&&g.call(a,"callee")&&!h.call(a,"callee")}},76773:(a,b,c)=>{var d=c(58807);a.exports=function(a,b){var c=this.__data__,e=d(c,a);return e<0?(++this.size,c.push([a,b])):c[e][1]=b,this}},78023:(a,b,c)=>{a.exports=c(34555).Symbol},79038:(a,b,c)=>{a=c.nmd(a);var d=c(34555),e=c(39473),f=b&&!b.nodeType&&b,g=f&&a&&!a.nodeType&&a,h=g&&g.exports===f?d.Buffer:void 0,i=h?h.isBuffer:void 0;a.exports=i||e},80672:a=>{a.exports=function(a){var b=this.__data__,c=b.delete(a);return this.size=b.size,c}},82584:(a,b,c)=>{a.exports=c(25501)(Object.keys,Object)},84329:a=>{var b=Object.prototype;a.exports=function(a){var c=a&&a.constructor;return a===("function"==typeof c&&c.prototype||b)}},85312:(a,b,c)=>{var d=c(98880),e=c(50112);a.exports=function(a){return null!=a&&e(a.length)&&!d(a)}},86038:a=>{a.exports="object"==typeof global&&global&&global.Object===Object&&global},87863:a=>{var b=Function.prototype.toString;a.exports=function(a){if(null!=a){try{return b.call(a)}catch(a){}try{return a+""}catch(a){}}return""}},87903:(a,b,c)=>{var d=c(5105),e=c(4229),f=c(26111);a.exports=function(a){return d(a,f,e)}},87963:a=>{a.exports=function(a){var b=[];if(null!=a)for(var c in Object(a))b.push(c);return b}},87978:a=>{a.exports=function(a,b){for(var c=-1,d=b.length,e=a.length;++c<d;)a[e+c]=b[c];return a}},88418:(a,b,c)=>{var d=c(89387),e=Object.create;a.exports=function(){function a(){}return function(b){if(!d(b))return{};if(e)return e(b);a.prototype=b;var c=new a;return a.prototype=void 0,c}}()},89387:a=>{a.exports=function(a){var b=typeof a;return null!=a&&("object"==b||"function"==b)}},91373:(a,b,c)=>{var d=c(58461);a.exports=function(a){return d(a,5)}},92451:(a,b,c)=>{a.exports=c(65044)(c(34555),"Set")},92761:(a,b,c)=>{var d=c(89387),e=c(84329),f=c(87963),g=Object.prototype.hasOwnProperty;a.exports=function(a){if(!d(a))return f(a);var b=e(a),c=[];for(var h in a)"constructor"==h&&(b||!g.call(a,h))||c.push(h);return c}},93181:(a,b,c)=>{var d=c(1858),e=c(76166),f=c(46923),g=c(79038),h=c(14303),i=c(5985),j=Object.prototype.hasOwnProperty;a.exports=function(a,b){var c=f(a),k=!c&&e(a),l=!c&&!k&&g(a),m=!c&&!k&&!l&&i(a),n=c||k||l||m,o=n?d(a.length,String):[],p=o.length;for(var q in a)(b||j.call(a,q))&&!(n&&("length"==q||l&&("offset"==q||"parent"==q)||m&&("buffer"==q||"byteLength"==q||"byteOffset"==q)||h(q,p)))&&o.push(q);return o}},94203:(a,b,c)=>{var d=c(38819);a.exports=function(a,b){var c=b?d(a.buffer):a.buffer;return new a.constructor(c,a.byteOffset,a.byteLength)}},95129:a=>{a.exports=function(a,b){var c=-1,d=a.length;for(b||(b=Array(d));++c<d;)b[c]=a[c];return b}},98880:(a,b,c)=>{var d=c(14082),e=c(89387);a.exports=function(a){if(!e(a))return!1;var b=d(a);return"[object Function]"==b||"[object GeneratorFunction]"==b||"[object AsyncFunction]"==b||"[object Proxy]"==b}}};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";exports.id=2823,exports.ids=[2823],exports.modules={52823:(a,b,c)=>{c.d(b,{runFlow:()=>C});var d=c(18230),e=c(44561),f=c(79111),g=c(44479);let h=(0,d.h)("backend/execution/flow/persistConversationState");async function i(a,b){let c="conversations/",d=String(a).startsWith(c)?String(a).slice(c.length):String(a);return((0,f.ln)(d),null!=b.conversationId&&(0,f.ln)(b.conversationId),b.ephemeral)?(h.debug(`Refusing to persist ephemeral state (key ${a}); ephemeral runs never reach the conversations store.`),Promise.resolve()):(0,g.isConversationDeleted)(b.conversationId)?(h.info(`Refusing to persist state for deleted conversation ${b.conversationId} (key ${a}).`),Promise.resolve()):(0,f.VH)(a,{...b,executionTrace:void 0,emit:void 0})}var j=c(34115),k=c(96249),l=c(37860),m=c(26485),n=c(80808),o=c(59448),p=c(11659),q=c(86028),r=c(12763),s=c(82464),t=c(54898);let u=(0,d.h)("backend/execution/flow/validateFlowForRun");async function v(a){let b,c;try{b=await r.modelService.loadModels()}catch(a){u.warn("validateFlowObjectForRun: could not load models; skipping model checks",a)}try{let a=await s.mcpService.loadServerConfigs();Array.isArray(a)&&(c=a.map(a=>({name:a.name,status:a.disabled?"disabled":void 0})))}catch(a){u.warn("validateFlowObjectForRun: could not load servers; skipping server checks",a)}return(0,t.nC)(a,{models:b,servers:c})}async function w(a){let b=await p.flowService.getFlow(a);return b?v(b):(u.warn(`validateFlowForRun: flow ${a} could not be loaded; skipping pre-run checks`),{issues:[],errorCount:0,warningCount:0,isRunnable:!0})}var x=c(85701);function y(a){let b=(a??"").replace(/\s+/g," ").trim();if(!b)return"New Conversation";let c=b,d=!1,e=c.split(" ");if(e.length>10&&(c=e.slice(0,10).join(" "),d=!0),c.length>60){let a=c.slice(0,60),b=a.lastIndexOf(" ");c=(b>0?a.slice(0,b):a).trimEnd(),d=!0}return d?`${c}…`:c}let z=(0,d.h)("backend/execution/flow/runFlow");p.flowService.getFlowByName||(p.flowService.getFlowByName=async a=>(await p.flowService.loadFlows()).find(b=>b.name===a)||null,z.info("Added getFlowByName method directly to flowService instance."));let A=p.flowService;async function B(a,b,c){try{let d,e=a.flowId;if(!e)return;try{d=(await p.flowService.getFlow(e))?.name??void 0}catch{}let f="api"===a.source?"api":"chat",g=c&&c.length>4096?`${c.slice(0,4096)}…`:c;(0,l.eh)().publish({flowId:e,flowName:d,executionId:a.plannedExecutionId,runId:a.conversationId||"",conversationId:a.conversationId||"",status:b,outputText:g,firedBy:f,chainDepth:a.chainDepth??0,timestamp:new Date().toISOString()})}catch(a){z.warn("Failed to publish runFlow flow-run event:",a)}}async function C(a){let b,c,d,h=Date.now(),l=a.flujo??!0,p=a.requireApproval??!1,r=a.debug??!1,s=a.continueDebug??!1,t=a.userTurn??!1,u="ephemeral"===a.mode,C=a.messages??(void 0!==a.prompt?[{role:"user",content:a.prompt}]:[]),D={model:a.modelName,messages:C,processNodeId:a.processNodeId};z.info("runFlow invoked",{flowId:a.flowId,model:a.modelName,messageCount:C.length,mode:u?"ephemeral":"conversation",flujo:l,requireApproval:p,flujodebug:r,conversationId:a.conversationId});let E=a.conversationId||crypto.randomUUID(),F=`conversations/${E}`,G="new";if(z.info(`Effective Conversation ID for this run: ${E}`,{providedId:a.conversationId}),e.FlowExecutor.conversationStates.has(E))c=e.FlowExecutor.conversationStates.get(E),z.info(`Resuming conversation ${E} from memory`,{currentNodeId:c.currentNodeId}),G="memory";else if(!u)try{(c=await (0,f.YM)(F,void 0))?(z.info(`Loaded conversation state from storage: ${E}`),G="storage",await (0,j.jM)(c),e.FlowExecutor.conversationStates.set(E,c)):z.info(`No state found in storage for conversation: ${E}. Will create new state.`)}catch(a){z.warn(`Error loading conversation state from storage for ${E}:`,a)}if(c?((b=c).conversationId!==E&&(z.warn(`Loaded state's internal conversationId (${b.conversationId}) differs from effectiveConvId (${E}). Using effectiveConvId.`),b.conversationId=E),"new"!==G&&("completed"===b.status||"error"===b.status||void 0===b.status)&&(z.info(`Resuming completed/errored/fresh conversation ${E}. Resetting status to 'running'.`),b.status="running",b.lastResponse=void 0,b.isCancelled=!1,"storage"===G&&e.FlowExecutor.conversationStates.set(E,b)),D.processNodeId&&"new"!==G&&(z.info(`Edit detected: Resetting currentNodeId for conversation ${E} to provided processNodeId: ${D.processNodeId}`),b.currentNodeId=D.processNodeId,b.status="running",b.lastResponse=void 0,b.pendingToolCalls=void 0,b.handoffRequested=void 0,b.isCancelled=!1,b.trackingInfo={executionId:crypto.randomUUID(),startTime:Date.now(),nodeExecutionTracker:[]},q.G.ENABLE_EXECUTION_TRACKER&&b.executionTrace&&(b.executionTrace=[]),e.FlowExecutor.conversationStates.set(E,b),z.verbose(`State updated in memory with reset currentNodeId: ${b.currentNodeId}`))):(z.info(`Creating new conversation state object for ID: ${E}`),b={trackingInfo:{executionId:crypto.randomUUID(),startTime:Date.now(),nodeExecutionTracker:(q.G.ENABLE_EXECUTION_TRACKER,[])},messages:[],flowId:"",conversationId:E,currentNodeId:void 0,status:"running",title:"New Conversation",createdAt:Date.now(),updatedAt:Date.now(),debugMode:r,executionTrace:r&&q.G.ENABLE_EXECUTION_TRACKER?[]:void 0,variables:{}}),a.variables&&"object"==typeof a.variables)for(let[c,d]of(b.variables=b.variables??{},Object.entries(a.variables)))null!=d&&(b.variables[c]="string"==typeof d?d:String(d));if(b.requireApproval=p,a.source&&(b.source=a.source),a.plannedExecutionId&&(b.plannedExecutionId=a.plannedExecutionId),u&&(b.ephemeral=!0),a.parentRunId&&(b.parentRunId=a.parentRunId),b.runDepth=a.depth??b.runDepth??0,b.chainDepth=a.chainDepth??b.chainDepth??0,b.onApprovalRequired=a.onApprovalRequired??b.onApprovalRequired??"auto",b.runDepth>x.A)return z.error(`runFlow aborted: subflow depth ${b.runDepth} exceeds max ${x.A}`),b.status="error",{status:"error",conversationId:E,outputText:"",messages:b.messages,error:{message:`Subflow recursion limit (${x.A}) exceeded`,statusCode:500},finalAction:m.O,sharedState:b};let H=[...b.messages??[]];if("new"===G){a.flowDefinition&&(b.flowSnapshot=a.flowDefinition,b.flowId=a.flowDefinition.id);let c=a.flowDefinition?a.flowDefinition.id:a.flowId;if(!c&&D.model){let a=D.model.substring(5),d=await A.getFlowByName(a);if(!d)return z.error(`Flow not found: ${a}`),{status:"error",conversationId:E,outputText:"",messages:b.messages,flowNotFound:{name:a},error:{message:`Flow not found: ${a}`,statusCode:400},finalAction:m.O,sharedState:b};c=d.id}if(!c)return z.error("No flow specified for run (neither flowId nor model provided)."),{status:"error",conversationId:E,outputText:"",messages:b.messages,error:{message:"No flow specified (provide flowId or model).",statusCode:400},finalAction:m.O,sharedState:b};b.flowId=c;let d=(D.messages||[]).filter(a=>!(a.depth>0)).map(a=>({...a,id:a.id||crypto.randomUUID(),timestamp:a.timestamp||Date.now(),processNodeId:a.processNodeId||void 0}));b.messages=d;try{if(b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=y(a.content),z.verbose(`Updated conversation title for ${E} during init to: ${b.title}`))}await i(F,b),z.debug(`Saved initial state for new conversation ${E}.`)}catch(a){z.error(`Failed to save initial state for new conversation ${E}:`,a)}e.FlowExecutor.conversationStates.set(E,b)}else D.messages&&D.messages.length>0&&(b.messages=D.messages.filter(a=>!(a.depth>0)).map(a=>({...a,id:a.id||crypto.randomUUID(),timestamp:a.timestamp||Date.now(),processNodeId:a.processNodeId||void 0})),z.info(`Updated conversation ${b.conversationId} with ${b.messages.length} messages from request`)),(t||void 0===b.debugMode)&&(b.debugMode=r),t&&(b.debugPendingToolCalls=void 0),b.debugMode&&q.G.ENABLE_EXECUTION_TRACKER&&!b.executionTrace&&(b.executionTrace=[]);try{await (0,j.UG)(b,H)}catch(a){z.warn(`Conversation-log reconcile failed for ${E}; continuing`,a)}if(t&&"new"!==G&&!D.processNodeId){let a=b.messages.length>0?b.messages[b.messages.length-1]:void 0;a?.role==="user"&&a.processNodeId&&a.processNodeId!==b.currentNodeId&&(z.info(`New user turn for ${E}: directing execution to node ${a.processNodeId} (was ${b.currentNodeId}).`),b.currentNodeId=a.processNodeId,e.FlowExecutor.conversationStates.set(E,b))}t&&b.flowId&&(e.FlowExecutor.clearFlowCache(b.flowId),z.debug(`Cleared compiled-flow cache for ${b.flowId} at start of user turn ${E}.`));let I=!1,J=0,K=a.emit??k.$.emitterFor(E),L=new Set(b.messages.map(a=>a.id).filter(a=>!!a)),M=a=>{if(!a.usage)return;let c=b.usage??{promptTokens:0,completionTokens:0,totalTokens:0,costUsd:0,byNode:{}};c.promptTokens+=a.usage.promptTokens,c.completionTokens+=a.usage.completionTokens,c.totalTokens+=a.usage.totalTokens;let d=a.usage.cacheReadTokens??0;d&&(c.cacheReadTokens=(c.cacheReadTokens??0)+d);let e=a.processNodeId||"unknown",f=c.byNode[e]??{promptTokens:0,completionTokens:0,totalTokens:0,costUsd:0};f.promptTokens+=a.usage.promptTokens,f.completionTokens+=a.usage.completionTokens,f.totalTokens+=a.usage.totalTokens,d&&(f.cacheReadTokens=(f.cacheReadTokens??0)+d),c.byNode[e]=f,b.usage=c,K({type:"usage",node:a.processNodeId?{nodeId:a.processNodeId}:void 0,promptTokens:a.usage.promptTokens,completionTokens:a.usage.completionTokens,totalTokens:a.usage.totalTokens,costUsd:0,...d?{cacheReadTokens:d}:{}})},N=()=>{for(let a of b.messages)a.id||(a.id=crypto.randomUUID()),L.has(a.id)||(L.add(a.id),"system"!==a.role&&(K({type:"message",message:a,node:a.processNodeId?{nodeId:a.processNodeId}:void 0}),M(a)))};if(K({type:"run:start",flowId:b.flowId}),(t||"new"===G)&&b.flowId)try{let a=b.flowSnapshot?await v(b.flowSnapshot):await w(b.flowId);if(!a.isRunnable){let c=a.issues.filter(a=>"error"===a.severity),e=`This flow can't run yet — please fix the following before running:
|
|
2
|
+
`+c.map(a=>`• ${a.message}`).join("\n");z.warn(`Pre-run validation blocked flow ${b.flowId} for conv ${E}`,{errorCount:c.length,codes:c.map(a=>a.code)}),b.lastResponse={success:!1,error:e,errorDetails:{message:e,type:"invalid_request_error",code:"flow_invalid",status:400}},d=m.O,I=!0}}catch(a){z.warn(`Pre-run validation could not complete for ${b.flowId}; proceeding`,a)}let O=()=>!!b.isCancelled||!!(0,g.isCancelledByAncestry)(b.parentRunId,e.FlowExecutor.conversationStates)&&(b.isCancelled=!0,!0),P=!!b.debugMode&&!s,Q=()=>{b.status="paused_debug",K({type:"run:paused",reason:"debug",node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0})};try{if(!I)for(;;){if(J++,z.debug(`--- Starting Execution Step ${J} for Conv ${E} ---`),J>150){z.warn(`Max internal iterations (150) reached for conv ${E}. Breaking loop.`),d!==m.O&&(b.lastResponse={success:!1,error:"Maximum internal iterations (150) reached."},d=m.O);break}if(O()){z.info(`Cancellation flag detected for conv ${E}. Terminating execution.`),b.status="error",b.lastResponse={success:!1,error:"Execution cancelled by user."},d=m.O;break}if(b.debugPendingToolCalls&&b.debugPendingToolCalls.length>0){let a=b.debugPendingToolCalls;b.debugPendingToolCalls=void 0,z.info(`[Debug Step] Executing ${a.length} pending tool call(s) for conv ${E}.`);let c=await n.s.processToolCalls({toolCalls:a,toolNameMap:b.toolNameMap,emit:K,conversationId:b.ephemeral?void 0:b.conversationId,node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0,shouldAbort:O});if(!c.success){z.error(`Debug tool processing failed for conv ${E}`,{error:c.error}),b.lastResponse={success:!1,error:"Tool processing failed",errorDetails:c.error},d=m.O;break}let f=c.value.toolCallMessages.map(a=>({...a,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:b.currentNodeId}));b.messages.push(...f),e.FlowExecutor.conversationStates.set(E,b),N();try{b.updatedAt=Date.now(),await i(F,b)}catch(a){z.error(`Failed to save state after debug tool execution for conv ${E}:`,a)}if(P){z.info(`[Debug Step] Paused after tool execution for conv ${E}.`),Q();break}continue}if(!P&&b.breakpoints&&b.breakpoints.length>0){let a=await e.FlowExecutor.peekNextNodeId(b);if(a&&b.breakpoints.includes(a)&&b.lastBreakNodeId!==a){z.info(`Breakpoint hit at node ${a} for conv ${E}. Pausing.`),b.status="paused_debug",b.debugMode=!0,b.lastBreakNodeId=a,K({type:"breakpoint:hit",node:{nodeId:a}}),K({type:"run:paused",reason:"breakpoint",node:{nodeId:a}});try{b.updatedAt=Date.now(),await i(F,b)}catch(a){z.error(`Failed to save state on breakpoint for conv ${E}:`,a)}break}a&&b.lastBreakNodeId&&a!==b.lastBreakNodeId&&(b.lastBreakNodeId=void 0)}if(b.messages.length>0){let a=b.messages.slice(-3);z.verbose(`Message history before step ${J}`,a)}else z.verbose(`No messages in history before step ${J}`);let a=await e.FlowExecutor.executeStep(b,K);if(b=a.sharedState,d=a.action,N(),b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=y(a.content),z.verbose(`Updated conversation title for ${E} after step ${J} to: ${b.title}`))}if(z.info(`Step ${J} completed for conv ${E}. Action: ${d}`,{currentNodeId:b.currentNodeId}),z.verbose(`Shared state after step ${J}`,b),z.debug(`[Action Handling] Step ${J}: Received action "${d}" for conv ${E}`),d===m.O){z.info(`[Action Handling] Step ${J}: Handling ERROR_ACTION for conv ${E}`),z.error(`Error action received during step ${J} for conv ${E}`,{error:b.lastResponse});break}if(d===m.g4){z.info(`[Action Handling] Step ${J}: Handling FINAL_RESPONSE_ACTION for conv ${E}`),z.info(`Final response action received at step ${J} for conv ${E}`),b.status="completed",z.info(`Setting conversation status to 'completed' for conv ${E}`);break}if(d===m.Jp){z.info(`[Action Handling] Step ${J}: Handling TOOL_CALL_ACTION for conv ${E}`),z.info(`Tool call action received at step ${J} for conv ${E}`);let a=b.messages.length>0?b.messages[b.messages.length-1]:null;if(a?.role==="assistant"&&a.tool_calls)if(l){if(p&&"fail"===b.onApprovalRequired){let c=a.tool_calls[0],e=c&&"function"===c.type?c.function.name:"unknown";z.info(`[flujo=true, onApprovalRequired=fail] Failing fast for tool "${e}" (conv ${E})`),b.status="error",b.pendingToolCalls=a.tool_calls,b.lastResponse={success:!1,error:`Headless run requires approval for tool "${e}" but no approver is available (approvalPolicy: fail).`,errorDetails:{message:`Headless run requires approval for tool "${e}" but no approver is available (approvalPolicy: fail).`,type:"approval_required",name:e}},d=m.O;break}if(p){z.info(`[flujo=true, requireApproval=true] Pausing execution for tool approval for conv ${E}`),b.status="awaiting_tool_approval",b.pendingToolCalls=a.tool_calls,b.lastResponse=void 0,e.FlowExecutor.conversationStates.set(E,b);try{if(b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=y(a.content),z.verbose(`Updated conversation title for ${E} before pausing to: ${b.title}`))}await i(F,b),z.verbose(`Saved state before pausing for approval for conv ${E}`)}catch(a){z.error(`Failed to save state before pausing for approval for conv ${E}:`,a)}K({type:"run:awaiting_approval",pendingToolCalls:a.tool_calls});break}if(P){z.info(`[Debug Step] Paused before executing ${a.tool_calls.length} tool call(s) for conv ${E}.`),b.debugPendingToolCalls=a.tool_calls,e.FlowExecutor.conversationStates.set(E,b);try{b.updatedAt=Date.now(),await i(F,b)}catch(a){z.error(`Failed to save state before debug tool pause for conv ${E}:`,a)}Q();break}{z.info(`[flujo=true, requireApproval=false] Processing ${a.tool_calls.length} tools internally for conv ${E}`);let c=await n.s.processToolCalls({toolCalls:a.tool_calls,toolNameMap:b.toolNameMap,emit:K,conversationId:b.ephemeral?void 0:b.conversationId,node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0,shouldAbort:O});if(!c.success){z.error(`Internal tool processing failed for conv ${E}`,{error:c.error}),b.lastResponse={success:!1,error:"Tool processing failed",errorDetails:c.error},d=m.O;break}z.info(`Adding ${c.value.toolCallMessages.length} tool result messages for conv ${E}`);let f=c.value.toolCallMessages.map(a=>({...a,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:b.currentNodeId}));b.messages.push(...f),e.FlowExecutor.conversationStates.set(E,b),N(),z.info(`Continuing loop for conv ${E} after internal tool processing (no approval needed).`);continue}}else{z.info(`[flujo=false] Tool call action received for conv ${E}. Checking tool types.`);let c=a.tool_calls||[],f=[],g=[];if(c.forEach(a=>{"function"===a.type&&(0,o.$9)(a.function.name,b.toolNameMap)?(z.verbose("tool is internal:",a.function.name),f.push(a)):(z.verbose("tool is external:",a.function.name),g.push(a))}),f.length>0){z.info(`[flujo=false] Processing ${f.length} internal tools for conv ${E}. External tools (${g.length}) will be ignored this step.`);let a=await n.s.processToolCalls({toolCalls:f,toolNameMap:b.toolNameMap,emit:K,conversationId:b.ephemeral?void 0:b.conversationId,node:b.currentNodeId?{nodeId:b.currentNodeId}:void 0,shouldAbort:O});if(!a.success){z.error(`[flujo=false] Internal tool processing failed for conv ${E}`,{error:a.error}),b.lastResponse={success:!1,error:"Internal tool processing failed",errorDetails:a.error},d=m.O;break}z.info(`Adding ${a.value.toolCallMessages.length} internal tool result messages for conv ${E}`);let c=a.value.toolCallMessages.map(a=>({...a,id:crypto.randomUUID(),timestamp:Date.now(),processNodeId:b.currentNodeId}));b.messages.push(...c),e.FlowExecutor.conversationStates.set(E,b),z.info(`Continuing loop for conv ${E} after internal tool processing (flujo=false).`);continue}if(g.length>0){z.info(`[flujo=false] Found ${g.length} external tools for conv ${E}. Wrapping in XML and returning.`);let a=[];for(let b of g)if("function"===b.type)try{let c=JSON.parse(b.function.arguments||"{}"),d="";for(let a in c){let b=String(c[a]).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'");d+=`
|
|
3
|
+
<${a}>${b}</${a}>`}a.push(`<${b.function.name}>${d}
|
|
4
|
+
</${b.function.name}>`)}catch(c){z.error(`[flujo=false] Failed to parse arguments for external tool ${b.function.name}`,{args:b.function.arguments,error:c,convId:E}),a.push(`<${b.function.name}>
|
|
5
|
+
<error>Failed to parse arguments: ${c instanceof Error?c.message:String(c)}</error>
|
|
6
|
+
</${b.function.name}>`)}b.lastResponse={_flujo_xml_tools:a.join("\n\n")},d=m.g4,z.info(`[flujo=false] Prepared XML for external tools. Exiting loop for conv ${E}.`);break}z.warn(`[flujo=false] TOOL_CALL_ACTION received for conv ${E} but no tools found after classification. Treating as final.`),d=m.g4;break}z.warn(`TOOL_CALL_ACTION received for conv ${E} but no tool_calls found in last message. Treating as final.`),d=m.g4;break}let c=await e.FlowExecutor.resolveHandoff(b,d);if(c.isSuccessorEdge){z.info(`[Action Handling] Step ${J}: Handling Handoff Action (Edge ID) for conv ${E}`),z.info(`Handoff action received for conv ${E}. Edge: ${d}`);let a=c.targetNodeId;if("string"==typeof a&&a.length>0){let c,f=b.messages.length>0?b.messages[b.messages.length-1]:null;if(f?.role==="assistant"&&f.tool_calls){let e=f.tool_calls.find(a=>"function"===a.type&&("handoff"===a.function.name||a.function.name.startsWith("handoff_to_")));if(e){if(c=e.id,z.debug(`Found handoff tool call ID: ${c} for edge ${d}`),"function"===e.type)try{let c=JSON.parse(e.function.arguments||"{}"),d="string"==typeof c?.prompt?c.prompt.trim():"",f=Array.isArray(c?.parallelFlows)?c.parallelFlows.filter(a=>"string"==typeof a&&""!==a.trim()):void 0,g=c?.concurrencyLimit,h="number"==typeof g&&g>=1?Math.floor(g):void 0;(d||f&&f.length>0)&&(b.handoffInput={targetNodeId:a,prompt:d,...f&&f.length>0?{parallelFlows:f}:{},...void 0!==h?{concurrencyLimit:h}:{}},z.info(`Captured caller handoff input for node ${a}`,{promptChars:d.length,fanoutCount:f?.length??0}))}catch(a){z.warn(`Could not parse handoff tool-call arguments for edge ${d}; ignoring caller input`,{parseError:a})}let f={id:crypto.randomUUID(),role:"tool",tool_call_id:c,content:JSON.stringify({status:"Handoff processed",targetNodeId:a}),timestamp:Date.now(),processNodeId:b.currentNodeId};b.messages.push(f),z.info(`Appended tool result message for handoff tool call ${c}`)}else z.warn(`Handoff action received for edge ${d}, but could not find corresponding handoff tool call in last assistant message.`)}else z.warn(`Handoff action received for edge ${d}, but the last message was not an assistant message with tool calls.`);N();let g=b.currentNodeId;if(b.currentNodeId=a,b.handoffRequested=void 0,K({type:"handoff",from:g?{nodeId:g}:void 0,toNodeId:a,edgeId:d}),z.info(`Transitioning conv ${E} to node ${b.currentNodeId}`),e.FlowExecutor.conversationStates.set(E,b),P){z.info(`[Debug Step] Paused after handoff to node ${b.currentNodeId} for conv ${E}.`),Q();break}z.info(`Continuing loop for conv ${E} after handoff.`);continue}z.error(`Handoff failed for conv ${E}: Successor node for edge ${d} has invalid ID.`),b.lastResponse={success:!1,error:`Handoff failed: Target node for edge ${d} has invalid ID.`},d=m.O;break}if(d===m.E5){z.info(`[Action Handling] Step ${J}: Handling STAY_ON_NODE_ACTION for conv ${E}`),z.info(`Stay on node action received for conv ${E} at step ${J}`);break}z.warn(`Unrecognized action '${d}' received at step ${J} for conv ${E}. Treating as final response.`),d=m.g4;break}}catch(a){if(z.error(`Unhandled error during execution loop for conv ${E}`,{loopError:a}),d!==m.O&&O()&&(b.status="error",b.lastResponse={success:!1,error:"Execution cancelled by user."},d=m.O),d!==m.O){let c=a?.details;b.lastResponse={success:!1,error:a instanceof Error?a.message:String(a),errorDetails:a instanceof Error?{name:a.name,message:a.message,stack:a.stack,...c&&"object"==typeof c?c:{}}:void 0},d=m.O}}d!==m.O&&O()&&(z.info(`Cancellation flag set at run end for conv ${E}; reporting cancelled instead of '${b.status}'.`),b.status="error",b.lastResponse={success:!1,error:"Execution cancelled by user."},d=m.O),d===m.O&&"error"!==b.status&&(b.status="error");let R=Date.now()-h,S=b.status||(d===m.g4?"completed":d===m.O?"error":"running");if(z.info(`Execution finished for conv ${E}. Final Action: ${d}, Final Status: ${S}`,{duration:`${R}ms`}),N(),("completed"===S||"error"===S)&&(K({type:"run:done",status:S}),"schedule"!==b.source&&(b.runDepth??0)===0)){let a=b.messages[b.messages.length-1],c=a&&"assistant"===a.role&&"string"==typeof a.content?a.content:void 0;B(b,S,c)}try{if(b.updatedAt=Date.now(),"New Conversation"===b.title&&b.messages.length>0){let a=b.messages.find(a=>"user"===a.role);a&&"string"==typeof a.content&&(b.title=y(a.content),z.verbose(`Updated conversation title for ${E} before final return to: ${b.title}`))}await i(F,b),z.debug(`Saved final state for conversation ${E} before returning.`)}catch(a){z.error(`Failed to save final state for conversation ${E}:`,a)}(0,g.isConversationDeleted)(E)?e.FlowExecutor.conversationStates.delete(E):e.FlowExecutor.conversationStates.set(E,b);let T=()=>{u&&("completed"===b.status||"error"===b.status)&&e.FlowExecutor.conversationStates.delete(E)},U={conversationId:b.conversationId||E,messages:b.messages,usage:b.usage,finalAction:d,sharedState:b};if("paused_debug"===b.status)return z.info(`Returning paused debug state for conv ${E}`),{...U,status:"paused_debug",outputText:"",pendingToolCalls:b.pendingToolCalls};if("error"===b.status||d===m.O){let a,c="Unknown error during execution",d=500;if("object"==typeof b.lastResponse&&null!==b.lastResponse)if("success"in b.lastResponse&&!1===b.lastResponse.success&&"error"in b.lastResponse&&"string"==typeof b.lastResponse.error){if(c=b.lastResponse.error,"errorDetails"in b.lastResponse&&"object"==typeof b.lastResponse.errorDetails&&null!==b.lastResponse.errorDetails){let e=b.lastResponse.errorDetails;(a={message:"string"==typeof e.message?e.message:c,type:"string"==typeof e.type?e.type:void 0,code:"string"==typeof e.code?e.code:void 0,param:"string"==typeof e.param?e.param:void 0,status:"number"==typeof e.status?e.status:void 0,stack:"string"==typeof e.stack?e.stack:void 0,name:"string"==typeof e.name?e.name:void 0}).status&&(d=a.status)}}else try{c=`Unexpected error state object: ${JSON.stringify(b.lastResponse)}`}catch{c="Unexpected error state object (unserializable)"}else"string"==typeof b.lastResponse&&(c=b.lastResponse);return a?a.message=a.message||c:a={message:c},z.error(`Returning error result for conv ${E}`,{errorMessage:c,errorDetails:a,statusCode:d}),"error"!==b.status&&(b.status="error"),T(),{...U,status:"error",outputText:"",error:{message:c,details:a,statusCode:d}}}let V=b.messages.length>0?b.messages[b.messages.length-1]:null,W="",X="";"object"==typeof b.lastResponse&&null!==b.lastResponse&&"_flujo_xml_tools"in b.lastResponse?(X=b.lastResponse._flujo_xml_tools,W=V?.role==="assistant"&&"string"==typeof V.content?V.content:"",W+=(W?"\n\n":"")+X,b.lastResponse=W):W="string"==typeof b.lastResponse?b.lastResponse:V?.role==="assistant"&&"string"==typeof V.content?V.content:d!==m.Jp||l?"Processing complete.":"";let Y=X?void 0:V?.role==="assistant"?V.tool_calls:void 0;return z.info(`Returning success result for conv ${E}`,{action:d,status:b.status,flujo:l,requireApproval:p,flujodebug:r}),T(),{...U,status:b.status||(d===m.g4?"completed":"running"),outputText:W,toolCalls:Y,pendingToolCalls:b.pendingToolCalls}}},54898:(a,b,c)=>{c.d(b,{nC:()=>m});var d=c(8336),e=c(78606),f=c(27386),g=c(33132);function h(a){return a.data?.type??a.type??"unknown"}function i(a){return a.data?.label||a.id}function j(a){return a.data?.edgeType==="mcp"}function k(a){return a.data?.edgeType==="resource"}function l(a){return j(a)||k(a)}function m(a,b={}){let c=[],n=Array.isArray(a?.nodes)?a.nodes:[],o=Array.isArray(a?.edges)?a.edges:[],p=(a,b,d,e)=>c.push({severity:a,code:b,message:d,nodeId:e?.id,nodeLabel:e?i(e):void 0}),q=new Map((b.models??[]).map(a=>[a.id,a])),r=new Map((b.servers??[]).map(a=>[a.name,a])),s=!!b.models,t=!!b.servers,u=n.filter(a=>"start"===h(a)),v=n.filter(a=>"finish"===h(a)),w=n.filter(a=>"process"===h(a)),x=n.filter(a=>"mcp"===h(a));if(0===u.length)p("error","no-start-node","The flow has no Start node, so it has no entry point.");else if(u.length>1)for(let a of u.slice(1))p("error","multiple-start-nodes","The flow has more than one Start node; only one is allowed.",a);for(let a of(0===v.length&&p("warning","no-finish-node","The flow has no Finish node; it will run but never reaches a defined end."),w)){let b=a.data?.properties??{},c=b.boundModel;if(c){if(s&&!q.has(c)){let c="string"==typeof b.modelName&&b.modelName?` (was "${b.modelName}")`:"";p("error","process-model-missing",`Process node "${i(a)}" is bound to a model that no longer exists${c}.`,a)}}else p("error","process-missing-model",`Process node "${i(a)}" has no model bound.`,a)}for(let a of x){let b=(a.data?.properties??{}).boundServer;if(b){if(t&&!r.has(b))p("warning","mcp-server-missing",`MCP node "${i(a)}" is bound to server "${b}", which isn't in your current MCP server list. It may be offline (e.g. not connected), renamed, or removed — if it was renamed or removed, rebind this node.`,a);else if(t){let c=r.get(b);if(c.status&&"connected"!==c.status){let d="disabled"===c.status?"disabled":`not connected (${c.status})`;p("warning","mcp-server-disconnected",`MCP node "${i(a)}" is bound to server "${b}", which is currently ${d}. It will provide tools again once it reconnects.`,a)}}}else p("warning","mcp-missing-server",`MCP node "${i(a)}" is not bound to a server.`,a);o.some(b=>j(b)&&(b.source===a.id||b.target===a.id))||p("warning","mcp-node-unconnected",`MCP node "${i(a)}" is not connected to any Process node.`,a)}for(let a of n.filter(a=>"resource"===h(a))){let b=a.data?.properties??{},c="run"===b.scope?"run":"mcp",d="string"==typeof b.boundServer?b.boundServer:"",e="string"==typeof b.uri?b.uri:"",g="string"==typeof b.runName?b.runName.trim():"";"mcp"!==c||d&&e||p("warning","resource-missing-binding",`Resource node "${i(a)}" has no ${!d?"server":"resource URI"} bound; connected steps will receive nothing.`,a),"run"!==c||g||p("warning","resource-missing-binding",`Resource node "${i(a)}" is a run artifact with no name; give it a name so steps can produce/consume it.`,a),"run"===c&&g&&!(0,f.qW)(g)&&p("warning","resource-run-name",`Resource node "${i(a)}" is named "${g}", which is not a valid artifact name (letters, digits, _ and - only, not starting with a digit); it will be awkward to reference with \${res:...}.`,a),"mcp"===c&&d&&t&&!r.has(d)&&p("warning","resource-server-missing",`Resource node "${i(a)}" is bound to server "${d}", which isn't in your current MCP server list.`,a);let h=o.filter(b=>k(b)&&(b.source===a.id||b.target===a.id));0===h.length&&p("warning","resource-node-unconnected",`Resource node "${i(a)}" is not connected to any Process node.`,a);let j=h.filter(b=>b.target===a.id);"mcp"===c&&j.length>0&&p("error","resource-produce-static",`Resource node "${i(a)}" is a static MCP resource, but a step writes INTO it. Only run artifacts (scope "run") can be produced by a step — flip the edge or make this a run artifact.`,a),"run"===c&&j.length>1&&p("warning","resource-multiple-producers",`Resource node "${i(a)}" is produced by ${j.length} steps; the last writer wins. Consider one producer per artifact.`,a),"run"===c&&0===j.length&&h.length>0&&p("warning","resource-consumed-never-produced",`Resource node "${i(a)}" is consumed but no step in this flow produces it; it resolves to nothing unless an earlier run captured it.`,a)}for(let a of n.filter(a=>"signal"===h(a))){let b=a.data?.properties??{};("string"==typeof b.topic?b.topic.trim():"")||p("warning","signal-missing-topic",`Signal node "${i(a)}" has no topic; it emits nothing. Give it a topic that a flow-event trigger can listen for.`,a)}if(u.length>0){let a=function(a){let b=new Map,c=(a,c)=>{b.has(a)||b.set(a,[]),b.get(a).push(c)};for(let b of a)!l(b)&&(c(b.source,b.target),b.data?.bidirectional&&c(b.target,b.source));return b}(o);for(let b of u)a.get(b.id)?.length||p("error","start-no-outgoing","The Start node is not connected to anything; the flow cannot run.",b);let b=function(a,b){let c=new Set(a),d=[...a];for(;d.length;){let a=d.shift();for(let e of b.get(a)??[])c.has(e)||(c.add(e),d.push(e))}return c}(u.map(a=>a.id),a);for(let a of[...w,...v])b.has(a.id)||p("warning","unreachable-node",`${"finish"===h(a)?"Finish":"Process"} node "${i(a)}" is not reachable from the Start node.`,a)}for(let a of n.filter(a=>"subflow"===h(a))){let b=o.filter(b=>!l(b)&&(b.source===a.id||b.target===a.id&&!!b.data?.bidirectional));b.length>1&&p("error","subflow-multiple-outgoing",`Subflow node "${i(a)}" has ${b.length} outgoing connections; a subflow can only have one (either A > B > C or a bidirectional A <> B).`,a);let c=a.data?.properties??{},d="string"==typeof c.subflowId&&c.subflowId?c.subflowId:void 0,e=Array.isArray(c.parallelSubflowIds)?c.parallelSubflowIds.filter(a=>"string"==typeof a&&!!a):[];d&&e.length>0&&p("error","subflow-both-targets",`Subflow node "${i(a)}" sets both a single "subflowId" and "parallelSubflowIds"; use one or the other.`,a);let g=!0===c.mapOverList;g&&e.length>0&&p("error","subflow-map-and-parallel",`Subflow node "${i(a)}" combines "mapOverList" with "parallelSubflowIds"; map-over-list runs a single child once per item and cannot be combined with parallel fan-out.`,a),g&&!d&&0===e.length&&p("error","subflow-map-no-child",`Subflow node "${i(a)}" has "mapOverList" but no child flow ("subflowId"); select a flow to run once per item.`,a);let h="string"==typeof c.parallelSubflowIdsVar?c.parallelSubflowIdsVar.trim():"";if(h&&((0,f.qW)(h)||p("warning","subflow-parallel-var-name",`Subflow node "${i(a)}" reads dynamic fan-out targets from "${h}", which is not a valid variable name (letters, digits, _ and - only, not starting with a digit); it will be awkward to capture with \${var:...}.`,a),g&&p("error","subflow-map-and-parallel-var",`Subflow node "${i(a)}" combines "mapOverList" with dynamic fan-out ("parallelSubflowIdsVar"); map-over-list runs a single child once per item and cannot be combined with fan-out.`,a),n.some(a=>{let b=a.data?.properties?.captureVariable;return"string"==typeof b&&b.trim()===h})||p("warning","subflow-parallel-var-uncaptured",`Subflow node "${i(a)}" reads dynamic fan-out targets from variable "${h}", but no node captures it (captureVariable). It may be seeded by the caller; otherwise it resolves to no targets and the node falls back to its static parallel list.`,a)),!0===c.allowCallerFanout&&g&&p("error","subflow-map-and-caller-fanout",`Subflow node "${i(a)}" combines "mapOverList" with agentic fan-out ("allowCallerFanout"); map-over-list runs a single child once per item and cannot be combined with fan-out.`,a),e.length>0){let b=c.concurrencyLimit;"number"==typeof b&&b<1&&p("warning","subflow-concurrency-limit",`Subflow node "${i(a)}" has a concurrencyLimit of ${b}; it must be at least 1 (the runtime default will be used).`,a)}}{let a=new Map(n.map(a=>[a.id,a])),b=new Set;for(let c of o){if(l(c))continue;let d=c.data?.condition;if(!d||"object"!=typeof d)continue;let f=a.get(c.source),g=f?h(f):"unknown";if("process"!==g){p("error","edge-condition-non-process",`An edge leaving ${"unknown"===g?"an unknown":`the ${g}`} node "${f?i(f):c.source}" has a routing condition, but only process nodes can route on a condition.`,f??void 0);continue}b.add(c.source),(0,e.C)(d.kind)?"always"===d.kind||("string"!=typeof d.value||0===d.value.length?p("warning","edge-condition-value",`Process node "${i(f)}" has an outgoing edge condition with no "value"; it will never match.`,f):"regex"!==d.kind||(0,e.wM)(d.value)||p("warning","edge-condition-regex",`Process node "${i(f)}" has an outgoing edge with a regex condition that does not compile; it will never match.`,f)):p("warning","edge-condition-kind",`Process node "${i(f)}" has an outgoing edge whose condition kind "${String(d.kind)}" is unknown; it will never match.`,f)}for(let c of b){let b=a.get(c);b&&(o.some(a=>!l(a)&&(a.source===c?!a.data?.condition||"always"===a.data.condition.kind&&!a.data.condition.negate:!!(a.target===c&&a.data?.bidirectional)))||p("warning","edge-condition-no-fallback",`Process node "${i(b)}" has conditioned outgoing edges but no bare fallback edge; if no condition matches, the flow ends here.`,b))}}{let a=new Set;for(let b of n){let c=b.data?.properties?.captureVariable;if("string"==typeof c&&c.trim()){let d=c.trim();a.add(d),(0,f.qW)(d)||p("warning","capture-var-name",`${"subflow"===h(b)?"Subflow":"Process"} node "${i(b)}" captures into "${d}", which is not a valid variable name (letters, digits, _ and - only, not starting with a digit); it will be awkward to reference with \${var:...}.`,b)}}let b=["promptTemplate","isolatedPrompt"],c=new Set;for(let d of n){let e=d.data?.properties??{};for(let g of b){let b=e[g];if("string"==typeof b&&b)for(let e of(0,f.T9)(b)){if(a.has(e))continue;let b=`${d.id}:${e}`;c.has(b)||(c.add(b),p("warning","var-ref-uncaptured",`${i(d)} references \${var:${e}} but no step in this flow captures "${e}" (via captureVariable). It resolves to empty unless supplied as a run input — check for a typo or a step ordered after this one.`,d))}}}}{for(let a of n){let b=a.data?.properties?.captureKv;if("string"==typeof b&&b.trim()){let{key:c}=(0,g.g2)(b.trim());(0,g.ng)(c)||p("warning","capture-kv-name",`${"subflow"===h(a)?"Subflow":"Process"} node "${i(a)}" captures into kv "${b.trim()}", whose key is not a valid name (letters, digits, _ and - only, not starting with a digit); it will be awkward to reference with \${kv:...}.`,a)}}let a=["promptTemplate","isolatedPrompt"],b=new Set;for(let c of n){let d=c.data?.properties??{};for(let e of a){let a=d[e];if("string"==typeof a&&a)for(let d of(0,g.pf)(a)){let{key:a}=(0,g.g2)(d);if((0,g.ng)(a))continue;let e=`${c.id}:${d}`;b.has(e)||(b.add(e),p("warning","kv-ref-name",`${i(c)} references \${kv:${d}}, whose key is not a valid name (letters, digits, _ and - only, not starting with a digit); it resolves to empty.`,c))}}}}for(let a of w){let c=a.data?.properties?.promptTemplate;if("string"!=typeof c||!c)continue;let e=function(a,b,c){let d=new Map(b.map(a=>[a.id,a])),e=new Set;for(let b of c){if(!j(b))continue;let c=null;if(b.source===a?c=b.target:b.target===a&&(c=b.source),!c)continue;let f=d.get(c);if(!f||"mcp"!==h(f))continue;let g=f.data?.properties?.boundServer;"string"==typeof g&&g&&e.add(g)}return e}(a.id,n,o),f=new Set;for(let g of(0,d.A$)(c)){if("handoff"===g.server)continue;let c=`${g.kind}:${g.server}:${g.name}`;!f.has(c)&&(f.add(c),e.has(g.server)?"tool"===g.kind&&b.serverTools&&b.serverTools[g.server]&&!b.serverTools[g.server].includes(g.name)&&p("warning","tool-unavailable",`Process node "${i(a)}" references tool "${g.name}" which server "${g.server}" no longer provides.`,a):p("error","tool-pill-disconnected",`Process node "${i(a)}" references ${g.kind} "${g.name}" from server "${g.server}", but it is not connected to that server (the MCP node was removed or the server was renamed).`,a))}}let y=c.filter(a=>"error"===a.severity).length,z=c.length-y;return{issues:c,errorCount:y,warningCount:z,isRunnable:0===y}}}};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";exports.id=2859,exports.ids=[2859],exports.modules={3233:(a,b,c)=>{c.d(b,{g:()=>f});var d=c(79646);let e=(0,c(50846).h)("utils/process/killProcessTree");function f(a,b=2e3){let c=a.pid;if(void 0===c)return()=>{};if("win32"===process.platform){try{(0,d.spawn)("taskkill",["/pid",String(c),"/T","/F"]).on("error",a=>e.debug(`taskkill failed for pid ${c}: ${a.message}`))}catch(a){e.debug(`taskkill spawn threw for pid ${c}: ${a instanceof Error?a.message:String(a)}`)}return()=>{}}try{process.kill(-c,"SIGTERM")}catch{}let g=setTimeout(()=>{try{process.kill(-c,"SIGKILL")}catch{}},b);return g.unref?.(),()=>clearTimeout(g)}},29715:(a,b,c)=>{c.d(b,{N:()=>h});var d=c(23823),e=c(92372),f=c(60184);let g=(0,c(50846).h)("backend/execution/flow/loadConversationState");async function h(a){try{(0,e.ln)(a)}catch{g.warn("Rejected unsafe conversationId on load",{conversationId:a});return}if(d.FlowExecutor.conversationStates.has(a))return g.debug("Loaded state from memory",{conversationId:a}),d.FlowExecutor.conversationStates.get(a);let b=`conversations/${a}`;try{let c=await (0,e.YM)(b,void 0);if(c)return g.debug("Loaded state from storage",{conversationId:a}),await (0,f.jM)(c),d.FlowExecutor.conversationStates.set(a,c),c}catch(b){g.warn("Error loading conversation state from storage",{conversationId:a,error:b})}}},42859:(a,b,c)=>{c.d(b,{internalCallTool:()=>ac,internalToolDefinitions:()=>y});var d=c(33873),e=c.n(d),f=c(29021),g=c(79646),h=c(3233),i=c(50846),j=c(87821),k=c(20433),l=c(4771),m=c(52189),n=c(57214),o=c(38204),p=c(29715),q=c(60184),r=c(14214),s=c(43326),t=c(78325),u=c(30227),v=c(81495);let w=(0,i.h)("backend/services/mcp/internalTools");function x(a,b=!1){return{content:[{type:"text",text:"string"==typeof a?a:JSON.stringify(a,null,2)}],...b?{isError:!0}:{}}}function y(){return[...(0,u.cI)(),{name:"execute_flow",description:"Run another FLUJO flow (by name or id) with the given input and return its final output. The run is ephemeral (no chat conversation is created). Use list_flow_building_blocks to see the available flows. Nested runs are limited in depth — a flow cannot recurse through itself indefinitely.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."},input:{type:"string",description:"The message to send to the flow as the user turn."}},required:["flow","input"]}},{name:"read_flow",description:"Read a FLUJO flow's full definition (by name or id): its nodes with their prompts, bound models, attached MCP servers/tools and input/output modes, plus the control and MCP edges. Note this is the COMPILED flow (node ids, not FlowSpec keys) — to change it, author a fresh FlowSpec and call update_flow.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."}},required:["flow"]}},{name:"update_flow",description:"REPLACE an existing FLUJO flow's definition (by name or id) with a newly compiled FlowSpec, keeping the flow's id — so planned executions, subflow nodes and conversations that reference it keep working. The spec format is the same as create_flow/validate_flow_spec (see those tool descriptions); saving is gated on zero validation errors. The replaced definition is archived automatically — list_flow_versions / revert_flow can restore it. Note that manual canvas edits made in the builder are part of what gets replaced. Use read_flow first to see what you are replacing.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id of the flow to replace."},spec:{type:"object",description:"The FlowSpec object (see the create_flow tool description for the format)."}},required:["flow","spec"]}},{name:"list_flow_versions",description:"List a flow's archived versions (by name or id), newest first. A version is created automatically whenever the flow's definition is overwritten (builder save, update_flow, revert_flow) and holds the definition that was replaced. Use read_flow_version to inspect one and revert_flow to restore one.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."}},required:["flow"]}},{name:"read_flow_version",description:"Read one archived version of a flow (see list_flow_versions): the full definition it held before it was replaced, in the same format as read_flow.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."},version:{type:"string",description:"The version id (see list_flow_versions)."}},required:["flow","version"]}},{name:"revert_flow",description:"Restore an archived version (see list_flow_versions) as the flow's CURRENT definition. The definition being reverted away from is archived first, so a revert can itself be undone. References by flow id keep working.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."},version:{type:"string",description:"The version id to restore (see list_flow_versions)."}},required:["flow","version"]}},{name:"delete_flow",description:"PERMANENTLY delete a FLUJO flow (by name or id). This cannot be undone — the flow's version history is deleted with it. Verify the target with list_flow_building_blocks first.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."}},required:["flow"]}},{name:"list_mcp_servers",description:"List the MCP servers configured in this FLUJO instance with their transport, enabled/disabled state and live connection status. Config details (env vars, headers, credentials) are never included.",inputSchema:{type:"object",properties:{}}},{name:"list_mcp_server_tools",description:"List the tools of one configured MCP server (name, description, input schema). Use together with call_mcp_tool for servers that are not bound to this flow.",inputSchema:{type:"object",properties:{server:{type:"string",description:"The FLUJO server name (see list_mcp_servers)."}},required:["server"]}},{name:"call_mcp_tool",description:"Call a tool on any configured MCP server by server name + tool name. This lets you use servers that are not bound to the current flow. Check the tool's input schema with list_mcp_server_tools first.",inputSchema:{type:"object",properties:{server:{type:"string",description:"The FLUJO server name."},tool:{type:"string",description:"The tool name on that server."},args:{type:"object",description:"Arguments for the tool (per its input schema)."},timeout:{type:"number",description:"Optional timeout in seconds."}},required:["server","tool"]}},{name:"restart_mcp_server",description:"Force-reconnect a configured MCP server (tears the connection down and rebuilds it). Useful when a server is in an error state after a config or environment change.",inputSchema:{type:"object",properties:{server:{type:"string",description:"The FLUJO server name."}},required:["server"]}},{name:"set_mcp_server_enabled",description:"Enable or disable a configured MCP server. Disabling disconnects it and prevents any further use; enabling connects it.",inputSchema:{type:"object",properties:{server:{type:"string",description:"The FLUJO server name."},enabled:{type:"boolean",description:"true to enable + connect, false to disable + disconnect."}},required:["server","enabled"]}},{name:"list_models",description:"List the models configured in this FLUJO instance (id, name, display name, description, provider, base URL, context window). API keys are never included. Reference models by id or name in FlowSpecs.",inputSchema:{type:"object",properties:{}}},{name:"list_planned_executions",description:"List the planned (scheduled/triggered) executions in this FLUJO instance with their trigger type, enabled state, armed status and last run outcome.",inputSchema:{type:"object",properties:{}}},{name:"run_planned_execution",description:"Fire a planned execution immediately (by id, see list_planned_executions) and return the run record with its output.",inputSchema:{type:"object",properties:{id:{type:"string",description:"The planned execution id."}},required:["id"]}},{name:"update_planned_execution",description:'Modify an existing planned execution (by id or name, see list_planned_executions). Patch any of: "enabled" (turn the schedule on/off), "prompt" (the run prompt), "flowId" (the flow to run — accepts a flow name or id), "cron" (a convenience for the trigger\'s cron pattern — works for schedule / mcp-poll / url-watch triggers) or a full "trigger" object for complete control. Flow-driven cadence changes are clamped to a minimum interval (a runaway every-second schedule is rejected). The webhook secret token is never returned.',inputSchema:{type:"object",properties:{execution:{type:"string",description:"The planned execution id or name."},enabled:{type:"boolean",description:"Enable or disable the execution."},prompt:{type:"string",description:"The run prompt."},flowId:{type:"string",description:"The flow to run — a flow name or id (resolved to the flow id)."},cron:{type:"string",description:"Cron pattern (croner syntax; 6-field form for seconds) for the trigger's schedule. Applies to schedule / mcp-poll / url-watch triggers."},trigger:{type:"object",description:"Full trigger config object (escape hatch for complete control). Prefer the named fields above."}},required:["execution"]}},{name:"create_planned_execution",description:'Create a new planned execution: bind a flow to a trigger so it runs headlessly. Provide "name", "flow" (a flow name or id), an optional "prompt", optional "enabled" (default true), and EITHER a full "trigger" object OR a convenience "cron" (which creates a schedule trigger). Flow-driven cadence is clamped to a minimum interval. A webhook trigger\'s secret token is minted server-side and never returned.',inputSchema:{type:"object",properties:{name:{type:"string",description:"A name for the planned execution."},flow:{type:"string",description:"The flow to run — a flow name or id."},prompt:{type:"string",description:"The run prompt (may be empty)."},enabled:{type:"boolean",description:"Whether to arm the trigger immediately (default true)."},cron:{type:"string",description:'Cron pattern for a schedule trigger (convenience — use "trigger" for other trigger types).'},trigger:{type:"object",description:"Full trigger config object (schedule / webhook / file-watch / mcp-poll / url-watch)."}},required:["name","flow"]}},{name:"delete_planned_execution",description:"Permanently delete a planned execution (by id or name, see list_planned_executions), along with its run history. This cannot be undone.",inputSchema:{type:"object",properties:{execution:{type:"string",description:"The planned execution id or name."}},required:["execution"]}},{name:"list_conversations",description:"List the chat conversations stored in this FLUJO instance (id, title, bound flow, status, created/updated timestamps), newest first. Use read_conversation to get a transcript.",inputSchema:{type:"object",properties:{limit:{type:"number",description:"Optional maximum number of conversations to return (newest first). Default: all."}}}},{name:"read_conversation",description:'Read one chat conversation\'s transcript by conversation id (see list_conversations). Returns the displayed messages: system prompts are excluded, nested subflow steps carry a "depth" marker, assistant tool calls are summarized. Long conversations return only the most recent messages — raise "limit" to get more.',inputSchema:{type:"object",properties:{conversation:{type:"string",description:"The conversation id."},limit:{type:"number",description:"Maximum number of most-recent messages to return (default 50). The total transcript size is capped regardless."}},required:["conversation"]}},{name:"terminal",description:'Run a shell command on the FLUJO host and return its combined stdout/stderr plus exit code. Runs through a shell, so pipes and chained commands (e.g. "npm install && npm run build") work. Use it to install dependencies, build a cloned MCP server, inspect the filesystem, or run diagnostics. Working directory defaults to the FLUJO data directory (where cloned servers live under mcp-servers/); pass "cwd" to run elsewhere. The command is killed if it exceeds the timeout, and very large output is truncated.',inputSchema:{type:"object",properties:{command:{type:"string",description:'The shell command line to execute, e.g. "npm install && npm run build".'},cwd:{type:"string",description:"Optional working directory. Relative paths resolve against the FLUJO data directory. Defaults to the data directory."},timeout:{type:"number",description:"Optional timeout in seconds (default 60, max 600). The command is killed if it runs longer."}},required:["command"]}},{name:"kv_get",description:'Read a value from FLUJO\'s PERSISTENT key-value store (the ${kv:NAME} store) — state that survives ACROSS flow runs (loop counters, cursors, flags). Returns { found, value }. Defaults to the instance-global board; pass "scope" to target another board (e.g. a flow-folder board id). Values are plain strings, never secrets.',inputSchema:{type:"object",properties:{name:{type:"string",description:"The key to read (an identifier: letters, digits, _ and -, not starting with a digit)."},scope:{type:"string",description:'Optional board id to read from. Defaults to "global".'}},required:["name"]}},{name:"kv_set",description:'Write a value to FLUJO\'s PERSISTENT key-value store (the ${kv:NAME} store) — state that survives ACROSS flow runs. Last-write-wins. Defaults to the instance-global board; pass "scope" to target another board. Values are plain strings (never secrets — use ${global:} for those) and are size-capped; an oversized write is refused with { saved:false, skipped }.',inputSchema:{type:"object",properties:{name:{type:"string",description:"The key to write (an identifier: letters, digits, _ and -, not starting with a digit)."},value:{type:"string",description:"The string value to store."},scope:{type:"string",description:'Optional board id to write to. Defaults to "global".'}},required:["name","value"]}}]}async function z(a){let b=await j.flowService.loadFlows();return b.find(b=>b.id===a)??b.find(b=>b.name===a)}async function A(a){let b=String(a?.flow??"").trim();if(!b)return x({error:'Provide "flow": a flow name or id.'},!0);let c=await z(b);if(!c)return x({error:`No flow named or with id "${b}". Use list_flow_building_blocks to see the available flows.`},!0);let d=global.__flujo_internal_flow_depth??0;if(d>=4)return x({error:`execute_flow nesting limit (4) reached — refusing to start "${c.name}" to prevent runaway recursion.`},!0);global.__flujo_internal_flow_depth=d+1;try{let b=await (0,n.runFlow)({flowId:c.id,prompt:String(a?.input??""),mode:"ephemeral",flujo:!0,requireApproval:!1});if(b.flowNotFound)return x({error:`Flow not found: ${b.flowNotFound.name}`},!0);if("error"===b.status)return x({error:b.error?.message??"Unknown error during flow execution."},!0);return x(b.outputText??"")}finally{global.__flujo_internal_flow_depth=d}}async function B(a){let b=String(a?.flow??"").trim();if(!b)return x({error:'Provide "flow": a flow name or id.'},!0);let c=await z(b);if(!c)return x({error:`No flow named or with id "${b}".`},!0);let d=await j.flowService.deleteFlow(c.id);return d.success?x({deleted:!0,flowId:c.id,flowName:c.name}):x({error:d.error??`Failed to delete flow "${c.name}".`},!0)}function C(a){let b=a.nodes.map(a=>{let{mcpNodes:b,...c}=a.data?.properties??{};return{id:a.id,type:a.type,label:a.data?.label,...a.data?.description?{description:a.data.description}:{},properties:c}}),c=a.edges.map(a=>{let b=a.data;return{from:a.source,to:a.target,type:b?.edgeType==="mcp"?"mcp":b?.edgeType==="resource"?"resource":"control",...b?.bidirectional?{bidirectional:!0}:{}}});return{id:a.id,name:a.name,...a.description?{description:a.description}:{},nodes:b,edges:c}}async function D(a){let b=String(a?.flow??"").trim();if(!b)return x({error:'Provide "flow": a flow name or id.'},!0);let c=await z(b);return c?x({...C(c),note:"This is the compiled flow (node ids, not FlowSpec keys). To change it, author a fresh FlowSpec and call update_flow — it replaces the whole definition while keeping this flow id."}):x({error:`No flow named or with id "${b}". Use list_flow_building_blocks to see the available flows.`},!0)}async function E(a){let b=String(a?.flow??"").trim();if(!b)return x({error:'Provide "flow": a flow name or id.'},!0);let c=await z(b);if(!c)return x({error:`No flow named or with id "${b}".`},!0);let d=await j.flowService.listFlowVersions(c.id);return x({flowId:c.id,flowName:c.name,versions:d,...0===d.length?{note:"No archived versions yet — versions appear once the flow's definition is overwritten for the first time."}:{}})}async function F(a){let b=String(a?.flow??"").trim(),c=String(a?.version??"").trim();if(!b||!c)return x({error:'Provide "flow" (name or id) and "version" (see list_flow_versions).'},!0);let d=await z(b);if(!d)return x({error:`No flow named or with id "${b}".`},!0);let e=await j.flowService.getFlowVersion(d.id,c);return e?x({versionId:e.versionId,savedAt:e.savedAt,...C(e.flow)}):x({error:`No version "${c}" of flow "${d.name}". Use list_flow_versions to see the archived versions.`},!0)}async function G(a){let b=String(a?.flow??"").trim(),c=String(a?.version??"").trim();if(!b||!c)return x({error:'Provide "flow" (name or id) and "version" (see list_flow_versions).'},!0);let d=await z(b);if(!d)return x({error:`No flow named or with id "${b}".`},!0);let e=await j.flowService.revertFlow(d.id,c);return e.success?x({reverted:!0,flowId:d.id,versionId:c,note:"The definition that was just replaced has been archived too, so this revert can itself be undone via list_flow_versions / revert_flow."}):x({error:e.error??`Failed to revert flow "${d.name}".`},!0)}async function H(a){let b=String(a?.flow??"").trim();if(!b)return x({error:'Provide "flow": the name or id of the flow to replace.'},!0);let c=function(a){let b=a?.spec;if("string"==typeof b)try{return JSON.parse(b)}catch{return null}return b??null}(a);if(!c)return x({error:'Provide a "spec" argument: a FlowSpec object (or a JSON string of one).'},!0);let d=await z(b);if(!d)return x({error:`No flow named or with id "${b}". Use list_flow_building_blocks to see the available flows.`},!0);let e=await (0,o.V)(c,{save:!0,updateFlowId:d.id});return e.success?x({flowId:e.flow.id,flowName:e.flow.name,nodeCount:e.flow.nodes.length,edgeCount:e.flow.edges.length,validation:e.validation,saved:e.saved,...e.saved?{note:`Flow "${e.flow.name}" was replaced (id ${e.flow.id} kept — existing references keep working).`}:{note:"NOT saved: validation found errors. The existing flow is unchanged. Fix the issues and call update_flow again."}},!e.saved):x({error:e.error,issues:e.issues??[]},!0)}async function I(a){let b=await a.loadServerConfigs();return Array.isArray(b)?x(await Promise.all(b.map(async b=>{let c="unknown";try{c=(await a.getServerStatus(b.name)).status}catch(a){w.debug(`list_mcp_servers: getServerStatus failed for ${b.name}`,a)}return{name:b.name,transport:b.transport,enabled:!b.disabled,status:c,...b.builtIn?{builtIn:!0}:{}}}))):x({error:b.error??"Failed to load server configs."},!0)}async function J(a,b){let c=String(b?.server??"").trim();if(!c)return x({error:'Provide "server": a FLUJO server name.'},!0);if(c===v._)return x(y().map(a=>({name:a.name,description:a.description,inputSchema:a.inputSchema})));let{tools:d,error:e}=await a.listServerTools(c);return e?x({error:e},!0):x(d.map(a=>({name:a.name,description:a.description,inputSchema:a.inputSchema})))}async function K(a,b){let c=String(b?.server??"").trim(),d=String(b?.tool??"").trim();if(!c||!d)return x({error:'Provide "server" and "tool".'},!0);if(c===v._)return x({error:`"${v._}" is this server — call its tools directly instead of through call_mcp_tool.`},!0);let e=b?.args&&"object"==typeof b.args&&!Array.isArray(b.args)?b.args:{},f="number"==typeof b?.timeout?b.timeout:void 0,g=await a.callTool(c,d,e,f);if(!g.success)return x({error:g.error??`Tool call failed on ${c}.`},!0);let h=g.data;return h&&Array.isArray(h.content)?h:x(h??{ok:!0})}async function L(a,b){let c=String(b?.server??"").trim();if(!c)return x({error:'Provide "server": a FLUJO server name.'},!0);if(c===v._)return x({ok:!0,note:`"${v._}" is the built-in server — it is always running.`});let d=await a.forceReconnect(c);if(!d.success)return x({error:d.error??`Failed to restart ${c}.`},!0);let e=await a.getServerStatus(c);return x({restarted:!0,server:c,status:e.status})}async function M(a,b){let c=String(b?.server??"").trim(),d=b?.enabled;if(!c||"boolean"!=typeof d)return x({error:'Provide "server" (string) and "enabled" (boolean).'},!0);if(c===v._)return x({error:`The built-in "${v._}" server cannot be disabled.`},!0);let e=await a.updateServerConfig(c,{disabled:!d});return"error"in e?x({error:e.error},!0):x({server:c,enabled:d})}async function N(){return x((await k.modelService.loadModels()).map(a=>({id:a.id,name:a.name,...a.displayName?{displayName:a.displayName}:{},...a.description?{description:a.description}:{},...a.provider?{provider:a.provider}:{},...a.baseUrl?{baseUrl:a.baseUrl}:{},...a.contextWindow?{contextWindow:a.contextWindow}:{}})))}async function O(){return x((await (0,l.z)().list()).map(({execution:a,status:b,lastRun:c})=>({id:a.id,name:a.name,enabled:a.enabled,flowId:a.flowId,triggerType:a.trigger?.type,armed:b?.armed??!1,...c?{lastRun:{status:c.status,firedAt:c.firedAt,...c.error?{error:c.error}:{}}}:{}})))}async function P(a){let b=String(a?.id??"").trim();if(!b)return x({error:'Provide "id": a planned execution id (see list_planned_executions).'},!0);let{record:c,error:d}=await (0,l.z)().runNow(b);return d||!c?x({error:d??"Run failed."},!0):x({runId:c.runId,status:c.status,firedAt:c.firedAt,...c.finishedAt?{finishedAt:c.finishedAt}:{},...c.outputText?{outputText:c.outputText}:{},...c.error?{error:c.error}:{}})}async function Q(a){let b=await (0,l.z)().list(),c=b.find(b=>b.execution.id===a),d=b.find(b=>b.execution.name===a);return(c??d)?.execution??null}function R(a){return{id:a.id,name:a.name,enabled:a.enabled,flowId:a.flowId,triggerType:a.trigger?.type}}function S(a,b){try{let c=(0,m.Z9)(a,b,5).map(a=>new Date(a).getTime()),d=1/0;for(let a=1;a<c.length;a++){let b=c[a]-c[a-1];b>0&&b<d&&(d=b)}return Number.isFinite(d)?d:null}catch{return null}}function T(a){let b=null;return("schedule"===a.type||"url-watch"===a.type?a.cron&&(b=S(a.cron,a.timezone)):"mcp-poll"===a.type&&(a.cron?b=S(a.cron,a.timezone):"number"==typeof a.intervalMs&&(b=a.intervalMs)),null!==b&&b<6e4)?`Cadence too fast: the trigger would fire about every ${Math.round(b/1e3)}s, but flow-driven schedule changes are clamped to a minimum interval of 60s. Choose a slower cadence (change it from the Planned Executions page for a faster one).`:null}async function U(a){let b,c=String(a?.execution??"").trim();if(!c)return x({error:'Provide "execution": a planned execution id or name (see list_planned_executions).'},!0);let d=await Q(c);if(!d)return x({error:`No planned execution with id or name "${c}". Use list_planned_executions to see them.`},!0);let e={};"boolean"==typeof a?.enabled&&(e.enabled=a.enabled),"string"==typeof a?.prompt&&(e.prompt=a.prompt);let f=String(a?.flowId??a?.flow??"").trim();if(f){let a=await z(f);if(!a)return x({error:`No flow named or with id "${f}". Use list_flow_building_blocks to see the flows.`},!0);e.flowId=a.id}a?.trigger&&"object"==typeof a.trigger&&!Array.isArray(a.trigger)&&(b=a.trigger);let g="string"==typeof a?.cron?a.cron.trim():"";if(g){let a=b??d.trigger;if("schedule"!==a.type&&"mcp-poll"!==a.type&&"url-watch"!==a.type)return x({error:`The "${a.type}" trigger has no schedule to change with "cron". Pass a full "trigger" object instead.`},!0);b={...a,cron:g}}if(b){let a=T(b);if(a)return x({error:a},!0);e.trigger=b}if(0===Object.keys(e).length)return x({error:"Nothing to update. Provide at least one of: enabled, prompt, flowId, cron, trigger."},!0);let h=await (0,l.z)().update(d.id,e);return h.error||!h.execution?x({error:h.error??"Update failed."},!0):x({updated:!0,...R(h.execution)})}async function V(a){let b,c=String(a?.name??"").trim();if(!c)return x({error:'Provide "name": a name for the planned execution.'},!0);let d=String(a?.flow??a?.flowId??"").trim();if(!d)return x({error:'Provide "flow": a flow name or id to run.'},!0);let e=await z(d);if(!e)return x({error:`No flow named or with id "${d}". Use list_flow_building_blocks to see the flows.`},!0);if(a?.trigger&&"object"==typeof a.trigger&&!Array.isArray(a.trigger))b=a.trigger;else{let c="string"==typeof a?.cron?a.cron.trim():"";if(!c)return x({error:'Provide a "trigger" object or a "cron" pattern (which creates a schedule trigger).'},!0);b={type:"schedule",cron:c}}let f=T(b);if(f)return x({error:f},!0);let g={name:c,enabled:"boolean"!=typeof a?.enabled||a.enabled,flowId:e.id,prompt:"string"==typeof a?.prompt?a.prompt:"",trigger:b},h=await (0,l.z)().create(g);return h.error||!h.execution?x({error:h.error??"Create failed."},!0):x({created:!0,...R(h.execution)})}async function W(a){let b=String(a?.execution??"").trim();if(!b)return x({error:'Provide "execution": a planned execution id or name (see list_planned_executions).'},!0);let c=await Q(b);if(!c)return x({error:`No planned execution with id or name "${b}". Use list_planned_executions to see them.`},!0);let d=await (0,l.z)().delete(c.id);return d.success?x({deleted:!0,id:c.id,name:c.name}):x({error:d.error??`Failed to delete "${c.name}".`},!0)}async function X(a){let b,c=e().join((0,s.ok)(),"db","conversations");try{b=await f.promises.readdir(c)}catch(a){if("ENOENT"===a.code)return x([]);return x({error:`Failed to list conversations: ${a instanceof Error?a.message:String(a)}`},!0)}let d=(await Promise.all(b.filter(a=>a.endsWith(".json")).map(async a=>{try{let b=await f.promises.readFile(e().join(c,a),"utf-8"),d=JSON.parse(b),g=d.conversationId||a.replace(/\.json$/,""),h=d.status;return"running"===h&&0===r.$.currentSeq(g)&&(h="error"),{id:g,title:d.title||"Untitled Conversation",flowId:d.flowId||null,...h?{status:h}:{},createdAt:d.createdAt||0,updatedAt:d.updatedAt||0}}catch(b){return w.warn(`list_conversations: skipping unreadable conversation file ${a}`,b),null}}))).filter(a=>null!==a).sort((a,b)=>b.updatedAt-a.updatedAt),g="number"==typeof a?.limit&&a.limit>0?Math.floor(a.limit):void 0;return x(g?d.slice(0,g):d)}async function Y(a){let b=String(a?.conversation??"").trim();if(!b)return x({error:'Provide "conversation": a conversation id (see list_conversations).'},!0);await (0,q.u8)(b);let c=await (0,p.N)(b);if(!c)return x({error:`No conversation with id "${b}". Use list_conversations to see the stored conversations.`},!0);let d=await (0,q.Os)(b),e=d?(0,q.cc)(d):[],f=e.length>0?e:(c.messages||[]).filter(a=>"system"!==a.role),g="number"==typeof a?.limit&&a.limit>0?Math.floor(a.limit):50,h=[],i=0;for(let a=f.length-1;a>=0&&h.length<g;a--){let b=function(a){let b="";"string"==typeof a.content?b=a.content:Array.isArray(a.content)&&(b=a.content.map(a=>"text"in a&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"));let c={role:a.role,...b?{content:b}:{},...a.timestamp?{timestamp:a.timestamp}:{},...a.depth?{depth:a.depth}:{}};return"assistant"===a.role&&Array.isArray(a.tool_calls)&&a.tool_calls.length>0&&(c.toolCalls=a.tool_calls.map(a=>{let b="function"in a?a.function:void 0,c=b&&"string"==typeof b.arguments?b.arguments:void 0;return{id:a.id,...b?.name?{name:b.name}:{},...void 0!==c?{arguments:c.length>2e3?c.slice(0,2e3)+"…[truncated]":c}:{}}})),"tool"===a.role&&a.tool_call_id&&(c.toolCallId=a.tool_call_id),c}(f[a]),c=JSON.stringify(b).length;if(h.length>0&&i+c>1e5)break;h.push(b),i+=c}return h.reverse(),x({id:c.conversationId||b,title:c.title||"Untitled Conversation",flowId:c.flowId||null,...c.status?{status:c.status}:{},createdAt:c.createdAt||0,updatedAt:c.updatedAt||0,totalMessages:f.length,...h.length<f.length?{note:`Returning the ${h.length} most recent of ${f.length} messages — raise "limit" to get more.`}:{},messages:h})}async function Z(a){let b=String(a?.command??"").trim();if(!b)return x({error:'Provide "command": a shell command line to run.'},!0);let c=(0,s.ok)(),d="string"==typeof a?.cwd?a.cwd.trim():"",f=d?e().isAbsolute(d)?d:e().join(c,d):c,i=Math.min(1e3*("number"==typeof a?.timeout&&a.timeout>0?a.timeout:60),6e5);return await new Promise(a=>{let c,d,e="",j=!1,k=!1,l=!1,m=a=>{!j&&(e+=a).length>1e5&&(e=e.slice(0,1e5)+"\n…[output truncated]",j=!0)},n="win32"!==process.platform;try{c=(0,g.spawn)(b,{cwd:f,shell:!0,env:process.env,detached:n})}catch(b){a(x({error:`Failed to start command: ${b instanceof Error?b.message:String(b)}`,cwd:f},!0));return}let o=setTimeout(()=>{l=!0,d=(0,h.g)(c)},i),p=b=>{k||(k=!0,clearTimeout(o),d?.(),a(b))};c.stdout?.on("data",a=>m(a.toString())),c.stderr?.on("data",a=>m(a.toString())),c.on("error",a=>{m(`
|
|
1
|
+
"use strict";exports.id=2859,exports.ids=[2859],exports.modules={3233:(a,b,c)=>{c.d(b,{g:()=>f});var d=c(79646);let e=(0,c(50846).h)("utils/process/killProcessTree");function f(a,b=2e3){let c=a.pid;if(void 0===c)return()=>{};if("win32"===process.platform){try{(0,d.spawn)("taskkill",["/pid",String(c),"/T","/F"]).on("error",a=>e.debug(`taskkill failed for pid ${c}: ${a.message}`))}catch(a){e.debug(`taskkill spawn threw for pid ${c}: ${a instanceof Error?a.message:String(a)}`)}return()=>{}}try{process.kill(-c,"SIGTERM")}catch{}let g=setTimeout(()=>{try{process.kill(-c,"SIGKILL")}catch{}},b);return g.unref?.(),()=>clearTimeout(g)}},29715:(a,b,c)=>{c.d(b,{N:()=>h});var d=c(23823),e=c(92372),f=c(60184);let g=(0,c(50846).h)("backend/execution/flow/loadConversationState");async function h(a){try{(0,e.ln)(a)}catch{g.warn("Rejected unsafe conversationId on load",{conversationId:a});return}if(d.FlowExecutor.conversationStates.has(a))return g.debug("Loaded state from memory",{conversationId:a}),d.FlowExecutor.conversationStates.get(a);let b=`conversations/${a}`;try{let c=await (0,e.YM)(b,void 0);if(c)return g.debug("Loaded state from storage",{conversationId:a}),await (0,f.jM)(c),d.FlowExecutor.conversationStates.set(a,c),c}catch(b){g.warn("Error loading conversation state from storage",{conversationId:a,error:b})}}},42859:(a,b,c)=>{c.d(b,{internalCallTool:()=>ac,internalToolDefinitions:()=>y});var d=c(33873),e=c.n(d),f=c(29021),g=c(79646),h=c(3233),i=c(50846),j=c(87821),k=c(20433),l=c(4771),m=c(52189),n=c(47769),o=c(38204),p=c(29715),q=c(60184),r=c(14214),s=c(43326),t=c(78325),u=c(30227),v=c(81495);let w=(0,i.h)("backend/services/mcp/internalTools");function x(a,b=!1){return{content:[{type:"text",text:"string"==typeof a?a:JSON.stringify(a,null,2)}],...b?{isError:!0}:{}}}function y(){return[...(0,u.cI)(),{name:"execute_flow",description:"Run another FLUJO flow (by name or id) with the given input and return its final output. The run is ephemeral (no chat conversation is created). Use list_flow_building_blocks to see the available flows. Nested runs are limited in depth — a flow cannot recurse through itself indefinitely.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."},input:{type:"string",description:"The message to send to the flow as the user turn."}},required:["flow","input"]}},{name:"read_flow",description:"Read a FLUJO flow's full definition (by name or id): its nodes with their prompts, bound models, attached MCP servers/tools and input/output modes, plus the control and MCP edges. Note this is the COMPILED flow (node ids, not FlowSpec keys) — to change it, author a fresh FlowSpec and call update_flow.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."}},required:["flow"]}},{name:"update_flow",description:"REPLACE an existing FLUJO flow's definition (by name or id) with a newly compiled FlowSpec, keeping the flow's id — so planned executions, subflow nodes and conversations that reference it keep working. The spec format is the same as create_flow/validate_flow_spec (see those tool descriptions); saving is gated on zero validation errors. The replaced definition is archived automatically — list_flow_versions / revert_flow can restore it. Note that manual canvas edits made in the builder are part of what gets replaced. Use read_flow first to see what you are replacing.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id of the flow to replace."},spec:{type:"object",description:"The FlowSpec object (see the create_flow tool description for the format)."}},required:["flow","spec"]}},{name:"list_flow_versions",description:"List a flow's archived versions (by name or id), newest first. A version is created automatically whenever the flow's definition is overwritten (builder save, update_flow, revert_flow) and holds the definition that was replaced. Use read_flow_version to inspect one and revert_flow to restore one.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."}},required:["flow"]}},{name:"read_flow_version",description:"Read one archived version of a flow (see list_flow_versions): the full definition it held before it was replaced, in the same format as read_flow.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."},version:{type:"string",description:"The version id (see list_flow_versions)."}},required:["flow","version"]}},{name:"revert_flow",description:"Restore an archived version (see list_flow_versions) as the flow's CURRENT definition. The definition being reverted away from is archived first, so a revert can itself be undone. References by flow id keep working.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."},version:{type:"string",description:"The version id to restore (see list_flow_versions)."}},required:["flow","version"]}},{name:"delete_flow",description:"PERMANENTLY delete a FLUJO flow (by name or id). This cannot be undone — the flow's version history is deleted with it. Verify the target with list_flow_building_blocks first.",inputSchema:{type:"object",properties:{flow:{type:"string",description:"Flow name or flow id."}},required:["flow"]}},{name:"list_mcp_servers",description:"List the MCP servers configured in this FLUJO instance with their transport, enabled/disabled state and live connection status. Config details (env vars, headers, credentials) are never included.",inputSchema:{type:"object",properties:{}}},{name:"list_mcp_server_tools",description:"List the tools of one configured MCP server (name, description, input schema). Use together with call_mcp_tool for servers that are not bound to this flow.",inputSchema:{type:"object",properties:{server:{type:"string",description:"The FLUJO server name (see list_mcp_servers)."}},required:["server"]}},{name:"call_mcp_tool",description:"Call a tool on any configured MCP server by server name + tool name. This lets you use servers that are not bound to the current flow. Check the tool's input schema with list_mcp_server_tools first.",inputSchema:{type:"object",properties:{server:{type:"string",description:"The FLUJO server name."},tool:{type:"string",description:"The tool name on that server."},args:{type:"object",description:"Arguments for the tool (per its input schema)."},timeout:{type:"number",description:"Optional timeout in seconds."}},required:["server","tool"]}},{name:"restart_mcp_server",description:"Force-reconnect a configured MCP server (tears the connection down and rebuilds it). Useful when a server is in an error state after a config or environment change.",inputSchema:{type:"object",properties:{server:{type:"string",description:"The FLUJO server name."}},required:["server"]}},{name:"set_mcp_server_enabled",description:"Enable or disable a configured MCP server. Disabling disconnects it and prevents any further use; enabling connects it.",inputSchema:{type:"object",properties:{server:{type:"string",description:"The FLUJO server name."},enabled:{type:"boolean",description:"true to enable + connect, false to disable + disconnect."}},required:["server","enabled"]}},{name:"list_models",description:"List the models configured in this FLUJO instance (id, name, display name, description, provider, base URL, context window). API keys are never included. Reference models by id or name in FlowSpecs.",inputSchema:{type:"object",properties:{}}},{name:"list_planned_executions",description:"List the planned (scheduled/triggered) executions in this FLUJO instance with their trigger type, enabled state, armed status and last run outcome.",inputSchema:{type:"object",properties:{}}},{name:"run_planned_execution",description:"Fire a planned execution immediately (by id, see list_planned_executions) and return the run record with its output.",inputSchema:{type:"object",properties:{id:{type:"string",description:"The planned execution id."}},required:["id"]}},{name:"update_planned_execution",description:'Modify an existing planned execution (by id or name, see list_planned_executions). Patch any of: "enabled" (turn the schedule on/off), "prompt" (the run prompt), "flowId" (the flow to run — accepts a flow name or id), "cron" (a convenience for the trigger\'s cron pattern — works for schedule / mcp-poll / url-watch triggers) or a full "trigger" object for complete control. Flow-driven cadence changes are clamped to a minimum interval (a runaway every-second schedule is rejected). The webhook secret token is never returned.',inputSchema:{type:"object",properties:{execution:{type:"string",description:"The planned execution id or name."},enabled:{type:"boolean",description:"Enable or disable the execution."},prompt:{type:"string",description:"The run prompt."},flowId:{type:"string",description:"The flow to run — a flow name or id (resolved to the flow id)."},cron:{type:"string",description:"Cron pattern (croner syntax; 6-field form for seconds) for the trigger's schedule. Applies to schedule / mcp-poll / url-watch triggers."},trigger:{type:"object",description:"Full trigger config object (escape hatch for complete control). Prefer the named fields above."}},required:["execution"]}},{name:"create_planned_execution",description:'Create a new planned execution: bind a flow to a trigger so it runs headlessly. Provide "name", "flow" (a flow name or id), an optional "prompt", optional "enabled" (default true), and EITHER a full "trigger" object OR a convenience "cron" (which creates a schedule trigger). Flow-driven cadence is clamped to a minimum interval. A webhook trigger\'s secret token is minted server-side and never returned.',inputSchema:{type:"object",properties:{name:{type:"string",description:"A name for the planned execution."},flow:{type:"string",description:"The flow to run — a flow name or id."},prompt:{type:"string",description:"The run prompt (may be empty)."},enabled:{type:"boolean",description:"Whether to arm the trigger immediately (default true)."},cron:{type:"string",description:'Cron pattern for a schedule trigger (convenience — use "trigger" for other trigger types).'},trigger:{type:"object",description:"Full trigger config object (schedule / webhook / file-watch / mcp-poll / url-watch)."}},required:["name","flow"]}},{name:"delete_planned_execution",description:"Permanently delete a planned execution (by id or name, see list_planned_executions), along with its run history. This cannot be undone.",inputSchema:{type:"object",properties:{execution:{type:"string",description:"The planned execution id or name."}},required:["execution"]}},{name:"list_conversations",description:"List the chat conversations stored in this FLUJO instance (id, title, bound flow, status, created/updated timestamps), newest first. Use read_conversation to get a transcript.",inputSchema:{type:"object",properties:{limit:{type:"number",description:"Optional maximum number of conversations to return (newest first). Default: all."}}}},{name:"read_conversation",description:'Read one chat conversation\'s transcript by conversation id (see list_conversations). Returns the displayed messages: system prompts are excluded, nested subflow steps carry a "depth" marker, assistant tool calls are summarized. Long conversations return only the most recent messages — raise "limit" to get more.',inputSchema:{type:"object",properties:{conversation:{type:"string",description:"The conversation id."},limit:{type:"number",description:"Maximum number of most-recent messages to return (default 50). The total transcript size is capped regardless."}},required:["conversation"]}},{name:"terminal",description:'Run a shell command on the FLUJO host and return its combined stdout/stderr plus exit code. Runs through a shell, so pipes and chained commands (e.g. "npm install && npm run build") work. Use it to install dependencies, build a cloned MCP server, inspect the filesystem, or run diagnostics. Working directory defaults to the FLUJO data directory (where cloned servers live under mcp-servers/); pass "cwd" to run elsewhere. The command is killed if it exceeds the timeout, and very large output is truncated.',inputSchema:{type:"object",properties:{command:{type:"string",description:'The shell command line to execute, e.g. "npm install && npm run build".'},cwd:{type:"string",description:"Optional working directory. Relative paths resolve against the FLUJO data directory. Defaults to the data directory."},timeout:{type:"number",description:"Optional timeout in seconds (default 60, max 600). The command is killed if it runs longer."}},required:["command"]}},{name:"kv_get",description:'Read a value from FLUJO\'s PERSISTENT key-value store (the ${kv:NAME} store) — state that survives ACROSS flow runs (loop counters, cursors, flags). Returns { found, value }. Defaults to the instance-global board; pass "scope" to target another board (e.g. a flow-folder board id). Values are plain strings, never secrets.',inputSchema:{type:"object",properties:{name:{type:"string",description:"The key to read (an identifier: letters, digits, _ and -, not starting with a digit)."},scope:{type:"string",description:'Optional board id to read from. Defaults to "global".'}},required:["name"]}},{name:"kv_set",description:'Write a value to FLUJO\'s PERSISTENT key-value store (the ${kv:NAME} store) — state that survives ACROSS flow runs. Last-write-wins. Defaults to the instance-global board; pass "scope" to target another board. Values are plain strings (never secrets — use ${global:} for those) and are size-capped; an oversized write is refused with { saved:false, skipped }.',inputSchema:{type:"object",properties:{name:{type:"string",description:"The key to write (an identifier: letters, digits, _ and -, not starting with a digit)."},value:{type:"string",description:"The string value to store."},scope:{type:"string",description:'Optional board id to write to. Defaults to "global".'}},required:["name","value"]}}]}async function z(a){let b=await j.flowService.loadFlows();return b.find(b=>b.id===a)??b.find(b=>b.name===a)}async function A(a){let b=String(a?.flow??"").trim();if(!b)return x({error:'Provide "flow": a flow name or id.'},!0);let c=await z(b);if(!c)return x({error:`No flow named or with id "${b}". Use list_flow_building_blocks to see the available flows.`},!0);let d=global.__flujo_internal_flow_depth??0;if(d>=4)return x({error:`execute_flow nesting limit (4) reached — refusing to start "${c.name}" to prevent runaway recursion.`},!0);global.__flujo_internal_flow_depth=d+1;try{let b=await (0,n.runFlow)({flowId:c.id,prompt:String(a?.input??""),mode:"ephemeral",flujo:!0,requireApproval:!1});if(b.flowNotFound)return x({error:`Flow not found: ${b.flowNotFound.name}`},!0);if("error"===b.status)return x({error:b.error?.message??"Unknown error during flow execution."},!0);return x(b.outputText??"")}finally{global.__flujo_internal_flow_depth=d}}async function B(a){let b=String(a?.flow??"").trim();if(!b)return x({error:'Provide "flow": a flow name or id.'},!0);let c=await z(b);if(!c)return x({error:`No flow named or with id "${b}".`},!0);let d=await j.flowService.deleteFlow(c.id);return d.success?x({deleted:!0,flowId:c.id,flowName:c.name}):x({error:d.error??`Failed to delete flow "${c.name}".`},!0)}function C(a){let b=a.nodes.map(a=>{let{mcpNodes:b,...c}=a.data?.properties??{};return{id:a.id,type:a.type,label:a.data?.label,...a.data?.description?{description:a.data.description}:{},properties:c}}),c=a.edges.map(a=>{let b=a.data;return{from:a.source,to:a.target,type:b?.edgeType==="mcp"?"mcp":b?.edgeType==="resource"?"resource":"control",...b?.bidirectional?{bidirectional:!0}:{}}});return{id:a.id,name:a.name,...a.description?{description:a.description}:{},nodes:b,edges:c}}async function D(a){let b=String(a?.flow??"").trim();if(!b)return x({error:'Provide "flow": a flow name or id.'},!0);let c=await z(b);return c?x({...C(c),note:"This is the compiled flow (node ids, not FlowSpec keys). To change it, author a fresh FlowSpec and call update_flow — it replaces the whole definition while keeping this flow id."}):x({error:`No flow named or with id "${b}". Use list_flow_building_blocks to see the available flows.`},!0)}async function E(a){let b=String(a?.flow??"").trim();if(!b)return x({error:'Provide "flow": a flow name or id.'},!0);let c=await z(b);if(!c)return x({error:`No flow named or with id "${b}".`},!0);let d=await j.flowService.listFlowVersions(c.id);return x({flowId:c.id,flowName:c.name,versions:d,...0===d.length?{note:"No archived versions yet — versions appear once the flow's definition is overwritten for the first time."}:{}})}async function F(a){let b=String(a?.flow??"").trim(),c=String(a?.version??"").trim();if(!b||!c)return x({error:'Provide "flow" (name or id) and "version" (see list_flow_versions).'},!0);let d=await z(b);if(!d)return x({error:`No flow named or with id "${b}".`},!0);let e=await j.flowService.getFlowVersion(d.id,c);return e?x({versionId:e.versionId,savedAt:e.savedAt,...C(e.flow)}):x({error:`No version "${c}" of flow "${d.name}". Use list_flow_versions to see the archived versions.`},!0)}async function G(a){let b=String(a?.flow??"").trim(),c=String(a?.version??"").trim();if(!b||!c)return x({error:'Provide "flow" (name or id) and "version" (see list_flow_versions).'},!0);let d=await z(b);if(!d)return x({error:`No flow named or with id "${b}".`},!0);let e=await j.flowService.revertFlow(d.id,c);return e.success?x({reverted:!0,flowId:d.id,versionId:c,note:"The definition that was just replaced has been archived too, so this revert can itself be undone via list_flow_versions / revert_flow."}):x({error:e.error??`Failed to revert flow "${d.name}".`},!0)}async function H(a){let b=String(a?.flow??"").trim();if(!b)return x({error:'Provide "flow": the name or id of the flow to replace.'},!0);let c=function(a){let b=a?.spec;if("string"==typeof b)try{return JSON.parse(b)}catch{return null}return b??null}(a);if(!c)return x({error:'Provide a "spec" argument: a FlowSpec object (or a JSON string of one).'},!0);let d=await z(b);if(!d)return x({error:`No flow named or with id "${b}". Use list_flow_building_blocks to see the available flows.`},!0);let e=await (0,o.V)(c,{save:!0,updateFlowId:d.id});return e.success?x({flowId:e.flow.id,flowName:e.flow.name,nodeCount:e.flow.nodes.length,edgeCount:e.flow.edges.length,validation:e.validation,saved:e.saved,...e.saved?{note:`Flow "${e.flow.name}" was replaced (id ${e.flow.id} kept — existing references keep working).`}:{note:"NOT saved: validation found errors. The existing flow is unchanged. Fix the issues and call update_flow again."}},!e.saved):x({error:e.error,issues:e.issues??[]},!0)}async function I(a){let b=await a.loadServerConfigs();return Array.isArray(b)?x(await Promise.all(b.map(async b=>{let c="unknown";try{c=(await a.getServerStatus(b.name)).status}catch(a){w.debug(`list_mcp_servers: getServerStatus failed for ${b.name}`,a)}return{name:b.name,transport:b.transport,enabled:!b.disabled,status:c,...b.builtIn?{builtIn:!0}:{}}}))):x({error:b.error??"Failed to load server configs."},!0)}async function J(a,b){let c=String(b?.server??"").trim();if(!c)return x({error:'Provide "server": a FLUJO server name.'},!0);if(c===v._)return x(y().map(a=>({name:a.name,description:a.description,inputSchema:a.inputSchema})));let{tools:d,error:e}=await a.listServerTools(c);return e?x({error:e},!0):x(d.map(a=>({name:a.name,description:a.description,inputSchema:a.inputSchema})))}async function K(a,b){let c=String(b?.server??"").trim(),d=String(b?.tool??"").trim();if(!c||!d)return x({error:'Provide "server" and "tool".'},!0);if(c===v._)return x({error:`"${v._}" is this server — call its tools directly instead of through call_mcp_tool.`},!0);let e=b?.args&&"object"==typeof b.args&&!Array.isArray(b.args)?b.args:{},f="number"==typeof b?.timeout?b.timeout:void 0,g=await a.callTool(c,d,e,f);if(!g.success)return x({error:g.error??`Tool call failed on ${c}.`},!0);let h=g.data;return h&&Array.isArray(h.content)?h:x(h??{ok:!0})}async function L(a,b){let c=String(b?.server??"").trim();if(!c)return x({error:'Provide "server": a FLUJO server name.'},!0);if(c===v._)return x({ok:!0,note:`"${v._}" is the built-in server — it is always running.`});let d=await a.forceReconnect(c);if(!d.success)return x({error:d.error??`Failed to restart ${c}.`},!0);let e=await a.getServerStatus(c);return x({restarted:!0,server:c,status:e.status})}async function M(a,b){let c=String(b?.server??"").trim(),d=b?.enabled;if(!c||"boolean"!=typeof d)return x({error:'Provide "server" (string) and "enabled" (boolean).'},!0);if(c===v._)return x({error:`The built-in "${v._}" server cannot be disabled.`},!0);let e=await a.updateServerConfig(c,{disabled:!d});return"error"in e?x({error:e.error},!0):x({server:c,enabled:d})}async function N(){return x((await k.modelService.loadModels()).map(a=>({id:a.id,name:a.name,...a.displayName?{displayName:a.displayName}:{},...a.description?{description:a.description}:{},...a.provider?{provider:a.provider}:{},...a.baseUrl?{baseUrl:a.baseUrl}:{},...a.contextWindow?{contextWindow:a.contextWindow}:{}})))}async function O(){return x((await (0,l.z)().list()).map(({execution:a,status:b,lastRun:c})=>({id:a.id,name:a.name,enabled:a.enabled,flowId:a.flowId,triggerType:a.trigger?.type,armed:b?.armed??!1,...c?{lastRun:{status:c.status,firedAt:c.firedAt,...c.error?{error:c.error}:{}}}:{}})))}async function P(a){let b=String(a?.id??"").trim();if(!b)return x({error:'Provide "id": a planned execution id (see list_planned_executions).'},!0);let{record:c,error:d}=await (0,l.z)().runNow(b);return d||!c?x({error:d??"Run failed."},!0):x({runId:c.runId,status:c.status,firedAt:c.firedAt,...c.finishedAt?{finishedAt:c.finishedAt}:{},...c.outputText?{outputText:c.outputText}:{},...c.error?{error:c.error}:{}})}async function Q(a){let b=await (0,l.z)().list(),c=b.find(b=>b.execution.id===a),d=b.find(b=>b.execution.name===a);return(c??d)?.execution??null}function R(a){return{id:a.id,name:a.name,enabled:a.enabled,flowId:a.flowId,triggerType:a.trigger?.type}}function S(a,b){try{let c=(0,m.Z9)(a,b,5).map(a=>new Date(a).getTime()),d=1/0;for(let a=1;a<c.length;a++){let b=c[a]-c[a-1];b>0&&b<d&&(d=b)}return Number.isFinite(d)?d:null}catch{return null}}function T(a){let b=null;return("schedule"===a.type||"url-watch"===a.type?a.cron&&(b=S(a.cron,a.timezone)):"mcp-poll"===a.type&&(a.cron?b=S(a.cron,a.timezone):"number"==typeof a.intervalMs&&(b=a.intervalMs)),null!==b&&b<6e4)?`Cadence too fast: the trigger would fire about every ${Math.round(b/1e3)}s, but flow-driven schedule changes are clamped to a minimum interval of 60s. Choose a slower cadence (change it from the Planned Executions page for a faster one).`:null}async function U(a){let b,c=String(a?.execution??"").trim();if(!c)return x({error:'Provide "execution": a planned execution id or name (see list_planned_executions).'},!0);let d=await Q(c);if(!d)return x({error:`No planned execution with id or name "${c}". Use list_planned_executions to see them.`},!0);let e={};"boolean"==typeof a?.enabled&&(e.enabled=a.enabled),"string"==typeof a?.prompt&&(e.prompt=a.prompt);let f=String(a?.flowId??a?.flow??"").trim();if(f){let a=await z(f);if(!a)return x({error:`No flow named or with id "${f}". Use list_flow_building_blocks to see the flows.`},!0);e.flowId=a.id}a?.trigger&&"object"==typeof a.trigger&&!Array.isArray(a.trigger)&&(b=a.trigger);let g="string"==typeof a?.cron?a.cron.trim():"";if(g){let a=b??d.trigger;if("schedule"!==a.type&&"mcp-poll"!==a.type&&"url-watch"!==a.type)return x({error:`The "${a.type}" trigger has no schedule to change with "cron". Pass a full "trigger" object instead.`},!0);b={...a,cron:g}}if(b){let a=T(b);if(a)return x({error:a},!0);e.trigger=b}if(0===Object.keys(e).length)return x({error:"Nothing to update. Provide at least one of: enabled, prompt, flowId, cron, trigger."},!0);let h=await (0,l.z)().update(d.id,e);return h.error||!h.execution?x({error:h.error??"Update failed."},!0):x({updated:!0,...R(h.execution)})}async function V(a){let b,c=String(a?.name??"").trim();if(!c)return x({error:'Provide "name": a name for the planned execution.'},!0);let d=String(a?.flow??a?.flowId??"").trim();if(!d)return x({error:'Provide "flow": a flow name or id to run.'},!0);let e=await z(d);if(!e)return x({error:`No flow named or with id "${d}". Use list_flow_building_blocks to see the flows.`},!0);if(a?.trigger&&"object"==typeof a.trigger&&!Array.isArray(a.trigger))b=a.trigger;else{let c="string"==typeof a?.cron?a.cron.trim():"";if(!c)return x({error:'Provide a "trigger" object or a "cron" pattern (which creates a schedule trigger).'},!0);b={type:"schedule",cron:c}}let f=T(b);if(f)return x({error:f},!0);let g={name:c,enabled:"boolean"!=typeof a?.enabled||a.enabled,flowId:e.id,prompt:"string"==typeof a?.prompt?a.prompt:"",trigger:b},h=await (0,l.z)().create(g);return h.error||!h.execution?x({error:h.error??"Create failed."},!0):x({created:!0,...R(h.execution)})}async function W(a){let b=String(a?.execution??"").trim();if(!b)return x({error:'Provide "execution": a planned execution id or name (see list_planned_executions).'},!0);let c=await Q(b);if(!c)return x({error:`No planned execution with id or name "${b}". Use list_planned_executions to see them.`},!0);let d=await (0,l.z)().delete(c.id);return d.success?x({deleted:!0,id:c.id,name:c.name}):x({error:d.error??`Failed to delete "${c.name}".`},!0)}async function X(a){let b,c=e().join((0,s.ok)(),"db","conversations");try{b=await f.promises.readdir(c)}catch(a){if("ENOENT"===a.code)return x([]);return x({error:`Failed to list conversations: ${a instanceof Error?a.message:String(a)}`},!0)}let d=(await Promise.all(b.filter(a=>a.endsWith(".json")).map(async a=>{try{let b=await f.promises.readFile(e().join(c,a),"utf-8"),d=JSON.parse(b),g=d.conversationId||a.replace(/\.json$/,""),h=d.status;return"running"===h&&0===r.$.currentSeq(g)&&(h="error"),{id:g,title:d.title||"Untitled Conversation",flowId:d.flowId||null,...h?{status:h}:{},createdAt:d.createdAt||0,updatedAt:d.updatedAt||0}}catch(b){return w.warn(`list_conversations: skipping unreadable conversation file ${a}`,b),null}}))).filter(a=>null!==a).sort((a,b)=>b.updatedAt-a.updatedAt),g="number"==typeof a?.limit&&a.limit>0?Math.floor(a.limit):void 0;return x(g?d.slice(0,g):d)}async function Y(a){let b=String(a?.conversation??"").trim();if(!b)return x({error:'Provide "conversation": a conversation id (see list_conversations).'},!0);await (0,q.u8)(b);let c=await (0,p.N)(b);if(!c)return x({error:`No conversation with id "${b}". Use list_conversations to see the stored conversations.`},!0);let d=await (0,q.Os)(b),e=d?(0,q.cc)(d):[],f=e.length>0?e:(c.messages||[]).filter(a=>"system"!==a.role),g="number"==typeof a?.limit&&a.limit>0?Math.floor(a.limit):50,h=[],i=0;for(let a=f.length-1;a>=0&&h.length<g;a--){let b=function(a){let b="";"string"==typeof a.content?b=a.content:Array.isArray(a.content)&&(b=a.content.map(a=>"text"in a&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"));let c={role:a.role,...b?{content:b}:{},...a.timestamp?{timestamp:a.timestamp}:{},...a.depth?{depth:a.depth}:{}};return"assistant"===a.role&&Array.isArray(a.tool_calls)&&a.tool_calls.length>0&&(c.toolCalls=a.tool_calls.map(a=>{let b="function"in a?a.function:void 0,c=b&&"string"==typeof b.arguments?b.arguments:void 0;return{id:a.id,...b?.name?{name:b.name}:{},...void 0!==c?{arguments:c.length>2e3?c.slice(0,2e3)+"…[truncated]":c}:{}}})),"tool"===a.role&&a.tool_call_id&&(c.toolCallId=a.tool_call_id),c}(f[a]),c=JSON.stringify(b).length;if(h.length>0&&i+c>1e5)break;h.push(b),i+=c}return h.reverse(),x({id:c.conversationId||b,title:c.title||"Untitled Conversation",flowId:c.flowId||null,...c.status?{status:c.status}:{},createdAt:c.createdAt||0,updatedAt:c.updatedAt||0,totalMessages:f.length,...h.length<f.length?{note:`Returning the ${h.length} most recent of ${f.length} messages — raise "limit" to get more.`}:{},messages:h})}async function Z(a){let b=String(a?.command??"").trim();if(!b)return x({error:'Provide "command": a shell command line to run.'},!0);let c=(0,s.ok)(),d="string"==typeof a?.cwd?a.cwd.trim():"",f=d?e().isAbsolute(d)?d:e().join(c,d):c,i=Math.min(1e3*("number"==typeof a?.timeout&&a.timeout>0?a.timeout:60),6e5);return await new Promise(a=>{let c,d,e="",j=!1,k=!1,l=!1,m=a=>{!j&&(e+=a).length>1e5&&(e=e.slice(0,1e5)+"\n…[output truncated]",j=!0)},n="win32"!==process.platform;try{c=(0,g.spawn)(b,{cwd:f,shell:!0,env:process.env,detached:n})}catch(b){a(x({error:`Failed to start command: ${b instanceof Error?b.message:String(b)}`,cwd:f},!0));return}let o=setTimeout(()=>{l=!0,d=(0,h.g)(c)},i),p=b=>{k||(k=!0,clearTimeout(o),d?.(),a(b))};c.stdout?.on("data",a=>m(a.toString())),c.stderr?.on("data",a=>m(a.toString())),c.on("error",a=>{m(`
|
|
2
2
|
${a.message}`),p(x({error:`Command failed to start: ${a.message}`,cwd:f,output:e},!0))}),c.on("close",a=>{if(l)return void p(x({timedOut:!0,cwd:f,exitCode:a,output:`${e}
|
|
3
3
|
[killed after ${i/1e3}s timeout]`},!0));p(x({exitCode:a,cwd:f,output:e},0!==a))})})}let $=/^[A-Za-z0-9_-]{1,64}$/,_=/^[A-Za-z_][\w-]*$/;async function aa(a){let b="string"==typeof a.name?a.name.trim():"",c="string"==typeof a.scope&&a.scope.trim()?a.scope.trim():"global";if(!_.test(b))return x({error:'kv_get requires a valid "name" (letters, digits, _ and -, not starting with a digit).'},!0);if(!$.test(c))return x({error:`Invalid kv scope id: ${c}`},!0);let d=await (0,t.M3)(c,b);return x({scope:c,name:b,found:void 0!==d,value:d??null})}async function ab(a){let b="string"==typeof a.name?a.name.trim():"",c="string"==typeof a.scope&&a.scope.trim()?a.scope.trim():"global",d="string"==typeof a.value?a.value:null==a.value?"":String(a.value);if(!_.test(b))return x({error:'kv_set requires a valid "name" (letters, digits, _ and -, not starting with a digit).'},!0);if(!$.test(c))return x({error:`Invalid kv scope id: ${c}`},!0);let e=await (0,t.or)(c,b,d);return"skipped"in e?x({scope:c,name:b,saved:!1,skipped:e.skipped},!0):x({scope:c,name:b,saved:!0,size:e.size})}async function ac(a,b,c){try{if((0,u.yM)(b))return await (0,u.oV)(b,c);switch(b){case"execute_flow":return await A(c);case"read_flow":return await D(c);case"update_flow":return await H(c);case"list_flow_versions":return await E(c);case"read_flow_version":return await F(c);case"revert_flow":return await G(c);case"delete_flow":return await B(c);case"list_mcp_servers":return await I(a);case"list_mcp_server_tools":return await J(a,c);case"call_mcp_tool":return await K(a,c);case"restart_mcp_server":return await L(a,c);case"set_mcp_server_enabled":return await M(a,c);case"list_models":return await N();case"list_planned_executions":return await O();case"run_planned_execution":return await P(c);case"update_planned_execution":return await U(c);case"create_planned_execution":return await V(c);case"delete_planned_execution":return await W(c);case"list_conversations":return await X(c);case"read_conversation":return await Y(c);case"terminal":return await Z(c);case"kv_get":return await aa(c);case"kv_set":return await ab(c);default:return x({error:`Unknown tool on the built-in FLUJO server: ${b}`},!0)}}catch(a){return w.error("internalCallTool failed",{toolName:b,err:a}),x({error:`Tool failed: ${a instanceof Error?a.message:String(a)}`},!0)}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=289,exports.ids=[289],exports.modules={3676:(a,b,c)=>{"use strict";c.d(b,{Wj:()=>h,ln:()=>g});var d=c(10641),e=c(58739);let f="encryption_locked";async function g(){return(0,e.isEncryptionLocked)()}async function h(a){return await g()?a?.openai?d.NextResponse.json({error:{message:"Encryption is locked. Unlock FLUJO to continue.",type:f,code:f,param:null}},{status:423}):d.NextResponse.json({error:f},{status:423}):null}},37426:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"40ec842092ea232b6d4aa599a380d422184da5e1ca":()=>d.c,"602ea7ca289a8eaa1000fb321a71e292e6c766b6bb":()=>d.G});var d=c(73456)},
|
|
1
|
+
exports.id=289,exports.ids=[289],exports.modules={3676:(a,b,c)=>{"use strict";c.d(b,{Wj:()=>h,ln:()=>g});var d=c(10641),e=c(58739);let f="encryption_locked";async function g(){return(0,e.isEncryptionLocked)()}async function h(a){return await g()?a?.openai?d.NextResponse.json({error:{message:"Encryption is locked. Unlock FLUJO to continue.",type:f,code:f,param:null}},{status:423}):d.NextResponse.json({error:f},{status:423}):null}},37426:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"40ec842092ea232b6d4aa599a380d422184da5e1ca":()=>d.c,"602ea7ca289a8eaa1000fb321a71e292e6c766b6bb":()=>d.G});var d=c(73456)},41115:(a,b,c)=>{"use strict";c.d(b,{$:()=>g,v5:()=>f});var d=c(10641);let e=new Set(["localhost","127.0.0.1","::1"]);function f(a,b){let c=function(a){if(!a)return null;let b=a.trim();if(b.startsWith("[")){let a=b.indexOf("]");return a>0?b.slice(1,a):null}return b.split(":")[0]||null}(a);if(!c||!e.has(c))return!1;if(b)try{if(!e.has(new URL(b).hostname))return!1}catch{return!1}return!0}function g(a){return f(a.headers.get("host"),a.headers.get("origin"))?null:d.NextResponse.json({error:"Forbidden: this endpoint only accepts local requests."},{status:403})}},42398:(a,b,c)=>{"use strict";c.d(b,{QE:()=>k,_u:()=>m,aZ:()=>j,qf:()=>n,v5:()=>g.v5,xK:()=>l,xV:()=>o});var d=c(50846),e=c(61397),f=c(3676),g=c(41115);let h=(0,d.h)("backend/services/mcp/proxyForward"),i="FLUJO encryption is locked (encryption_locked). Unlock FLUJO to continue.";async function j(a){let b=await e.mcpService.loadServerConfigs();if(!Array.isArray(b))return h.warn("isServerExposed: failed to load server configs",{error:b.error}),!1;let c=b.find(b=>b.name===a);return!!c&&!c.disabled&&!0===c.exposeAsMcpServer}async function k(a){if(await (0,f.ln)())throw Error(i);let b=await e.mcpService.connectServer(a);if(!b.success)throw Error(`Failed to connect to MCP server '${a}': ${b.error}`);let c=await e.mcpService.listServerTools(a);if(c.error)throw Error(`Failed to list tools for '${a}': ${c.error}`);return{tools:c.tools??[]}}async function l(a,b,c){if(await (0,f.ln)())return{content:[{type:"text",text:i}],isError:!0};let d=await e.mcpService.connectServer(a);if(!d.success)return{content:[{type:"text",text:`Error connecting to '${a}': ${d.error}`}],isError:!0};let g=await e.mcpService.callTool(a,b,c);return g.success?g.data:{content:[{type:"text",text:`Error: ${g.error??"Unknown error"}`}],isError:!0}}async function m(a){if(await (0,f.ln)())throw Error(i);let b=await e.mcpService.connectServer(a);if(!b.success)throw Error(`Failed to connect to MCP server '${a}': ${b.error}`);let c=await e.mcpService.listServerResources(a);if(c.error)throw Error(`Failed to list resources for '${a}': ${c.error}`);return{resources:c.resources??[]}}async function n(a){if(await (0,f.ln)())throw Error(i);let b=await e.mcpService.connectServer(a);if(!b.success)throw Error(`Failed to connect to MCP server '${a}': ${b.error}`);let c=await e.mcpService.listServerResourceTemplates(a);if(c.error)throw Error(`Failed to list resource templates for '${a}': ${c.error}`);return{resourceTemplates:c.resourceTemplates??[]}}async function o(a,b){if(await (0,f.ln)())throw Error(i);let c=await e.mcpService.connectServer(a);if(!c.success)throw Error(`Failed to connect to MCP server '${a}': ${c.error}`);let d=await e.mcpService.readResource(a,b);if(!d.success||!d.data)throw Error(`Failed to read resource '${b}' from '${a}': ${d.error??"unknown error"}`);return d.data}},73456:(a,b,c)=>{"use strict";c.d(b,{G:()=>l,c:()=>k});var d=c(75879);c(68633);var e=c(50846),f=c(92372),g=c(46480),h=c(58739),i=c(51669);let j=(0,e.h)("backend/utils/resolveGlobalVars");async function k(a){j.debug("Entering resolveGlobalVars method");let b=await (0,f.YM)(g.Z.GLOBAL_ENV_VARS,{}),c=function(a){if(!a||"object"!=typeof a)return!1;let b=Object.keys(a);if(0===b.length)return!0;let c=a[b[0]];return c&&"object"==typeof c&&"value"in c&&"metadata"in c&&"object"==typeof c.metadata&&"isSecret"in c.metadata}(b);j.debug(`Loaded ${Object.keys(b).length} global environment variables (${c?"new":"old"} format)`);let d={};if(c)for(let[a,c]of Object.entries(b))d[a]=c.value;else d={...b};let e=async a=>{let b=a.match(/\$\{global:([^}]+)\}/g);if(!b)return a;let c=a;for(let a of b){let b=a.substring(9,a.length-1);if(void 0!==d[b]){let e=d[b];if(e.startsWith("encrypted:")){j.debug(`Decrypting encrypted global variable: ${b}`);try{let a=e.substring(10),c=await (0,h.decryptWithPassword)(a);if(c)e=c,j.debug(`Successfully decrypted global variable: ${b}`);else{j.warn(`Failed to decrypt global variable: ${b}`);continue}}catch(a){j.error(`Error decrypting global variable: ${b}`,a);continue}}else if(e.startsWith("encrypted_failed:")){j.warn(`Skipping failed encrypted global variable: ${b}`);continue}j.debug(`Resolved global variable: ${b}`),c=c.replace(a,e)}else j.warn(`Global variable not found: ${b}`)}return c},i=async a=>{if("string"==typeof a)return await e(a);if(Array.isArray(a))return await Promise.all(a.map(a=>i(a)));if(null!==a&&"object"==typeof a){let b={};for(let[c,d]of Object.entries(a))b[c]=await i(d);return b}return a},k=await i(a);return"object"==typeof a&&null!==a&&j.debug("Resolved global variables result:",JSON.stringify(k,null,2)),j.debug("Completed global variable resolution"),k}async function l(a,b=0){if(j.debug(`Entering resolveAndDecryptApiKey method (depth: ${b})`),!a)return j.warn("Empty value provided"),null;if(b>=10)return j.warn(`Maximum resolution depth reached (10) for value: ${a}`),a;let c=a;if(c.startsWith("encrypted:")){j.debug(`Decrypting encrypted value at depth ${b}`);try{let a=c.substring(10),d=await (0,h.decryptWithPassword)(a);if(!d)return j.warn(`Failed to decrypt value at depth ${b}`),null;j.debug(`Successfully decrypted value at depth ${b}`),j.verbose(d),c=d}catch(a){return j.error(`Error decrypting value at depth ${b}:`,a),null}}else c.startsWith("encrypted_failed:")&&(j.warn(`Skipping failed encrypted value at depth ${b}`),c=c.substring(17));if(c.includes("${global:")){j.debug(`Resolving global variables at depth ${b}`);try{let a=await k(c);if(j.verbose(a),a!==c)return j.debug(`Value changed after resolving globals at depth ${b}, processing recursively`),l(a,b+1);c=a}catch(a){return j.error(`Error resolving global variables at depth ${b}:`,a),null}}return j.debug(`Completed resolveAndDecryptApiKey at depth ${b}`),c}(0,i.D)([k,l]),(0,d.A)(k,"40ec842092ea232b6d4aa599a380d422184da5e1ca",null),(0,d.A)(l,"602ea7ca289a8eaa1000fb321a71e292e6c766b6bb",null)},78335:()=>{},96487:()=>{}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
exports.id=1556,exports.ids=[1556],exports.modules={282:(a,b,c)=>{"use strict";function d(a,b,c,d){let e,f=a.length,g=0;if(b=b<0?-b>f?0:f+b:b>f?f:b,c=c>0?c:0,d.length<1e4)(e=Array.from(d)).unshift(b,c),a.splice(...e);else for(c&&a.splice(b,c);g<d.length;)(e=d.slice(g,g+1e4)).unshift(b,0),a.splice(...e),g+=1e4,b+=1e4}function e(a,b){return a.length>0?(d(a,a.length,0,b),a):b}c.d(b,{V:()=>e,m:()=>d})},423:(a,b,c)=>{"use strict";c.d(b,{A:()=>s});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(68333),i=c(6636),j=c(29565),k=c(33105);function l(a){return(0,k.Ay)("MuiCardActionArea",a)}let m=(0,j.A)("MuiCardActionArea",["root","focusVisible","focusHighlight"]);var n=c(14328),o=c(20385),p=c(21124);let q=(0,g.Ay)(n.A,{name:"MuiCardActionArea",slot:"Root",overridesResolver:(a,b)=>b.root})((0,h.A)(({theme:a})=>({display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%",[`&:hover .${m.focusHighlight}`]:{opacity:(a.vars||a).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}},[`&.${m.focusVisible} .${m.focusHighlight}`]:{opacity:(a.vars||a).palette.action.focusOpacity}}))),r=(0,g.Ay)("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:(a,b)=>b.focusHighlight})((0,h.A)(({theme:a})=>({overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:a.transitions.create("opacity",{duration:a.transitions.duration.short})}))),s=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiCardActionArea"}),{children:d,className:g,focusVisibleClassName:h,slots:j={},slotProps:k={},...m}=c,n=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"],focusHighlight:["focusHighlight"]},l,b)})(c),s={slots:j,slotProps:k},[t,u]=(0,o.A)("root",{elementType:q,externalForwardedProps:{...s,...m},shouldForwardComponentProp:!0,ownerState:c,ref:b,className:(0,e.A)(n.root,g),additionalProps:{focusVisibleClassName:(0,e.A)(h,n.focusVisible)}}),[v,w]=(0,o.A)("focusHighlight",{elementType:r,externalForwardedProps:s,ownerState:c,ref:b,className:n.focusHighlight});return(0,p.jsxs)(t,{...u,children:[d,(0,p.jsx)(v,{...w})]})})},5501:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Star")},5776:(a,b,c)=>{"use strict";function d(){}function e(){}c.d(b,{HB:()=>e,ok:()=>d})},7503:(a,b,c)=>{"use strict";c.d(b,{A:()=>p});var d=c(38301),e=c(43249),f=c(2783),g=c(41126),h=c(18168),i=c(6636),j=c(79515),k=c(29565),l=c(33105);function m(a){return(0,l.Ay)("MuiDialogContentText",a)}(0,k.A)("MuiDialogContentText",["root"]);var n=c(21124);let o=(0,h.Ay)(j.default,{shouldForwardProp:a=>(0,g.A)(a)||"classes"===a,name:"MuiDialogContentText",slot:"Root",overridesResolver:(a,b)=>b.root})({}),p=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiDialogContentText"}),{children:d,className:g,...h}=c,j=(a=>{let{classes:b}=a,c=(0,f.A)({root:["root"]},m,b);return{...b,...c}})(h);return(0,n.jsx)(o,{component:"p",variant:"body1",color:"textSecondary",ref:b,ownerState:h,className:(0,e.A)(j.root,g),...c,classes:j})})},18954:(a,b,c)=>{"use strict";function d(a,b){let c=String(a);if("string"!=typeof b)throw TypeError("Expected character");let d=0,e=c.indexOf(b);for(;-1!==e;)d++,e=c.indexOf(b,e+b.length);return d}c.d(b,{A:()=>aH});var e=c(5776),f=c(76713),g=c(78971),h=c(77410);let i="phrasing",j=["autolink","link","image","label"];function k(a){this.enter({type:"link",title:null,url:"",children:[]},a)}function l(a){this.config.enter.autolinkProtocol.call(this,a)}function m(a){this.config.exit.autolinkProtocol.call(this,a)}function n(a){this.config.exit.data.call(this,a);let b=this.stack[this.stack.length-1];(0,e.ok)("link"===b.type),b.url="http://"+this.sliceSerialize(a)}function o(a){this.config.exit.autolinkEmail.call(this,a)}function p(a){this.exit(a)}function q(a){!function(a,b,c){let d=(0,h.C)((c||{}).ignore||[]),e=function(a){let b=[];if(!Array.isArray(a))throw TypeError("Expected find and replace tuple or list of tuples");let c=!a[0]||Array.isArray(a[0])?a:[a],d=-1;for(;++d<c.length;){var e;let a=c[d];b.push(["string"==typeof(e=a[0])?RegExp(function(a){if("string"!=typeof a)throw TypeError("Expected a string");return a.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}(e),"g"):e,function(a){return"function"==typeof a?a:function(){return a}}(a[1])])}return b}(b),f=-1;for(;++f<e.length;)(0,g.VG)(a,"text",i);function i(a,b){let c,g=-1;for(;++g<b.length;){let a=b[g],e=c?c.children:void 0;if(d(a,e?e.indexOf(a):void 0,c))return;c=a}if(c)return function(a,b){let c=b[b.length-1],d=e[f][0],g=e[f][1],h=0,i=c.children.indexOf(a),j=!1,k=[];d.lastIndex=0;let l=d.exec(a.value);for(;l;){let c=l.index,e={index:l.index,input:l.input,stack:[...b,a]},f=g(...l,e);if("string"==typeof f&&(f=f.length>0?{type:"text",value:f}:void 0),!1===f?d.lastIndex=c+1:(h!==c&&k.push({type:"text",value:a.value.slice(h,c)}),Array.isArray(f)?k.push(...f):f&&k.push(f),h=c+l[0].length,j=!0),!d.global)break;l=d.exec(a.value)}return j?(h<a.value.length&&k.push({type:"text",value:a.value.slice(h)}),c.children.splice(i,1,...k)):k=[a],i+k.length}(a,b)}}(a,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,r],[/(?<=^|\s|\p{P}|\p{S})([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/gu,s]],{ignore:["link","linkReference"]})}function r(a,b,c,e,f){let g="";if(!t(f)||(/^w/i.test(b)&&(c=b+c,b="",g="http://"),!function(a){let b=a.split(".");return!(b.length<2||b[b.length-1]&&(/_/.test(b[b.length-1])||!/[a-zA-Z\d]/.test(b[b.length-1]))||b[b.length-2]&&(/_/.test(b[b.length-2])||!/[a-zA-Z\d]/.test(b[b.length-2])))}(c)))return!1;let h=function(a){let b=/[!"&'),.:;<>?\]}]+$/.exec(a);if(!b)return[a,void 0];a=a.slice(0,b.index);let c=b[0],e=c.indexOf(")"),f=d(a,"("),g=d(a,")");for(;-1!==e&&f>g;)a+=c.slice(0,e+1),e=(c=c.slice(e+1)).indexOf(")"),g++;return[a,c]}(c+e);if(!h[0])return!1;let i={type:"link",title:null,url:g+b+h[0],children:[{type:"text",value:b+h[0]}]};return h[1]?[i,{type:"text",value:h[1]}]:i}function s(a,b,c,d){return!(!t(d,!0)||/[-\d_]$/.test(c))&&{type:"link",title:null,url:"mailto:"+b+"@"+c,children:[{type:"text",value:b+"@"+c}]}}function t(a,b){let c=a.input.charCodeAt(a.index-1);return(0===a.index||(0,f.Ny)(c)||(0,f.es)(c))&&(!b||47!==c)}var u=c(75179);function v(){this.buffer()}function w(a){this.enter({type:"footnoteReference",identifier:"",label:""},a)}function x(){this.buffer()}function y(a){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},a)}function z(a){let b=this.resume(),c=this.stack[this.stack.length-1];(0,e.ok)("footnoteReference"===c.type),c.identifier=(0,u.B)(this.sliceSerialize(a)).toLowerCase(),c.label=b}function A(a){this.exit(a)}function B(a){let b=this.resume(),c=this.stack[this.stack.length-1];(0,e.ok)("footnoteDefinition"===c.type),c.identifier=(0,u.B)(this.sliceSerialize(a)).toLowerCase(),c.label=b}function C(a){this.exit(a)}function D(a,b,c,d){let e=c.createTracker(d),f=e.move("[^"),g=c.enter("footnoteReference"),h=c.enter("reference");return f+=e.move(c.safe(c.associationId(a),{after:"]",before:f})),h(),g(),f+=e.move("]")}function E(a,b,c){return 0===b?a:F(a,b,c)}function F(a,b,c){return(c?"":" ")+a}D.peek=function(){return"["};let G=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];function H(a){this.enter({type:"delete",children:[]},a)}function I(a){this.exit(a)}function J(a,b,c,d){let e=c.createTracker(d),f=c.enter("strikethrough"),g=e.move("~~");return g+=c.containerPhrasing(a,{...e.current(),before:g,after:"~"}),g+=e.move("~~"),f(),g}function K(a){return a.length}function L(a){let b="string"==typeof a?a.codePointAt(0):0;return 67===b||99===b?99:76===b||108===b?108:114*(82===b||114===b)}J.peek=function(){return"~"};var M=c(71646);c(60921);c(96429);function N(a,b,c){let d=a.value||"",e="`",f=-1;for(;RegExp("(^|[^`])"+e+"([^`]|$)").test(d);)e+="`";for(/[^ \r\n]/.test(d)&&(/^[ \r\n]/.test(d)&&/[ \r\n]$/.test(d)||/^`|`$/.test(d))&&(d=" "+d+" ");++f<c.unsafe.length;){let a,b=c.unsafe[f],e=c.compilePattern(b);if(b.atBreak)for(;a=e.exec(d);){let b=a.index;10===d.charCodeAt(b)&&13===d.charCodeAt(b-1)&&b--,d=d.slice(0,b)+" "+d.slice(a.index+1)}}return e+d+e}N.peek=function(){return"`"};(0,h.C)(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);let O={inlineCode:N,listItem:function(a,b,c,d){let e=function(a){let b=a.options.listItemIndent||"one";if("tab"!==b&&"one"!==b&&"mixed"!==b)throw Error("Cannot serialize items with `"+b+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return b}(c),f=c.bulletCurrent||function(a){let b=a.options.bullet||"*";if("*"!==b&&"+"!==b&&"-"!==b)throw Error("Cannot serialize items with `"+b+"` for `options.bullet`, expected `*`, `+`, or `-`");return b}(c);b&&"list"===b.type&&b.ordered&&(f=("number"==typeof b.start&&b.start>-1?b.start:1)+(!1===c.options.incrementListMarker?0:b.children.indexOf(a))+f);let g=f.length+1;("tab"===e||"mixed"===e&&(b&&"list"===b.type&&b.spread||a.spread))&&(g=4*Math.ceil(g/4));let h=c.createTracker(d);h.move(f+" ".repeat(g-f.length)),h.shift(g);let i=c.enter("listItem"),j=c.indentLines(c.containerFlow(a,h.current()),function(a,b,c){return b?(c?"":" ".repeat(g))+a:(c?f:f+" ".repeat(g-f.length))+a});return i(),j}};function P(a){let b=a._align;(0,e.ok)(b,"expected `_align` on table"),this.enter({type:"table",align:b.map(function(a){return"none"===a?null:a}),children:[]},a),this.data.inTable=!0}function Q(a){this.exit(a),this.data.inTable=void 0}function R(a){this.enter({type:"tableRow",children:[]},a)}function S(a){this.exit(a)}function T(a){this.enter({type:"tableCell",children:[]},a)}function U(a){let b=this.resume();this.data.inTable&&(b=b.replace(/\\([\\|])/g,V));let c=this.stack[this.stack.length-1];(0,e.ok)("inlineCode"===c.type),c.value=b,this.exit(a)}function V(a,b){return"|"===b?b:a}function W(a){let b=this.stack[this.stack.length-2];(0,e.ok)("listItem"===b.type),b.checked="taskListCheckValueChecked"===a.type}function X(a){let b=this.stack[this.stack.length-2];if(b&&"listItem"===b.type&&"boolean"==typeof b.checked){let a=this.stack[this.stack.length-1];(0,e.ok)("paragraph"===a.type);let c=a.children[0];if(c&&"text"===c.type){let d,e=b.children,f=-1;for(;++f<e.length;){let a=e[f];if("paragraph"===a.type){d=a;break}}d===a&&(c.value=c.value.slice(1),0===c.value.length?a.children.shift():a.position&&c.position&&"number"==typeof c.position.start.offset&&(c.position.start.column++,c.position.start.offset++,a.position.start=Object.assign({},c.position.start)))}}this.exit(a)}function Y(a,b,c,d){let e=a.children[0],f="boolean"==typeof a.checked&&e&&"paragraph"===e.type,g="["+(a.checked?"x":" ")+"] ",h=c.createTracker(d);f&&h.move(g);let i=O.listItem(a,b,c,{...d,...h.current()});return f&&(i=i.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,function(a){return a+g})),i}var Z=c(66600);let $={tokenize:function(a,b,c){let d=0;return function b(f){return(87===f||119===f)&&d<3?(d++,a.consume(f),b):46===f&&3===d?(a.consume(f),e):c(f)};function e(a){return null===a?c(a):b(a)}},partial:!0},_={tokenize:function(a,b,c){let d,e,g;return h;function h(b){return 46===b||95===b?a.check(ab,j,i)(b):null===b||(0,f.Ee)(b)||(0,f.Ny)(b)||45!==b&&(0,f.es)(b)?j(b):(g=!0,a.consume(b),h)}function i(b){return 95===b?d=!0:(e=d,d=void 0),a.consume(b),h}function j(a){return e||d||!g?c(a):b(a)}},partial:!0},aa={tokenize:function(a,b){let c=0,d=0;return e;function e(h){return 40===h?(c++,a.consume(h),e):41===h&&d<c?g(h):33===h||34===h||38===h||39===h||41===h||42===h||44===h||46===h||58===h||59===h||60===h||63===h||93===h||95===h||126===h?a.check(ab,b,g)(h):null===h||(0,f.Ee)(h)||(0,f.Ny)(h)?b(h):(a.consume(h),e)}function g(b){return 41===b&&d++,a.consume(b),e}},partial:!0},ab={tokenize:function(a,b,c){return d;function d(h){return 33===h||34===h||39===h||41===h||42===h||44===h||46===h||58===h||59===h||63===h||95===h||126===h?(a.consume(h),d):38===h?(a.consume(h),g):93===h?(a.consume(h),e):60===h||null===h||(0,f.Ee)(h)||(0,f.Ny)(h)?b(h):c(h)}function e(a){return null===a||40===a||91===a||(0,f.Ee)(a)||(0,f.Ny)(a)?b(a):d(a)}function g(b){return(0,f.CW)(b)?function b(e){return 59===e?(a.consume(e),d):(0,f.CW)(e)?(a.consume(e),b):c(e)}(b):c(b)}},partial:!0},ac={tokenize:function(a,b,c){return function(b){return a.consume(b),d};function d(a){return(0,f.lV)(a)?c(a):b(a)}},partial:!0},ad={name:"wwwAutolink",tokenize:function(a,b,c){let d=this;return function(b){return 87!==b&&119!==b||!ai.call(d,d.previous)||am(d.events)?c(b):(a.enter("literalAutolink"),a.enter("literalAutolinkWww"),a.check($,a.attempt(_,a.attempt(aa,e),c),c)(b))};function e(c){return a.exit("literalAutolinkWww"),a.exit("literalAutolink"),b(c)}},previous:ai},ae={name:"protocolAutolink",tokenize:function(a,b,c){let d=this,e="",g=!1;return function(b){return(72===b||104===b)&&aj.call(d,d.previous)&&!am(d.events)?(a.enter("literalAutolink"),a.enter("literalAutolinkHttp"),e+=String.fromCodePoint(b),a.consume(b),h):c(b)};function h(b){if((0,f.CW)(b)&&e.length<5)return e+=String.fromCodePoint(b),a.consume(b),h;if(58===b){let c=e.toLowerCase();if("http"===c||"https"===c)return a.consume(b),i}return c(b)}function i(b){return 47===b?(a.consume(b),g)?j:(g=!0,i):c(b)}function j(b){return null===b||(0,f.JQ)(b)||(0,f.Ee)(b)||(0,f.Ny)(b)||(0,f.es)(b)?c(b):a.attempt(_,a.attempt(aa,k),c)(b)}function k(c){return a.exit("literalAutolinkHttp"),a.exit("literalAutolink"),b(c)}},previous:aj},af={name:"emailAutolink",tokenize:function(a,b,c){let d,e,g=this;return function(b){return!al(b)||!ak.call(g,g.previous)||am(g.events)?c(b):(a.enter("literalAutolink"),a.enter("literalAutolinkEmail"),function b(d){return al(d)?(a.consume(d),b):64===d?(a.consume(d),h):c(d)}(b))};function h(b){return 46===b?a.check(ac,j,i)(b):45===b||95===b||(0,f.lV)(b)?(e=!0,a.consume(b),h):j(b)}function i(b){return a.consume(b),d=!0,h}function j(h){return e&&d&&(0,f.CW)(g.previous)?(a.exit("literalAutolinkEmail"),a.exit("literalAutolink"),b(h)):c(h)}},previous:ak},ag={},ah=48;for(;ah<123;)ag[ah]=af,58==++ah?ah=65:91===ah&&(ah=97);function ai(a){return null===a||40===a||42===a||95===a||91===a||93===a||126===a||(0,f.Ee)(a)}function aj(a){return!(0,f.CW)(a)}function ak(a){return!(47===a||al(a))}function al(a){return 43===a||45===a||46===a||95===a||(0,f.lV)(a)}function am(a){let b=a.length,c=!1;for(;b--;){let d=a[b][1];if(("labelLink"===d.type||"labelImage"===d.type)&&!d._balanced){c=!0;break}if(d._gfmAutolinkLiteralWalkedInto){c=!1;break}}return a.length>0&&!c&&(a[a.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),c}ag[43]=af,ag[45]=af,ag[46]=af,ag[95]=af,ag[72]=[af,ae],ag[104]=[af,ae],ag[87]=[af,ad],ag[119]=[af,ad];var an=c(43560),ao=c(83224);let ap={tokenize:function(a,b,c){let d=this;return(0,ao.N)(a,function(a){let e=d.events[d.events.length-1];return e&&"gfmFootnoteDefinitionIndent"===e[1].type&&4===e[2].sliceSerialize(e[1],!0).length?b(a):c(a)},"gfmFootnoteDefinitionIndent",5)},partial:!0};function aq(a,b,c){let d,e=this,f=e.events.length,g=e.parser.gfmFootnotes||(e.parser.gfmFootnotes=[]);for(;f--;){let a=e.events[f][1];if("labelImage"===a.type){d=a;break}if("gfmFootnoteCall"===a.type||"labelLink"===a.type||"label"===a.type||"image"===a.type||"link"===a.type)break}return function(f){if(!d||!d._balanced)return c(f);let h=(0,u.B)(e.sliceSerialize({start:d.end,end:e.now()}));return 94===h.codePointAt(0)&&g.includes(h.slice(1))?(a.enter("gfmFootnoteCallLabelMarker"),a.consume(f),a.exit("gfmFootnoteCallLabelMarker"),b(f)):c(f)}}function ar(a,b){let c=a.length;for(;c--;)if("labelImage"===a[c][1].type&&"enter"===a[c][0]){a[c][1];break}a[c+1][1].type="data",a[c+3][1].type="gfmFootnoteCallLabelMarker";let d={type:"gfmFootnoteCall",start:Object.assign({},a[c+3][1].start),end:Object.assign({},a[a.length-1][1].end)},e={type:"gfmFootnoteCallMarker",start:Object.assign({},a[c+3][1].end),end:Object.assign({},a[c+3][1].end)};e.end.column++,e.end.offset++,e.end._bufferIndex++;let f={type:"gfmFootnoteCallString",start:Object.assign({},e.end),end:Object.assign({},a[a.length-1][1].start)},g={type:"chunkString",contentType:"string",start:Object.assign({},f.start),end:Object.assign({},f.end)},h=[a[c+1],a[c+2],["enter",d,b],a[c+3],a[c+4],["enter",e,b],["exit",e,b],["enter",f,b],["enter",g,b],["exit",g,b],["exit",f,b],a[a.length-2],a[a.length-1],["exit",d,b]];return a.splice(c,a.length-c+1,...h),a}function as(a,b,c){let d,e=this,g=e.parser.gfmFootnotes||(e.parser.gfmFootnotes=[]),h=0;return function(b){return a.enter("gfmFootnoteCall"),a.enter("gfmFootnoteCallLabelMarker"),a.consume(b),a.exit("gfmFootnoteCallLabelMarker"),i};function i(b){return 94!==b?c(b):(a.enter("gfmFootnoteCallMarker"),a.consume(b),a.exit("gfmFootnoteCallMarker"),a.enter("gfmFootnoteCallString"),a.enter("chunkString").contentType="string",j)}function j(i){if(h>999||93===i&&!d||null===i||91===i||(0,f.Ee)(i))return c(i);if(93===i){a.exit("chunkString");let d=a.exit("gfmFootnoteCallString");return g.includes((0,u.B)(e.sliceSerialize(d)))?(a.enter("gfmFootnoteCallLabelMarker"),a.consume(i),a.exit("gfmFootnoteCallLabelMarker"),a.exit("gfmFootnoteCall"),b):c(i)}return(0,f.Ee)(i)||(d=!0),h++,a.consume(i),92===i?k:j}function k(b){return 91===b||92===b||93===b?(a.consume(b),h++,j):j(b)}}function at(a,b,c){let d,e,g=this,h=g.parser.gfmFootnotes||(g.parser.gfmFootnotes=[]),i=0;return function(b){return a.enter("gfmFootnoteDefinition")._container=!0,a.enter("gfmFootnoteDefinitionLabel"),a.enter("gfmFootnoteDefinitionLabelMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionLabelMarker"),j};function j(b){return 94===b?(a.enter("gfmFootnoteDefinitionMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionMarker"),a.enter("gfmFootnoteDefinitionLabelString"),a.enter("chunkString").contentType="string",k):c(b)}function k(b){if(i>999||93===b&&!e||null===b||91===b||(0,f.Ee)(b))return c(b);if(93===b){a.exit("chunkString");let c=a.exit("gfmFootnoteDefinitionLabelString");return d=(0,u.B)(g.sliceSerialize(c)),a.enter("gfmFootnoteDefinitionLabelMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionLabelMarker"),a.exit("gfmFootnoteDefinitionLabel"),m}return(0,f.Ee)(b)||(e=!0),i++,a.consume(b),92===b?l:k}function l(b){return 91===b||92===b||93===b?(a.consume(b),i++,k):k(b)}function m(b){return 58===b?(a.enter("definitionMarker"),a.consume(b),a.exit("definitionMarker"),h.includes(d)||h.push(d),(0,ao.N)(a,n,"gfmFootnoteDefinitionWhitespace")):c(b)}function n(a){return b(a)}}function au(a,b,c){return a.check(an.B,b,a.attempt(ap,b,c))}function av(a){a.exit("gfmFootnoteDefinition")}var aw=c(282),ax=c(65352);class ay{constructor(){this.map=[]}add(a,b,c){!function(a,b,c,d){let e=0;if(0!==c||0!==d.length){for(;e<a.map.length;){if(a.map[e][0]===b){a.map[e][1]+=c,a.map[e][2].push(...d);return}e+=1}a.map.push([b,c,d])}}(this,a,b,c)}consume(a){if(this.map.sort(function(a,b){return a[0]-b[0]}),0===this.map.length)return;let b=this.map.length,c=[];for(;b>0;)b-=1,c.push(a.slice(this.map[b][0]+this.map[b][1]),this.map[b][2]),a.length=this.map[b][0];c.push(a.slice()),a.length=0;let d=c.pop();for(;d;){for(let b of d)a.push(b);d=c.pop()}this.map.length=0}}function az(a,b,c){let d,e=this,g=0,h=0;return function(a){let b=e.events.length-1;for(;b>-1;){let a=e.events[b][1].type;if("lineEnding"===a||"linePrefix"===a)b--;else break}let d=b>-1?e.events[b][1].type:null,f="tableHead"===d||"tableRow"===d?t:i;return f===t&&e.parser.lazy[e.now().line]?c(a):f(a)};function i(b){var c;return a.enter("tableHead"),a.enter("tableRow"),124===(c=b)||(d=!0,h+=1),j(c)}function j(b){return null===b?c(b):(0,f.HP)(b)?h>1?(h=0,e.interrupt=!0,a.exit("tableRow"),a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),m):c(b):(0,f.On)(b)?(0,ao.N)(a,j,"whitespace")(b):(h+=1,d&&(d=!1,g+=1),124===b)?(a.enter("tableCellDivider"),a.consume(b),a.exit("tableCellDivider"),d=!0,j):(a.enter("data"),k(b))}function k(b){return null===b||124===b||(0,f.Ee)(b)?(a.exit("data"),j(b)):(a.consume(b),92===b?l:k)}function l(b){return 92===b||124===b?(a.consume(b),k):k(b)}function m(b){return(e.interrupt=!1,e.parser.lazy[e.now().line])?c(b):(a.enter("tableDelimiterRow"),d=!1,(0,f.On)(b))?(0,ao.N)(a,n,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):n(b)}function n(b){return 45===b||58===b?p(b):124===b?(d=!0,a.enter("tableCellDivider"),a.consume(b),a.exit("tableCellDivider"),o):c(b)}function o(b){return(0,f.On)(b)?(0,ao.N)(a,p,"whitespace")(b):p(b)}function p(b){return 58===b?(h+=1,d=!0,a.enter("tableDelimiterMarker"),a.consume(b),a.exit("tableDelimiterMarker"),q):45===b?(h+=1,q(b)):null===b||(0,f.HP)(b)?s(b):c(b)}function q(b){return 45===b?(a.enter("tableDelimiterFiller"),function b(c){return 45===c?(a.consume(c),b):58===c?(d=!0,a.exit("tableDelimiterFiller"),a.enter("tableDelimiterMarker"),a.consume(c),a.exit("tableDelimiterMarker"),r):(a.exit("tableDelimiterFiller"),r(c))}(b)):c(b)}function r(b){return(0,f.On)(b)?(0,ao.N)(a,s,"whitespace")(b):s(b)}function s(e){if(124===e)return n(e);if(null===e||(0,f.HP)(e))return d&&g===h?(a.exit("tableDelimiterRow"),a.exit("tableHead"),b(e)):c(e);return c(e)}function t(b){return a.enter("tableRow"),u(b)}function u(c){return 124===c?(a.enter("tableCellDivider"),a.consume(c),a.exit("tableCellDivider"),u):null===c||(0,f.HP)(c)?(a.exit("tableRow"),b(c)):(0,f.On)(c)?(0,ao.N)(a,u,"whitespace")(c):(a.enter("data"),v(c))}function v(b){return null===b||124===b||(0,f.Ee)(b)?(a.exit("data"),u(b)):(a.consume(b),92===b?w:v)}function w(b){return 92===b||124===b?(a.consume(b),v):v(b)}}function aA(a,b){let c,d,e,f=-1,g=!0,h=0,i=[0,0,0,0],j=[0,0,0,0],k=!1,l=0,m=new ay;for(;++f<a.length;){let n=a[f],o=n[1];"enter"===n[0]?"tableHead"===o.type?(k=!1,0!==l&&(aC(m,b,l,c,d),d=void 0,l=0),c={type:"table",start:Object.assign({},o.start),end:Object.assign({},o.end)},m.add(f,0,[["enter",c,b]])):"tableRow"===o.type||"tableDelimiterRow"===o.type?(g=!0,e=void 0,i=[0,0,0,0],j=[0,f+1,0,0],k&&(k=!1,d={type:"tableBody",start:Object.assign({},o.start),end:Object.assign({},o.end)},m.add(f,0,[["enter",d,b]])),h="tableDelimiterRow"===o.type?2:d?3:1):h&&("data"===o.type||"tableDelimiterMarker"===o.type||"tableDelimiterFiller"===o.type)?(g=!1,0===j[2]&&(0!==i[1]&&(j[0]=j[1],e=aB(m,b,i,h,void 0,e),i=[0,0,0,0]),j[2]=f)):"tableCellDivider"===o.type&&(g?g=!1:(0!==i[1]&&(j[0]=j[1],e=aB(m,b,i,h,void 0,e)),j=[(i=j)[1],f,0,0])):"tableHead"===o.type?(k=!0,l=f):"tableRow"===o.type||"tableDelimiterRow"===o.type?(l=f,0!==i[1]?(j[0]=j[1],e=aB(m,b,i,h,f,e)):0!==j[1]&&(e=aB(m,b,j,h,f,e)),h=0):h&&("data"===o.type||"tableDelimiterMarker"===o.type||"tableDelimiterFiller"===o.type)&&(j[3]=f)}for(0!==l&&aC(m,b,l,c,d),m.consume(b.events),f=-1;++f<b.events.length;){let a=b.events[f];"enter"===a[0]&&"table"===a[1].type&&(a[1]._align=function(a,b){let c=!1,d=[];for(;b<a.length;){let e=a[b];if(c){if("enter"===e[0])"tableContent"===e[1].type&&d.push("tableDelimiterMarker"===a[b+1][1].type?"left":"none");else if("tableContent"===e[1].type){if("tableDelimiterMarker"===a[b-1][1].type){let a=d.length-1;d[a]="left"===d[a]?"center":"right"}}else if("tableDelimiterRow"===e[1].type)break}else"enter"===e[0]&&"tableDelimiterRow"===e[1].type&&(c=!0);b+=1}return d}(b.events,f))}return a}function aB(a,b,c,d,e,f){0!==c[0]&&(f.end=Object.assign({},aD(b.events,c[0])),a.add(c[0],0,[["exit",f,b]]));let g=aD(b.events,c[1]);if(f={type:1===d?"tableHeader":2===d?"tableDelimiter":"tableData",start:Object.assign({},g),end:Object.assign({},g)},a.add(c[1],0,[["enter",f,b]]),0!==c[2]){let e=aD(b.events,c[2]),f=aD(b.events,c[3]),g={type:"tableContent",start:Object.assign({},e),end:Object.assign({},f)};if(a.add(c[2],0,[["enter",g,b]]),2!==d){let d=b.events[c[2]],e=b.events[c[3]];if(d[1].end=Object.assign({},e[1].end),d[1].type="chunkText",d[1].contentType="text",c[3]>c[2]+1){let b=c[2]+1,d=c[3]-c[2]-1;a.add(b,d,[])}}a.add(c[3]+1,0,[["exit",g,b]])}return void 0!==e&&(f.end=Object.assign({},aD(b.events,e)),a.add(e,0,[["exit",f,b]]),f=void 0),f}function aC(a,b,c,d,e){let f=[],g=aD(b.events,c);e&&(e.end=Object.assign({},g),f.push(["exit",e,b])),d.end=Object.assign({},g),f.push(["exit",d,b]),a.add(c+1,0,f)}function aD(a,b){let c=a[b],d="enter"===c[0]?"start":"end";return c[1][d]}let aE={name:"tasklistCheck",tokenize:function(a,b,c){let d=this;return function(b){return null===d.previous&&d._gfmTasklistFirstContentOfListItem?(a.enter("taskListCheck"),a.enter("taskListCheckMarker"),a.consume(b),a.exit("taskListCheckMarker"),e):c(b)};function e(b){return(0,f.Ee)(b)?(a.enter("taskListCheckValueUnchecked"),a.consume(b),a.exit("taskListCheckValueUnchecked"),g):88===b||120===b?(a.enter("taskListCheckValueChecked"),a.consume(b),a.exit("taskListCheckValueChecked"),g):c(b)}function g(b){return 93===b?(a.enter("taskListCheckMarker"),a.consume(b),a.exit("taskListCheckMarker"),a.exit("taskListCheck"),h):c(b)}function h(d){return(0,f.HP)(d)?b(d):(0,f.On)(d)?a.check({tokenize:aF},b,c)(d):c(d)}}};function aF(a,b,c){return(0,ao.N)(a,function(a){return null===a?c(a):b(a)},"whitespace")}let aG={};function aH(a){let b,c=a||aG,d=this.data(),e=d.micromarkExtensions||(d.micromarkExtensions=[]),f=d.fromMarkdownExtensions||(d.fromMarkdownExtensions=[]),g=d.toMarkdownExtensions||(d.toMarkdownExtensions=[]);e.push((0,Z.y)([{text:ag},{document:{91:{name:"gfmFootnoteDefinition",tokenize:at,continuation:{tokenize:au},exit:av}},text:{91:{name:"gfmFootnoteCall",tokenize:as},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:aq,resolveTo:ar}}},function(a){let b=(a||{}).singleTilde,c={name:"strikethrough",tokenize:function(a,c,d){let e=this.previous,f=this.events,g=0;return function(h){return 126===e&&"characterEscape"!==f[f.length-1][1].type?d(h):(a.enter("strikethroughSequenceTemporary"),function f(h){let i=(0,M.S)(e);if(126===h)return g>1?d(h):(a.consume(h),g++,f);if(g<2&&!b)return d(h);let j=a.exit("strikethroughSequenceTemporary"),k=(0,M.S)(h);return j._open=!k||2===k&&!!i,j._close=!i||2===i&&!!k,c(h)}(h))}},resolveAll:function(a,b){let c=-1;for(;++c<a.length;)if("enter"===a[c][0]&&"strikethroughSequenceTemporary"===a[c][1].type&&a[c][1]._close){let d=c;for(;d--;)if("exit"===a[d][0]&&"strikethroughSequenceTemporary"===a[d][1].type&&a[d][1]._open&&a[c][1].end.offset-a[c][1].start.offset==a[d][1].end.offset-a[d][1].start.offset){a[c][1].type="strikethroughSequence",a[d][1].type="strikethroughSequence";let e={type:"strikethrough",start:Object.assign({},a[d][1].start),end:Object.assign({},a[c][1].end)},f={type:"strikethroughText",start:Object.assign({},a[d][1].end),end:Object.assign({},a[c][1].start)},g=[["enter",e,b],["enter",a[d][1],b],["exit",a[d][1],b],["enter",f,b]],h=b.parser.constructs.insideSpan.null;h&&(0,aw.m)(g,g.length,0,(0,ax.W)(h,a.slice(d+1,c),b)),(0,aw.m)(g,g.length,0,[["exit",f,b],["enter",a[c][1],b],["exit",a[c][1],b],["exit",e,b]]),(0,aw.m)(a,d-1,c-d+3,g),c=d+g.length-2;break}}for(c=-1;++c<a.length;)"strikethroughSequenceTemporary"===a[c][1].type&&(a[c][1].type="data");return a}};return null==b&&(b=!0),{text:{126:c},insideSpan:{null:[c]},attentionMarkers:{null:[126]}}}(c),{flow:{null:{name:"table",tokenize:az,resolveAll:aA}}},{text:{91:aE}}])),f.push([{transforms:[q],enter:{literalAutolink:k,literalAutolinkEmail:l,literalAutolinkHttp:l,literalAutolinkWww:l},exit:{literalAutolink:p,literalAutolinkEmail:o,literalAutolinkHttp:m,literalAutolinkWww:n}},{enter:{gfmFootnoteCallString:v,gfmFootnoteCall:w,gfmFootnoteDefinitionLabelString:x,gfmFootnoteDefinition:y},exit:{gfmFootnoteCallString:z,gfmFootnoteCall:A,gfmFootnoteDefinitionLabelString:B,gfmFootnoteDefinition:C}},{canContainEols:["delete"],enter:{strikethrough:H},exit:{strikethrough:I}},{enter:{table:P,tableData:T,tableHeader:T,tableRow:R},exit:{codeText:U,table:Q,tableData:S,tableHeader:S,tableRow:S}},{exit:{taskListCheckValueChecked:W,taskListCheckValueUnchecked:W,paragraph:X}}]),g.push({extensions:[{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:i,notInConstruct:j},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:i,notInConstruct:j},{character:":",before:"[ps]",after:"\\/",inConstruct:i,notInConstruct:j}]},(b=!1,c&&c.firstLineBlank&&(b=!0),{handlers:{footnoteDefinition:function(a,c,d,e){let f=d.createTracker(e),g=f.move("[^"),h=d.enter("footnoteDefinition"),i=d.enter("label");return g+=f.move(d.safe(d.associationId(a),{before:g,after:"]"})),i(),g+=f.move("]:"),a.children&&a.children.length>0&&(f.shift(4),g+=f.move((b?"\n":" ")+d.indentLines(d.containerFlow(a,f.current()),b?F:E))),h(),g},footnoteReference:D},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]}),{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:G}],handlers:{delete:J}},function(a){let b=a||{},c=b.tableCellPadding,d=b.tablePipeAlign,e=b.stringLength,f=c?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:"\n",inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:function(a,b,c){let d=O.inlineCode(a,b,c);return c.stack.includes("tableCell")&&(d=d.replace(/\|/g,"\\$&")),d},table:function(a,b,c,d){return h(function(a,b,c){let d=a.children,e=-1,f=[],g=b.enter("table");for(;++e<d.length;)f[e]=i(d[e],b,c);return g(),f}(a,c,d),a.align)},tableCell:g,tableRow:function(a,b,c,d){let e=h([i(a,c,d)]);return e.slice(0,e.indexOf("\n"))}}};function g(a,b,c,d){let e=c.enter("tableCell"),g=c.enter("phrasing"),h=c.containerPhrasing(a,{...d,before:f,after:f});return g(),e(),h}function h(a,b){return function(a,b){let c=b||{},d=(c.align||[]).concat(),e=c.stringLength||K,f=[],g=[],h=[],i=[],j=0,k=-1;for(;++k<a.length;){let b=[],d=[],f=-1;for(a[k].length>j&&(j=a[k].length);++f<a[k].length;){var l;let g=null==(l=a[k][f])?"":String(l);if(!1!==c.alignDelimiters){let a=e(g);d[f]=a,(void 0===i[f]||a>i[f])&&(i[f]=a)}b.push(g)}g[k]=b,h[k]=d}let m=-1;if("object"==typeof d&&"length"in d)for(;++m<j;)f[m]=L(d[m]);else{let a=L(d);for(;++m<j;)f[m]=a}m=-1;let n=[],o=[];for(;++m<j;){let a=f[m],b="",d="";99===a?(b=":",d=":"):108===a?b=":":114===a&&(d=":");let e=!1===c.alignDelimiters?1:Math.max(1,i[m]-b.length-d.length),g=b+"-".repeat(e)+d;!1!==c.alignDelimiters&&((e=b.length+e+d.length)>i[m]&&(i[m]=e),o[m]=e),n[m]=g}g.splice(1,0,n),h.splice(1,0,o),k=-1;let p=[];for(;++k<g.length;){let a=g[k],b=h[k];m=-1;let d=[];for(;++m<j;){let e=a[m]||"",g="",h="";if(!1!==c.alignDelimiters){let a=i[m]-(b[m]||0),c=f[m];114===c?g=" ".repeat(a):99===c?a%2?(g=" ".repeat(a/2+.5),h=" ".repeat(a/2-.5)):h=g=" ".repeat(a/2):h=" ".repeat(a)}!1===c.delimiterStart||m||d.push("|"),!1!==c.padding&&(!1!==c.alignDelimiters||""!==e)&&(!1!==c.delimiterStart||m)&&d.push(" "),!1!==c.alignDelimiters&&d.push(g),d.push(e),!1!==c.alignDelimiters&&d.push(h),!1!==c.padding&&d.push(" "),(!1!==c.delimiterEnd||m!==j-1)&&d.push("|")}p.push(!1===c.delimiterEnd?d.join("").replace(/ +$/,""):d.join(""))}return p.join("\n")}(a,{align:b,alignDelimiters:d,padding:c,stringLength:e})}function i(a,b,c){let d=a.children,e=-1,f=[],h=b.enter("tableRow");for(;++e<d.length;)f[e]=g(d[e],a,b,c);return h(),f}}(c),{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:Y}}]})}},21358:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)([(0,e.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,e.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber")},24709:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.camelCase=void 0;var c=/^--[a-zA-Z0-9_-]+$/,d=/-([a-z])/g,e=/^[^-]+$/,f=/^-(webkit|moz|ms|o|khtml)-/,g=/^-(ms)-/,h=function(a,b){return b.toUpperCase()},i=function(a,b){return"".concat(b,"-")};b.camelCase=function(a,b){var j;return(void 0===b&&(b={}),!(j=a)||e.test(j)||c.test(j))?a:(a=a.toLowerCase(),(a=b.reactCompat?a.replace(g,i):a.replace(f,i)).replace(d,h))}},30189:function(a,b,c){"use strict";var d=(this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}})(c(61421)),e=c(24709);function f(a,b){var c={};return a&&"string"==typeof a&&(0,d.default)(a,function(a,d){a&&d&&(c[(0,e.camelCase)(a,b)]=d)}),c}f.default=f,a.exports=f},42387:(a,b,c)=>{"use strict";c.d(b,{A:()=>D});var d=c(38301),e=c(43249),f=c(2783),g=c(37489),h=c(38404),i=c(78871),j=c(18168),k=c(68333),l=c(54716),m=c(6636),n=c(6638),o=c(29565),p=c(33105);function q(a){return(0,p.Ay)("MuiLinearProgress",a)}(0,o.A)("MuiLinearProgress",["root","colorPrimary","colorSecondary","determinate","indeterminate","buffer","query","dashed","dashedColorPrimary","dashedColorSecondary","bar","bar1","bar2","barColorPrimary","barColorSecondary","bar1Indeterminate","bar1Determinate","bar1Buffer","bar2Indeterminate","bar2Buffer"]);var r=c(21124);let s=(0,i.i7)`
|
|
1
|
+
exports.id=2998,exports.ids=[2998],exports.modules={282:(a,b,c)=>{"use strict";function d(a,b,c,d){let e,f=a.length,g=0;if(b=b<0?-b>f?0:f+b:b>f?f:b,c=c>0?c:0,d.length<1e4)(e=Array.from(d)).unshift(b,c),a.splice(...e);else for(c&&a.splice(b,c);g<d.length;)(e=d.slice(g,g+1e4)).unshift(b,0),a.splice(...e),g+=1e4,b+=1e4}function e(a,b){return a.length>0?(d(a,a.length,0,b),a):b}c.d(b,{V:()=>e,m:()=>d})},5501:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Star")},5776:(a,b,c)=>{"use strict";function d(){}function e(){}c.d(b,{HB:()=>e,ok:()=>d})},7503:(a,b,c)=>{"use strict";c.d(b,{A:()=>p});var d=c(38301),e=c(43249),f=c(2783),g=c(41126),h=c(18168),i=c(6636),j=c(79515),k=c(29565),l=c(33105);function m(a){return(0,l.Ay)("MuiDialogContentText",a)}(0,k.A)("MuiDialogContentText",["root"]);var n=c(21124);let o=(0,h.Ay)(j.default,{shouldForwardProp:a=>(0,g.A)(a)||"classes"===a,name:"MuiDialogContentText",slot:"Root",overridesResolver:(a,b)=>b.root})({}),p=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiDialogContentText"}),{children:d,className:g,...h}=c,j=(a=>{let{classes:b}=a,c=(0,f.A)({root:["root"]},m,b);return{...b,...c}})(h);return(0,n.jsx)(o,{component:"p",variant:"body1",color:"textSecondary",ref:b,ownerState:h,className:(0,e.A)(j.root,g),...c,classes:j})})},18954:(a,b,c)=>{"use strict";function d(a,b){let c=String(a);if("string"!=typeof b)throw TypeError("Expected character");let d=0,e=c.indexOf(b);for(;-1!==e;)d++,e=c.indexOf(b,e+b.length);return d}c.d(b,{A:()=>aH});var e=c(5776),f=c(76713),g=c(78971),h=c(77410);let i="phrasing",j=["autolink","link","image","label"];function k(a){this.enter({type:"link",title:null,url:"",children:[]},a)}function l(a){this.config.enter.autolinkProtocol.call(this,a)}function m(a){this.config.exit.autolinkProtocol.call(this,a)}function n(a){this.config.exit.data.call(this,a);let b=this.stack[this.stack.length-1];(0,e.ok)("link"===b.type),b.url="http://"+this.sliceSerialize(a)}function o(a){this.config.exit.autolinkEmail.call(this,a)}function p(a){this.exit(a)}function q(a){!function(a,b,c){let d=(0,h.C)((c||{}).ignore||[]),e=function(a){let b=[];if(!Array.isArray(a))throw TypeError("Expected find and replace tuple or list of tuples");let c=!a[0]||Array.isArray(a[0])?a:[a],d=-1;for(;++d<c.length;){var e;let a=c[d];b.push(["string"==typeof(e=a[0])?RegExp(function(a){if("string"!=typeof a)throw TypeError("Expected a string");return a.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}(e),"g"):e,function(a){return"function"==typeof a?a:function(){return a}}(a[1])])}return b}(b),f=-1;for(;++f<e.length;)(0,g.VG)(a,"text",i);function i(a,b){let c,g=-1;for(;++g<b.length;){let a=b[g],e=c?c.children:void 0;if(d(a,e?e.indexOf(a):void 0,c))return;c=a}if(c)return function(a,b){let c=b[b.length-1],d=e[f][0],g=e[f][1],h=0,i=c.children.indexOf(a),j=!1,k=[];d.lastIndex=0;let l=d.exec(a.value);for(;l;){let c=l.index,e={index:l.index,input:l.input,stack:[...b,a]},f=g(...l,e);if("string"==typeof f&&(f=f.length>0?{type:"text",value:f}:void 0),!1===f?d.lastIndex=c+1:(h!==c&&k.push({type:"text",value:a.value.slice(h,c)}),Array.isArray(f)?k.push(...f):f&&k.push(f),h=c+l[0].length,j=!0),!d.global)break;l=d.exec(a.value)}return j?(h<a.value.length&&k.push({type:"text",value:a.value.slice(h)}),c.children.splice(i,1,...k)):k=[a],i+k.length}(a,b)}}(a,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,r],[/(?<=^|\s|\p{P}|\p{S})([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/gu,s]],{ignore:["link","linkReference"]})}function r(a,b,c,e,f){let g="";if(!t(f)||(/^w/i.test(b)&&(c=b+c,b="",g="http://"),!function(a){let b=a.split(".");return!(b.length<2||b[b.length-1]&&(/_/.test(b[b.length-1])||!/[a-zA-Z\d]/.test(b[b.length-1]))||b[b.length-2]&&(/_/.test(b[b.length-2])||!/[a-zA-Z\d]/.test(b[b.length-2])))}(c)))return!1;let h=function(a){let b=/[!"&'),.:;<>?\]}]+$/.exec(a);if(!b)return[a,void 0];a=a.slice(0,b.index);let c=b[0],e=c.indexOf(")"),f=d(a,"("),g=d(a,")");for(;-1!==e&&f>g;)a+=c.slice(0,e+1),e=(c=c.slice(e+1)).indexOf(")"),g++;return[a,c]}(c+e);if(!h[0])return!1;let i={type:"link",title:null,url:g+b+h[0],children:[{type:"text",value:b+h[0]}]};return h[1]?[i,{type:"text",value:h[1]}]:i}function s(a,b,c,d){return!(!t(d,!0)||/[-\d_]$/.test(c))&&{type:"link",title:null,url:"mailto:"+b+"@"+c,children:[{type:"text",value:b+"@"+c}]}}function t(a,b){let c=a.input.charCodeAt(a.index-1);return(0===a.index||(0,f.Ny)(c)||(0,f.es)(c))&&(!b||47!==c)}var u=c(75179);function v(){this.buffer()}function w(a){this.enter({type:"footnoteReference",identifier:"",label:""},a)}function x(){this.buffer()}function y(a){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},a)}function z(a){let b=this.resume(),c=this.stack[this.stack.length-1];(0,e.ok)("footnoteReference"===c.type),c.identifier=(0,u.B)(this.sliceSerialize(a)).toLowerCase(),c.label=b}function A(a){this.exit(a)}function B(a){let b=this.resume(),c=this.stack[this.stack.length-1];(0,e.ok)("footnoteDefinition"===c.type),c.identifier=(0,u.B)(this.sliceSerialize(a)).toLowerCase(),c.label=b}function C(a){this.exit(a)}function D(a,b,c,d){let e=c.createTracker(d),f=e.move("[^"),g=c.enter("footnoteReference"),h=c.enter("reference");return f+=e.move(c.safe(c.associationId(a),{after:"]",before:f})),h(),g(),f+=e.move("]")}function E(a,b,c){return 0===b?a:F(a,b,c)}function F(a,b,c){return(c?"":" ")+a}D.peek=function(){return"["};let G=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];function H(a){this.enter({type:"delete",children:[]},a)}function I(a){this.exit(a)}function J(a,b,c,d){let e=c.createTracker(d),f=c.enter("strikethrough"),g=e.move("~~");return g+=c.containerPhrasing(a,{...e.current(),before:g,after:"~"}),g+=e.move("~~"),f(),g}function K(a){return a.length}function L(a){let b="string"==typeof a?a.codePointAt(0):0;return 67===b||99===b?99:76===b||108===b?108:114*(82===b||114===b)}J.peek=function(){return"~"};var M=c(71646);c(60921);c(96429);function N(a,b,c){let d=a.value||"",e="`",f=-1;for(;RegExp("(^|[^`])"+e+"([^`]|$)").test(d);)e+="`";for(/[^ \r\n]/.test(d)&&(/^[ \r\n]/.test(d)&&/[ \r\n]$/.test(d)||/^`|`$/.test(d))&&(d=" "+d+" ");++f<c.unsafe.length;){let a,b=c.unsafe[f],e=c.compilePattern(b);if(b.atBreak)for(;a=e.exec(d);){let b=a.index;10===d.charCodeAt(b)&&13===d.charCodeAt(b-1)&&b--,d=d.slice(0,b)+" "+d.slice(a.index+1)}}return e+d+e}N.peek=function(){return"`"};(0,h.C)(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);let O={inlineCode:N,listItem:function(a,b,c,d){let e=function(a){let b=a.options.listItemIndent||"one";if("tab"!==b&&"one"!==b&&"mixed"!==b)throw Error("Cannot serialize items with `"+b+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return b}(c),f=c.bulletCurrent||function(a){let b=a.options.bullet||"*";if("*"!==b&&"+"!==b&&"-"!==b)throw Error("Cannot serialize items with `"+b+"` for `options.bullet`, expected `*`, `+`, or `-`");return b}(c);b&&"list"===b.type&&b.ordered&&(f=("number"==typeof b.start&&b.start>-1?b.start:1)+(!1===c.options.incrementListMarker?0:b.children.indexOf(a))+f);let g=f.length+1;("tab"===e||"mixed"===e&&(b&&"list"===b.type&&b.spread||a.spread))&&(g=4*Math.ceil(g/4));let h=c.createTracker(d);h.move(f+" ".repeat(g-f.length)),h.shift(g);let i=c.enter("listItem"),j=c.indentLines(c.containerFlow(a,h.current()),function(a,b,c){return b?(c?"":" ".repeat(g))+a:(c?f:f+" ".repeat(g-f.length))+a});return i(),j}};function P(a){let b=a._align;(0,e.ok)(b,"expected `_align` on table"),this.enter({type:"table",align:b.map(function(a){return"none"===a?null:a}),children:[]},a),this.data.inTable=!0}function Q(a){this.exit(a),this.data.inTable=void 0}function R(a){this.enter({type:"tableRow",children:[]},a)}function S(a){this.exit(a)}function T(a){this.enter({type:"tableCell",children:[]},a)}function U(a){let b=this.resume();this.data.inTable&&(b=b.replace(/\\([\\|])/g,V));let c=this.stack[this.stack.length-1];(0,e.ok)("inlineCode"===c.type),c.value=b,this.exit(a)}function V(a,b){return"|"===b?b:a}function W(a){let b=this.stack[this.stack.length-2];(0,e.ok)("listItem"===b.type),b.checked="taskListCheckValueChecked"===a.type}function X(a){let b=this.stack[this.stack.length-2];if(b&&"listItem"===b.type&&"boolean"==typeof b.checked){let a=this.stack[this.stack.length-1];(0,e.ok)("paragraph"===a.type);let c=a.children[0];if(c&&"text"===c.type){let d,e=b.children,f=-1;for(;++f<e.length;){let a=e[f];if("paragraph"===a.type){d=a;break}}d===a&&(c.value=c.value.slice(1),0===c.value.length?a.children.shift():a.position&&c.position&&"number"==typeof c.position.start.offset&&(c.position.start.column++,c.position.start.offset++,a.position.start=Object.assign({},c.position.start)))}}this.exit(a)}function Y(a,b,c,d){let e=a.children[0],f="boolean"==typeof a.checked&&e&&"paragraph"===e.type,g="["+(a.checked?"x":" ")+"] ",h=c.createTracker(d);f&&h.move(g);let i=O.listItem(a,b,c,{...d,...h.current()});return f&&(i=i.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,function(a){return a+g})),i}var Z=c(66600);let $={tokenize:function(a,b,c){let d=0;return function b(f){return(87===f||119===f)&&d<3?(d++,a.consume(f),b):46===f&&3===d?(a.consume(f),e):c(f)};function e(a){return null===a?c(a):b(a)}},partial:!0},_={tokenize:function(a,b,c){let d,e,g;return h;function h(b){return 46===b||95===b?a.check(ab,j,i)(b):null===b||(0,f.Ee)(b)||(0,f.Ny)(b)||45!==b&&(0,f.es)(b)?j(b):(g=!0,a.consume(b),h)}function i(b){return 95===b?d=!0:(e=d,d=void 0),a.consume(b),h}function j(a){return e||d||!g?c(a):b(a)}},partial:!0},aa={tokenize:function(a,b){let c=0,d=0;return e;function e(h){return 40===h?(c++,a.consume(h),e):41===h&&d<c?g(h):33===h||34===h||38===h||39===h||41===h||42===h||44===h||46===h||58===h||59===h||60===h||63===h||93===h||95===h||126===h?a.check(ab,b,g)(h):null===h||(0,f.Ee)(h)||(0,f.Ny)(h)?b(h):(a.consume(h),e)}function g(b){return 41===b&&d++,a.consume(b),e}},partial:!0},ab={tokenize:function(a,b,c){return d;function d(h){return 33===h||34===h||39===h||41===h||42===h||44===h||46===h||58===h||59===h||63===h||95===h||126===h?(a.consume(h),d):38===h?(a.consume(h),g):93===h?(a.consume(h),e):60===h||null===h||(0,f.Ee)(h)||(0,f.Ny)(h)?b(h):c(h)}function e(a){return null===a||40===a||91===a||(0,f.Ee)(a)||(0,f.Ny)(a)?b(a):d(a)}function g(b){return(0,f.CW)(b)?function b(e){return 59===e?(a.consume(e),d):(0,f.CW)(e)?(a.consume(e),b):c(e)}(b):c(b)}},partial:!0},ac={tokenize:function(a,b,c){return function(b){return a.consume(b),d};function d(a){return(0,f.lV)(a)?c(a):b(a)}},partial:!0},ad={name:"wwwAutolink",tokenize:function(a,b,c){let d=this;return function(b){return 87!==b&&119!==b||!ai.call(d,d.previous)||am(d.events)?c(b):(a.enter("literalAutolink"),a.enter("literalAutolinkWww"),a.check($,a.attempt(_,a.attempt(aa,e),c),c)(b))};function e(c){return a.exit("literalAutolinkWww"),a.exit("literalAutolink"),b(c)}},previous:ai},ae={name:"protocolAutolink",tokenize:function(a,b,c){let d=this,e="",g=!1;return function(b){return(72===b||104===b)&&aj.call(d,d.previous)&&!am(d.events)?(a.enter("literalAutolink"),a.enter("literalAutolinkHttp"),e+=String.fromCodePoint(b),a.consume(b),h):c(b)};function h(b){if((0,f.CW)(b)&&e.length<5)return e+=String.fromCodePoint(b),a.consume(b),h;if(58===b){let c=e.toLowerCase();if("http"===c||"https"===c)return a.consume(b),i}return c(b)}function i(b){return 47===b?(a.consume(b),g)?j:(g=!0,i):c(b)}function j(b){return null===b||(0,f.JQ)(b)||(0,f.Ee)(b)||(0,f.Ny)(b)||(0,f.es)(b)?c(b):a.attempt(_,a.attempt(aa,k),c)(b)}function k(c){return a.exit("literalAutolinkHttp"),a.exit("literalAutolink"),b(c)}},previous:aj},af={name:"emailAutolink",tokenize:function(a,b,c){let d,e,g=this;return function(b){return!al(b)||!ak.call(g,g.previous)||am(g.events)?c(b):(a.enter("literalAutolink"),a.enter("literalAutolinkEmail"),function b(d){return al(d)?(a.consume(d),b):64===d?(a.consume(d),h):c(d)}(b))};function h(b){return 46===b?a.check(ac,j,i)(b):45===b||95===b||(0,f.lV)(b)?(e=!0,a.consume(b),h):j(b)}function i(b){return a.consume(b),d=!0,h}function j(h){return e&&d&&(0,f.CW)(g.previous)?(a.exit("literalAutolinkEmail"),a.exit("literalAutolink"),b(h)):c(h)}},previous:ak},ag={},ah=48;for(;ah<123;)ag[ah]=af,58==++ah?ah=65:91===ah&&(ah=97);function ai(a){return null===a||40===a||42===a||95===a||91===a||93===a||126===a||(0,f.Ee)(a)}function aj(a){return!(0,f.CW)(a)}function ak(a){return!(47===a||al(a))}function al(a){return 43===a||45===a||46===a||95===a||(0,f.lV)(a)}function am(a){let b=a.length,c=!1;for(;b--;){let d=a[b][1];if(("labelLink"===d.type||"labelImage"===d.type)&&!d._balanced){c=!0;break}if(d._gfmAutolinkLiteralWalkedInto){c=!1;break}}return a.length>0&&!c&&(a[a.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),c}ag[43]=af,ag[45]=af,ag[46]=af,ag[95]=af,ag[72]=[af,ae],ag[104]=[af,ae],ag[87]=[af,ad],ag[119]=[af,ad];var an=c(43560),ao=c(83224);let ap={tokenize:function(a,b,c){let d=this;return(0,ao.N)(a,function(a){let e=d.events[d.events.length-1];return e&&"gfmFootnoteDefinitionIndent"===e[1].type&&4===e[2].sliceSerialize(e[1],!0).length?b(a):c(a)},"gfmFootnoteDefinitionIndent",5)},partial:!0};function aq(a,b,c){let d,e=this,f=e.events.length,g=e.parser.gfmFootnotes||(e.parser.gfmFootnotes=[]);for(;f--;){let a=e.events[f][1];if("labelImage"===a.type){d=a;break}if("gfmFootnoteCall"===a.type||"labelLink"===a.type||"label"===a.type||"image"===a.type||"link"===a.type)break}return function(f){if(!d||!d._balanced)return c(f);let h=(0,u.B)(e.sliceSerialize({start:d.end,end:e.now()}));return 94===h.codePointAt(0)&&g.includes(h.slice(1))?(a.enter("gfmFootnoteCallLabelMarker"),a.consume(f),a.exit("gfmFootnoteCallLabelMarker"),b(f)):c(f)}}function ar(a,b){let c=a.length;for(;c--;)if("labelImage"===a[c][1].type&&"enter"===a[c][0]){a[c][1];break}a[c+1][1].type="data",a[c+3][1].type="gfmFootnoteCallLabelMarker";let d={type:"gfmFootnoteCall",start:Object.assign({},a[c+3][1].start),end:Object.assign({},a[a.length-1][1].end)},e={type:"gfmFootnoteCallMarker",start:Object.assign({},a[c+3][1].end),end:Object.assign({},a[c+3][1].end)};e.end.column++,e.end.offset++,e.end._bufferIndex++;let f={type:"gfmFootnoteCallString",start:Object.assign({},e.end),end:Object.assign({},a[a.length-1][1].start)},g={type:"chunkString",contentType:"string",start:Object.assign({},f.start),end:Object.assign({},f.end)},h=[a[c+1],a[c+2],["enter",d,b],a[c+3],a[c+4],["enter",e,b],["exit",e,b],["enter",f,b],["enter",g,b],["exit",g,b],["exit",f,b],a[a.length-2],a[a.length-1],["exit",d,b]];return a.splice(c,a.length-c+1,...h),a}function as(a,b,c){let d,e=this,g=e.parser.gfmFootnotes||(e.parser.gfmFootnotes=[]),h=0;return function(b){return a.enter("gfmFootnoteCall"),a.enter("gfmFootnoteCallLabelMarker"),a.consume(b),a.exit("gfmFootnoteCallLabelMarker"),i};function i(b){return 94!==b?c(b):(a.enter("gfmFootnoteCallMarker"),a.consume(b),a.exit("gfmFootnoteCallMarker"),a.enter("gfmFootnoteCallString"),a.enter("chunkString").contentType="string",j)}function j(i){if(h>999||93===i&&!d||null===i||91===i||(0,f.Ee)(i))return c(i);if(93===i){a.exit("chunkString");let d=a.exit("gfmFootnoteCallString");return g.includes((0,u.B)(e.sliceSerialize(d)))?(a.enter("gfmFootnoteCallLabelMarker"),a.consume(i),a.exit("gfmFootnoteCallLabelMarker"),a.exit("gfmFootnoteCall"),b):c(i)}return(0,f.Ee)(i)||(d=!0),h++,a.consume(i),92===i?k:j}function k(b){return 91===b||92===b||93===b?(a.consume(b),h++,j):j(b)}}function at(a,b,c){let d,e,g=this,h=g.parser.gfmFootnotes||(g.parser.gfmFootnotes=[]),i=0;return function(b){return a.enter("gfmFootnoteDefinition")._container=!0,a.enter("gfmFootnoteDefinitionLabel"),a.enter("gfmFootnoteDefinitionLabelMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionLabelMarker"),j};function j(b){return 94===b?(a.enter("gfmFootnoteDefinitionMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionMarker"),a.enter("gfmFootnoteDefinitionLabelString"),a.enter("chunkString").contentType="string",k):c(b)}function k(b){if(i>999||93===b&&!e||null===b||91===b||(0,f.Ee)(b))return c(b);if(93===b){a.exit("chunkString");let c=a.exit("gfmFootnoteDefinitionLabelString");return d=(0,u.B)(g.sliceSerialize(c)),a.enter("gfmFootnoteDefinitionLabelMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionLabelMarker"),a.exit("gfmFootnoteDefinitionLabel"),m}return(0,f.Ee)(b)||(e=!0),i++,a.consume(b),92===b?l:k}function l(b){return 91===b||92===b||93===b?(a.consume(b),i++,k):k(b)}function m(b){return 58===b?(a.enter("definitionMarker"),a.consume(b),a.exit("definitionMarker"),h.includes(d)||h.push(d),(0,ao.N)(a,n,"gfmFootnoteDefinitionWhitespace")):c(b)}function n(a){return b(a)}}function au(a,b,c){return a.check(an.B,b,a.attempt(ap,b,c))}function av(a){a.exit("gfmFootnoteDefinition")}var aw=c(282),ax=c(65352);class ay{constructor(){this.map=[]}add(a,b,c){!function(a,b,c,d){let e=0;if(0!==c||0!==d.length){for(;e<a.map.length;){if(a.map[e][0]===b){a.map[e][1]+=c,a.map[e][2].push(...d);return}e+=1}a.map.push([b,c,d])}}(this,a,b,c)}consume(a){if(this.map.sort(function(a,b){return a[0]-b[0]}),0===this.map.length)return;let b=this.map.length,c=[];for(;b>0;)b-=1,c.push(a.slice(this.map[b][0]+this.map[b][1]),this.map[b][2]),a.length=this.map[b][0];c.push(a.slice()),a.length=0;let d=c.pop();for(;d;){for(let b of d)a.push(b);d=c.pop()}this.map.length=0}}function az(a,b,c){let d,e=this,g=0,h=0;return function(a){let b=e.events.length-1;for(;b>-1;){let a=e.events[b][1].type;if("lineEnding"===a||"linePrefix"===a)b--;else break}let d=b>-1?e.events[b][1].type:null,f="tableHead"===d||"tableRow"===d?t:i;return f===t&&e.parser.lazy[e.now().line]?c(a):f(a)};function i(b){var c;return a.enter("tableHead"),a.enter("tableRow"),124===(c=b)||(d=!0,h+=1),j(c)}function j(b){return null===b?c(b):(0,f.HP)(b)?h>1?(h=0,e.interrupt=!0,a.exit("tableRow"),a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),m):c(b):(0,f.On)(b)?(0,ao.N)(a,j,"whitespace")(b):(h+=1,d&&(d=!1,g+=1),124===b)?(a.enter("tableCellDivider"),a.consume(b),a.exit("tableCellDivider"),d=!0,j):(a.enter("data"),k(b))}function k(b){return null===b||124===b||(0,f.Ee)(b)?(a.exit("data"),j(b)):(a.consume(b),92===b?l:k)}function l(b){return 92===b||124===b?(a.consume(b),k):k(b)}function m(b){return(e.interrupt=!1,e.parser.lazy[e.now().line])?c(b):(a.enter("tableDelimiterRow"),d=!1,(0,f.On)(b))?(0,ao.N)(a,n,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):n(b)}function n(b){return 45===b||58===b?p(b):124===b?(d=!0,a.enter("tableCellDivider"),a.consume(b),a.exit("tableCellDivider"),o):c(b)}function o(b){return(0,f.On)(b)?(0,ao.N)(a,p,"whitespace")(b):p(b)}function p(b){return 58===b?(h+=1,d=!0,a.enter("tableDelimiterMarker"),a.consume(b),a.exit("tableDelimiterMarker"),q):45===b?(h+=1,q(b)):null===b||(0,f.HP)(b)?s(b):c(b)}function q(b){return 45===b?(a.enter("tableDelimiterFiller"),function b(c){return 45===c?(a.consume(c),b):58===c?(d=!0,a.exit("tableDelimiterFiller"),a.enter("tableDelimiterMarker"),a.consume(c),a.exit("tableDelimiterMarker"),r):(a.exit("tableDelimiterFiller"),r(c))}(b)):c(b)}function r(b){return(0,f.On)(b)?(0,ao.N)(a,s,"whitespace")(b):s(b)}function s(e){if(124===e)return n(e);if(null===e||(0,f.HP)(e))return d&&g===h?(a.exit("tableDelimiterRow"),a.exit("tableHead"),b(e)):c(e);return c(e)}function t(b){return a.enter("tableRow"),u(b)}function u(c){return 124===c?(a.enter("tableCellDivider"),a.consume(c),a.exit("tableCellDivider"),u):null===c||(0,f.HP)(c)?(a.exit("tableRow"),b(c)):(0,f.On)(c)?(0,ao.N)(a,u,"whitespace")(c):(a.enter("data"),v(c))}function v(b){return null===b||124===b||(0,f.Ee)(b)?(a.exit("data"),u(b)):(a.consume(b),92===b?w:v)}function w(b){return 92===b||124===b?(a.consume(b),v):v(b)}}function aA(a,b){let c,d,e,f=-1,g=!0,h=0,i=[0,0,0,0],j=[0,0,0,0],k=!1,l=0,m=new ay;for(;++f<a.length;){let n=a[f],o=n[1];"enter"===n[0]?"tableHead"===o.type?(k=!1,0!==l&&(aC(m,b,l,c,d),d=void 0,l=0),c={type:"table",start:Object.assign({},o.start),end:Object.assign({},o.end)},m.add(f,0,[["enter",c,b]])):"tableRow"===o.type||"tableDelimiterRow"===o.type?(g=!0,e=void 0,i=[0,0,0,0],j=[0,f+1,0,0],k&&(k=!1,d={type:"tableBody",start:Object.assign({},o.start),end:Object.assign({},o.end)},m.add(f,0,[["enter",d,b]])),h="tableDelimiterRow"===o.type?2:d?3:1):h&&("data"===o.type||"tableDelimiterMarker"===o.type||"tableDelimiterFiller"===o.type)?(g=!1,0===j[2]&&(0!==i[1]&&(j[0]=j[1],e=aB(m,b,i,h,void 0,e),i=[0,0,0,0]),j[2]=f)):"tableCellDivider"===o.type&&(g?g=!1:(0!==i[1]&&(j[0]=j[1],e=aB(m,b,i,h,void 0,e)),j=[(i=j)[1],f,0,0])):"tableHead"===o.type?(k=!0,l=f):"tableRow"===o.type||"tableDelimiterRow"===o.type?(l=f,0!==i[1]?(j[0]=j[1],e=aB(m,b,i,h,f,e)):0!==j[1]&&(e=aB(m,b,j,h,f,e)),h=0):h&&("data"===o.type||"tableDelimiterMarker"===o.type||"tableDelimiterFiller"===o.type)&&(j[3]=f)}for(0!==l&&aC(m,b,l,c,d),m.consume(b.events),f=-1;++f<b.events.length;){let a=b.events[f];"enter"===a[0]&&"table"===a[1].type&&(a[1]._align=function(a,b){let c=!1,d=[];for(;b<a.length;){let e=a[b];if(c){if("enter"===e[0])"tableContent"===e[1].type&&d.push("tableDelimiterMarker"===a[b+1][1].type?"left":"none");else if("tableContent"===e[1].type){if("tableDelimiterMarker"===a[b-1][1].type){let a=d.length-1;d[a]="left"===d[a]?"center":"right"}}else if("tableDelimiterRow"===e[1].type)break}else"enter"===e[0]&&"tableDelimiterRow"===e[1].type&&(c=!0);b+=1}return d}(b.events,f))}return a}function aB(a,b,c,d,e,f){0!==c[0]&&(f.end=Object.assign({},aD(b.events,c[0])),a.add(c[0],0,[["exit",f,b]]));let g=aD(b.events,c[1]);if(f={type:1===d?"tableHeader":2===d?"tableDelimiter":"tableData",start:Object.assign({},g),end:Object.assign({},g)},a.add(c[1],0,[["enter",f,b]]),0!==c[2]){let e=aD(b.events,c[2]),f=aD(b.events,c[3]),g={type:"tableContent",start:Object.assign({},e),end:Object.assign({},f)};if(a.add(c[2],0,[["enter",g,b]]),2!==d){let d=b.events[c[2]],e=b.events[c[3]];if(d[1].end=Object.assign({},e[1].end),d[1].type="chunkText",d[1].contentType="text",c[3]>c[2]+1){let b=c[2]+1,d=c[3]-c[2]-1;a.add(b,d,[])}}a.add(c[3]+1,0,[["exit",g,b]])}return void 0!==e&&(f.end=Object.assign({},aD(b.events,e)),a.add(e,0,[["exit",f,b]]),f=void 0),f}function aC(a,b,c,d,e){let f=[],g=aD(b.events,c);e&&(e.end=Object.assign({},g),f.push(["exit",e,b])),d.end=Object.assign({},g),f.push(["exit",d,b]),a.add(c+1,0,f)}function aD(a,b){let c=a[b],d="enter"===c[0]?"start":"end";return c[1][d]}let aE={name:"tasklistCheck",tokenize:function(a,b,c){let d=this;return function(b){return null===d.previous&&d._gfmTasklistFirstContentOfListItem?(a.enter("taskListCheck"),a.enter("taskListCheckMarker"),a.consume(b),a.exit("taskListCheckMarker"),e):c(b)};function e(b){return(0,f.Ee)(b)?(a.enter("taskListCheckValueUnchecked"),a.consume(b),a.exit("taskListCheckValueUnchecked"),g):88===b||120===b?(a.enter("taskListCheckValueChecked"),a.consume(b),a.exit("taskListCheckValueChecked"),g):c(b)}function g(b){return 93===b?(a.enter("taskListCheckMarker"),a.consume(b),a.exit("taskListCheckMarker"),a.exit("taskListCheck"),h):c(b)}function h(d){return(0,f.HP)(d)?b(d):(0,f.On)(d)?a.check({tokenize:aF},b,c)(d):c(d)}}};function aF(a,b,c){return(0,ao.N)(a,function(a){return null===a?c(a):b(a)},"whitespace")}let aG={};function aH(a){let b,c=a||aG,d=this.data(),e=d.micromarkExtensions||(d.micromarkExtensions=[]),f=d.fromMarkdownExtensions||(d.fromMarkdownExtensions=[]),g=d.toMarkdownExtensions||(d.toMarkdownExtensions=[]);e.push((0,Z.y)([{text:ag},{document:{91:{name:"gfmFootnoteDefinition",tokenize:at,continuation:{tokenize:au},exit:av}},text:{91:{name:"gfmFootnoteCall",tokenize:as},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:aq,resolveTo:ar}}},function(a){let b=(a||{}).singleTilde,c={name:"strikethrough",tokenize:function(a,c,d){let e=this.previous,f=this.events,g=0;return function(h){return 126===e&&"characterEscape"!==f[f.length-1][1].type?d(h):(a.enter("strikethroughSequenceTemporary"),function f(h){let i=(0,M.S)(e);if(126===h)return g>1?d(h):(a.consume(h),g++,f);if(g<2&&!b)return d(h);let j=a.exit("strikethroughSequenceTemporary"),k=(0,M.S)(h);return j._open=!k||2===k&&!!i,j._close=!i||2===i&&!!k,c(h)}(h))}},resolveAll:function(a,b){let c=-1;for(;++c<a.length;)if("enter"===a[c][0]&&"strikethroughSequenceTemporary"===a[c][1].type&&a[c][1]._close){let d=c;for(;d--;)if("exit"===a[d][0]&&"strikethroughSequenceTemporary"===a[d][1].type&&a[d][1]._open&&a[c][1].end.offset-a[c][1].start.offset==a[d][1].end.offset-a[d][1].start.offset){a[c][1].type="strikethroughSequence",a[d][1].type="strikethroughSequence";let e={type:"strikethrough",start:Object.assign({},a[d][1].start),end:Object.assign({},a[c][1].end)},f={type:"strikethroughText",start:Object.assign({},a[d][1].end),end:Object.assign({},a[c][1].start)},g=[["enter",e,b],["enter",a[d][1],b],["exit",a[d][1],b],["enter",f,b]],h=b.parser.constructs.insideSpan.null;h&&(0,aw.m)(g,g.length,0,(0,ax.W)(h,a.slice(d+1,c),b)),(0,aw.m)(g,g.length,0,[["exit",f,b],["enter",a[c][1],b],["exit",a[c][1],b],["exit",e,b]]),(0,aw.m)(a,d-1,c-d+3,g),c=d+g.length-2;break}}for(c=-1;++c<a.length;)"strikethroughSequenceTemporary"===a[c][1].type&&(a[c][1].type="data");return a}};return null==b&&(b=!0),{text:{126:c},insideSpan:{null:[c]},attentionMarkers:{null:[126]}}}(c),{flow:{null:{name:"table",tokenize:az,resolveAll:aA}}},{text:{91:aE}}])),f.push([{transforms:[q],enter:{literalAutolink:k,literalAutolinkEmail:l,literalAutolinkHttp:l,literalAutolinkWww:l},exit:{literalAutolink:p,literalAutolinkEmail:o,literalAutolinkHttp:m,literalAutolinkWww:n}},{enter:{gfmFootnoteCallString:v,gfmFootnoteCall:w,gfmFootnoteDefinitionLabelString:x,gfmFootnoteDefinition:y},exit:{gfmFootnoteCallString:z,gfmFootnoteCall:A,gfmFootnoteDefinitionLabelString:B,gfmFootnoteDefinition:C}},{canContainEols:["delete"],enter:{strikethrough:H},exit:{strikethrough:I}},{enter:{table:P,tableData:T,tableHeader:T,tableRow:R},exit:{codeText:U,table:Q,tableData:S,tableHeader:S,tableRow:S}},{exit:{taskListCheckValueChecked:W,taskListCheckValueUnchecked:W,paragraph:X}}]),g.push({extensions:[{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:i,notInConstruct:j},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:i,notInConstruct:j},{character:":",before:"[ps]",after:"\\/",inConstruct:i,notInConstruct:j}]},(b=!1,c&&c.firstLineBlank&&(b=!0),{handlers:{footnoteDefinition:function(a,c,d,e){let f=d.createTracker(e),g=f.move("[^"),h=d.enter("footnoteDefinition"),i=d.enter("label");return g+=f.move(d.safe(d.associationId(a),{before:g,after:"]"})),i(),g+=f.move("]:"),a.children&&a.children.length>0&&(f.shift(4),g+=f.move((b?"\n":" ")+d.indentLines(d.containerFlow(a,f.current()),b?F:E))),h(),g},footnoteReference:D},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]}),{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:G}],handlers:{delete:J}},function(a){let b=a||{},c=b.tableCellPadding,d=b.tablePipeAlign,e=b.stringLength,f=c?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:"\n",inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:function(a,b,c){let d=O.inlineCode(a,b,c);return c.stack.includes("tableCell")&&(d=d.replace(/\|/g,"\\$&")),d},table:function(a,b,c,d){return h(function(a,b,c){let d=a.children,e=-1,f=[],g=b.enter("table");for(;++e<d.length;)f[e]=i(d[e],b,c);return g(),f}(a,c,d),a.align)},tableCell:g,tableRow:function(a,b,c,d){let e=h([i(a,c,d)]);return e.slice(0,e.indexOf("\n"))}}};function g(a,b,c,d){let e=c.enter("tableCell"),g=c.enter("phrasing"),h=c.containerPhrasing(a,{...d,before:f,after:f});return g(),e(),h}function h(a,b){return function(a,b){let c=b||{},d=(c.align||[]).concat(),e=c.stringLength||K,f=[],g=[],h=[],i=[],j=0,k=-1;for(;++k<a.length;){let b=[],d=[],f=-1;for(a[k].length>j&&(j=a[k].length);++f<a[k].length;){var l;let g=null==(l=a[k][f])?"":String(l);if(!1!==c.alignDelimiters){let a=e(g);d[f]=a,(void 0===i[f]||a>i[f])&&(i[f]=a)}b.push(g)}g[k]=b,h[k]=d}let m=-1;if("object"==typeof d&&"length"in d)for(;++m<j;)f[m]=L(d[m]);else{let a=L(d);for(;++m<j;)f[m]=a}m=-1;let n=[],o=[];for(;++m<j;){let a=f[m],b="",d="";99===a?(b=":",d=":"):108===a?b=":":114===a&&(d=":");let e=!1===c.alignDelimiters?1:Math.max(1,i[m]-b.length-d.length),g=b+"-".repeat(e)+d;!1!==c.alignDelimiters&&((e=b.length+e+d.length)>i[m]&&(i[m]=e),o[m]=e),n[m]=g}g.splice(1,0,n),h.splice(1,0,o),k=-1;let p=[];for(;++k<g.length;){let a=g[k],b=h[k];m=-1;let d=[];for(;++m<j;){let e=a[m]||"",g="",h="";if(!1!==c.alignDelimiters){let a=i[m]-(b[m]||0),c=f[m];114===c?g=" ".repeat(a):99===c?a%2?(g=" ".repeat(a/2+.5),h=" ".repeat(a/2-.5)):h=g=" ".repeat(a/2):h=" ".repeat(a)}!1===c.delimiterStart||m||d.push("|"),!1!==c.padding&&(!1!==c.alignDelimiters||""!==e)&&(!1!==c.delimiterStart||m)&&d.push(" "),!1!==c.alignDelimiters&&d.push(g),d.push(e),!1!==c.alignDelimiters&&d.push(h),!1!==c.padding&&d.push(" "),(!1!==c.delimiterEnd||m!==j-1)&&d.push("|")}p.push(!1===c.delimiterEnd?d.join("").replace(/ +$/,""):d.join(""))}return p.join("\n")}(a,{align:b,alignDelimiters:d,padding:c,stringLength:e})}function i(a,b,c){let d=a.children,e=-1,f=[],h=b.enter("tableRow");for(;++e<d.length;)f[e]=g(d[e],a,b,c);return h(),f}}(c),{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:Y}}]})}},21358:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(27080),e=c(21124);let f=(0,d.A)([(0,e.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,e.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber")},24709:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.camelCase=void 0;var c=/^--[a-zA-Z0-9_-]+$/,d=/-([a-z])/g,e=/^[^-]+$/,f=/^-(webkit|moz|ms|o|khtml)-/,g=/^-(ms)-/,h=function(a,b){return b.toUpperCase()},i=function(a,b){return"".concat(b,"-")};b.camelCase=function(a,b){var j;return(void 0===b&&(b={}),!(j=a)||e.test(j)||c.test(j))?a:(a=a.toLowerCase(),(a=b.reactCompat?a.replace(g,i):a.replace(f,i)).replace(d,h))}},30189:function(a,b,c){"use strict";var d=(this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}})(c(61421)),e=c(24709);function f(a,b){var c={};return a&&"string"==typeof a&&(0,d.default)(a,function(a,d){a&&d&&(c[(0,e.camelCase)(a,b)]=d)}),c}f.default=f,a.exports=f},42387:(a,b,c)=>{"use strict";c.d(b,{A:()=>D});var d=c(38301),e=c(43249),f=c(2783),g=c(37489),h=c(38404),i=c(78871),j=c(18168),k=c(68333),l=c(54716),m=c(6636),n=c(6638),o=c(29565),p=c(33105);function q(a){return(0,p.Ay)("MuiLinearProgress",a)}(0,o.A)("MuiLinearProgress",["root","colorPrimary","colorSecondary","determinate","indeterminate","buffer","query","dashed","dashedColorPrimary","dashedColorSecondary","bar","bar1","bar2","barColorPrimary","barColorSecondary","bar1Indeterminate","bar1Determinate","bar1Buffer","bar2Indeterminate","bar2Buffer"]);var r=c(21124);let s=(0,i.i7)`
|
|
2
2
|
0% {
|
|
3
3
|
left: -35%;
|
|
4
4
|
right: 100%;
|