flujo-ai 3.34.0 → 3.35.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 +324 -317
- package/.next/app-path-routes-manifest.json +19 -18
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +24 -24
- package/.next/routes-manifest.json +9 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/api/approvals/[id]/route.js +1 -1
- package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/approvals/route.js +2 -2
- package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/backup/route.js +1 -1
- package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/bugs/enhance/route.js +1 -1
- package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/env/route.js +2 -2
- package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/generator/route_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/route_client-reference-manifest.js +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/app-sandbox/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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/model/[id]/route_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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/oauth/callback/route.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.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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/search/route.js +1 -1
- package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/route.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/feedback/route.js +1 -1
- package/.next/server/app/api/registry/feedback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/packages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/restore/route.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/storage/route.js +1 -1
- package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/telemetry/daily-active/route.js +1 -1
- package/.next/server/app/api/telemetry/daily-active/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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +2 -2
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +1 -1
- package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/executions.html +1 -1
- package/.next/server/app/executions.rsc +1 -1
- package/.next/server/app/flows/page.js +2 -2
- 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 +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_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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/packages/page.js +1 -1
- package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/packages.html +1 -1
- package/.next/server/app/packages.rsc +2 -2
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.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_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_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_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_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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js.nft.json +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route_client-reference-manifest.js +1 -0
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +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 +1 -1
- package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/chat/events/route.js +1 -1
- package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/v1/models/route.js +1 -1
- package/.next/server/app/v1/models/route_client-reference-manifest.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 +19 -18
- package/.next/server/chunks/1227.js +1 -1
- package/.next/server/chunks/1805.js +1 -1
- package/.next/server/chunks/2273.js +2 -2
- package/.next/server/chunks/2372.js +1 -1
- package/.next/server/chunks/2859.js +1 -1
- package/.next/server/chunks/3935.js +4 -0
- package/.next/server/chunks/4265.js +1 -1
- package/.next/server/chunks/4771.js +2 -2
- package/.next/server/chunks/4822.js +1 -1
- package/.next/server/chunks/5096.js +1 -1
- package/.next/server/chunks/5309.js +1 -1
- package/.next/server/chunks/544.js +16 -16
- package/.next/server/chunks/5544.js +1 -1
- package/.next/server/chunks/5703.js +2 -2
- package/.next/server/chunks/6041.js +1 -1
- package/.next/server/chunks/6226.js +1 -1
- package/.next/server/chunks/6747.js +42 -42
- package/.next/server/chunks/701.js +1 -1
- package/.next/server/chunks/7069.js +4 -4
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7628.js +1 -1
- package/.next/server/chunks/7891.js +1 -1
- package/.next/server/chunks/7993.js +1 -1
- package/.next/server/chunks/8284.js +1 -1
- package/.next/server/chunks/8387.js +1 -1
- package/.next/server/chunks/8645.js +1 -1
- package/.next/server/chunks/8739.js +1 -1
- package/.next/server/chunks/9085.js +1 -1
- package/.next/server/chunks/9235.js +1 -1
- package/.next/server/chunks/9285.js +1 -1
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{8650-5294c6ed1173b014.js → 8650-aa22dbf7b37348f0.js} +1 -1
- package/.next/static/chunks/9611-9867e6e8e65172ec.js +1 -0
- package/.next/static/chunks/app/api/approvals/[id]/{route-9ea2990be4b67136.js → route-b9c783850b4c2acf.js} +1 -1
- package/.next/static/chunks/app/api/approvals/{route-9ea2990be4b67136.js → route-b9c783850b4c2acf.js} +1 -1
- package/.next/static/chunks/app/api/backup/{route-9ea2990be4b67136.js → route-b9c783850b4c2acf.js} +1 -1
- package/.next/static/chunks/app/api/browse/{route-9ea2990be4b67136.js → route-b9c783850b4c2acf.js} +1 -1
- package/.next/static/chunks/app/api/bugs/enhance/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/cwd/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/encryption/secure/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/env/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/[id]/versions/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/compile/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/generate/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/generator/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/improve/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/quick-chat/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/repair/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/flow/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/git/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/init/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/local-models/capability/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/local-models/pull/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/local-models/suggest/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/app-sandbox/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/cancel/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/oauth-capability/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/servers/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/model/[id]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/model/provider/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/model/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/model/test/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/oauth/callback/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/oauth/initiate/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/oauth/reset/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/build/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/derive-secrets/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/install/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/install/status/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/installed/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/resolve/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/scan-targets/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/search/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/packages/uninstall/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/planned-executions/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/resend/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/reset/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/auth/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/feedback/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/callback/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/oauth/initiate/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/packages/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/publish/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/registry/settings/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/restore/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/runs/active/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/storage/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/telemetry/daily-active/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/update/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/waves/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[id]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/chat/{page-bc7807593b8b7394.js → page-e37bbc561f40ce60.js} +1 -1
- package/.next/static/chunks/app/flows/{page-87fb466e491fc068.js → page-e52c8943555e38dd.js} +1 -1
- package/.next/static/chunks/app/mcp-flows/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/mcp-proxy/[server]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/models/page-595597042e227970.js +1 -0
- package/.next/static/chunks/app/packages/page-f1a22789a6c0e0b6.js +1 -0
- package/.next/static/chunks/app/settings/{page-2fc3a70bfd25c48b.js → page-f35e939032b0277d.js} +1 -1
- package/.next/static/chunks/app/v1/chat/completions/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/conversations/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/chat/events/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/app/v1/models/route-b9c783850b4c2acf.js +1 -0
- package/.next/static/chunks/{webpack-d5d737ff6a86674f.js → webpack-9d09d53b271f49e2.js} +1 -1
- package/.next/trace +10 -10
- package/.next/types/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.ts +347 -0
- package/.next/types/routes.d.ts +2 -1
- package/.next/types/validator.ts +9 -0
- package/README.md +60 -61
- package/package.json +1 -1
- package/.next/server/chunks/4308.js +0 -4
- package/.next/static/chunks/6733-c9029143901e62e9.js +0 -1
- package/.next/static/chunks/app/api/bugs/enhance/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/cwd/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/encryption/secure/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/env/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/[id]/versions/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/compile/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/generate/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/generator/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/improve/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/prompt-renderer/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/quick-chat/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/repair/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/flow/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/git/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/init/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/local-models/capability/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/local-models/pull/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/local-models/suggest/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/app-sandbox/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/cancel/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/oauth-capability/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/servers/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp/test-connection/stream/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/mcp-registry/spotlight/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/model/[id]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/model/provider/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/model/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/model/test/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/oauth/callback/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/oauth/initiate/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/oauth/reset/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/build/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/derive-secrets/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/install/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/install/status/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/installed/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/resolve/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/scan-targets/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/search/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/packages/uninstall/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/run/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/reconcile/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/planned-executions/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/resend/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/reset/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/auth/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/feedback/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/oauth/callback/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/oauth/initiate/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/packages/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/publish/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/registry/settings/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/restore/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/runs/active/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/storage/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/telemetry/daily-active/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/update/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/waves/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[id]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/mcp-flows/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/mcp-proxy/[server]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/models/page-a5e2437356b06db8.js +0 -1
- package/.next/static/chunks/app/packages/page-fba5696f33d9cdfb.js +0 -1
- package/.next/static/chunks/app/v1/chat/completions/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/conversations/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/chat/events/route-9ea2990be4b67136.js +0 -1
- package/.next/static/chunks/app/v1/models/route-9ea2990be4b67136.js +0 -1
- /package/.next/static/{Zz_Vh59XdtLIPcf-PxCpo → hbjnLG9RCje2AApS9TzP8}/_buildManifest.js +0 -0
- /package/.next/static/{Zz_Vh59XdtLIPcf-PxCpo → hbjnLG9RCje2AApS9TzP8}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var a={};a.id=7262,a.ids=[7262],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2117:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14570:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5-1-1h-5l-1 1H5v2h14V4z"}),"DeleteOutline")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},24077:(a,b,c)=>{"use strict";c.d(b,{A:()=>j});var d=c(38301),e=c(75249),f=c(44548),g=c(33427);let h={...d}.useSyncExternalStore;function i(a={}){let{themeId:b}=a;return function(a,c={}){let i=(0,g.A)();i&&b&&(i=i[b]||i);let{defaultMatches:j=!1,matchMedia:k=null,ssrMatchMedia:l=null,noSsr:m=!1}=(0,f.A)({name:"MuiUseMediaQuery",props:c,theme:i}),n="function"==typeof a?a(i):a;return(n=n.replace(/^@media( ?)/m,"")).includes("print")&&console.warn("MUI: You have provided a `print` query to the `useMediaQuery` hook.\nUsing the print media query to modify print styles can lead to unexpected results.\nConsider using the `displayPrint` field in the `sx` prop instead.\nMore information about `displayPrint` on our docs: https://mui.com/system/display/#display-in-print."),(void 0!==h?function(a,b,c,e,f){let g=d.useCallback(()=>b,[b]),i=d.useMemo(()=>{if(f&&c)return()=>c(a).matches;if(null!==e){let{matches:b}=e(a);return()=>b}return g},[g,a,e,f,c]),[j,k]=d.useMemo(()=>{if(null===c)return[g,()=>()=>{}];let b=c(a);return[()=>b.matches,a=>(b.addEventListener("change",a),()=>{b.removeEventListener("change",a)})]},[g,c,a]);return h(k,j,i)}:function(a,b,c,f,g){let[h,i]=d.useState(()=>g&&c?c(a).matches:f?f(a).matches:b);return(0,e.A)(()=>{if(!c)return;let b=c(a),d=()=>{i(b.matches)};return d(),b.addEventListener("change",d),()=>{b.removeEventListener("change",d)}},[a,c]),h})(n,j,k,l,m)}}i();let j=i({themeId:c(35864).A})},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33253:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z"}),"Download")},33873:a=>{"use strict";a.exports=require("path")},40628:(a,b,c)=>{Promise.resolve().then(c.bind(c,77531))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},42378:(a,b,c)=>{"use strict";var d=c(68949);c.o(d,"useRouter")&&c.d(b,{useRouter:function(){return d.useRouter}}),c.o(d,"useSearchParams")&&c.d(b,{useSearchParams:function(){return d.useSearchParams}})},55511:a=>{"use strict";a.exports=require("crypto")},60399:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"C:\\\\Users\\\\Moe\\\\Documents\\\\GitHub\\\\FLUJO\\\\src\\\\app\\\\packages\\\\page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\packages\\page.tsx","default")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63281:(a,b,c)=>{"use strict";c.d(b,{g:()=>g});var d=c(2117);let e=(0,c(19815).h)("frontend/services/flow/index");class f{async loadFlows(){e.debug("loadFlows: Entering method");try{if(this.flowsCache)return e.debug("loadFlows: Using cached flows",{count:this.flowsCache.length}),this.flowsCache;let a=await fetch("/api/flow");if(!a.ok){let b=await a.json();throw Error(b.error||"Failed to load flows")}let b=await a.json();return e.debug("loadFlows: Loaded flows from API",{count:b.length}),this.flowsCache=b,b}catch(a){return e.warn("loadFlows: Failed to load flows:",a),[]}}async getFlow(a){e.debug("getFlow: Entering method",{flowId:a});try{if(this.flowsCache){let b=this.flowsCache.find(b=>b.id===a);if(b)return e.debug("getFlow: Using cached flow",{flowId:a}),b}let b=await fetch(`/api/flow/${encodeURIComponent(a)}`);if(!b.ok){if(404===b.status)return e.debug(`getFlow: Flow ${a} not found`),null;let c=await b.json();throw Error(c.error||`Failed to get flow: ${a}`)}let c=await b.json();return e.debug("getFlow: Retrieved flow from API",{flowId:a}),c}catch(b){return e.warn(`getFlow: Failed to get flow ${a}:`,b),null}}async addFlow(a){e.debug("addFlow: Entering method",{flowId:a.id,flowName:a.name,nodeCount:a.nodes.length,edgeCount:a.edges.length});try{let b=await fetch("/api/flow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok){let a=await b.json();return{success:!1,error:a.error||"Failed to add flow"}}let c=await b.json();return this.flowsCache&&this.flowsCache.push(c),e.debug("addFlow: Flow added successfully",{flowId:a.id}),{success:!0}}catch(a){return e.warn("addFlow: Failed to add flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to add flow"}}}async generateFlow(a,b,c){e.debug("generateFlow: Entering method",{modelId:b,allowInstall:c?.allowInstall,allowSubflows:c?.allowSubflows,maxDepth:c?.maxDepth});try{let d=await fetch("/api/flow/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:a,modelId:b,allowInstall:c?.allowInstall===!0,allowSubflows:c?.allowSubflows!==!1,..."number"==typeof c?.maxDepth?{maxDepth:c.maxDepth}:{}})}),f=await d.json().catch(()=>null);if(!d.ok)return{success:!1,error:f?.error||"Failed to generate flow"};let g=Array.isArray(f.flows)&&f.flows.length>0?f.flows:[{flow:f.flow,validation:f.validation}];return e.debug("generateFlow: Draft generated",{flowId:f.flow?.id,flowCount:g.length,attempts:f.attempts,errorCount:f.validation?.errorCount,installedServers:f.installedServers?.length??0}),{success:!0,flow:f.flow,validation:f.validation,flows:g,rootFlowId:f.rootFlowId??f.flow?.id,attempts:f.attempts,installedServers:f.installedServers??[]}}catch(a){return e.warn("generateFlow: Failed to generate flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to generate flow"}}}async improveFlow(a,b,c,d){e.debug("improveFlow: Entering method",{flowId:a?.id,modelId:c,allowInstall:d?.allowInstall});try{let f=await fetch("/api/flow/improve",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({flow:a,relatedFlows:d?.relatedFlows,description:b,modelId:c,allowInstall:d?.allowInstall===!0})}),g=await f.json().catch(()=>null);if(!f.ok)return{success:!1,error:g?.error||"Failed to improve flow"};return e.debug("improveFlow: Draft revised",{flowId:g.flow?.id,attempts:g.attempts,errorCount:g.validation?.errorCount,installedServers:g.installedServers?.length??0}),{success:!0,flow:g.flow,validation:g.validation,flows:Array.isArray(g.flows)&&g.flows.length>0?g.flows:[{flow:g.flow,validation:g.validation}],rootFlowId:g.rootFlowId??g.flow?.id,attempts:g.attempts,installedServers:g.installedServers??[]}}catch(a){return e.warn("improveFlow: Failed to improve flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to improve flow"}}}async updateFlow(a){e.debug("updateFlow: Entering method",{flowId:a.id,flowName:a.name,nodeCount:a.nodes.length,edgeCount:a.edges.length});try{let b=await fetch(`/api/flow/${encodeURIComponent(a.id)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok){let a=await b.json();return{success:!1,error:a.error||"Failed to update flow"}}let c=await b.json();if(this.flowsCache){let b=this.flowsCache.findIndex(b=>b.id===a.id);b>=0?this.flowsCache[b]=c:this.flowsCache.push(c)}return e.debug("updateFlow: Flow updated successfully",{flowId:a.id}),{success:!0}}catch(a){return e.warn("updateFlow: Failed to update flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to update flow"}}}async deleteFlow(a){e.debug("deleteFlow: Entering method",{flowId:a});try{let b=await fetch(`/api/flow/${encodeURIComponent(a)}`,{method:"DELETE"});if(!b.ok){let a=await b.json();return{success:!1,error:a.error||"Failed to delete flow"}}return this.flowsCache&&(this.flowsCache=this.flowsCache.filter(b=>b.id!==a)),e.debug("deleteFlow: Flow deleted successfully",{flowId:a}),{success:!0}}catch(a){return e.warn("deleteFlow: Failed to delete flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to delete flow"}}}async listFlowVersions(a){e.debug("listFlowVersions: Entering method",{flowId:a});try{let b=await fetch(`/api/flow/${encodeURIComponent(a)}/versions`);if(!b.ok){let a=await b.json().catch(()=>null);throw Error(a?.error||"Failed to list flow versions")}let c=await b.json();return Array.isArray(c.versions)?c.versions:[]}catch(b){return e.warn(`listFlowVersions: Failed for flow ${a}:`,b),[]}}async getFlowVersion(a,b){e.debug("getFlowVersion: Entering method",{flowId:a,versionId:b});try{let c=await fetch(`/api/flow/${encodeURIComponent(a)}/versions/${encodeURIComponent(b)}`);if(!c.ok){if(404===c.status)return null;let a=await c.json().catch(()=>null);throw Error(a?.error||"Failed to get flow version")}return await c.json()}catch(c){return e.warn(`getFlowVersion: Failed for ${a}/${b}:`,c),null}}createNode(a,b){return e.debug("createNode: Entering method",{type:a,position:b}),{id:(0,d.A)(),type:a,position:b,data:{label:`${"mcp"===a?"MCP":a.charAt(0).toUpperCase()+a.slice(1)} Node`,type:a,properties:"process"===a?{inputMode:"full-history"}:{}}}}createStartNode(){return{id:(0,d.A)(),type:"start",position:{x:250,y:150},data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}}}createNewFlow(a="NewFlow"){e.debug("createNewFlow: Entering method",{name:a});let b=Date.now();return{id:(0,d.A)(),name:a,createdAt:b,updatedAt:b,nodes:[this.createStartNode()],edges:[]}}createHistoryEntry(a,b){return e.debug("createHistoryEntry: Entering method"),{nodes:[...a],edges:[...b]}}generateSampleFlow(a="Sample Flow"){return e.debug("generateSampleFlow: Entering method",{name:a}),{id:(0,d.A)(),name:a,nodes:[{id:"1",type:"start",position:{x:250,y:50},data:{label:"Start Node",type:"start",properties:{prompt:"Enter your query here",systemMessage:"You are a helpful assistant",temperature:0}}},{id:"2",type:"process",position:{x:250,y:200},data:{label:"Process Node",type:"process",properties:{operation:"transform",enabled:!0}}},{id:"3",type:"finish",position:{x:250,y:350},data:{label:"Finish Node",type:"finish",properties:{format:"json",template:'{ "result": {{data}} }'}}},{id:"4",type:"mcp",position:{x:450,y:200},data:{label:"MCP Node",type:"mcp",properties:{channels:2,mode:"parallel"}}}],edges:[{id:"e1-2",source:"1",target:"2",type:"custom"},{id:"e2-3",source:"2",target:"3",type:"custom"}]}}constructor(){this.flowsCache=null}}let g=new f},63654:(a,b,c)=>{"use strict";c.d(b,{P:()=>f});let d=(0,c(19815).h)("frontend/services/plannedExecutions");class e{async list(){try{let a=await fetch("/api/planned-executions");if(!a.ok)throw Error(`HTTP ${a.status}`);return await a.json()}catch(a){return d.warn("Failed to list planned executions",a),{paused:!1,executions:[]}}}async create(a){try{let b=await fetch("/api/planned-executions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json();if(!b.ok)return{success:!1,error:c?.error||`HTTP ${b.status}`};return{success:!0,execution:c.execution}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async update(a,b){try{let c=await fetch(`/api/planned-executions/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json();if(!c.ok)return{success:!1,error:d?.error||`HTTP ${c.status}`};return{success:!0,execution:d.execution}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async delete(a){try{let b=await fetch(`/api/planned-executions/${a}`,{method:"DELETE"});if(!b.ok){let a=await b.json().catch(()=>null);return{success:!1,error:a?.error||`HTTP ${b.status}`}}return{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async setPaused(a){try{let b=await fetch("/api/planned-executions",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({paused:a})});if(!b.ok){let a=await b.json().catch(()=>null);return{success:!1,error:a?.error||`HTTP ${b.status}`}}return{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async runNow(a){try{let b=await fetch(`/api/planned-executions/${a}/run`,{method:"POST"}),c=await b.json();if(!b.ok)return{success:!1,error:c?.error||`HTTP ${b.status}`};return{success:!0,record:c.record}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async loadRuns(a){try{let b=await fetch(`/api/planned-executions/${a}/runs`);if(!b.ok)throw Error(`HTTP ${b.status}`);let c=await b.json();return Array.isArray(c?.runs)?c.runs:[]}catch(b){return d.warn(`Failed to load runs for ${a}`,b),[]}}async previewSchedule(a,b){try{let c=await fetch("/api/planned-executions/preview-schedule",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cron:a,timezone:b})});if(!c.ok)throw Error(`HTTP ${c.status}`);return await c.json()}catch(a){return{valid:!1,error:a instanceof Error?a.message:"Preview failed",nextRuns:[]}}}}let f=new e},77531:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>bq});var d,e=c(21124),f=c(38301),g=c(81637),h=c(42378),i=c(53773),j=c(79515),k=c(41893),l=c(68730),m=c(54573),n=c(47902),o=c(11801);let p=(0,o.A)([(0,e.jsx)("path",{d:"M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2m-1 18H5V9h14zm1-13H4V4h16z"},"0"),(0,e.jsx)("path",{d:"M9 12h6v2H9z"},"1")],"Inventory2Outlined");var q=c(60839),r=c(24077),s=c(37674),t=c(67101),u=c(89490),v=c(71439),w=c(75983),x=c(50553),y=c(77028),z=c(84233),A=c(8521),B=c(88745),C=c(43249),D=c(2783),E=c(18168),F=c(68333),G=c(6636),H=c(29565),I=c(33105);function J(a){return(0,I.Ay)("MuiAlertTitle",a)}(0,H.A)("MuiAlertTitle",["root"]);let K=(0,E.Ay)(j.default,{name:"MuiAlertTitle",slot:"Root",overridesResolver:(a,b)=>b.root})((0,F.A)(({theme:a})=>({fontWeight:a.typography.fontWeightMedium,marginTop:-2}))),L=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiAlertTitle"}),{className:d,...f}=c,g=(a=>{let{classes:b}=a;return(0,D.A)({root:["root"]},J,b)})(c);return(0,e.jsx)(K,{gutterBottom:!0,component:"div",ownerState:c,ref:b,className:(0,C.A)(g.root,d),...f})});var M=c(91059),N=c(7675),O=c(94367),P=c(95587),Q=c(67191),R=c(40512),S=c(83899),T=c(52327);function U(a){return(0,I.Ay)("MuiStepper",a)}(0,H.A)("MuiStepper",["root","horizontal","vertical","nonLinear","alternativeLabel"]);var V=c(6638);let W=f.createContext({}),X=f.createContext({});function Y(a){return(0,I.Ay)("MuiStepConnector",a)}(0,H.A)("MuiStepConnector",["root","horizontal","vertical","alternativeLabel","active","completed","disabled","line","lineHorizontal","lineVertical"]);let Z=(0,E.Ay)("div",{name:"MuiStepConnector",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[c.orientation],c.alternativeLabel&&b.alternativeLabel,c.completed&&b.completed]}})({flex:"1 1 auto",variants:[{props:{orientation:"vertical"},style:{marginLeft:12}},{props:{alternativeLabel:!0},style:{position:"absolute",top:12,left:"calc(-50% + 20px)",right:"calc(50% + 20px)"}}]}),$=(0,E.Ay)("span",{name:"MuiStepConnector",slot:"Line",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.line,b[`line${(0,V.A)(c.orientation)}`]]}})((0,F.A)(({theme:a})=>{let b="light"===a.palette.mode?a.palette.grey[400]:a.palette.grey[600];return{display:"block",borderColor:a.vars?a.vars.palette.StepConnector.border:b,variants:[{props:{orientation:"horizontal"},style:{borderTopStyle:"solid",borderTopWidth:1}},{props:{orientation:"vertical"},style:{borderLeftStyle:"solid",borderLeftWidth:1,minHeight:24}}]}})),_=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiStepConnector"}),{className:d,...g}=c,{alternativeLabel:h,orientation:i="horizontal"}=f.useContext(W),{active:j,disabled:k,completed:l}=f.useContext(X),m={...c,alternativeLabel:h,orientation:i,active:j,completed:l,disabled:k},n=(a=>{let{classes:b,orientation:c,alternativeLabel:d,active:e,completed:f,disabled:g}=a,h={root:["root",c,d&&"alternativeLabel",e&&"active",f&&"completed",g&&"disabled"],line:["line",`line${(0,V.A)(c)}`]};return(0,D.A)(h,Y,b)})(m);return(0,e.jsx)(Z,{className:(0,C.A)(n.root,d),ref:b,ownerState:m,...g,children:(0,e.jsx)($,{className:n.line,ownerState:m})})}),aa=(0,E.Ay)("div",{name:"MuiStepper",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[c.orientation],c.alternativeLabel&&b.alternativeLabel,c.nonLinear&&b.nonLinear]}})({display:"flex",variants:[{props:{orientation:"horizontal"},style:{flexDirection:"row",alignItems:"center"}},{props:{orientation:"vertical"},style:{flexDirection:"column"}},{props:{alternativeLabel:!0},style:{alignItems:"flex-start"}}]}),ab=(0,e.jsx)(_,{}),ac=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiStepper"}),{activeStep:d=0,alternativeLabel:g=!1,children:h,className:i,component:j="div",connector:k=ab,nonLinear:l=!1,orientation:m="horizontal",...n}=c,o={...c,nonLinear:l,alternativeLabel:g,orientation:m,component:j},p=(a=>{let{orientation:b,nonLinear:c,alternativeLabel:d,classes:e}=a;return(0,D.A)({root:["root",b,c&&"nonLinear",d&&"alternativeLabel"]},U,e)})(o),q=f.Children.toArray(h).filter(Boolean),r=q.map((a,b)=>f.cloneElement(a,{index:b,last:b+1===q.length,...a.props})),s=f.useMemo(()=>({activeStep:d,alternativeLabel:g,connector:k,nonLinear:l,orientation:m}),[d,g,k,l,m]);return(0,e.jsx)(W.Provider,{value:s,children:(0,e.jsx)(aa,{as:j,ownerState:o,className:(0,C.A)(p.root,i),ref:b,...n,children:r})})});function ad(a){return(0,I.Ay)("MuiStep",a)}(0,H.A)("MuiStep",["root","horizontal","vertical","alternativeLabel","completed"]);let ae=(0,E.Ay)("div",{name:"MuiStep",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[c.orientation],c.alternativeLabel&&b.alternativeLabel,c.completed&&b.completed]}})({variants:[{props:{orientation:"horizontal"},style:{paddingLeft:8,paddingRight:8}},{props:{alternativeLabel:!0},style:{flex:1,position:"relative"}}]}),af=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiStep"}),{active:d,children:g,className:h,component:i="div",completed:j,disabled:k,expanded:l=!1,index:m,last:n,...o}=c,{activeStep:p,connector:q,alternativeLabel:r,orientation:s,nonLinear:t}=f.useContext(W),[u=!1,v=!1,w=!1]=[d,j,k];p===m?u=void 0===d||d:!t&&p>m?v=void 0===j||j:!t&&p<m&&(w=void 0===k||k);let x=f.useMemo(()=>({index:m,last:n,expanded:l,icon:m+1,active:u,completed:v,disabled:w}),[m,n,l,u,v,w]),y={...c,active:u,orientation:s,alternativeLabel:r,completed:v,disabled:w,expanded:l,component:i},z=(a=>{let{classes:b,orientation:c,alternativeLabel:d,completed:e}=a;return(0,D.A)({root:["root",c,d&&"alternativeLabel",e&&"completed"]},ad,b)})(y),A=(0,e.jsxs)(ae,{as:i,className:(0,C.A)(z.root,h),ref:b,ownerState:y,...o,children:[q&&r&&0!==m?q:null,g]});return(0,e.jsx)(X.Provider,{value:x,children:q&&!r&&0!==m?(0,e.jsxs)(f.Fragment,{children:[q,A]}):A})}),ag=(0,o.A)((0,e.jsx)("path",{d:"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z"}),"CheckCircle"),ah=(0,o.A)((0,e.jsx)("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");var ai=c(43282);function aj(a){return(0,I.Ay)("MuiStepIcon",a)}let ak=(0,H.A)("MuiStepIcon",["root","active","completed","error","text"]),al=(0,E.Ay)(ai.A,{name:"MuiStepIcon",slot:"Root",overridesResolver:(a,b)=>b.root})((0,F.A)(({theme:a})=>({display:"block",transition:a.transitions.create("color",{duration:a.transitions.duration.shortest}),color:(a.vars||a).palette.text.disabled,[`&.${ak.completed}`]:{color:(a.vars||a).palette.primary.main},[`&.${ak.active}`]:{color:(a.vars||a).palette.primary.main},[`&.${ak.error}`]:{color:(a.vars||a).palette.error.main}}))),am=(0,E.Ay)("text",{name:"MuiStepIcon",slot:"Text",overridesResolver:(a,b)=>b.text})((0,F.A)(({theme:a})=>({fill:(a.vars||a).palette.primary.contrastText,fontSize:a.typography.caption.fontSize,fontFamily:a.typography.fontFamily}))),an=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiStepIcon"}),{active:f=!1,className:g,completed:h=!1,error:i=!1,icon:j,...k}=c,l={...c,active:f,completed:h,error:i},m=(a=>{let{classes:b,active:c,completed:d,error:e}=a;return(0,D.A)({root:["root",c&&"active",d&&"completed",e&&"error"],text:["text"]},aj,b)})(l);if("number"==typeof j||"string"==typeof j){let a=(0,C.A)(g,m.root);return i?(0,e.jsx)(al,{as:ah,className:a,ref:b,ownerState:l,...k}):h?(0,e.jsx)(al,{as:ag,className:a,ref:b,ownerState:l,...k}):(0,e.jsxs)(al,{className:a,ref:b,ownerState:l,...k,children:[d||(d=(0,e.jsx)("circle",{cx:"12",cy:"12",r:"12"})),(0,e.jsx)(am,{className:m.text,x:"12",y:"12",textAnchor:"middle",dominantBaseline:"central",ownerState:l,children:j})]})}return j});function ao(a){return(0,I.Ay)("MuiStepLabel",a)}let ap=(0,H.A)("MuiStepLabel",["root","horizontal","vertical","label","active","completed","error","disabled","iconContainer","alternativeLabel","labelContainer"]);var aq=c(20385);let ar=(0,E.Ay)("span",{name:"MuiStepLabel",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[c.orientation]]}})({display:"flex",alignItems:"center",[`&.${ap.alternativeLabel}`]:{flexDirection:"column"},[`&.${ap.disabled}`]:{cursor:"default"},variants:[{props:{orientation:"vertical"},style:{textAlign:"left",padding:"8px 0"}}]}),as=(0,E.Ay)("span",{name:"MuiStepLabel",slot:"Label",overridesResolver:(a,b)=>b.label})((0,F.A)(({theme:a})=>({...a.typography.body2,display:"block",transition:a.transitions.create("color",{duration:a.transitions.duration.shortest}),[`&.${ap.active}`]:{color:(a.vars||a).palette.text.primary,fontWeight:500},[`&.${ap.completed}`]:{color:(a.vars||a).palette.text.primary,fontWeight:500},[`&.${ap.alternativeLabel}`]:{marginTop:16},[`&.${ap.error}`]:{color:(a.vars||a).palette.error.main}}))),at=(0,E.Ay)("span",{name:"MuiStepLabel",slot:"IconContainer",overridesResolver:(a,b)=>b.iconContainer})({flexShrink:0,display:"flex",paddingRight:8,[`&.${ap.alternativeLabel}`]:{paddingRight:0}}),au=(0,E.Ay)("span",{name:"MuiStepLabel",slot:"LabelContainer",overridesResolver:(a,b)=>b.labelContainer})((0,F.A)(({theme:a})=>({width:"100%",color:(a.vars||a).palette.text.secondary,[`&.${ap.alternativeLabel}`]:{textAlign:"center"}}))),av=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiStepLabel"}),{children:d,className:g,componentsProps:h={},error:i=!1,icon:j,optional:k,slots:l={},slotProps:m={},StepIconComponent:n,StepIconProps:o,...p}=c,{alternativeLabel:q,orientation:r}=f.useContext(W),{active:s,disabled:t,completed:u,icon:v}=f.useContext(X),w=j||v,x=n;w&&!x&&(x=an);let y={...c,active:s,alternativeLabel:q,completed:u,disabled:t,error:i,orientation:r},z=(a=>{let{classes:b,orientation:c,active:d,completed:e,error:f,disabled:g,alternativeLabel:h}=a;return(0,D.A)({root:["root",c,f&&"error",g&&"disabled",h&&"alternativeLabel"],label:["label",d&&"active",e&&"completed",f&&"error",g&&"disabled",h&&"alternativeLabel"],iconContainer:["iconContainer",d&&"active",e&&"completed",f&&"error",g&&"disabled",h&&"alternativeLabel"],labelContainer:["labelContainer",h&&"alternativeLabel"]},ao,b)})(y),A={slots:l,slotProps:{stepIcon:o,...h,...m}},[B,E]=(0,aq.A)("root",{elementType:ar,externalForwardedProps:{...A,...p},ownerState:y,ref:b,className:(0,C.A)(z.root,g)}),[F,H]=(0,aq.A)("label",{elementType:as,externalForwardedProps:A,ownerState:y}),[I,J]=(0,aq.A)("stepIcon",{elementType:x,externalForwardedProps:A,ownerState:y});return(0,e.jsxs)(B,{...E,children:[w||I?(0,e.jsx)(at,{className:z.iconContainer,ownerState:y,children:(0,e.jsx)(I,{completed:u,active:s,error:i,icon:w,...J})}):null,(0,e.jsxs)(au,{className:z.labelContainer,ownerState:y,children:[d?(0,e.jsx)(F,{...H,className:(0,C.A)(z.label,H?.className),children:d}):null,k]})]})});av.muiName="StepLabel";var aw=c(19925),ax=c(40973);let ay=(0,o.A)((0,e.jsx)("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"}),"UploadFile");var az=c(22042),aA=c(34304),aB=c(19815);(0,aB.h)("frontend/services/registry");let aC=()=>{throw Error("RegistryService can only be used in browser environment")},aD=new Proxy({},{get(a,b){let c=aC(),d=c[b];return"function"==typeof d?d.bind(c):d}}),aE=(0,aB.h)("frontend/components/Packages/RegistryAccountSettings");function aF(){let[a,b]=(0,f.useState)(null),[c,d]=(0,f.useState)(!0),[h,m]=(0,f.useState)(!1),[n,o]=(0,f.useState)(null),[p,q]=(0,f.useState)("login"),[r,t]=(0,f.useState)(""),[u,v]=(0,f.useState)(""),[w,x]=(0,f.useState)(""),[y,z]=(0,f.useState)(""),[C,D]=(0,f.useState)(""),E=(0,f.useCallback)(async()=>{try{let[a,c]=await Promise.all([aD.getStatus(),aD.getSettings()]);b(a),D(c.defaultUrl),z(c.usingDefault?"":c.baseUrl)}catch(a){aE.warn("Failed to load registry account status",a)}finally{d(!1)}},[]),F=async()=>{m(!0),o(null);try{let a="signup"===p?await aD.signup(r.trim(),u,w.trim()):await aD.login(r.trim(),u);"authenticated"===a.status?(o({type:"success",text:"Signed in to the package registry."}),v("")):"confirmation_required"===a.status?(o({type:"info",text:a.message||"Check your inbox to confirm your email."}),v("")):o({type:"error",text:a.message||"Authentication failed."}),a.account?b(a.account):await E()}catch(a){o({type:"error",text:a instanceof Error?a.message:"Authentication failed."})}finally{m(!1)}},G=async()=>{m(!0),o(null);try{await aD.logout(),await E(),o({type:"success",text:"Logged out."})}catch(a){o({type:"error",text:a instanceof Error?a.message:"Failed to log out."})}finally{m(!1)}},H=async a=>{m(!0),o(null);try{let{authorizationUrl:b}=await aD.beginOAuth(a);window.location.assign(b)}catch(a){o({type:"error",text:a instanceof Error?a.message:"Failed to start OAuth sign-in."}),m(!1)}},I=async()=>{m(!0),o(null);try{let a=await aD.resendConfirmation();o(a.success?{type:"success",text:"Confirmation email sent."}:{type:"error",text:a.message||"Failed to resend confirmation."})}finally{m(!1)}},J=async()=>{let a=r.trim();if(!a)return void o({type:"info",text:"Enter your account email above, then tap “Forgot password?”."});m(!0),o(null);try{await aD.requestPasswordReset(a),o({type:"info",text:"If an account exists for that email, a password-reset link is on its way. Follow the link to set a new password."})}catch(a){o({type:"error",text:a instanceof Error?a.message:"Failed to request a password reset."})}finally{m(!1)}},K=async()=>{m(!0),o(null);try{let a=await aD.saveSettings(y.trim());o(a.success?{type:"success",text:"Registry URL saved."}:{type:"error",text:a.message||"Invalid registry URL."})}finally{m(!1)}};if(c)return(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:3},children:(0,e.jsx)(A.default,{size:28})});let L=!!a?.signedIn,N=!!(a?.email&&!L&&a&&!a.isConfirmed);return(0,e.jsxs)(g.default,{sx:{width:"100%"},children:[(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Sign in to the FLUJO package registry to publish packages. Browsing and installing packages does not require an account — only publishing does, and your email must be confirmed first. Your registry tokens are encrypted at rest and never shown here."}),n&&(0,e.jsx)(B.A,{severity:n.type,sx:{mb:2},onClose:()=>o(null),children:n.text}),L?(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(j.default,{variant:"subtitle1",children:a?.email}),a?.publisherHandle&&(0,e.jsx)(k.A,{size:"small",label:`@${a.publisherHandle}`}),a?.isConfirmed?(0,e.jsx)(k.A,{size:"small",color:"success",label:"Confirmed"}):(0,e.jsx)(k.A,{size:"small",color:"warning",label:"Unconfirmed"})]}),(0,e.jsx)(g.default,{children:(0,e.jsx)(l.A,{variant:"outlined",onClick:G,disabled:h,children:"Log out"})})]}):N?(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsxs)(B.A,{severity:"info",children:["We sent a confirmation link to ",(0,e.jsx)("strong",{children:a?.email}),". Confirm your email, then log in to start publishing."]}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,children:[(0,e.jsx)(l.A,{variant:"outlined",onClick:I,disabled:h,children:"Resend confirmation email"}),(0,e.jsx)(l.A,{onClick:G,disabled:h,children:"Use a different account"})]})]}):(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsxs)(az.A,{value:p,onChange:(a,b)=>q(b),children:[(0,e.jsx)(aA.A,{value:"login",label:"Log in"}),(0,e.jsx)(aA.A,{value:"signup",label:"Sign up"})]}),(0,e.jsx)(s.A,{label:"Email",type:"email",value:r,onChange:a=>t(a.target.value),fullWidth:!0,autoComplete:"username"}),(0,e.jsx)(s.A,{label:"Password",type:"password",value:u,onChange:a=>v(a.target.value),fullWidth:!0,autoComplete:"signup"===p?"new-password":"current-password"}),"signup"===p&&(0,e.jsx)(s.A,{label:"Publisher handle",value:w,onChange:a=>x(a.target.value),fullWidth:!0,autoComplete:"username",helperText:"A unique handle for publishing packages, e.g. your-name"}),(0,e.jsx)(g.default,{children:(0,e.jsx)(l.A,{variant:"contained",onClick:F,disabled:h||!r.trim()||!u||"signup"===p&&!w.trim(),children:"signup"===p?"Sign up":"Log in"})}),"login"===p&&(0,e.jsx)(g.default,{children:(0,e.jsx)(l.A,{variant:"text",size:"small",onClick:J,disabled:h,sx:{textTransform:"none",px:0},children:"Forgot password?"})}),(0,e.jsx)(M.A,{children:"or"}),(0,e.jsx)(i.A,{direction:"row",spacing:1,flexWrap:"wrap",useFlexGap:!0,children:(0,e.jsx)(l.A,{variant:"outlined",onClick:()=>H("github"),disabled:h,children:"Continue with GitHub"})})]}),(0,e.jsx)(M.A,{sx:{my:3}}),(0,e.jsx)(j.default,{variant:"subtitle2",gutterBottom:!0,children:"Registry URL"}),(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",sx:{mb:1},children:["Leave blank to use the default (",C,")."]}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(s.A,{size:"small",placeholder:C,value:y,onChange:a=>z(a.target.value),sx:{minWidth:320}}),(0,e.jsx)(l.A,{variant:"outlined",onClick:K,disabled:h,children:"Save"})]})]})}c(63281),c(83434),c(28055),c(63654),(0,aB.h)("frontend/services/packages");let aG=()=>{throw Error("PackageService can only be used in browser environment")},aH=new Proxy({},{get(a,b){let c=aG(),d=c[b];return"function"==typeof d?d.bind(c):d}}),aI=/\{\{secret\.([A-Za-z0-9_.-]+)\}\}/g,aJ="encrypted:",aK=/^[A-Za-z0-9_.-]+$/,aL=["path","repo","token","email","url-cred","name","other"];function aM(a){let b=new Set,c=a=>{if("string"==typeof a){for(let c of function(a){let b;if("string"!=typeof a)return[];let c=[],d=RegExp(aI.source,"g");for(;null!==(b=d.exec(a));)c.includes(b[1])||c.push(b[1]);return c}(a))b.add(c);return}if(Array.isArray(a)){for(let b of a)c(b);return}if(a&&"object"==typeof a)for(let b of Object.values(a))c(b)};return c(a),Array.from(b)}var aN=c(48716);let aO=aN.object({name:aN.string().min(1).regex(aK,"invalid secret name"),description:aN.string().optional(),required:aN.boolean(),default:aN.string().optional()}).strict(),aP=aN.object({name:aN.string().min(1).regex(aK,"invalid global variable name"),description:aN.string().optional(),required:aN.boolean(),isSecret:aN.boolean().optional()}).strict(),aQ=aN.discriminatedUnion("kind",[aN.object({kind:aN.literal("secret"),secret:aN.string().min(1)}).strict(),aN.object({kind:aN.literal("global"),var:aN.string().min(1)}).strict(),aN.object({kind:aN.literal("none")}).strict()]),aR=aN.object({id:aN.string().min(1),name:aN.string().min(1),displayName:aN.string().optional(),description:aN.string().optional(),baseUrl:aN.string().optional(),provider:aN.string().optional(),adapter:aN.string().optional(),promptTemplate:aN.string().optional(),reasoningSchema:aN.string().optional(),temperature:aN.string().optional(),reasoningEffort:aN.enum(["minimal","low","medium","high","xhigh","max","ultra"]).optional(),thinkingLevel:aN.enum(["minimal","low","medium","high"]).optional(),thinkingBudget:aN.number().int().min(-1).optional(),serviceTier:aN.enum(["default","priority"]).optional(),functionCallingSchema:aN.string().optional(),contextWindow:aN.number().optional(),maxTurns:aN.number().optional(),maxTokens:aN.number().optional(),folder:aN.string().optional(),favorite:aN.boolean().optional(),apiKeyRef:aQ}).strict(),aS=aN.object({sourceType:aN.enum(["github","registry","marketplace","remote"]),ref:aN.string().optional(),url:aN.string().optional(),name:aN.string().optional()}).strict().superRefine((a,b)=>{"remote"!==a.sourceType||a.url||b.addIssue({code:"custom",message:"installOrigin 'remote' requires a url"}),"github"!==a.sourceType&&"registry"!==a.sourceType||a.ref||b.addIssue({code:"custom",message:`installOrigin '${a.sourceType}' requires a ref`})}),aT=aN.object({name:aN.string().min(1),isSecret:aN.boolean(),secretRef:aN.string().optional(),globalVar:aN.string().optional()}).strict(),aU=aN.object({name:aN.string().min(1),transport:aN.enum(["stdio","sse","streamable","websocket"]),disabled:aN.boolean().optional(),autoApprove:aN.array(aN.string()).optional(),folder:aN.string().optional(),installOrigin:aS,envDeclarations:aN.array(aT),headerDeclarations:aN.array(aT).optional()}).strict(),aV=aN.object({flow:aN.object({id:aN.string().min(1),name:aN.string().min(1),nodes:aN.array(aN.any()),edges:aN.array(aN.any())}).catchall(aN.unknown()),references:aN.object({flowIds:aN.array(aN.string()).optional(),modelIds:aN.array(aN.string()).optional(),mcpServerNames:aN.array(aN.string()).optional()}).optional()}),aW=aN.object({id:aN.string().min(1),name:aN.string().min(1),enabled:aN.boolean(),flowId:aN.string().min(1),prompt:aN.string(),trigger:aN.any()}).catchall(aN.unknown()),aX=aN.object({schemaVersion:aN.literal(1),id:aN.string().min(1),name:aN.string().min(1),description:aN.string().optional(),version:aN.string().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-.]+)?(?:\+[0-9A-Za-z-.]+)?$/,"version must be valid semver"),author:aN.string().optional(),publisher:aN.string().optional(),tags:aN.array(aN.string()).optional(),requiredGlobals:aN.array(aN.string()).optional(),globals:aN.array(aP).optional(),secrets:aN.array(aO),models:aN.array(aR),mcpServers:aN.array(aU),flows:aN.array(aV),plannedExecutions:aN.array(aW)}).superRefine((a,b)=>{(function a(b){return"string"==typeof b?b.startsWith(aJ):Array.isArray(b)?b.some(a):!!b&&"object"==typeof b&&Object.values(b).some(a)})(a)&&b.addIssue({code:"custom",message:`package contains an '${aJ}' value; secret material must never be serialized`});let c=new Set(a.secrets.map(a=>a.name)),d=new Set(aM(a));for(let b of a.models)"secret"===b.apiKeyRef.kind&&d.add(b.apiKeyRef.secret);for(let b of a.mcpServers)for(let a of[...b.envDeclarations,...b.headerDeclarations??[]])a.secretRef&&d.add(a.secretRef);for(let a of d)c.has(a)||b.addIssue({code:"custom",message:`secret "${a}" is referenced but not declared in secrets[]`});let e=new Set(a.flows.map(a=>a.flow.id));a.plannedExecutions.forEach((a,c)=>{e.has(a.flowId)||b.addIssue({code:"custom",path:["plannedExecutions",c,"flowId"],message:`plannedExecution "${a.name}" references unknown flow id "${a.flowId}"`})}),a.flows.forEach((a,c)=>{for(let d of a.references?.flowIds??[])e.has(d)||b.addIssue({code:"custom",path:["flows",c,"references","flowIds"],message:`flow "${a.flow.name}" references unknown subflow id "${d}"`})})}),aY=(0,aB.h)("frontend/components/Packages/PackageWizard"),aZ=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-.]+)?(?:\+[0-9A-Za-z-.]+)?$/,a$=["Select contents","Resolve & validate","Secret review","Metadata","Export"];function a_(a){return a.replace(/^SECRET_/,"")}function a0({open:a,onClose:b}){let c=(0,q.A)(),d=(0,r.A)(c.breakpoints.down("sm")),[h,m]=(0,f.useState)(0),[n,o]=(0,f.useState)({flows:[],models:[],mcpServers:[],plannedExecutions:[]}),[p,C]=(0,f.useState)(!0),[D,E]=(0,f.useState)(new Set),[F,G]=(0,f.useState)(new Set),[H,I]=(0,f.useState)(new Set),[J,K]=(0,f.useState)(new Set),[U,V]=(0,f.useState)(""),[W,X]=(0,f.useState)(""),[Y,Z]=(0,f.useState)(""),[$,_]=(0,f.useState)(""),[aa,ab]=(0,f.useState)(null),[ad,ae]=(0,f.useState)([]),[ag,ah]=(0,f.useState)(!1),[ai,aj]=(0,f.useState)(null),[ak,al]=(0,f.useState)(null),[am,an]=(0,f.useState)({}),[ao,ap]=(0,f.useState)(new Set),[aq,ar]=(0,f.useState)([]),[as,at]=(0,f.useState)(!1),[au,az]=(0,f.useState)(!1),[aA,aB]=(0,f.useState)(null),[aD,aE]=(0,f.useState)([]),[aH,aI]=(0,f.useState)(""),[aJ,aN]=(0,f.useState)(""),[aO,aP]=(0,f.useState)(!1),[aQ,aR]=(0,f.useState)(!1),[aS,aT]=(0,f.useState)(""),[aU,aV]=(0,f.useState)(""),[aW,a0]=(0,f.useState)("other"),[a1,a2]=(0,f.useState)(null),[a3,a4]=(0,f.useState)(!1),[a5,a6]=(0,f.useState)(!1),[a7,a8]=(0,f.useState)(null),[a9,ba]=(0,f.useState)([]),[bb,bc]=(0,f.useState)(""),[bd,be]=(0,f.useState)(!1),[bf,bg]=(0,f.useState)(""),[bh,bi]=(0,f.useState)("1.0.0"),[bj,bk]=(0,f.useState)(""),[bl,bm]=(0,f.useState)(""),[bn,bo]=(0,f.useState)(!1),[bp,bq]=(0,f.useState)(null),[br,bs]=(0,f.useState)(null),[bt,bu]=(0,f.useState)(!1),[bv,bw]=(0,f.useState)(null),bx=(0,f.useMemo)(()=>({flowIds:Array.from(D),modelIds:Array.from(F),mcpServerNames:Array.from(H),plannedExecutionIds:Array.from(J)}),[D,F,H,J]),by=0===D.size&&0===F.size&&0===H.size&&0===J.size,bz=a=>b=>{a(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},bA=(0,f.useCallback)(async a=>{let b;ae([]);try{b=await a.text()}catch(a){ae([a instanceof Error?a.message:"Failed to read the file"]);return}let c=function(a){let b;try{b=JSON.parse(a)}catch(a){return{ok:!1,errors:[`Not valid JSON: ${a instanceof Error?a.message:String(a)}`]}}let c=function(a){let b=aX.safeParse(a);if(!b.success)return{success:!1,errors:b.error.issues.map(a=>{let b=a.path.join(".");return b?`${b}: ${a.message}`:a.message})};let c=b.data;return{success:!0,data:c,warnings:function(a){let b=new Set(aM(a));for(let c of a.models)"secret"===c.apiKeyRef.kind&&b.add(c.apiKeyRef.secret);for(let c of a.mcpServers)for(let a of[...c.envDeclarations,...c.headerDeclarations??[]])a.secretRef&&b.add(a.secretRef);return a.secrets.filter(a=>!b.has(a.name)).map(a=>`secret "${a.name}" is declared but never referenced`)}(c)}}(b);return c.success&&c.data?{ok:!0,package:c.data}:{ok:!1,errors:c.errors??["Not a valid FLUJO package manifest"]}}(b);if(!c.ok){ab(null),ae(c.errors.slice(0,8));return}let d=function(a,b){let c=new Set(b.flowIds),d=new Set(b.modelIds),e=new Set(b.mcpServerNames),f=new Set(b.plannedExecutionIds),g=[],h={flowIds:[],modelIds:[],mcpServerNames:[],plannedExecutionIds:[]};for(let b of a.flows??[]){let a=b?.flow?.id;a&&(c.has(a)?h.flowIds.push(a):g.push({type:"flow",label:b.flow?.name?`${b.flow.name} (${a})`:a}))}for(let b of a.models??[])b?.id&&(d.has(b.id)?h.modelIds.push(b.id):g.push({type:"model",label:b.displayName||b.name||b.id}));for(let b of a.mcpServers??[])b?.name&&(e.has(b.name)?h.mcpServerNames.push(b.name):g.push({type:"mcpServer",label:b.name}));for(let b of a.plannedExecutions??[]){let a=b?.id;a&&(f.has(a)?h.plannedExecutionIds.push(a):g.push({type:"plannedExecution",label:b.name||a}))}return{selection:h,metadata:{name:a.name??"",version:a.version??"",description:a.description??"",tags:a.tags?[...a.tags]:[]},secretNames:(a.secrets??[]).map(a=>a.name).filter(Boolean),missing:g}}(c.package,{flowIds:n.flows.map(a=>a.id),modelIds:n.models.map(a=>a.id),mcpServerNames:n.mcpServers.map(a=>a.id),plannedExecutionIds:n.plannedExecutions.map(a=>a.id)});E(new Set(d.selection.flowIds)),G(new Set(d.selection.modelIds)),I(new Set(d.selection.mcpServerNames)),K(new Set(d.selection.plannedExecutionIds)),bg(d.metadata.name),bi(d.metadata.version),bk(d.metadata.description),bm(d.metadata.tags.join(", ")),aj(null),al(null),an({}),ap(new Set),ar([]),az(!1),aB(null),aE([]),bq(null),bs(null),bw(null),ab(d),aY.info("Imported package manifest into the wizard",{name:d.metadata.name,version:d.metadata.version,missing:d.missing.length})},[n]),bB=(0,f.useCallback)(async()=>{ah(!0),al(null),aj(null),an({}),ap(new Set),ar([]),az(!1),aB(null),aE([]);try{let a=await aG().resolve(bx);aj(a),an(Object.fromEntries((a.globals??[]).map(a=>[a.name,a.description??""])))}catch(a){al(a instanceof Error?a.message:"Failed to resolve dependencies")}finally{ah(!1)}},[bx]),bC=(0,f.useMemo)(()=>aa?new Set(aa.secretNames):null,[aa]),bD=(0,f.useCallback)(async a=>{at(!0),aB(null);try{let b=await aG().deriveSecrets(bx,{modelIdentifier:a,enableEntropy:aO,enableRepoSlug:aQ});ar(a=>{let c=new Map(a.map(a=>[a.id,a.accepted])),d=new Map(a.map(a=>[a.id,a.suggestedSecretName])),e=a.filter(a=>"manual"===a.source),f=b.proposals.map(a=>({...a,accepted:c.has(a.id)?c.get(a.id):bC?bC.has(a.suggestedSecretName):"low"!==a.confidence,suggestedSecretName:d.get(a.id)??a.suggestedSecretName})),g=new Set(f.map(a=>a.id));return[...f,...e.filter(a=>!g.has(a.id))]}),aE(b.warnings??[])}catch(a){aB(a instanceof Error?a.message:"Failed to derive secrets")}finally{at(!1),az(!0)}},[bx,aO,aQ,bC]),bE=a=>ar(b=>b.map(b=>({...b,accepted:a}))),bF=()=>{a2(null);let a=function(a){let b=(a.excerpt??"").trim();if(!b||b.length>2e3)return null;let c=(a.secretName??"").trim();if(c.length>128)return null;let d=a.kind??"other",e=aK.test(c)?c.toUpperCase():function(a,b){let c=`${a}_${b}`.toUpperCase().replace(/[^A-Z0-9_.-]+/g,"_").replace(/^[_.-]+|[_.-]+$/g,"")||`${a}_SECRET`;return aK.test(c)?c:`${a}_SECRET`}("SECRET",c||b.slice(0,16)),f=(a.location??"manual").trim()||"manual";return{id:`sp_${function(a){let b=5381;for(let c=0;c<a.length;c++)b=(b<<5)+b^a.charCodeAt(c);return(b>>>0).toString(16).padStart(8,"0")}(`${f}\0${b}`)}`,location:f,excerpt:b,kind:d,source:"manual",confidence:"high",suggestedSecretName:e,suggestedDescription:a.description?.trim()||void 0,rationale:"Added manually",accepted:!0}}({excerpt:aS,secretName:aU,kind:aW});if(!a)return void a2("Enter a non-empty value to redact (under 2000 characters).");ar(b=>b.some(b=>b.id===a.id)?b:[a,...b]),aT(""),aV(""),a0("other")},bG=(0,f.useCallback)(async()=>{a4(!0),a8(null),bc(""),a6(!0);try{let a=await aG().scanTargets(bx);ba(a)}catch(a){a8(a instanceof Error?a.message:"Failed to load candidate values"),ba([])}finally{a6(!1)}},[bx]),bH=(0,f.useMemo)(()=>{let a=bb.trim().toLowerCase();return a?a9.filter(b=>`${b.text} ${b.location} ${b.source}`.toLowerCase().includes(a)):a9},[a9,bb]),bI=(0,f.useMemo)(()=>{let a=new Map;for(let b of aq){let c=`${b.kind}::${b.excerpt}`,d=a.get(c);d?(d.ids.push(b.id),d.locations.push(b.location)):a.set(c,{key:c,ids:[b.id],locations:[b.location],kind:b.kind,source:b.source,confidence:b.confidence,excerpt:b.excerpt,suggestedSecretName:b.suggestedSecretName,rationale:b.rationale,accepted:b.accepted})}return Array.from(a.values())},[aq]),bJ=(0,f.useMemo)(()=>{let a=aJ.trim().toLowerCase();return a?bI.filter(b=>`${b.excerpt} ${b.locations.join(" ")} ${b.kind} ${b.suggestedSecretName}`.toLowerCase().includes(a)):bI},[bI,aJ]),bK=(0,f.useMemo)(()=>{if(!aa||!au)return[];let a=new Set([...(ai?.secrets??[]).map(a=>a.name),...aq.map(a=>a.suggestedSecretName)]);return aa.secretNames.filter(b=>!a.has(b))},[aa,au,ai,aq]),bL=(0,f.useMemo)(()=>{let a=new Map;for(let b of bI)a.set(b.kind,(a.get(b.kind)??0)+1);return Array.from(a.entries()).sort((a,b)=>b[1]-a[1])},[bI]),bM=(0,f.useCallback)(async()=>{bo(!0),bs(null),bq(null);try{let a=bl.split(",").map(a=>a.trim()).filter(Boolean),b=await aG().build(bx,{id:`pkg-${Date.now()}`,name:bf.trim(),version:bh.trim(),description:bj.trim()||void 0,tags:a.length?a:void 0},aq.filter(a=>a.accepted),(ai?.globals??[]).map(a=>({...a,description:am[a.name]?.trim()||a.description})),Array.from(ao));bq(b),b.ok||bs(b.errors&&b.errors[0]||"Package build failed")}catch(a){bs(a instanceof Error?a.message:"Failed to build package")}finally{bo(!1)}},[bx,bf,bh,bj,bl,aq,ai,am,ao]),bN=(0,f.useCallback)(async()=>{if(bp?.json){bu(!0),bw(null);try{let a=JSON.parse(bp.json),b=await aC().publish(a);bw(b)}catch(a){bw({ok:!1,code:"error",error:a instanceof Error?a.message:"Failed to publish package"})}finally{bu(!1)}}},[bp]),bO=()=>{if(!bp?.json)return;let a=new Blob([bp.json],{type:"application/json"}),b=URL.createObjectURL(a),c=document.createElement("a");c.href=b;let d=bf.trim().replace(/[^A-Za-z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"")||"package";c.download=`${d}-${bh.trim()}.flujo-package.json`,document.body.appendChild(c),c.click(),c.remove(),URL.revokeObjectURL(b)},bP=async()=>{if(0===h){await bB(),m(1);return}if(3===h){m(4),await bM();return}m(a=>Math.min(a+1,a$.length-1))},bQ=aZ.test(bh.trim()),bR=bf.trim().length>0&&bQ,bS=!!(ai&&!ai.mcp.ok),bT=0===h?by||ag:1===h?ag||!!ak||bS:3===h?!bR:4===h,bU=(a,b,c,d,f,h)=>{let i=f.trim().toLowerCase(),l=i?b.filter(a=>a.label.toLowerCase().includes(i)):b;return(0,e.jsxs)(g.default,{sx:{flex:1,minWidth:240},children:[(0,e.jsxs)(j.default,{variant:"subtitle2",gutterBottom:!0,children:[a," ",c.size>0&&(0,e.jsx)(k.A,{label:c.size,size:"small"})]}),(0,e.jsx)(s.A,{size:"small",fullWidth:!0,placeholder:`Search ${a.toLowerCase()}…`,value:f,onChange:a=>h(a.target.value),InputProps:{startAdornment:(0,e.jsx)(t.A,{position:"start",children:(0,e.jsx)(ax.A,{fontSize:"small"})})},sx:{mb:1}}),0===b.length?(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"None available"}):0===l.length?(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["No matches for “",f,"”."]}):(0,e.jsx)(u.A,{dense:!0,sx:{maxHeight:{xs:240,md:"45vh"},overflow:"auto",border:1,borderColor:"divider",borderRadius:1},children:l.map(a=>(0,e.jsx)(v.Ay,{disablePadding:!0,children:(0,e.jsxs)(w.A,{onClick:()=>d(a.id),dense:!0,children:[(0,e.jsx)(x.A,{sx:{minWidth:36},children:(0,e.jsx)(y.A,{edge:"start",checked:c.has(a.id),tabIndex:-1,disableRipple:!0})}),(0,e.jsx)(z.A,{primary:a.label})]})},a.id))})]})};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(R.A,{open:a,onClose:b,maxWidth:"lg",fullWidth:!0,fullScreen:d,PaperProps:{sx:{height:d?"100%":"90vh",maxHeight:d?"100%":"90vh"}},children:[(0,e.jsx)(S.A,{children:"Create package"}),(0,e.jsxs)(T.A,{dividers:!0,sx:{overflow:"auto"},children:[(0,e.jsx)(ac,{activeStep:h,sx:{mb:3},children:a$.map(a=>(0,e.jsx)(af,{children:(0,e.jsx)(av,{children:a})},a))}),(()=>{switch(h){case 0:return p?(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:4},children:(0,e.jsx)(A.default,{})}):(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"Pick the entities to include. Dependencies (subflows, referenced models and MCP servers, planned-execution flows) are pulled in automatically in the next step."}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsxs)(l.A,{component:"label",variant:"outlined",startIcon:(0,e.jsx)(ay,{}),children:["Import manifest (.json)",(0,e.jsx)("input",{type:"file",accept:"application/json,.json",hidden:!0,onChange:a=>{let b=a.target.files?.[0];a.target.value="",b&&bA(b)}})]}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",children:"Restores the selection, metadata and accepted secrets from a package you exported earlier."})]}),ad.length>0&&(0,e.jsxs)(B.A,{severity:"error",onClose:()=>ae([]),children:[(0,e.jsx)(L,{children:"Could not import that file"}),ad.map((a,b)=>(0,e.jsx)("div",{children:a},b))]}),aa&&(0,e.jsxs)(B.A,{severity:aa.missing.length>0?"warning":"success",children:[(0,e.jsxs)(L,{children:["Imported “",aa.metadata.name,"” v",aa.metadata.version]}),"Restored ",aa.selection.flowIds.length," flow(s),"," ",aa.selection.modelIds.length," model(s),"," ",aa.selection.mcpServerNames.length," MCP server(s),"," ",aa.selection.plannedExecutionIds.length," planned execution(s) and"," ",aa.secretNames.length," secret name(s).",aa.missing.length>0&&(0,e.jsxs)(g.default,{sx:{mt:1},children:["No longer on this host (left unselected):",aa.missing.map((a,b)=>(0,e.jsxs)("div",{children:[a.type,": ",a.label]},b))]})]}),(0,e.jsxs)(i.A,{direction:"row",spacing:2,flexWrap:"wrap",useFlexGap:!0,children:[bU("Flows",n.flows,D,bz(E),U,V),bU("Models",n.models,F,bz(G),W,X),bU("MCP servers",n.mcpServers,H,bz(I),Y,Z),bU("Planned executions",n.plannedExecutions,J,bz(K),$,_)]})]});case 1:if(ag)return(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:4},children:(0,e.jsx)(A.default,{})});if(ak)return(0,e.jsx)(B.A,{severity:"error",children:ak});if(!ai)return null;return(0,e.jsxs)(i.A,{spacing:2,children:[bS&&(0,e.jsxs)(B.A,{severity:"error",children:[(0,e.jsx)(L,{children:"Local MCP server(s) cannot be packaged"}),ai.mcp.errors.map((a,b)=>(0,e.jsx)("div",{children:a},b))]}),ai.resolved.autoAdded.length>0&&(0,e.jsxs)(B.A,{severity:"info",children:[(0,e.jsx)(L,{children:"Automatically included dependencies"}),ai.resolved.autoAdded.map((a,b)=>(0,e.jsxs)("div",{children:[a.type,": ",(0,e.jsx)("code",{children:a.id})," — ",a.reason]},b))]}),ai.resolved.warnings.length>0&&(0,e.jsxs)(B.A,{severity:"warning",children:[(0,e.jsx)(L,{children:"Warnings"}),ai.resolved.warnings.map((a,b)=>(0,e.jsx)("div",{children:a},b))]}),(0,e.jsx)(M.A,{}),(0,e.jsxs)(j.default,{variant:"body2",children:["Resolved: ",ai.resolved.flowIds.length," flow(s),"," ",ai.resolved.modelIds.length," model(s),"," ",ai.resolved.mcpServerNames.length," MCP server(s),"," ",ai.resolved.plannedExecutionIds.length," planned execution(s)."]}),ai.mcp.servers.length>0&&(0,e.jsx)(i.A,{direction:"row",spacing:1,flexWrap:"wrap",useFlexGap:!0,children:ai.mcp.servers.map(a=>(0,e.jsx)(k.A,{label:`${a.name} \xb7 ${a.sourceType}`,size:"small",color:"success",variant:"outlined"},a.name))})]});case 2:return(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsx)(j.default,{variant:"subtitle2",children:"Global variables"}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"Global variables referenced by the package. Add a useful description for each one; installers will supply values and FLUJO will create them in Global Variables."}),ai&&0!==(ai.globals??[]).length?(0,e.jsx)(i.A,{spacing:1.5,children:ai.globals.map(a=>(0,e.jsx)(s.A,{size:"small",label:a.name,value:am[a.name]??"",onChange:b=>an(c=>({...c,[a.name]:b.target.value})),helperText:"Description shown during package installation",fullWidth:!0},a.name))}):(0,e.jsx)(B.A,{severity:"success",children:"No global variables referenced by this package."}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Declared secrets (entity keys)"}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"Secrets the package will declare from model API keys and MCP env/headers. Values are never included — whoever installs must supply them."}),ai&&0!==ai.secrets.length?(0,e.jsx)(u.A,{dense:!0,children:ai.secrets.map(a=>(0,e.jsxs)(v.Ay,{children:[(0,e.jsx)(y.A,{edge:"start",checked:!ao.has(a.name),onChange:b=>ap(c=>{let d=new Set(c);return b.target.checked?d.delete(a.name):d.add(a.name),d}),inputProps:{"aria-label":`Include ${a.name} in package secrets`}}),(0,e.jsx)(z.A,{primary:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("code",{children:a_(a.name)})," ",a.required&&(0,e.jsx)(k.A,{label:"required",size:"small",color:"warning"})]}),secondary:ao.has(a.name)?"Excluded — the package will not request this value":a.description})]},a.name))}):(0,e.jsx)(B.A,{severity:"success",children:"No entity secrets to declare."}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Detected secrets in content"}),(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["Values that look secret or instance-specific (paths, repos, tokens, URLs, emails) found in flow prompts, node properties, model config and planned- execution prompts. Accepted rows are replaced with a"," ",(0,e.jsx)("code",{children:"{{secret.NAME}}"})," placeholder everywhere they occur."]}),as&&(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:2},children:(0,e.jsx)(A.default,{size:28})}),aA&&(0,e.jsx)(B.A,{severity:"error",children:aA}),!as&&au&&0===aq.length&&(0,e.jsx)(B.A,{severity:"success",children:"No likely secrets detected in the packaged content."}),aq.length>0&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(i.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,children:bL.map(([a,b])=>(0,e.jsx)(k.A,{size:"small",variant:"outlined",label:`${a}: ${b}`},a))}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(l.A,{size:"small",onClick:()=>bE(!0),children:"Accept all"}),(0,e.jsx)(l.A,{size:"small",onClick:()=>bE(!1),children:"Reject all"}),(0,e.jsx)(s.A,{size:"small",placeholder:"Filter detected secrets…",value:aJ,onChange:a=>aN(a.target.value),sx:{minWidth:200,flex:1}}),(0,e.jsxs)(j.default,{variant:"caption",color:"text.secondary",sx:{alignSelf:"center"},children:[bI.filter(a=>a.accepted).length," of ",bI.length," accepted"]})]}),(0,e.jsxs)(u.A,{dense:!0,sx:{border:1,borderColor:"divider",borderRadius:1,maxHeight:280,overflow:"auto"},children:[0===bJ.length&&(0,e.jsx)(v.Ay,{children:(0,e.jsx)(z.A,{primary:(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["No rows match “",aJ,"”."]})})}),bJ.map(a=>(0,e.jsxs)(v.Ay,{alignItems:"flex-start",divider:!0,children:[(0,e.jsx)(x.A,{sx:{minWidth:36,mt:1},children:(0,e.jsx)(y.A,{edge:"start",checked:!!a.accepted,onChange:()=>{let b;return b=a.ids,ar(a=>{let c=new Set(b),d=!a.find(a=>c.has(a.id))?.accepted;return a.map(a=>c.has(a.id)?{...a,accepted:d}:a)})},tabIndex:-1,disableRipple:!0})}),(0,e.jsx)(z.A,{primary:(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(k.A,{label:a.kind,size:"small"}),(0,e.jsx)(k.A,{label:a.source,size:"small",variant:"outlined",color:"model"===a.source?"secondary":"manual"===a.source?"primary":"default"}),a.confidence&&(0,e.jsx)(k.A,{label:a.confidence,size:"small",variant:"outlined",color:"high"===a.confidence?"success":"low"===a.confidence?"warning":"default"}),a.locations.length>1&&(0,e.jsx)(k.A,{label:`${a.locations.length}\xd7`,size:"small",variant:"outlined"}),(0,e.jsx)(g.default,{component:"code",sx:{wordBreak:"break-all"},children:a.excerpt.length>80?`${a.excerpt.slice(0,80)}…`:a.excerpt})]}),secondary:(0,e.jsxs)(i.A,{spacing:.5,sx:{mt:.5},children:[(0,e.jsxs)(j.default,{variant:"caption",color:"text.secondary",children:[a.locations.length>1?`${a.locations.length} locations: ${a.locations.slice(0,3).join(", ")}${a.locations.length>3?", …":""}`:a.locations[0],a.rationale?` — ${a.rationale}`:""]}),(0,e.jsx)(s.A,{size:"small",label:"Secret name",value:a_(a.suggestedSecretName),onChange:b=>{var c,d;let e,f;return e=a.ids,c=a.suggestedSecretName,d=b.target.value,f=c.startsWith("SECRET_")?`SECRET_${d.replace(/^SECRET_/,"")}`:d,ar(a=>{let b=new Set(e);return a.map(a=>b.has(a.id)?{...a,suggestedSecretName:f}:a)})},disabled:!a.accepted,sx:{maxWidth:320}})]}),primaryTypographyProps:{component:"div"},secondaryTypographyProps:{component:"div"}})]},a.key))]})]}),bK.length>0&&(0,e.jsxs)(B.A,{severity:"warning",children:[(0,e.jsx)(L,{children:"Secrets from the imported manifest that need re-adding"}),"A manifest never carries secret values, so these declarations could not be matched to anything in the current content — re-add them below if they still apply: ",bK.map(a_).join(", "),"."]}),aD.length>0&&(0,e.jsxs)(B.A,{severity:"warning",children:[(0,e.jsx)(L,{children:"Notes"}),aD.map((a,b)=>(0,e.jsx)("div",{children:a},b))]}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Add a secret manually"}),(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["Enter any value that should be redacted from the package. It is treated purely as text to replace with a ",(0,e.jsx)("code",{children:"{{secret.NAME}}"})," placeholder — it is never executed."]}),a1&&(0,e.jsx)(B.A,{severity:"error",children:a1}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"flex-start",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(s.A,{size:"small",label:"Value to redact",value:aS,onChange:a=>aT(a.target.value),sx:{minWidth:240,flex:1}}),(0,e.jsx)(s.A,{size:"small",label:"Secret name",value:aU,onChange:a=>aV(a.target.value),sx:{minWidth:180}}),(0,e.jsx)(N.A,{size:"small",value:aW,onChange:a=>a0(a.target.value),sx:{minWidth:120},children:aL.map(a=>(0,e.jsx)(O.A,{value:a,children:a},a))}),(0,e.jsx)(l.A,{variant:"outlined",onClick:bF,disabled:!aS.trim(),children:"Add"}),(0,e.jsx)(l.A,{variant:"text",startIcon:(0,e.jsx)(ax.A,{}),onClick:()=>void bG(),disabled:by,children:"Pick from app"})]}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Advanced scan options"}),(0,e.jsxs)(i.A,{direction:"row",spacing:2,flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(P.A,{control:(0,e.jsx)(Q.A,{checked:aO,onChange:a=>{aP(a.target.checked),az(!1)}}),label:"Aggressive entropy scan"}),(0,e.jsx)(P.A,{control:(0,e.jsx)(Q.A,{checked:aQ,onChange:a=>{aR(a.target.checked),az(!1)}}),label:"Detect bare owner/repo slugs"}),(0,e.jsx)(l.A,{size:"small",variant:"text",onClick:()=>void bD(),disabled:as,children:"Re-scan"})]}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Optional: model-driven scan"}),(0,e.jsx)(B.A,{severity:"info",children:"Running the model-driven pass sends the packaged content above to the selected model provider. The offline heuristic scan never leaves your machine."}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsxs)(N.A,{size:"small",displayEmpty:!0,value:aH,onChange:a=>aI(a.target.value),sx:{minWidth:220},children:[(0,e.jsx)(O.A,{value:"",children:(0,e.jsx)("em",{children:"Select a model…"})}),n.models.map(a=>(0,e.jsx)(O.A,{value:a.id,children:a.label},a.id))]}),(0,e.jsx)(l.A,{variant:"outlined",disabled:!aH||as,onClick:()=>void bD(aH),children:"Scan with model"})]})]});case 3:return(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsx)(s.A,{label:"Package name",value:bf,onChange:a=>bg(a.target.value),required:!0,fullWidth:!0,error:bf.length>0&&0===bf.trim().length}),(0,e.jsx)(s.A,{label:"Version",value:bh,onChange:a=>bi(a.target.value),required:!0,fullWidth:!0,error:bh.length>0&&!bQ,helperText:bh.length>0&&!bQ?"Must be a semantic version (e.g. 1.0.0)":" "}),(0,e.jsx)(s.A,{label:"Description",value:bj,onChange:a=>bk(a.target.value),fullWidth:!0,multiline:!0,minRows:2}),(0,e.jsx)(s.A,{label:"Tags (comma-separated)",value:bl,onChange:a=>bm(a.target.value),fullWidth:!0})]});case 4:if(bn)return(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:4},children:(0,e.jsx)(A.default,{})});if(br)return(0,e.jsx)(B.A,{severity:"error",children:br});if(bp?.ok)return(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsxs)(B.A,{severity:"success",children:[(0,e.jsx)(L,{children:"Package built"}),(0,e.jsx)("code",{children:bf.trim()})," v",bh.trim()," is ready to export."]}),bp.warnings.length>0&&(0,e.jsxs)(B.A,{severity:"warning",children:[(0,e.jsx)(L,{children:"Warnings"}),bp.warnings.map((a,b)=>(0,e.jsx)("div",{children:a},b))]}),(0,e.jsx)(l.A,{variant:"contained",onClick:bO,children:"Download package manifest (.json)"}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Publish to the FLUJO package registry"}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"Publishing requires a confirmed registry account (set one up on the Packages page). Only the secret-safe manifest above is uploaded — no secret values ever leave your machine."}),bv?.ok?(0,e.jsxs)(B.A,{severity:"success",children:[(0,e.jsx)(L,{children:"Published"}),bv.name||bf.trim()," v",bv.version||bh.trim()," is live.",bv.url&&(0,e.jsx)("div",{children:(0,e.jsx)("a",{href:bv.url,target:"_blank",rel:"noreferrer",children:bv.url})})]}):(0,e.jsxs)(e.Fragment,{children:[bv&&!bv.ok&&(0,e.jsx)(B.A,{severity:"unconfirmed"===bv.code||"not_authenticated"===bv.code?"warning":"error",children:bv.error||"Failed to publish package."}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(l.A,{variant:"outlined",onClick:()=>void bN(),disabled:bt,children:bt?"Publishing…":"Publish to registry"}),bv&&!bv.ok&&("not_authenticated"===bv.code||"unconfirmed"===bv.code)&&(0,e.jsx)(l.A,{variant:"contained",onClick:()=>be(!0),disabled:bt,children:"Log in to registry"})]})]})]});return null;default:return null}})()]}),(0,e.jsxs)(aw.A,{children:[(0,e.jsx)(l.A,{onClick:b,children:bp?.ok?"Close":"Cancel"}),(0,e.jsx)(g.default,{sx:{flex:1}}),(0,e.jsx)(l.A,{onClick:()=>m(a=>Math.max(a-1,0)),disabled:0===h||bn||ag,children:"Back"}),h<4&&(0,e.jsx)(l.A,{variant:"contained",onClick:bP,disabled:bT,children:3===h?"Build":"Next"})]})]}),(0,e.jsxs)(R.A,{open:bd,onClose:()=>be(!1),maxWidth:"sm",fullWidth:!0,children:[(0,e.jsx)(S.A,{children:"Log in to the package registry"}),(0,e.jsx)(T.A,{dividers:!0,children:(0,e.jsx)(aF,{})}),(0,e.jsxs)(aw.A,{children:[(0,e.jsx)(l.A,{onClick:()=>be(!1),children:"Done"}),(0,e.jsx)(l.A,{variant:"contained",onClick:()=>{be(!1),bN()},disabled:bt,children:"Retry publish"})]})]}),(0,e.jsxs)(R.A,{open:a3,onClose:()=>a4(!1),maxWidth:"md",fullWidth:!0,children:[(0,e.jsx)(S.A,{children:"Pick a value to redact"}),(0,e.jsxs)(T.A,{dividers:!0,children:[(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"These are plaintext values found in the packaged flows, models and planned executions. Pick one to pre-fill the value to redact. API keys and MCP env/header values are never listed — they are already declared as secrets."}),(0,e.jsx)(s.A,{size:"small",fullWidth:!0,placeholder:"Search values…",value:bb,onChange:a=>bc(a.target.value),InputProps:{startAdornment:(0,e.jsx)(t.A,{position:"start",children:(0,e.jsx)(ax.A,{fontSize:"small"})})},sx:{mb:2}}),a5?(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:4},children:(0,e.jsx)(A.default,{})}):a7?(0,e.jsx)(B.A,{severity:"error",children:a7}):0===a9.length?(0,e.jsx)(B.A,{severity:"info",children:"No pickable plaintext values found in the packaged content."}):0===bH.length?(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["No values match “",bb,"”."]}):(0,e.jsx)(u.A,{dense:!0,sx:{border:1,borderColor:"divider",borderRadius:1,maxHeight:"50vh",overflow:"auto"},children:bH.map((a,b)=>(0,e.jsx)(v.Ay,{disablePadding:!0,divider:!0,children:(0,e.jsx)(w.A,{onClick:()=>{aT(a.text),a2(null),a4(!1)},alignItems:"flex-start",children:(0,e.jsx)(z.A,{primary:(0,e.jsx)(g.default,{component:"code",sx:{wordBreak:"break-all"},children:a.text.length>120?`${a.text.slice(0,120)}…`:a.text}),secondary:(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,sx:{mt:.5},children:[(0,e.jsx)(k.A,{label:a.source,size:"small",variant:"outlined"}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",children:a.location})]}),primaryTypographyProps:{component:"div"},secondaryTypographyProps:{component:"div"}})})},`${a.location}-${b}`))})]}),(0,e.jsx)(aw.A,{children:(0,e.jsx)(l.A,{onClick:()=>a4(!1),children:"Close"})})]})]})}var a1=c(7503),a2=c(14570),a3=c(53222);let a4=(0,aB.h)("frontend/components/Packages/InstalledPackagesList");function a5(){let[a,b]=(0,f.useState)([]),[c,d]=(0,f.useState)(!0),[h,n]=(0,f.useState)(null),[o,p]=(0,f.useState)(null),[q,r]=(0,f.useState)(!1),[u,v]=(0,f.useState)(null),[w,x]=(0,f.useState)(""),y=(0,f.useCallback)(async()=>{d(!0),n(null);try{let a=await fetch("/api/packages/installed");if(!a.ok)throw Error(`Failed to load installed packages (${a.status})`);let c=await a.json();b(c.packages??[])}catch(a){a4.warn("Failed to load installed packages",a),n(a instanceof Error?a.message:String(a))}finally{d(!1)}},[]),z=(0,f.useCallback)(async a=>{r(!0),v(null);try{let b=await fetch("/api/packages/uninstall",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({packageName:a.packageName})}),c=await b.json();if(!b.ok)throw Error(c.error??`Uninstall failed (${b.status})`);v(c),await y()}catch(a){a4.warn("Uninstall failed",a),n(a instanceof Error?a.message:String(a))}finally{r(!1),p(null)}},[y]),C=(0,f.useMemo)(()=>{let b=w.trim().toLowerCase();return b?a.filter(a=>`${a.packageName} ${a.version}`.toLowerCase().includes(b)):a},[a,w]);return(0,e.jsxs)(g.default,{sx:{maxWidth:{xs:"100%",md:1100},mx:"auto",mt:3},children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",sx:{mb:1},children:[(0,e.jsx)(j.default,{variant:"h6",children:"Installed packages"}),(0,e.jsx)(l.A,{size:"small",startIcon:(0,e.jsx)(a3.A,{}),onClick:()=>void y(),disabled:c,children:"Refresh"})]}),a.length>0&&(0,e.jsx)(s.A,{size:"small",fullWidth:!0,placeholder:"Search installed packages…",value:w,onChange:a=>x(a.target.value),InputProps:{startAdornment:(0,e.jsx)(t.A,{position:"start",children:(0,e.jsx)(ax.A,{fontSize:"small"})})},sx:{mb:2}}),h&&(0,e.jsx)(B.A,{severity:"error",sx:{mb:2},onClose:()=>n(null),children:h}),u&&(0,e.jsxs)(B.A,{severity:u.hasErrors?"warning":"success",sx:{mb:2},onClose:()=>v(null),children:['Uninstalled "',u.packageName,'": ',u.removed.length," removed,"," ",u.skipped.length," preserved/skipped",u.hasErrors?`, ${u.errors.length} error(s)`:"","."]}),c?(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:3},children:(0,e.jsx)(A.default,{size:24})}):0===a.length?(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"No packages installed yet."}):0===C.length?(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["No packages match “",w,"”."]}):(0,e.jsx)(i.A,{spacing:1,children:C.map(a=>(0,e.jsxs)(m.A,{variant:"outlined",sx:{p:2,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,e.jsxs)(g.default,{children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",children:[(0,e.jsx)(j.default,{variant:"subtitle1",children:a.packageName}),(0,e.jsx)(k.A,{label:`v${a.version}`,size:"small",variant:"outlined"})]}),(0,e.jsxs)(j.default,{variant:"caption",color:"text.secondary",children:[a.entityCounts.flows," flows \xb7 ",a.entityCounts.models," models \xb7"," ",a.entityCounts.servers," servers \xb7 ",a.entityCounts.plannedExecutions," planned \xb7 installed ",new Date(a.installedAt).toLocaleString()]})]}),(0,e.jsx)(l.A,{color:"error",size:"small",startIcon:(0,e.jsx)(a2.A,{}),onClick:()=>p(a),disabled:q,children:"Uninstall"})]},a.packageName))}),(0,e.jsxs)(R.A,{open:null!==o,onClose:()=>q?void 0:p(null),children:[(0,e.jsxs)(S.A,{children:['Uninstall "',o?.packageName,'"?']}),(0,e.jsx)(T.A,{children:(0,e.jsxs)(a1.A,{children:["This removes the flows, models, MCP servers and planned executions this package",(0,e.jsx)("strong",{children:" created"}),". Pre-existing entities the package merely updated in place are preserved. This cannot be undone."]})}),(0,e.jsxs)(aw.A,{children:[(0,e.jsx)(l.A,{onClick:()=>p(null),disabled:q,children:"Cancel"}),(0,e.jsx)(l.A,{color:"error",variant:"contained",onClick:()=>o&&void z(o),disabled:q,startIcon:q?(0,e.jsx)(A.default,{size:16}):(0,e.jsx)(a2.A,{}),children:"Uninstall"})]})]})]})}var a6=c(82666),a7=c(30818),a8=c(423),a9=c(27114),ba=c(98463),bb=c(44079);let bc=(0,o.A)((0,e.jsx)("path",{d:"M12 7c-.55 0-1 .45-1 1v3H8c-.55 0-1 .45-1 1s.45 1 1 1h3v3c0 .55.45 1 1 1s1-.45 1-1v-3h3c.55 0 1-.45 1-1s-.45-1-1-1h-3V8c0-.55-.45-1-1-1m0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8"}),"AddCircleOutlineRounded"),bd=(0,o.A)((0,e.jsx)("path",{d:"M5 13h11.17l-4.88 4.88c-.39.39-.39 1.03 0 1.42s1.02.39 1.41 0l6.59-6.59c.39-.39.39-1.02 0-1.41l-6.58-6.6a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41L16.17 11H5c-.55 0-1 .45-1 1s.45 1 1 1"}),"ArrowForwardRounded"),be=(0,o.A)((0,e.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M9.29 16.29 5.7 12.7a.996.996 0 0 1 0-1.41c.39-.39 1.02-.39 1.41 0L10 14.17l6.88-6.88c.39-.39 1.02-.39 1.41 0s.39 1.02 0 1.41l-7.59 7.59c-.38.39-1.02.39-1.41 0"}),"CheckCircleRounded"),bf=(0,o.A)((0,e.jsx)("path",{d:"M20 9V7c0-1.1-.9-2-2-2h-3c0-1.66-1.34-3-3-3S9 3.34 9 5H6c-1.1 0-2 .9-2 2v2c-1.66 0-3 1.34-3 3s1.34 3 3 3v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c1.66 0 3-1.34 3-3s-1.34-3-3-3m-2 10H6V7h12zm-9-6c-.83 0-1.5-.67-1.5-1.5S8.17 10 9 10s1.5.67 1.5 1.5S9.83 13 9 13m7.5-1.5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5.67-1.5 1.5-1.5 1.5.67 1.5 1.5M8 15h8v2H8z"}),"SmartToyOutlined"),bg=(0,o.A)((0,e.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3m-5.55-8h-2.9v3H8l4 4 4-4h-2.55z"}),"CloudDownloadOutlined");var bh=c(33253),bi=c(22813),bj=c(92812);let bk=(0,aB.h)("frontend/components/Packages/InstallPackageCard");function bl({onInstalled:a}){let[b,c]=(0,f.useState)(""),[d,h]=(0,f.useState)([]),[m,n]=(0,f.useState)(!1),[o,p]=(0,f.useState)(null),[q,r]=(0,f.useState)(!1),[u,v]=(0,f.useState)(null),[w,x]=(0,f.useState)(null),[y,z]=(0,f.useState)(!1),[C,D]=(0,f.useState)(null),[E,F]=(0,f.useState)(null),[G,H]=(0,f.useState)(!1),[I,J]=(0,f.useState)(null),[K,L]=(0,f.useState)(null),[N,O]=(0,f.useState)({}),[P,Q]=(0,f.useState)({}),[U,V]=(0,f.useState)(null),[W,X]=(0,f.useState)(!1),[Y,Z]=(0,f.useState)(0),[$,_]=(0,f.useState)(null),[aa,ab]=(0,f.useState)({}),ad=(0,f.useCallback)(async a=>{n(!0),p(null);try{let b=await aH.searchRegistry({q:a.trim()||void 0,pageSize:24});h(b.items??[]),r(!0)}catch(a){bk.warn("Failed to search package registry",a),p(a instanceof Error?a.message:String(a)),h([])}finally{n(!1)}},[]),ae=(0,f.useCallback)(async()=>{if(w){z(!0),D(null);try{let a=await aD.deletePackage(w.id);if(!a.ok)return void D(a.error||"Failed to delete package.");h(a=>a.filter(a=>a.id!==w.id)),x(null),await ad(b)}catch(a){bk.warn("Package deletion failed",a),D(a instanceof Error?a.message:String(a))}finally{z(!1)}}},[w,b,ad]),ag=(0,f.useCallback)(async a=>{F(a),L(null),_(null),O({}),Q({}),V(null),X(!1),Z(0),ab({}),J(null),H(!0);try{let b=await aH.installFromRegistry({packageId:a.id,version:a.latestVersion,consentGranted:!1});if(!b.ok)return void J(b.errors?.[0]||"Failed to fetch package preview.");L(b);let c=b.preview?.models[0];V(c?.id??null),Z(+!c)}catch(a){bk.warn("Failed to fetch package preview",a),J(a instanceof Error?a.message:String(a))}finally{H(!1)}},[]),ah=(0,f.useCallback)(async()=>{if(E&&K){H(!0),J(null);try{let b=await aH.installFromRegistry({packageId:E.id,version:E.latestVersion,secrets:N,modelMappings:Object.fromEntries(Object.entries(P).filter(([,a])=>""!==a)),consentGranted:!0});_(b),L(null),b.ok&&a?.()}catch(a){bk.warn("Install failed",a),J(a instanceof Error?a.message:String(a))}finally{H(!1)}}},[E,K,N,P,a]),ai=(0,f.useCallback)(()=>{F(null),L(null),_(null),O({}),Q({}),V(null),X(!1),Z(0),ab({}),J(null)},[]),aj=K?.preview,ak=aj?.models.find(a=>a.id===U)??aj?.models[0],al=aj?.models.filter(a=>Object.prototype.hasOwnProperty.call(P,a.id)).length??0,am=aj?.models.every(a=>Object.prototype.hasOwnProperty.call(P,a.id))??!0,an=(0,f.useCallback)(a=>{V(a),X(!!P[a])},[P]),ao=(0,f.useCallback)(a=>{Q(b=>({...b,[a]:""})),X(!1)},[]),ap=(0,f.useCallback)((a,b)=>{Q(c=>({...c,[a]:b}))},[]);return(0,e.jsxs)(g.default,{sx:{maxWidth:{xs:"100%",md:1100},mx:"auto",mt:3},children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",sx:{mb:1},children:[(0,e.jsx)(bg,{color:"action"}),(0,e.jsx)(j.default,{variant:"h6",children:"Browse registry"})]}),(0,e.jsx)(s.A,{size:"small",fullWidth:!0,placeholder:"Search published packages…",value:b,onChange:a=>c(a.target.value),onKeyDown:a=>{"Enter"===a.key&&ad(b)},InputProps:{startAdornment:(0,e.jsx)(t.A,{position:"start",children:(0,e.jsx)(ax.A,{fontSize:"small"})}),endAdornment:m?(0,e.jsx)(t.A,{position:"end",children:(0,e.jsx)(A.default,{size:16})}):void 0},sx:{mb:2}}),o&&(0,e.jsx)(B.A,{severity:"error",sx:{mb:2},onClose:()=>p(null),children:o}),q&&!m&&0===d.length&&!o&&(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["No packages match “",b,"”."]}),(0,e.jsx)(a6.Ay,{container:!0,spacing:2,children:d.map(a=>(0,e.jsx)(a6.Ay,{item:!0,xs:12,sm:6,md:4,children:(0,e.jsxs)(a7.A,{variant:"outlined",sx:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,e.jsx)(a8.A,{onClick:()=>void ag(a),sx:{flex:1},children:(0,e.jsxs)(a9.A,{children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"baseline",justifyContent:"space-between",children:[(0,e.jsx)(j.default,{variant:"subtitle1",noWrap:!0,children:a.name}),(0,e.jsx)(k.A,{size:"small",variant:"outlined",label:`v${a.latestVersion}`})]}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",display:"block",children:a.handle}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",sx:{mt:.5,minHeight:"2.5em"},children:a.description||"No description provided."}),(0,e.jsx)(i.A,{direction:"row",spacing:.5,sx:{mt:1,flexWrap:"wrap",gap:.5},children:a.tags.map(a=>(0,e.jsx)(k.A,{size:"small",label:a},a))}),(0,e.jsxs)(i.A,{direction:"row",spacing:.5,alignItems:"center",sx:{mt:1},children:[(0,e.jsx)(bh.A,{fontSize:"inherit",color:"disabled"}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",children:a.downloads})]})]})}),function(a,b){let c=b?.trim().replace(/^@/,"").toLocaleLowerCase();if(!c)return!1;let d=a.handle?.trim().replace(/^@/,"");if(d)return d.split("/")[0].toLocaleLowerCase()===c;let e=a.id.trim().replace(/^@/,"");return e.includes("/")&&e.split("/")[0].toLocaleLowerCase()===c}(a,u)&&(0,e.jsx)(ba.A,{sx:{justifyContent:"flex-end",pt:0},children:(0,e.jsx)(bb.A,{size:"small",color:"error","aria-label":`Delete ${a.name}`,onClick:()=>{D(null),x(a)},children:(0,e.jsx)(a2.A,{fontSize:"small"})})})]})},a.id))}),(0,e.jsxs)(R.A,{open:null!==w,onClose:y?void 0:()=>x(null),maxWidth:"xs",fullWidth:!0,children:[(0,e.jsx)(S.A,{children:"Delete package?"}),(0,e.jsxs)(T.A,{children:[C&&(0,e.jsx)(B.A,{severity:"error",sx:{mb:2},children:C}),(0,e.jsxs)(j.default,{variant:"body2",children:["This permanently deletes ",(0,e.jsx)("strong",{children:w?.name})," and all of its published versions from the registry. This action cannot be undone."]})]}),(0,e.jsxs)(aw.A,{children:[(0,e.jsx)(l.A,{onClick:()=>x(null),disabled:y,children:"Cancel"}),(0,e.jsx)(l.A,{color:"error",variant:"contained",onClick:()=>void ae(),disabled:y,startIcon:y?(0,e.jsx)(A.default,{size:16,color:"inherit"}):(0,e.jsx)(a2.A,{}),children:"Delete package"})]})]}),(0,e.jsxs)(R.A,{open:null!==E,onClose:G?void 0:ai,maxWidth:!1,fullWidth:!0,PaperProps:{sx:{width:"min(1400px, calc(100vw - 32px))",maxWidth:"none",minHeight:{xs:"calc(100vh - 32px)",md:760},maxHeight:"calc(100vh - 32px)",borderRadius:{xs:2,md:3}}},children:[(0,e.jsxs)(S.A,{sx:{px:{xs:2,md:4},pt:{xs:2,md:3},pb:1},children:[(0,e.jsxs)(j.default,{component:"span",variant:"h5",fontWeight:700,children:["Install ",E?.name]}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",sx:{mt:.5},children:"Match the package to your FLUJO, then review and install it."})]}),(0,e.jsxs)(T.A,{sx:{px:{xs:2,md:4},pb:3},children:[I&&(0,e.jsx)(B.A,{severity:"error",sx:{mb:2},onClose:()=>J(null),children:I}),G&&!K&&!$&&(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:420},children:(0,e.jsx)(A.default,{size:24})}),aj&&K?.package&&(0,e.jsxs)(g.default,{children:[(0,e.jsxs)(i.A,{direction:{xs:"column",sm:"row"},spacing:1,alignItems:{sm:"center"},justifyContent:"space-between",sx:{mb:2.5},children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",children:[(0,e.jsx)(k.A,{size:"small",variant:"outlined",label:`v${K.package.version}`}),K.package.publisher&&(0,e.jsx)(k.A,{size:"small",variant:"outlined",label:K.package.publisher}),(0,e.jsxs)(j.default,{variant:"caption",color:"text.secondary",children:[aj.servers.length," server(s) \xb7 ",aj.models.length," model(s) \xb7"," ",aj.flows.length," flow(s) \xb7 ",aj.plannedExecutions.length," planned execution(s)"]})]}),(0,e.jsxs)(j.default,{variant:"caption",color:"text.secondary",children:["Step ",Y+1," of 2"]})]}),(0,e.jsxs)(ac,{activeStep:Y,sx:{maxWidth:720,mx:"auto",mb:3},children:[(0,e.jsx)(af,{children:(0,e.jsx)(av,{children:"Match models"})}),(0,e.jsx)(af,{children:(0,e.jsx)(av,{children:"Review & install"})})]}),0===Y&&aj.models.length>0&&ak&&(0,e.jsxs)(g.default,{children:[(0,e.jsxs)(g.default,{sx:{textAlign:"center",maxWidth:820,mx:"auto",mb:3},children:[(0,e.jsx)(j.default,{variant:"h4",fontWeight:750,sx:{mb:1},children:"The package was created with models that are not installed in your FLUJO."}),(0,e.jsx)(j.default,{variant:"h6",color:"text.secondary",fontWeight:400,children:"Let's replace or recreate them!"})]}),(0,e.jsxs)(g.default,{sx:{display:"grid",gridTemplateColumns:{xs:"minmax(0, 1fr)",md:"minmax(260px, 0.85fr) 88px minmax(420px, 1.35fr)"},gap:{xs:2,md:2.5},alignItems:"stretch"},children:[(0,e.jsxs)(g.default,{children:[(0,e.jsxs)(i.A,{direction:"row",alignItems:"center",justifyContent:"space-between",sx:{mb:1.25},children:[(0,e.jsx)(j.default,{variant:"overline",color:"text.secondary",fontWeight:700,children:"Models in this package"}),(0,e.jsx)(k.A,{size:"small",color:am?"success":"default",label:`${al}/${aj.models.length} ready`})]}),(0,e.jsx)(i.A,{spacing:1.25,children:aj.models.map(a=>{let b=a.id===ak.id,c=Object.prototype.hasOwnProperty.call(P,a.id),d=aj.installedModels.find(b=>b.id===P[a.id]);return(0,e.jsx)(a7.A,{variant:"outlined",sx:{borderWidth:b?2:1,borderColor:b?"primary.main":"divider",bgcolor:b?"action.selected":"background.paper",transition:"border-color 120ms ease, background-color 120ms ease"},children:(0,e.jsx)(a8.A,{onClick:()=>an(a.id),"aria-label":`Configure ${a.displayName}`,sx:{minHeight:104,p:2},children:(0,e.jsxs)(i.A,{direction:"row",spacing:1.5,alignItems:"center",children:[(0,e.jsx)(g.default,{sx:{width:44,height:44,borderRadius:2,display:"grid",placeItems:"center",bgcolor:b?"primary.main":"action.hover",color:b?"primary.contrastText":"text.secondary",flex:"0 0 auto"},children:(0,e.jsx)(bf,{})}),(0,e.jsxs)(g.default,{sx:{minWidth:0,flex:1},children:[(0,e.jsx)(j.default,{variant:"subtitle1",fontWeight:700,noWrap:!0,children:a.displayName}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",display:"block",children:"Package model"}),c&&(0,e.jsxs)(i.A,{direction:"row",spacing:.5,alignItems:"center",sx:{mt:.5},children:[(0,e.jsx)(be,{color:"success",sx:{fontSize:16}}),(0,e.jsx)(j.default,{variant:"caption",color:"success.main",noWrap:!0,children:d?`Using ${d.displayName}`:"Will be created"})]})]})]})})},a.id)})})]}),(0,e.jsx)(g.default,{"aria-hidden":!0,sx:{display:"grid",placeItems:"center",minHeight:{xs:64,md:360}},children:(0,e.jsx)(g.default,{sx:{width:64,height:64,borderRadius:"50%",display:"grid",placeItems:"center",bgcolor:"primary.main",color:"primary.contrastText",boxShadow:3,transform:{xs:"rotate(90deg)",md:"none"}},children:(0,e.jsx)(bd,{sx:{fontSize:38}})})}),(0,e.jsxs)(a7.A,{variant:"outlined",sx:{p:{xs:2,md:3},minHeight:{md:420},bgcolor:"background.default"},children:[(0,e.jsxs)(j.default,{variant:"overline",color:"text.secondary",fontWeight:700,children:["Replace ",ak.displayName]}),(0,e.jsx)(j.default,{variant:"h5",fontWeight:700,sx:{mt:.25,mb:2.5},children:"What would you like to do?"}),(0,e.jsxs)(a6.Ay,{container:!0,spacing:2,children:[(0,e.jsx)(a6.Ay,{item:!0,xs:12,sm:6,children:(0,e.jsx)(l.A,{fullWidth:!0,"aria-label":"Create new one",variant:Object.prototype.hasOwnProperty.call(P,ak.id)&&""===P[ak.id]?"contained":"outlined",onClick:()=>ao(ak.id),sx:{minHeight:154,p:2.5,textTransform:"none",alignItems:"stretch",justifyContent:"flex-start",textAlign:"left"},children:(0,e.jsxs)(i.A,{spacing:1,alignItems:"flex-start",children:[(0,e.jsx)(bc,{sx:{fontSize:36}}),(0,e.jsx)(j.default,{variant:"h6",fontWeight:700,children:"Create new one"}),(0,e.jsx)(j.default,{variant:"body2",color:Object.prototype.hasOwnProperty.call(P,ak.id)&&""===P[ak.id]?"inherit":"text.secondary",children:"Recreate this model in your FLUJO with the package's configuration."})]})})}),(0,e.jsx)(a6.Ay,{item:!0,xs:12,sm:6,children:(0,e.jsx)(l.A,{fullWidth:!0,"aria-label":"Use one of yours",variant:P[ak.id]?"contained":"outlined",onClick:()=>X(!0),sx:{minHeight:154,p:2.5,textTransform:"none",alignItems:"stretch",justifyContent:"flex-start",textAlign:"left"},children:(0,e.jsxs)(i.A,{spacing:1,alignItems:"flex-start",children:[(0,e.jsx)(bf,{sx:{fontSize:36}}),(0,e.jsx)(j.default,{variant:"h6",fontWeight:700,children:"Use one of yours"}),(0,e.jsx)(j.default,{variant:"body2",color:P[ak.id]?"inherit":"text.secondary",children:"Connect the package to a model you already have installed."})]})})})]}),W&&(0,e.jsxs)(g.default,{sx:{mt:2.5},children:[(0,e.jsx)(M.A,{sx:{mb:2}}),(0,e.jsx)(j.default,{variant:"subtitle1",fontWeight:700,sx:{mb:1},children:"Choose one of your installed models"}),aj.installedModels.length>0?(0,e.jsx)(a6.Ay,{container:!0,spacing:1.25,children:aj.installedModels.map(a=>{let b=P[ak.id]===a.id;return(0,e.jsx)(a6.Ay,{item:!0,xs:12,sm:6,children:(0,e.jsx)(a7.A,{variant:"outlined",sx:{height:"100%",borderWidth:b?2:1,borderColor:b?"primary.main":"divider",bgcolor:b?"action.selected":"background.paper"},children:(0,e.jsx)(a8.A,{onClick:()=>ap(ak.id,a.id),"aria-label":`Use ${a.displayName}`,sx:{minHeight:76,p:1.5},children:(0,e.jsxs)(i.A,{direction:"row",spacing:1.25,alignItems:"center",children:[(0,e.jsx)(bf,{color:b?"primary":"action"}),(0,e.jsxs)(g.default,{sx:{minWidth:0},children:[(0,e.jsx)(j.default,{variant:"subtitle2",fontWeight:700,noWrap:!0,children:a.displayName}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",noWrap:!0,display:"block",children:a.name})]}),b&&(0,e.jsx)(be,{color:"primary",sx:{ml:"auto !important",flex:"0 0 auto"}})]})})})},a.id)})}):(0,e.jsx)(B.A,{severity:"info",children:"You do not have any installed models yet. Create this package model as new instead."})]})]})]}),(0,e.jsx)(M.A,{sx:{my:3}}),(0,e.jsxs)(i.A,{direction:"row",spacing:1.5,justifyContent:"space-between",alignItems:"center",children:[(0,e.jsx)(l.A,{onClick:ai,children:"Cancel"}),(0,e.jsxs)(i.A,{direction:"row",spacing:1.5,alignItems:"center",children:[!am&&(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"Choose an option for every model to continue."}),(0,e.jsx)(l.A,{variant:"contained",size:"large",disabled:!am,endIcon:(0,e.jsx)(bd,{}),onClick:()=>Z(1),children:"Continue to review"})]})]})]}),1===Y&&(0,e.jsxs)(g.default,{sx:{maxWidth:980,mx:"auto"},children:[(0,e.jsxs)(i.A,{direction:{xs:"column",sm:"row"},spacing:1,alignItems:{sm:"center"},justifyContent:"space-between",sx:{mb:2},children:[(0,e.jsxs)(g.default,{children:[(0,e.jsx)(j.default,{variant:"h4",fontWeight:750,children:"Review and install"}),(0,e.jsx)(j.default,{variant:"body1",color:"text.secondary",children:"Check your model choices and add any package secrets."})]}),aj.models.length>0&&(0,e.jsx)(l.A,{onClick:()=>{Z(0),V(aj.models.find(a=>!Object.prototype.hasOwnProperty.call(P,a.id))?.id??aj.models[0].id),X(!1)},children:"Change model choices"})]}),aj.models.length>0&&(0,e.jsxs)(g.default,{sx:{mb:2.5},children:[(0,e.jsx)(j.default,{variant:"subtitle2",sx:{mb:1},children:"Model plan"}),(0,e.jsx)(a6.Ay,{container:!0,spacing:1.5,children:aj.models.map(a=>{let b=aj.installedModels.find(b=>b.id===P[a.id]);return(0,e.jsx)(a6.Ay,{item:!0,xs:12,sm:6,children:(0,e.jsx)(a7.A,{variant:"outlined",sx:{p:1.75,height:"100%"},children:(0,e.jsxs)(i.A,{direction:"row",spacing:1.25,alignItems:"center",children:[(0,e.jsxs)(g.default,{sx:{minWidth:0,flex:1},children:[(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",children:"Package model"}),(0,e.jsx)(j.default,{variant:"subtitle2",noWrap:!0,children:a.displayName})]}),(0,e.jsx)(bd,{color:"action"}),(0,e.jsxs)(g.default,{sx:{minWidth:0,flex:1},children:[(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",children:b?"Your model":"New model"}),(0,e.jsx)(j.default,{variant:"subtitle2",noWrap:!0,children:b?.displayName??a.displayName})]})]})})},a.id)})})]}),aj.servers.some(a=>a.requiredEnvMissing.length>0)&&(0,e.jsx)(B.A,{severity:"warning",sx:{mb:1.5},children:"Some MCP servers require environment values that aren't covered by a secret below — those servers will install disabled."}),aj.missingGlobals.length>0&&(0,e.jsxs)(B.A,{severity:"warning",sx:{mb:1.5},children:["This package expects host global variable(s) that aren't set yet:"," ",aj.missingGlobals.join(", "),". Set them in Settings after install, or the bound model(s)/server(s) won't have a working API key."]}),(0,e.jsx)(M.A,{sx:{my:2.5}}),aj.secrets.length>0?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(j.default,{variant:"subtitle2",sx:{mb:1},children:"Secrets requested by this package"}),(0,e.jsx)(i.A,{spacing:1.5,sx:{mb:2.5},children:aj.secrets.map(a=>(0,e.jsx)(s.A,{size:"small",type:aa[a.key]?"text":"password",label:a.label||a.key,helperText:a.required?"Required — leave blank to install the dependent entity disabled":"Optional",value:N[a.key]??"",onChange:b=>O(c=>({...c,[a.key]:b.target.value})),fullWidth:!0,InputProps:{endAdornment:(0,e.jsx)(t.A,{position:"end",children:(0,e.jsx)(bb.A,{size:"small",tabIndex:-1,"aria-label":aa[a.key]?"Hide secret":"Show secret",onClick:()=>ab(b=>({...b,[a.key]:!b[a.key]})),children:aa[a.key]?(0,e.jsx)(bj.A,{fontSize:"small"}):(0,e.jsx)(bi.A,{fontSize:"small"})})})}},a.key))})]}):(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",sx:{mb:2.5},children:"This package doesn't request any secrets."}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,justifyContent:"space-between",children:[(0,e.jsx)(l.A,{onClick:aj.models.length>0?()=>Z(0):ai,disabled:G,children:aj.models.length>0?"Back":"Cancel"}),(0,e.jsx)(l.A,{variant:"contained",color:"primary",size:"large",onClick:()=>void ah(),disabled:G,startIcon:G?(0,e.jsx)(A.default,{size:16}):(0,e.jsx)(bg,{}),children:"Install package"})]})]})]}),$&&(0,e.jsxs)(g.default,{children:[(0,e.jsx)(B.A,{severity:$.ok?"success":"error",sx:{mb:1},children:$.ok?`Installed "${$.package?.name}": ${$.created.length} created, ${$.updated.length} updated, ${$.disabled.length} disabled.`:`Install failed: ${$.errors[0]??"unknown error"}`}),$.missingGlobals.length>0&&(0,e.jsxs)(B.A,{severity:"warning",sx:{mb:1},children:["Set these global variable(s) in Settings for the installed entities to work:"," ",$.missingGlobals.join(", "),"."]}),(0,e.jsx)(l.A,{size:"small",onClick:ai,children:"Close"})]})]})]})]})}let bm=(0,aB.h)("frontend/components/Packages");function bn(){let[a,b]=(0,f.useState)(!1),[c,d]=(0,f.useState)(0);return bm.debug("Rendering PackagesManager",{wizardOpen:a}),(0,e.jsxs)(g.default,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,e.jsxs)(g.default,{sx:{p:2,display:"flex",justifyContent:"space-between",alignItems:"center",borderBottom:1,borderColor:"divider"},children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",children:[(0,e.jsx)(j.default,{variant:"h5",children:"Packages"}),(0,e.jsx)(k.A,{label:"experimental",size:"small",color:"warning",variant:"outlined"})]}),(0,e.jsx)(l.A,{variant:"contained",startIcon:(0,e.jsx)(n.A,{}),onClick:()=>b(!0),"data-tour":"packages-create",children:"Create package"})]}),(0,e.jsxs)(g.default,{sx:{flex:1,overflow:"auto",p:3},children:[(0,e.jsxs)(m.A,{variant:"outlined",sx:{p:4,display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center",gap:2,maxWidth:{xs:"100%",md:1100},mx:"auto"},children:[(0,e.jsx)(p,{sx:{fontSize:48,color:"text.secondary"}}),(0,e.jsx)(j.default,{variant:"h6",children:"Bundle your FLUJO setup into a shareable package"}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"A package bundles flows, models, MCP servers (by reference) and planned executions into a single manifest you can export and share. Secret values (API keys, tokens) are never included — only declarations of the secrets a recipient must supply at install time."}),(0,e.jsx)(l.A,{variant:"contained",startIcon:(0,e.jsx)(n.A,{}),onClick:()=>b(!0),children:"Create package"})]}),(0,e.jsxs)(m.A,{variant:"outlined",sx:{p:3,mt:3,maxWidth:{xs:"100%",md:1100},mx:"auto"},children:[(0,e.jsx)(j.default,{variant:"h6",gutterBottom:!0,children:"Package registry account"}),(0,e.jsx)(aF,{})]}),(0,e.jsx)(bl,{onInstalled:()=>d(a=>a+1)}),(0,e.jsx)(a5,{},c)]}),a&&(0,e.jsx)(a0,{open:a,onClose:()=>b(!1)})]})}var bo=c(49938),bp=c(61615);function bq(){(0,h.useRouter)();let{settings:a,settingsHydrated:b}=(0,bo.rX)(),c=b&&(a?.experimental?.enabled??!1);return b&&c?(0,e.jsx)(g.default,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:(0,e.jsx)(bn,{})}):(0,e.jsx)(bp.default,{})}(0,aB.h)("app/packages/page")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87892:(a,b,c)=>{Promise.resolve().then(c.bind(c,60399))},92812:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z"}),"VisibilityOff")},95285:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(52574),o=c(82802),p=c(77533),q=c(45229),r=c(32822),s=c(261),t=c(26453),u=c(52474),v=c(26713),w=c(51356),x=c(62685),y=c(36225),z=c(63446),A=c(2762),B=c(45742),C=c(86439),D=c(81170),E=c.n(D),F=c(62506),G=c(91203),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["packages",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,60399)),"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\packages\\page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,51472)),"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,J=["C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\packages\\page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/packages/page",pathname:"/packages",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/packages/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
1
|
+
(()=>{var a={};a.id=7262,a.ids=[7262],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2117:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14570:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5-1-1h-5l-1 1H5v2h14V4z"}),"DeleteOutline")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},24077:(a,b,c)=>{"use strict";c.d(b,{A:()=>j});var d=c(38301),e=c(75249),f=c(44548),g=c(33427);let h={...d}.useSyncExternalStore;function i(a={}){let{themeId:b}=a;return function(a,c={}){let i=(0,g.A)();i&&b&&(i=i[b]||i);let{defaultMatches:j=!1,matchMedia:k=null,ssrMatchMedia:l=null,noSsr:m=!1}=(0,f.A)({name:"MuiUseMediaQuery",props:c,theme:i}),n="function"==typeof a?a(i):a;return(n=n.replace(/^@media( ?)/m,"")).includes("print")&&console.warn("MUI: You have provided a `print` query to the `useMediaQuery` hook.\nUsing the print media query to modify print styles can lead to unexpected results.\nConsider using the `displayPrint` field in the `sx` prop instead.\nMore information about `displayPrint` on our docs: https://mui.com/system/display/#display-in-print."),(void 0!==h?function(a,b,c,e,f){let g=d.useCallback(()=>b,[b]),i=d.useMemo(()=>{if(f&&c)return()=>c(a).matches;if(null!==e){let{matches:b}=e(a);return()=>b}return g},[g,a,e,f,c]),[j,k]=d.useMemo(()=>{if(null===c)return[g,()=>()=>{}];let b=c(a);return[()=>b.matches,a=>(b.addEventListener("change",a),()=>{b.removeEventListener("change",a)})]},[g,c,a]);return h(k,j,i)}:function(a,b,c,f,g){let[h,i]=d.useState(()=>g&&c?c(a).matches:f?f(a).matches:b);return(0,e.A)(()=>{if(!c)return;let b=c(a),d=()=>{i(b.matches)};return d(),b.addEventListener("change",d),()=>{b.removeEventListener("change",d)}},[a,c]),h})(n,j,k,l,m)}}i();let j=i({themeId:c(35864).A})},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33253:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z"}),"Download")},33873:a=>{"use strict";a.exports=require("path")},40628:(a,b,c)=>{Promise.resolve().then(c.bind(c,77531))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},42378:(a,b,c)=>{"use strict";var d=c(68949);c.o(d,"useRouter")&&c.d(b,{useRouter:function(){return d.useRouter}}),c.o(d,"useSearchParams")&&c.d(b,{useSearchParams:function(){return d.useSearchParams}})},55511:a=>{"use strict";a.exports=require("crypto")},60399:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"C:\\\\Users\\\\Moe\\\\Documents\\\\GitHub\\\\FLUJO\\\\src\\\\app\\\\packages\\\\page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\packages\\page.tsx","default")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63281:(a,b,c)=>{"use strict";c.d(b,{g:()=>g});var d=c(2117);let e=(0,c(19815).h)("frontend/services/flow/index");class f{async loadFlows(){e.debug("loadFlows: Entering method");try{if(this.flowsCache)return e.debug("loadFlows: Using cached flows",{count:this.flowsCache.length}),this.flowsCache;let a=await fetch("/api/flow");if(!a.ok){let b=await a.json();throw Error(b.error||"Failed to load flows")}let b=await a.json();return e.debug("loadFlows: Loaded flows from API",{count:b.length}),this.flowsCache=b,b}catch(a){return e.warn("loadFlows: Failed to load flows:",a),[]}}async getFlow(a){e.debug("getFlow: Entering method",{flowId:a});try{if(this.flowsCache){let b=this.flowsCache.find(b=>b.id===a);if(b)return e.debug("getFlow: Using cached flow",{flowId:a}),b}let b=await fetch(`/api/flow/${encodeURIComponent(a)}`);if(!b.ok){if(404===b.status)return e.debug(`getFlow: Flow ${a} not found`),null;let c=await b.json();throw Error(c.error||`Failed to get flow: ${a}`)}let c=await b.json();return e.debug("getFlow: Retrieved flow from API",{flowId:a}),c}catch(b){return e.warn(`getFlow: Failed to get flow ${a}:`,b),null}}async addFlow(a){e.debug("addFlow: Entering method",{flowId:a.id,flowName:a.name,nodeCount:a.nodes.length,edgeCount:a.edges.length});try{let b=await fetch("/api/flow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok){let a=await b.json();return{success:!1,error:a.error||"Failed to add flow"}}let c=await b.json();return this.flowsCache&&this.flowsCache.push(c),e.debug("addFlow: Flow added successfully",{flowId:a.id}),{success:!0}}catch(a){return e.warn("addFlow: Failed to add flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to add flow"}}}async generateFlow(a,b,c){e.debug("generateFlow: Entering method",{modelId:b,allowInstall:c?.allowInstall,allowSubflows:c?.allowSubflows,maxDepth:c?.maxDepth});try{let d=await fetch("/api/flow/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:a,modelId:b,allowInstall:c?.allowInstall===!0,allowSubflows:c?.allowSubflows!==!1,..."number"==typeof c?.maxDepth?{maxDepth:c.maxDepth}:{}})}),f=await d.json().catch(()=>null);if(!d.ok)return{success:!1,error:f?.error||"Failed to generate flow"};let g=Array.isArray(f.flows)&&f.flows.length>0?f.flows:[{flow:f.flow,validation:f.validation}];return e.debug("generateFlow: Draft generated",{flowId:f.flow?.id,flowCount:g.length,attempts:f.attempts,errorCount:f.validation?.errorCount,installedServers:f.installedServers?.length??0}),{success:!0,flow:f.flow,validation:f.validation,flows:g,rootFlowId:f.rootFlowId??f.flow?.id,attempts:f.attempts,installedServers:f.installedServers??[]}}catch(a){return e.warn("generateFlow: Failed to generate flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to generate flow"}}}async improveFlow(a,b,c,d){e.debug("improveFlow: Entering method",{flowId:a?.id,modelId:c,allowInstall:d?.allowInstall});try{let f=await fetch("/api/flow/improve",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({flow:a,relatedFlows:d?.relatedFlows,description:b,modelId:c,allowInstall:d?.allowInstall===!0})}),g=await f.json().catch(()=>null);if(!f.ok)return{success:!1,error:g?.error||"Failed to improve flow"};return e.debug("improveFlow: Draft revised",{flowId:g.flow?.id,attempts:g.attempts,errorCount:g.validation?.errorCount,installedServers:g.installedServers?.length??0}),{success:!0,flow:g.flow,validation:g.validation,flows:Array.isArray(g.flows)&&g.flows.length>0?g.flows:[{flow:g.flow,validation:g.validation}],rootFlowId:g.rootFlowId??g.flow?.id,attempts:g.attempts,installedServers:g.installedServers??[]}}catch(a){return e.warn("improveFlow: Failed to improve flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to improve flow"}}}async updateFlow(a){e.debug("updateFlow: Entering method",{flowId:a.id,flowName:a.name,nodeCount:a.nodes.length,edgeCount:a.edges.length});try{let b=await fetch(`/api/flow/${encodeURIComponent(a.id)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok){let a=await b.json();return{success:!1,error:a.error||"Failed to update flow"}}let c=await b.json();if(this.flowsCache){let b=this.flowsCache.findIndex(b=>b.id===a.id);b>=0?this.flowsCache[b]=c:this.flowsCache.push(c)}return e.debug("updateFlow: Flow updated successfully",{flowId:a.id}),{success:!0}}catch(a){return e.warn("updateFlow: Failed to update flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to update flow"}}}async deleteFlow(a){e.debug("deleteFlow: Entering method",{flowId:a});try{let b=await fetch(`/api/flow/${encodeURIComponent(a)}`,{method:"DELETE"});if(!b.ok){let a=await b.json();return{success:!1,error:a.error||"Failed to delete flow"}}return this.flowsCache&&(this.flowsCache=this.flowsCache.filter(b=>b.id!==a)),e.debug("deleteFlow: Flow deleted successfully",{flowId:a}),{success:!0}}catch(a){return e.warn("deleteFlow: Failed to delete flow:",a),{success:!1,error:a instanceof Error?a.message:"Failed to delete flow"}}}async listFlowVersions(a){e.debug("listFlowVersions: Entering method",{flowId:a});try{let b=await fetch(`/api/flow/${encodeURIComponent(a)}/versions`);if(!b.ok){let a=await b.json().catch(()=>null);throw Error(a?.error||"Failed to list flow versions")}let c=await b.json();return Array.isArray(c.versions)?c.versions:[]}catch(b){return e.warn(`listFlowVersions: Failed for flow ${a}:`,b),[]}}async getFlowVersion(a,b){e.debug("getFlowVersion: Entering method",{flowId:a,versionId:b});try{let c=await fetch(`/api/flow/${encodeURIComponent(a)}/versions/${encodeURIComponent(b)}`);if(!c.ok){if(404===c.status)return null;let a=await c.json().catch(()=>null);throw Error(a?.error||"Failed to get flow version")}return await c.json()}catch(c){return e.warn(`getFlowVersion: Failed for ${a}/${b}:`,c),null}}createNode(a,b){return e.debug("createNode: Entering method",{type:a,position:b}),{id:(0,d.A)(),type:a,position:b,data:{label:`${"mcp"===a?"MCP":a.charAt(0).toUpperCase()+a.slice(1)} Node`,type:a,properties:"process"===a?{inputMode:"full-history"}:{}}}}createStartNode(){return{id:(0,d.A)(),type:"start",position:{x:250,y:150},data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}}}createNewFlow(a="NewFlow"){e.debug("createNewFlow: Entering method",{name:a});let b=Date.now();return{id:(0,d.A)(),name:a,createdAt:b,updatedAt:b,nodes:[this.createStartNode()],edges:[]}}createHistoryEntry(a,b){return e.debug("createHistoryEntry: Entering method"),{nodes:[...a],edges:[...b]}}generateSampleFlow(a="Sample Flow"){return e.debug("generateSampleFlow: Entering method",{name:a}),{id:(0,d.A)(),name:a,nodes:[{id:"1",type:"start",position:{x:250,y:50},data:{label:"Start Node",type:"start",properties:{prompt:"Enter your query here",systemMessage:"You are a helpful assistant",temperature:0}}},{id:"2",type:"process",position:{x:250,y:200},data:{label:"Process Node",type:"process",properties:{operation:"transform",enabled:!0}}},{id:"3",type:"finish",position:{x:250,y:350},data:{label:"Finish Node",type:"finish",properties:{format:"json",template:'{ "result": {{data}} }'}}},{id:"4",type:"mcp",position:{x:450,y:200},data:{label:"MCP Node",type:"mcp",properties:{channels:2,mode:"parallel"}}}],edges:[{id:"e1-2",source:"1",target:"2",type:"custom"},{id:"e2-3",source:"2",target:"3",type:"custom"}]}}constructor(){this.flowsCache=null}}let g=new f},63654:(a,b,c)=>{"use strict";c.d(b,{P:()=>f});let d=(0,c(19815).h)("frontend/services/plannedExecutions");class e{async list(){try{let a=await fetch("/api/planned-executions");if(!a.ok)throw Error(`HTTP ${a.status}`);return await a.json()}catch(a){return d.warn("Failed to list planned executions",a),{paused:!1,executions:[]}}}async create(a){try{let b=await fetch("/api/planned-executions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json();if(!b.ok)return{success:!1,error:c?.error||`HTTP ${b.status}`};return{success:!0,execution:c.execution}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async update(a,b){try{let c=await fetch(`/api/planned-executions/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json();if(!c.ok)return{success:!1,error:d?.error||`HTTP ${c.status}`};return{success:!0,execution:d.execution}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async delete(a){try{let b=await fetch(`/api/planned-executions/${a}`,{method:"DELETE"});if(!b.ok){let a=await b.json().catch(()=>null);return{success:!1,error:a?.error||`HTTP ${b.status}`}}return{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async setPaused(a){try{let b=await fetch("/api/planned-executions",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({paused:a})});if(!b.ok){let a=await b.json().catch(()=>null);return{success:!1,error:a?.error||`HTTP ${b.status}`}}return{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async runNow(a){try{let b=await fetch(`/api/planned-executions/${a}/run`,{method:"POST"}),c=await b.json();if(!b.ok)return{success:!1,error:c?.error||`HTTP ${b.status}`};return{success:!0,record:c.record}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Request failed"}}}async loadRuns(a){try{let b=await fetch(`/api/planned-executions/${a}/runs`);if(!b.ok)throw Error(`HTTP ${b.status}`);let c=await b.json();return Array.isArray(c?.runs)?c.runs:[]}catch(b){return d.warn(`Failed to load runs for ${a}`,b),[]}}async previewSchedule(a,b){try{let c=await fetch("/api/planned-executions/preview-schedule",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cron:a,timezone:b})});if(!c.ok)throw Error(`HTTP ${c.status}`);return await c.json()}catch(a){return{valid:!1,error:a instanceof Error?a.message:"Preview failed",nextRuns:[]}}}}let f=new e},77531:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>br});var d,e=c(21124),f=c(38301),g=c(81637),h=c(42378),i=c(53773),j=c(79515),k=c(41893),l=c(68730),m=c(54573),n=c(47902),o=c(11801);let p=(0,o.A)([(0,e.jsx)("path",{d:"M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2m-1 18H5V9h14zm1-13H4V4h16z"},"0"),(0,e.jsx)("path",{d:"M9 12h6v2H9z"},"1")],"Inventory2Outlined");var q=c(60839),r=c(24077),s=c(37674),t=c(67101),u=c(89490),v=c(71439),w=c(75983),x=c(50553),y=c(77028),z=c(84233),A=c(8521),B=c(88745),C=c(43249),D=c(2783),E=c(18168),F=c(68333),G=c(6636),H=c(29565),I=c(33105);function J(a){return(0,I.Ay)("MuiAlertTitle",a)}(0,H.A)("MuiAlertTitle",["root"]);let K=(0,E.Ay)(j.default,{name:"MuiAlertTitle",slot:"Root",overridesResolver:(a,b)=>b.root})((0,F.A)(({theme:a})=>({fontWeight:a.typography.fontWeightMedium,marginTop:-2}))),L=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiAlertTitle"}),{className:d,...f}=c,g=(a=>{let{classes:b}=a;return(0,D.A)({root:["root"]},J,b)})(c);return(0,e.jsx)(K,{gutterBottom:!0,component:"div",ownerState:c,ref:b,className:(0,C.A)(g.root,d),...f})});var M=c(91059),N=c(7675),O=c(94367),P=c(95587),Q=c(67191),R=c(40512),S=c(83899),T=c(52327);function U(a){return(0,I.Ay)("MuiStepper",a)}(0,H.A)("MuiStepper",["root","horizontal","vertical","nonLinear","alternativeLabel"]);var V=c(6638);let W=f.createContext({}),X=f.createContext({});function Y(a){return(0,I.Ay)("MuiStepConnector",a)}(0,H.A)("MuiStepConnector",["root","horizontal","vertical","alternativeLabel","active","completed","disabled","line","lineHorizontal","lineVertical"]);let Z=(0,E.Ay)("div",{name:"MuiStepConnector",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[c.orientation],c.alternativeLabel&&b.alternativeLabel,c.completed&&b.completed]}})({flex:"1 1 auto",variants:[{props:{orientation:"vertical"},style:{marginLeft:12}},{props:{alternativeLabel:!0},style:{position:"absolute",top:12,left:"calc(-50% + 20px)",right:"calc(50% + 20px)"}}]}),$=(0,E.Ay)("span",{name:"MuiStepConnector",slot:"Line",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.line,b[`line${(0,V.A)(c.orientation)}`]]}})((0,F.A)(({theme:a})=>{let b="light"===a.palette.mode?a.palette.grey[400]:a.palette.grey[600];return{display:"block",borderColor:a.vars?a.vars.palette.StepConnector.border:b,variants:[{props:{orientation:"horizontal"},style:{borderTopStyle:"solid",borderTopWidth:1}},{props:{orientation:"vertical"},style:{borderLeftStyle:"solid",borderLeftWidth:1,minHeight:24}}]}})),_=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiStepConnector"}),{className:d,...g}=c,{alternativeLabel:h,orientation:i="horizontal"}=f.useContext(W),{active:j,disabled:k,completed:l}=f.useContext(X),m={...c,alternativeLabel:h,orientation:i,active:j,completed:l,disabled:k},n=(a=>{let{classes:b,orientation:c,alternativeLabel:d,active:e,completed:f,disabled:g}=a,h={root:["root",c,d&&"alternativeLabel",e&&"active",f&&"completed",g&&"disabled"],line:["line",`line${(0,V.A)(c)}`]};return(0,D.A)(h,Y,b)})(m);return(0,e.jsx)(Z,{className:(0,C.A)(n.root,d),ref:b,ownerState:m,...g,children:(0,e.jsx)($,{className:n.line,ownerState:m})})}),aa=(0,E.Ay)("div",{name:"MuiStepper",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[c.orientation],c.alternativeLabel&&b.alternativeLabel,c.nonLinear&&b.nonLinear]}})({display:"flex",variants:[{props:{orientation:"horizontal"},style:{flexDirection:"row",alignItems:"center"}},{props:{orientation:"vertical"},style:{flexDirection:"column"}},{props:{alternativeLabel:!0},style:{alignItems:"flex-start"}}]}),ab=(0,e.jsx)(_,{}),ac=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiStepper"}),{activeStep:d=0,alternativeLabel:g=!1,children:h,className:i,component:j="div",connector:k=ab,nonLinear:l=!1,orientation:m="horizontal",...n}=c,o={...c,nonLinear:l,alternativeLabel:g,orientation:m,component:j},p=(a=>{let{orientation:b,nonLinear:c,alternativeLabel:d,classes:e}=a;return(0,D.A)({root:["root",b,c&&"nonLinear",d&&"alternativeLabel"]},U,e)})(o),q=f.Children.toArray(h).filter(Boolean),r=q.map((a,b)=>f.cloneElement(a,{index:b,last:b+1===q.length,...a.props})),s=f.useMemo(()=>({activeStep:d,alternativeLabel:g,connector:k,nonLinear:l,orientation:m}),[d,g,k,l,m]);return(0,e.jsx)(W.Provider,{value:s,children:(0,e.jsx)(aa,{as:j,ownerState:o,className:(0,C.A)(p.root,i),ref:b,...n,children:r})})});function ad(a){return(0,I.Ay)("MuiStep",a)}(0,H.A)("MuiStep",["root","horizontal","vertical","alternativeLabel","completed"]);let ae=(0,E.Ay)("div",{name:"MuiStep",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[c.orientation],c.alternativeLabel&&b.alternativeLabel,c.completed&&b.completed]}})({variants:[{props:{orientation:"horizontal"},style:{paddingLeft:8,paddingRight:8}},{props:{alternativeLabel:!0},style:{flex:1,position:"relative"}}]}),af=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiStep"}),{active:d,children:g,className:h,component:i="div",completed:j,disabled:k,expanded:l=!1,index:m,last:n,...o}=c,{activeStep:p,connector:q,alternativeLabel:r,orientation:s,nonLinear:t}=f.useContext(W),[u=!1,v=!1,w=!1]=[d,j,k];p===m?u=void 0===d||d:!t&&p>m?v=void 0===j||j:!t&&p<m&&(w=void 0===k||k);let x=f.useMemo(()=>({index:m,last:n,expanded:l,icon:m+1,active:u,completed:v,disabled:w}),[m,n,l,u,v,w]),y={...c,active:u,orientation:s,alternativeLabel:r,completed:v,disabled:w,expanded:l,component:i},z=(a=>{let{classes:b,orientation:c,alternativeLabel:d,completed:e}=a;return(0,D.A)({root:["root",c,d&&"alternativeLabel",e&&"completed"]},ad,b)})(y),A=(0,e.jsxs)(ae,{as:i,className:(0,C.A)(z.root,h),ref:b,ownerState:y,...o,children:[q&&r&&0!==m?q:null,g]});return(0,e.jsx)(X.Provider,{value:x,children:q&&!r&&0!==m?(0,e.jsxs)(f.Fragment,{children:[q,A]}):A})}),ag=(0,o.A)((0,e.jsx)("path",{d:"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z"}),"CheckCircle"),ah=(0,o.A)((0,e.jsx)("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");var ai=c(43282);function aj(a){return(0,I.Ay)("MuiStepIcon",a)}let ak=(0,H.A)("MuiStepIcon",["root","active","completed","error","text"]),al=(0,E.Ay)(ai.A,{name:"MuiStepIcon",slot:"Root",overridesResolver:(a,b)=>b.root})((0,F.A)(({theme:a})=>({display:"block",transition:a.transitions.create("color",{duration:a.transitions.duration.shortest}),color:(a.vars||a).palette.text.disabled,[`&.${ak.completed}`]:{color:(a.vars||a).palette.primary.main},[`&.${ak.active}`]:{color:(a.vars||a).palette.primary.main},[`&.${ak.error}`]:{color:(a.vars||a).palette.error.main}}))),am=(0,E.Ay)("text",{name:"MuiStepIcon",slot:"Text",overridesResolver:(a,b)=>b.text})((0,F.A)(({theme:a})=>({fill:(a.vars||a).palette.primary.contrastText,fontSize:a.typography.caption.fontSize,fontFamily:a.typography.fontFamily}))),an=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiStepIcon"}),{active:f=!1,className:g,completed:h=!1,error:i=!1,icon:j,...k}=c,l={...c,active:f,completed:h,error:i},m=(a=>{let{classes:b,active:c,completed:d,error:e}=a;return(0,D.A)({root:["root",c&&"active",d&&"completed",e&&"error"],text:["text"]},aj,b)})(l);if("number"==typeof j||"string"==typeof j){let a=(0,C.A)(g,m.root);return i?(0,e.jsx)(al,{as:ah,className:a,ref:b,ownerState:l,...k}):h?(0,e.jsx)(al,{as:ag,className:a,ref:b,ownerState:l,...k}):(0,e.jsxs)(al,{className:a,ref:b,ownerState:l,...k,children:[d||(d=(0,e.jsx)("circle",{cx:"12",cy:"12",r:"12"})),(0,e.jsx)(am,{className:m.text,x:"12",y:"12",textAnchor:"middle",dominantBaseline:"central",ownerState:l,children:j})]})}return j});function ao(a){return(0,I.Ay)("MuiStepLabel",a)}let ap=(0,H.A)("MuiStepLabel",["root","horizontal","vertical","label","active","completed","error","disabled","iconContainer","alternativeLabel","labelContainer"]);var aq=c(20385);let ar=(0,E.Ay)("span",{name:"MuiStepLabel",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,b[c.orientation]]}})({display:"flex",alignItems:"center",[`&.${ap.alternativeLabel}`]:{flexDirection:"column"},[`&.${ap.disabled}`]:{cursor:"default"},variants:[{props:{orientation:"vertical"},style:{textAlign:"left",padding:"8px 0"}}]}),as=(0,E.Ay)("span",{name:"MuiStepLabel",slot:"Label",overridesResolver:(a,b)=>b.label})((0,F.A)(({theme:a})=>({...a.typography.body2,display:"block",transition:a.transitions.create("color",{duration:a.transitions.duration.shortest}),[`&.${ap.active}`]:{color:(a.vars||a).palette.text.primary,fontWeight:500},[`&.${ap.completed}`]:{color:(a.vars||a).palette.text.primary,fontWeight:500},[`&.${ap.alternativeLabel}`]:{marginTop:16},[`&.${ap.error}`]:{color:(a.vars||a).palette.error.main}}))),at=(0,E.Ay)("span",{name:"MuiStepLabel",slot:"IconContainer",overridesResolver:(a,b)=>b.iconContainer})({flexShrink:0,display:"flex",paddingRight:8,[`&.${ap.alternativeLabel}`]:{paddingRight:0}}),au=(0,E.Ay)("span",{name:"MuiStepLabel",slot:"LabelContainer",overridesResolver:(a,b)=>b.labelContainer})((0,F.A)(({theme:a})=>({width:"100%",color:(a.vars||a).palette.text.secondary,[`&.${ap.alternativeLabel}`]:{textAlign:"center"}}))),av=f.forwardRef(function(a,b){let c=(0,G.b)({props:a,name:"MuiStepLabel"}),{children:d,className:g,componentsProps:h={},error:i=!1,icon:j,optional:k,slots:l={},slotProps:m={},StepIconComponent:n,StepIconProps:o,...p}=c,{alternativeLabel:q,orientation:r}=f.useContext(W),{active:s,disabled:t,completed:u,icon:v}=f.useContext(X),w=j||v,x=n;w&&!x&&(x=an);let y={...c,active:s,alternativeLabel:q,completed:u,disabled:t,error:i,orientation:r},z=(a=>{let{classes:b,orientation:c,active:d,completed:e,error:f,disabled:g,alternativeLabel:h}=a;return(0,D.A)({root:["root",c,f&&"error",g&&"disabled",h&&"alternativeLabel"],label:["label",d&&"active",e&&"completed",f&&"error",g&&"disabled",h&&"alternativeLabel"],iconContainer:["iconContainer",d&&"active",e&&"completed",f&&"error",g&&"disabled",h&&"alternativeLabel"],labelContainer:["labelContainer",h&&"alternativeLabel"]},ao,b)})(y),A={slots:l,slotProps:{stepIcon:o,...h,...m}},[B,E]=(0,aq.A)("root",{elementType:ar,externalForwardedProps:{...A,...p},ownerState:y,ref:b,className:(0,C.A)(z.root,g)}),[F,H]=(0,aq.A)("label",{elementType:as,externalForwardedProps:A,ownerState:y}),[I,J]=(0,aq.A)("stepIcon",{elementType:x,externalForwardedProps:A,ownerState:y});return(0,e.jsxs)(B,{...E,children:[w||I?(0,e.jsx)(at,{className:z.iconContainer,ownerState:y,children:(0,e.jsx)(I,{completed:u,active:s,error:i,icon:w,...J})}):null,(0,e.jsxs)(au,{className:z.labelContainer,ownerState:y,children:[d?(0,e.jsx)(F,{...H,className:(0,C.A)(z.label,H?.className),children:d}):null,k]})]})});av.muiName="StepLabel";var aw=c(19925),ax=c(40973);let ay=(0,o.A)((0,e.jsx)("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"}),"UploadFile");var az=c(22042),aA=c(34304),aB=c(19815);(0,aB.h)("frontend/services/registry");let aC=()=>{throw Error("RegistryService can only be used in browser environment")},aD=new Proxy({},{get(a,b){let c=aC(),d=c[b];return"function"==typeof d?d.bind(c):d}}),aE=(0,aB.h)("frontend/components/Packages/RegistryAccountSettings");function aF(){let[a,b]=(0,f.useState)(null),[c,d]=(0,f.useState)(!0),[h,m]=(0,f.useState)(!1),[n,o]=(0,f.useState)(null),[p,q]=(0,f.useState)("login"),[r,t]=(0,f.useState)(""),[u,v]=(0,f.useState)(""),[w,x]=(0,f.useState)(""),[y,z]=(0,f.useState)(""),[C,D]=(0,f.useState)(""),E=(0,f.useCallback)(async()=>{try{let[a,c]=await Promise.all([aD.getStatus(),aD.getSettings()]);b(a),D(c.defaultUrl),z(c.usingDefault?"":c.baseUrl)}catch(a){aE.warn("Failed to load registry account status",a)}finally{d(!1)}},[]),F=async()=>{m(!0),o(null);try{let a="signup"===p?await aD.signup(r.trim(),u,w.trim()):await aD.login(r.trim(),u);"authenticated"===a.status?(o({type:"success",text:"Signed in to the package registry."}),v("")):"confirmation_required"===a.status?(o({type:"info",text:a.message||"Check your inbox to confirm your email."}),v("")):o({type:"error",text:a.message||"Authentication failed."}),a.account?b(a.account):await E()}catch(a){o({type:"error",text:a instanceof Error?a.message:"Authentication failed."})}finally{m(!1)}},G=async()=>{m(!0),o(null);try{await aD.logout(),await E(),o({type:"success",text:"Logged out."})}catch(a){o({type:"error",text:a instanceof Error?a.message:"Failed to log out."})}finally{m(!1)}},H=async a=>{m(!0),o(null);try{let{authorizationUrl:b}=await aD.beginOAuth(a);window.location.assign(b)}catch(a){o({type:"error",text:a instanceof Error?a.message:"Failed to start OAuth sign-in."}),m(!1)}},I=async()=>{m(!0),o(null);try{let a=await aD.resendConfirmation();o(a.success?{type:"success",text:"Confirmation email sent."}:{type:"error",text:a.message||"Failed to resend confirmation."})}finally{m(!1)}},J=async()=>{let a=r.trim();if(!a)return void o({type:"info",text:"Enter your account email above, then tap “Forgot password?”."});m(!0),o(null);try{await aD.requestPasswordReset(a),o({type:"info",text:"If an account exists for that email, a password-reset link is on its way. Follow the link to set a new password."})}catch(a){o({type:"error",text:a instanceof Error?a.message:"Failed to request a password reset."})}finally{m(!1)}},K=async()=>{m(!0),o(null);try{let a=await aD.saveSettings(y.trim());o(a.success?{type:"success",text:"Registry URL saved."}:{type:"error",text:a.message||"Invalid registry URL."})}finally{m(!1)}};if(c)return(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:3},children:(0,e.jsx)(A.default,{size:28})});let L=!!a?.signedIn,N=!!(a?.email&&!L&&a&&!a.isConfirmed);return(0,e.jsxs)(g.default,{sx:{width:"100%"},children:[(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Sign in to the FLUJO package registry to publish packages. Browsing and installing packages does not require an account — only publishing does, and your email must be confirmed first. Your registry tokens are encrypted at rest and never shown here."}),n&&(0,e.jsx)(B.A,{severity:n.type,sx:{mb:2},onClose:()=>o(null),children:n.text}),L?(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(j.default,{variant:"subtitle1",children:a?.email}),a?.publisherHandle&&(0,e.jsx)(k.A,{size:"small",label:`@${a.publisherHandle}`}),a?.isConfirmed?(0,e.jsx)(k.A,{size:"small",color:"success",label:"Confirmed"}):(0,e.jsx)(k.A,{size:"small",color:"warning",label:"Unconfirmed"})]}),(0,e.jsx)(g.default,{children:(0,e.jsx)(l.A,{variant:"outlined",onClick:G,disabled:h,children:"Log out"})})]}):N?(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsxs)(B.A,{severity:"info",children:["We sent a confirmation link to ",(0,e.jsx)("strong",{children:a?.email}),". Confirm your email, then log in to start publishing."]}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,children:[(0,e.jsx)(l.A,{variant:"outlined",onClick:I,disabled:h,children:"Resend confirmation email"}),(0,e.jsx)(l.A,{onClick:G,disabled:h,children:"Use a different account"})]})]}):(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsxs)(az.A,{value:p,onChange:(a,b)=>q(b),children:[(0,e.jsx)(aA.A,{value:"login",label:"Log in"}),(0,e.jsx)(aA.A,{value:"signup",label:"Sign up"})]}),(0,e.jsx)(s.A,{label:"Email",type:"email",value:r,onChange:a=>t(a.target.value),fullWidth:!0,autoComplete:"username"}),(0,e.jsx)(s.A,{label:"Password",type:"password",value:u,onChange:a=>v(a.target.value),fullWidth:!0,autoComplete:"signup"===p?"new-password":"current-password"}),"signup"===p&&(0,e.jsx)(s.A,{label:"Publisher handle",value:w,onChange:a=>x(a.target.value),fullWidth:!0,autoComplete:"username",helperText:"A unique handle for publishing packages, e.g. your-name"}),(0,e.jsx)(g.default,{children:(0,e.jsx)(l.A,{variant:"contained",onClick:F,disabled:h||!r.trim()||!u||"signup"===p&&!w.trim(),children:"signup"===p?"Sign up":"Log in"})}),"login"===p&&(0,e.jsx)(g.default,{children:(0,e.jsx)(l.A,{variant:"text",size:"small",onClick:J,disabled:h,sx:{textTransform:"none",px:0},children:"Forgot password?"})}),(0,e.jsx)(M.A,{children:"or"}),(0,e.jsx)(i.A,{direction:"row",spacing:1,flexWrap:"wrap",useFlexGap:!0,children:(0,e.jsx)(l.A,{variant:"outlined",onClick:()=>H("github"),disabled:h,children:"Continue with GitHub"})})]}),(0,e.jsx)(M.A,{sx:{my:3}}),(0,e.jsx)(j.default,{variant:"subtitle2",gutterBottom:!0,children:"Registry URL"}),(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",sx:{mb:1},children:["Leave blank to use the default (",C,")."]}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(s.A,{size:"small",placeholder:C,value:y,onChange:a=>z(a.target.value),sx:{minWidth:320}}),(0,e.jsx)(l.A,{variant:"outlined",onClick:K,disabled:h,children:"Save"})]})]})}c(63281),c(83434),c(28055),c(63654),(0,aB.h)("frontend/services/packages");let aG=()=>{throw Error("PackageService can only be used in browser environment")},aH=new Proxy({},{get(a,b){let c=aG(),d=c[b];return"function"==typeof d?d.bind(c):d}}),aI=/\{\{secret\.([A-Za-z0-9_.-]+)\}\}/g,aJ="encrypted:",aK=/^[A-Za-z0-9_.-]+$/,aL=["path","repo","token","email","url-cred","name","other"];function aM(a){let b=new Set,c=a=>{if("string"==typeof a){for(let c of function(a){let b;if("string"!=typeof a)return[];let c=[],d=RegExp(aI.source,"g");for(;null!==(b=d.exec(a));)c.includes(b[1])||c.push(b[1]);return c}(a))b.add(c);return}if(Array.isArray(a)){for(let b of a)c(b);return}if(a&&"object"==typeof a)for(let b of Object.values(a))c(b)};return c(a),Array.from(b)}var aN=c(48716);let aO=aN.object({name:aN.string().min(1).regex(aK,"invalid secret name"),description:aN.string().optional(),required:aN.boolean(),default:aN.string().optional()}).strict(),aP=aN.object({name:aN.string().min(1).regex(aK,"invalid global variable name"),description:aN.string().optional(),required:aN.boolean(),isSecret:aN.boolean().optional()}).strict(),aQ=aN.discriminatedUnion("kind",[aN.object({kind:aN.literal("secret"),secret:aN.string().min(1)}).strict(),aN.object({kind:aN.literal("global"),var:aN.string().min(1)}).strict(),aN.object({kind:aN.literal("none")}).strict()]),aR=aN.object({id:aN.string().min(1),name:aN.string().min(1),displayName:aN.string().optional(),description:aN.string().optional(),baseUrl:aN.string().optional(),provider:aN.string().optional(),adapter:aN.string().optional(),promptTemplate:aN.string().optional(),reasoningSchema:aN.string().optional(),temperature:aN.string().optional(),reasoningEffort:aN.enum(["minimal","low","medium","high","xhigh","max","ultra"]).optional(),thinkingLevel:aN.enum(["minimal","low","medium","high"]).optional(),thinkingBudget:aN.number().int().min(-1).optional(),serviceTier:aN.enum(["default","priority"]).optional(),functionCallingSchema:aN.string().optional(),contextWindow:aN.number().optional(),maxTurns:aN.number().optional(),maxTokens:aN.number().optional(),folder:aN.string().optional(),favorite:aN.boolean().optional(),apiKeyRef:aQ}).strict(),aS=aN.object({sourceType:aN.enum(["github","registry","marketplace","remote"]),ref:aN.string().optional(),url:aN.string().optional(),name:aN.string().optional()}).strict().superRefine((a,b)=>{"remote"!==a.sourceType||a.url||b.addIssue({code:"custom",message:"installOrigin 'remote' requires a url"}),"github"!==a.sourceType&&"registry"!==a.sourceType||a.ref||b.addIssue({code:"custom",message:`installOrigin '${a.sourceType}' requires a ref`})}),aT=aN.object({name:aN.string().min(1),isSecret:aN.boolean(),secretRef:aN.string().optional(),globalVar:aN.string().optional(),globalTemplate:aN.string().optional()}).strict().superRefine((a,b)=>{void 0===a.globalTemplate||/\$\{global:[A-Za-z0-9_.-]+\}/.test(a.globalTemplate)||b.addIssue({code:"custom",path:["globalTemplate"],message:"globalTemplate must contain at least one ${global:NAME} reference"})}),aU=aN.object({index:aN.number().int().nonnegative(),value:aN.string().min(1)}).strict().superRefine((a,b)=>{/\$\{global:[A-Za-z0-9_.-]+\}/.test(a.value)||b.addIssue({code:"custom",path:["value"],message:"argument template must contain at least one ${global:NAME} reference"})}),aV=aN.object({name:aN.string().min(1),transport:aN.enum(["stdio","sse","streamable","websocket"]),disabled:aN.boolean().optional(),autoApprove:aN.array(aN.string()).optional(),folder:aN.string().optional(),installOrigin:aS,envDeclarations:aN.array(aT),headerDeclarations:aN.array(aT).optional(),argTemplates:aN.array(aU).optional()}).strict(),aW=aN.object({flow:aN.object({id:aN.string().min(1),name:aN.string().min(1),nodes:aN.array(aN.any()),edges:aN.array(aN.any())}).catchall(aN.unknown()),references:aN.object({flowIds:aN.array(aN.string()).optional(),modelIds:aN.array(aN.string()).optional(),mcpServerNames:aN.array(aN.string()).optional()}).optional()}),aX=aN.object({id:aN.string().min(1),name:aN.string().min(1),enabled:aN.boolean(),flowId:aN.string().min(1),prompt:aN.string(),trigger:aN.any()}).catchall(aN.unknown()),aY=aN.object({schemaVersion:aN.literal(1),id:aN.string().min(1),name:aN.string().min(1),description:aN.string().optional(),version:aN.string().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-.]+)?(?:\+[0-9A-Za-z-.]+)?$/,"version must be valid semver"),author:aN.string().optional(),publisher:aN.string().optional(),tags:aN.array(aN.string()).optional(),requiredGlobals:aN.array(aN.string()).optional(),globals:aN.array(aP).optional(),secrets:aN.array(aO),models:aN.array(aR),mcpServers:aN.array(aV),flows:aN.array(aW),plannedExecutions:aN.array(aX)}).superRefine((a,b)=>{(function a(b){return"string"==typeof b?b.startsWith(aJ):Array.isArray(b)?b.some(a):!!b&&"object"==typeof b&&Object.values(b).some(a)})(a)&&b.addIssue({code:"custom",message:`package contains an '${aJ}' value; secret material must never be serialized`});let c=new Set(a.secrets.map(a=>a.name)),d=new Set(aM(a));for(let b of a.models)"secret"===b.apiKeyRef.kind&&d.add(b.apiKeyRef.secret);for(let b of a.mcpServers)for(let a of[...b.envDeclarations,...b.headerDeclarations??[]])a.secretRef&&d.add(a.secretRef);for(let a of d)c.has(a)||b.addIssue({code:"custom",message:`secret "${a}" is referenced but not declared in secrets[]`});let e=new Set(a.flows.map(a=>a.flow.id));a.plannedExecutions.forEach((a,c)=>{e.has(a.flowId)||b.addIssue({code:"custom",path:["plannedExecutions",c,"flowId"],message:`plannedExecution "${a.name}" references unknown flow id "${a.flowId}"`})}),a.flows.forEach((a,c)=>{for(let d of a.references?.flowIds??[])e.has(d)||b.addIssue({code:"custom",path:["flows",c,"references","flowIds"],message:`flow "${a.flow.name}" references unknown subflow id "${d}"`})})}),aZ=(0,aB.h)("frontend/components/Packages/PackageWizard"),a$=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-.]+)?(?:\+[0-9A-Za-z-.]+)?$/,a_=["Select contents","Resolve & validate","Secret review","Metadata","Export"];function a0(a){return a.replace(/^SECRET_/,"")}function a1({open:a,onClose:b}){let c=(0,q.A)(),d=(0,r.A)(c.breakpoints.down("sm")),[h,m]=(0,f.useState)(0),[n,o]=(0,f.useState)({flows:[],models:[],mcpServers:[],plannedExecutions:[]}),[p,C]=(0,f.useState)(!0),[D,E]=(0,f.useState)(new Set),[F,G]=(0,f.useState)(new Set),[H,I]=(0,f.useState)(new Set),[J,K]=(0,f.useState)(new Set),[U,V]=(0,f.useState)(""),[W,X]=(0,f.useState)(""),[Y,Z]=(0,f.useState)(""),[$,_]=(0,f.useState)(""),[aa,ab]=(0,f.useState)(null),[ad,ae]=(0,f.useState)([]),[ag,ah]=(0,f.useState)(!1),[ai,aj]=(0,f.useState)(null),[ak,al]=(0,f.useState)(null),[am,an]=(0,f.useState)({}),[ao,ap]=(0,f.useState)(new Set),[aq,ar]=(0,f.useState)([]),[as,at]=(0,f.useState)(!1),[au,az]=(0,f.useState)(!1),[aA,aB]=(0,f.useState)(null),[aD,aE]=(0,f.useState)([]),[aH,aI]=(0,f.useState)(""),[aJ,aN]=(0,f.useState)(""),[aO,aP]=(0,f.useState)(!1),[aQ,aR]=(0,f.useState)(!1),[aS,aT]=(0,f.useState)(""),[aU,aV]=(0,f.useState)(""),[aW,aX]=(0,f.useState)("other"),[a1,a2]=(0,f.useState)(null),[a3,a4]=(0,f.useState)(!1),[a5,a6]=(0,f.useState)(!1),[a7,a8]=(0,f.useState)(null),[a9,ba]=(0,f.useState)([]),[bb,bc]=(0,f.useState)(""),[bd,be]=(0,f.useState)(!1),[bf,bg]=(0,f.useState)(""),[bh,bi]=(0,f.useState)("1.0.0"),[bj,bk]=(0,f.useState)(""),[bl,bm]=(0,f.useState)(""),[bn,bo]=(0,f.useState)(!1),[bp,bq]=(0,f.useState)(null),[br,bs]=(0,f.useState)(null),[bt,bu]=(0,f.useState)(!1),[bv,bw]=(0,f.useState)(null),bx=(0,f.useMemo)(()=>({flowIds:Array.from(D),modelIds:Array.from(F),mcpServerNames:Array.from(H),plannedExecutionIds:Array.from(J)}),[D,F,H,J]),by=0===D.size&&0===F.size&&0===H.size&&0===J.size,bz=a=>b=>{a(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},bA=(0,f.useCallback)(async a=>{let b;ae([]);try{b=await a.text()}catch(a){ae([a instanceof Error?a.message:"Failed to read the file"]);return}let c=function(a){let b;try{b=JSON.parse(a)}catch(a){return{ok:!1,errors:[`Not valid JSON: ${a instanceof Error?a.message:String(a)}`]}}let c=function(a){let b=aY.safeParse(a);if(!b.success)return{success:!1,errors:b.error.issues.map(a=>{let b=a.path.join(".");return b?`${b}: ${a.message}`:a.message})};let c=b.data;return{success:!0,data:c,warnings:function(a){let b=new Set(aM(a));for(let c of a.models)"secret"===c.apiKeyRef.kind&&b.add(c.apiKeyRef.secret);for(let c of a.mcpServers)for(let a of[...c.envDeclarations,...c.headerDeclarations??[]])a.secretRef&&b.add(a.secretRef);return a.secrets.filter(a=>!b.has(a.name)).map(a=>`secret "${a.name}" is declared but never referenced`)}(c)}}(b);return c.success&&c.data?{ok:!0,package:c.data}:{ok:!1,errors:c.errors??["Not a valid FLUJO package manifest"]}}(b);if(!c.ok){ab(null),ae(c.errors.slice(0,8));return}let d=function(a,b){let c=new Set(b.flowIds),d=new Set(b.modelIds),e=new Set(b.mcpServerNames),f=new Set(b.plannedExecutionIds),g=[],h={flowIds:[],modelIds:[],mcpServerNames:[],plannedExecutionIds:[]};for(let b of a.flows??[]){let a=b?.flow?.id;a&&(c.has(a)?h.flowIds.push(a):g.push({type:"flow",label:b.flow?.name?`${b.flow.name} (${a})`:a}))}for(let b of a.models??[])b?.id&&(d.has(b.id)?h.modelIds.push(b.id):g.push({type:"model",label:b.displayName||b.name||b.id}));for(let b of a.mcpServers??[])b?.name&&(e.has(b.name)?h.mcpServerNames.push(b.name):g.push({type:"mcpServer",label:b.name}));for(let b of a.plannedExecutions??[]){let a=b?.id;a&&(f.has(a)?h.plannedExecutionIds.push(a):g.push({type:"plannedExecution",label:b.name||a}))}return{selection:h,metadata:{name:a.name??"",version:a.version??"",description:a.description??"",tags:a.tags?[...a.tags]:[]},secretNames:(a.secrets??[]).map(a=>a.name).filter(Boolean),missing:g}}(c.package,{flowIds:n.flows.map(a=>a.id),modelIds:n.models.map(a=>a.id),mcpServerNames:n.mcpServers.map(a=>a.id),plannedExecutionIds:n.plannedExecutions.map(a=>a.id)});E(new Set(d.selection.flowIds)),G(new Set(d.selection.modelIds)),I(new Set(d.selection.mcpServerNames)),K(new Set(d.selection.plannedExecutionIds)),bg(d.metadata.name),bi(d.metadata.version),bk(d.metadata.description),bm(d.metadata.tags.join(", ")),aj(null),al(null),an({}),ap(new Set),ar([]),az(!1),aB(null),aE([]),bq(null),bs(null),bw(null),ab(d),aZ.info("Imported package manifest into the wizard",{name:d.metadata.name,version:d.metadata.version,missing:d.missing.length})},[n]),bB=(0,f.useCallback)(async()=>{ah(!0),al(null),aj(null),an({}),ap(new Set),ar([]),az(!1),aB(null),aE([]);try{let a=await aG().resolve(bx);aj(a),an(Object.fromEntries((a.globals??[]).map(a=>[a.name,a.description??""])))}catch(a){al(a instanceof Error?a.message:"Failed to resolve dependencies")}finally{ah(!1)}},[bx]),bC=(0,f.useMemo)(()=>aa?new Set(aa.secretNames):null,[aa]),bD=(0,f.useCallback)(async a=>{at(!0),aB(null);try{let b=await aG().deriveSecrets(bx,{modelIdentifier:a,enableEntropy:aO,enableRepoSlug:aQ});ar(a=>{let c=new Map(a.map(a=>[a.id,a.accepted])),d=new Map(a.map(a=>[a.id,a.suggestedSecretName])),e=a.filter(a=>"manual"===a.source),f=b.proposals.map(a=>({...a,accepted:c.has(a.id)?c.get(a.id):bC?bC.has(a.suggestedSecretName):"low"!==a.confidence,suggestedSecretName:d.get(a.id)??a.suggestedSecretName})),g=new Set(f.map(a=>a.id));return[...f,...e.filter(a=>!g.has(a.id))]}),aE(b.warnings??[])}catch(a){aB(a instanceof Error?a.message:"Failed to derive secrets")}finally{at(!1),az(!0)}},[bx,aO,aQ,bC]),bE=a=>ar(b=>b.map(b=>({...b,accepted:a}))),bF=()=>{a2(null);let a=function(a){let b=(a.excerpt??"").trim();if(!b||b.length>2e3)return null;let c=(a.secretName??"").trim();if(c.length>128)return null;let d=a.kind??"other",e=aK.test(c)?c.toUpperCase():function(a,b){let c=`${a}_${b}`.toUpperCase().replace(/[^A-Z0-9_.-]+/g,"_").replace(/^[_.-]+|[_.-]+$/g,"")||`${a}_SECRET`;return aK.test(c)?c:`${a}_SECRET`}("SECRET",c||b.slice(0,16)),f=(a.location??"manual").trim()||"manual";return{id:`sp_${function(a){let b=5381;for(let c=0;c<a.length;c++)b=(b<<5)+b^a.charCodeAt(c);return(b>>>0).toString(16).padStart(8,"0")}(`${f}\0${b}`)}`,location:f,excerpt:b,kind:d,source:"manual",confidence:"high",suggestedSecretName:e,suggestedDescription:a.description?.trim()||void 0,rationale:"Added manually",accepted:!0}}({excerpt:aS,secretName:aU,kind:aW});if(!a)return void a2("Enter a non-empty value to redact (under 2000 characters).");ar(b=>b.some(b=>b.id===a.id)?b:[a,...b]),aT(""),aV(""),aX("other")},bG=(0,f.useCallback)(async()=>{a4(!0),a8(null),bc(""),a6(!0);try{let a=await aG().scanTargets(bx);ba(a)}catch(a){a8(a instanceof Error?a.message:"Failed to load candidate values"),ba([])}finally{a6(!1)}},[bx]),bH=(0,f.useMemo)(()=>{let a=bb.trim().toLowerCase();return a?a9.filter(b=>`${b.text} ${b.location} ${b.source}`.toLowerCase().includes(a)):a9},[a9,bb]),bI=(0,f.useMemo)(()=>{let a=new Map;for(let b of aq){let c=`${b.kind}::${b.excerpt}`,d=a.get(c);d?(d.ids.push(b.id),d.locations.push(b.location)):a.set(c,{key:c,ids:[b.id],locations:[b.location],kind:b.kind,source:b.source,confidence:b.confidence,excerpt:b.excerpt,suggestedSecretName:b.suggestedSecretName,rationale:b.rationale,accepted:b.accepted})}return Array.from(a.values())},[aq]),bJ=(0,f.useMemo)(()=>{let a=aJ.trim().toLowerCase();return a?bI.filter(b=>`${b.excerpt} ${b.locations.join(" ")} ${b.kind} ${b.suggestedSecretName}`.toLowerCase().includes(a)):bI},[bI,aJ]),bK=(0,f.useMemo)(()=>{if(!aa||!au)return[];let a=new Set([...(ai?.secrets??[]).map(a=>a.name),...aq.map(a=>a.suggestedSecretName)]);return aa.secretNames.filter(b=>!a.has(b))},[aa,au,ai,aq]),bL=(0,f.useMemo)(()=>{let a=new Map;for(let b of bI)a.set(b.kind,(a.get(b.kind)??0)+1);return Array.from(a.entries()).sort((a,b)=>b[1]-a[1])},[bI]),bM=(0,f.useCallback)(async()=>{bo(!0),bs(null),bq(null);try{let a=bl.split(",").map(a=>a.trim()).filter(Boolean),b=await aG().build(bx,{id:`pkg-${Date.now()}`,name:bf.trim(),version:bh.trim(),description:bj.trim()||void 0,tags:a.length?a:void 0},aq.filter(a=>a.accepted),(ai?.globals??[]).map(a=>({...a,description:am[a.name]?.trim()||a.description})),Array.from(ao));bq(b),b.ok||bs(b.errors&&b.errors[0]||"Package build failed")}catch(a){bs(a instanceof Error?a.message:"Failed to build package")}finally{bo(!1)}},[bx,bf,bh,bj,bl,aq,ai,am,ao]),bN=(0,f.useCallback)(async()=>{if(bp?.json){bu(!0),bw(null);try{let a=JSON.parse(bp.json),b=await aC().publish(a);bw(b)}catch(a){bw({ok:!1,code:"error",error:a instanceof Error?a.message:"Failed to publish package"})}finally{bu(!1)}}},[bp]),bO=()=>{if(!bp?.json)return;let a=new Blob([bp.json],{type:"application/json"}),b=URL.createObjectURL(a),c=document.createElement("a");c.href=b;let d=bf.trim().replace(/[^A-Za-z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"")||"package";c.download=`${d}-${bh.trim()}.flujo-package.json`,document.body.appendChild(c),c.click(),c.remove(),URL.revokeObjectURL(b)},bP=async()=>{if(0===h){await bB(),m(1);return}if(3===h){m(4),await bM();return}m(a=>Math.min(a+1,a_.length-1))},bQ=a$.test(bh.trim()),bR=bf.trim().length>0&&bQ,bS=!!(ai&&!ai.mcp.ok),bT=0===h?by||ag:1===h?ag||!!ak||bS:3===h?!bR:4===h,bU=(a,b,c,d,f,h)=>{let i=f.trim().toLowerCase(),l=i?b.filter(a=>a.label.toLowerCase().includes(i)):b;return(0,e.jsxs)(g.default,{sx:{flex:1,minWidth:240},children:[(0,e.jsxs)(j.default,{variant:"subtitle2",gutterBottom:!0,children:[a," ",c.size>0&&(0,e.jsx)(k.A,{label:c.size,size:"small"})]}),(0,e.jsx)(s.A,{size:"small",fullWidth:!0,placeholder:`Search ${a.toLowerCase()}…`,value:f,onChange:a=>h(a.target.value),InputProps:{startAdornment:(0,e.jsx)(t.A,{position:"start",children:(0,e.jsx)(ax.A,{fontSize:"small"})})},sx:{mb:1}}),0===b.length?(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"None available"}):0===l.length?(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["No matches for “",f,"”."]}):(0,e.jsx)(u.A,{dense:!0,sx:{maxHeight:{xs:240,md:"45vh"},overflow:"auto",border:1,borderColor:"divider",borderRadius:1},children:l.map(a=>(0,e.jsx)(v.Ay,{disablePadding:!0,children:(0,e.jsxs)(w.A,{onClick:()=>d(a.id),dense:!0,children:[(0,e.jsx)(x.A,{sx:{minWidth:36},children:(0,e.jsx)(y.A,{edge:"start",checked:c.has(a.id),tabIndex:-1,disableRipple:!0})}),(0,e.jsx)(z.A,{primary:a.label})]})},a.id))})]})};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(R.A,{open:a,onClose:b,maxWidth:"lg",fullWidth:!0,fullScreen:d,PaperProps:{sx:{height:d?"100%":"90vh",maxHeight:d?"100%":"90vh"}},children:[(0,e.jsx)(S.A,{children:"Create package"}),(0,e.jsxs)(T.A,{dividers:!0,sx:{overflow:"auto"},children:[(0,e.jsx)(ac,{activeStep:h,sx:{mb:3},children:a_.map(a=>(0,e.jsx)(af,{children:(0,e.jsx)(av,{children:a})},a))}),(()=>{switch(h){case 0:return p?(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:4},children:(0,e.jsx)(A.default,{})}):(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"Pick the entities to include. Dependencies (subflows, referenced models and MCP servers, planned-execution flows) are pulled in automatically in the next step."}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsxs)(l.A,{component:"label",variant:"outlined",startIcon:(0,e.jsx)(ay,{}),children:["Import manifest (.json)",(0,e.jsx)("input",{type:"file",accept:"application/json,.json",hidden:!0,onChange:a=>{let b=a.target.files?.[0];a.target.value="",b&&bA(b)}})]}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",children:"Restores the selection, metadata and accepted secrets from a package you exported earlier."})]}),ad.length>0&&(0,e.jsxs)(B.A,{severity:"error",onClose:()=>ae([]),children:[(0,e.jsx)(L,{children:"Could not import that file"}),ad.map((a,b)=>(0,e.jsx)("div",{children:a},b))]}),aa&&(0,e.jsxs)(B.A,{severity:aa.missing.length>0?"warning":"success",children:[(0,e.jsxs)(L,{children:["Imported “",aa.metadata.name,"” v",aa.metadata.version]}),"Restored ",aa.selection.flowIds.length," flow(s),"," ",aa.selection.modelIds.length," model(s),"," ",aa.selection.mcpServerNames.length," MCP server(s),"," ",aa.selection.plannedExecutionIds.length," planned execution(s) and"," ",aa.secretNames.length," secret name(s).",aa.missing.length>0&&(0,e.jsxs)(g.default,{sx:{mt:1},children:["No longer on this host (left unselected):",aa.missing.map((a,b)=>(0,e.jsxs)("div",{children:[a.type,": ",a.label]},b))]})]}),(0,e.jsxs)(i.A,{direction:"row",spacing:2,flexWrap:"wrap",useFlexGap:!0,children:[bU("Flows",n.flows,D,bz(E),U,V),bU("Models",n.models,F,bz(G),W,X),bU("MCP servers",n.mcpServers,H,bz(I),Y,Z),bU("Planned executions",n.plannedExecutions,J,bz(K),$,_)]})]});case 1:if(ag)return(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:4},children:(0,e.jsx)(A.default,{})});if(ak)return(0,e.jsx)(B.A,{severity:"error",children:ak});if(!ai)return null;return(0,e.jsxs)(i.A,{spacing:2,children:[bS&&(0,e.jsxs)(B.A,{severity:"error",children:[(0,e.jsx)(L,{children:"Local MCP server(s) cannot be packaged"}),ai.mcp.errors.map((a,b)=>(0,e.jsx)("div",{children:a},b))]}),ai.resolved.autoAdded.length>0&&(0,e.jsxs)(B.A,{severity:"info",children:[(0,e.jsx)(L,{children:"Automatically included dependencies"}),ai.resolved.autoAdded.map((a,b)=>(0,e.jsxs)("div",{children:[a.type,": ",(0,e.jsx)("code",{children:a.id})," — ",a.reason]},b))]}),ai.resolved.warnings.length>0&&(0,e.jsxs)(B.A,{severity:"warning",children:[(0,e.jsx)(L,{children:"Warnings"}),ai.resolved.warnings.map((a,b)=>(0,e.jsx)("div",{children:a},b))]}),(0,e.jsx)(M.A,{}),(0,e.jsxs)(j.default,{variant:"body2",children:["Resolved: ",ai.resolved.flowIds.length," flow(s),"," ",ai.resolved.modelIds.length," model(s),"," ",ai.resolved.mcpServerNames.length," MCP server(s),"," ",ai.resolved.plannedExecutionIds.length," planned execution(s)."]}),ai.mcp.servers.length>0&&(0,e.jsx)(i.A,{direction:"row",spacing:1,flexWrap:"wrap",useFlexGap:!0,children:ai.mcp.servers.map(a=>(0,e.jsx)(k.A,{label:`${a.name} \xb7 ${a.sourceType}`,size:"small",color:"success",variant:"outlined"},a.name))})]});case 2:return(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsx)(j.default,{variant:"subtitle2",children:"Global variables"}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"Global variables referenced by the package. Add a useful description for each one; installers will supply values and FLUJO will create them in Global Variables."}),ai&&0!==(ai.globals??[]).length?(0,e.jsx)(i.A,{spacing:1.5,children:ai.globals.map(a=>(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"flex-start",children:[(0,e.jsx)(s.A,{size:"small",label:a.name,value:am[a.name]??"",onChange:b=>an(c=>({...c,[a.name]:b.target.value})),helperText:a.isSecret?"Secret global; its value is never included in the package":"Description shown during package installation",fullWidth:!0}),a.isSecret&&(0,e.jsx)(k.A,{label:"secret global",size:"small",color:"warning",variant:"outlined"})]},a.name))}):(0,e.jsx)(B.A,{severity:"success",children:"No global variables referenced by this package."}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Declared secrets (entity keys)"}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"Secrets the package will declare from model API keys and MCP env/headers. Values are never included — whoever installs must supply them."}),ai&&0!==ai.secrets.length?(0,e.jsx)(u.A,{dense:!0,children:ai.secrets.map(a=>(0,e.jsxs)(v.Ay,{children:[(0,e.jsx)(y.A,{edge:"start",checked:!ao.has(a.name),onChange:b=>ap(c=>{let d=new Set(c);return b.target.checked?d.delete(a.name):d.add(a.name),d}),inputProps:{"aria-label":`Include ${a.name} in package secrets`}}),(0,e.jsx)(z.A,{primary:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("code",{children:a0(a.name)})," ",a.required&&(0,e.jsx)(k.A,{label:"required",size:"small",color:"warning"})]}),secondary:ao.has(a.name)?"Excluded — the package will not request this value":a.description})]},a.name))}):(0,e.jsx)(B.A,{severity:"success",children:"No entity secrets to declare."}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Detected secrets in content"}),(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["Values that look secret or instance-specific (paths, repos, tokens, URLs, emails) found in flow prompts, node properties, model config and planned- execution prompts. Accepted rows are replaced with a"," ",(0,e.jsx)("code",{children:"{{secret.NAME}}"})," placeholder everywhere they occur."]}),as&&(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:2},children:(0,e.jsx)(A.default,{size:28})}),aA&&(0,e.jsx)(B.A,{severity:"error",children:aA}),!as&&au&&0===aq.length&&(0,e.jsx)(B.A,{severity:"success",children:"No likely secrets detected in the packaged content."}),aq.length>0&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(i.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,children:bL.map(([a,b])=>(0,e.jsx)(k.A,{size:"small",variant:"outlined",label:`${a}: ${b}`},a))}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(l.A,{size:"small",onClick:()=>bE(!0),children:"Accept all"}),(0,e.jsx)(l.A,{size:"small",onClick:()=>bE(!1),children:"Reject all"}),(0,e.jsx)(s.A,{size:"small",placeholder:"Filter detected secrets…",value:aJ,onChange:a=>aN(a.target.value),sx:{minWidth:200,flex:1}}),(0,e.jsxs)(j.default,{variant:"caption",color:"text.secondary",sx:{alignSelf:"center"},children:[bI.filter(a=>a.accepted).length," of ",bI.length," accepted"]})]}),(0,e.jsxs)(u.A,{dense:!0,sx:{border:1,borderColor:"divider",borderRadius:1,maxHeight:280,overflow:"auto"},children:[0===bJ.length&&(0,e.jsx)(v.Ay,{children:(0,e.jsx)(z.A,{primary:(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["No rows match “",aJ,"”."]})})}),bJ.map(a=>(0,e.jsxs)(v.Ay,{alignItems:"flex-start",divider:!0,children:[(0,e.jsx)(x.A,{sx:{minWidth:36,mt:1},children:(0,e.jsx)(y.A,{edge:"start",checked:!!a.accepted,onChange:()=>{let b;return b=a.ids,ar(a=>{let c=new Set(b),d=!a.find(a=>c.has(a.id))?.accepted;return a.map(a=>c.has(a.id)?{...a,accepted:d}:a)})},tabIndex:-1,disableRipple:!0})}),(0,e.jsx)(z.A,{primary:(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(k.A,{label:a.kind,size:"small"}),(0,e.jsx)(k.A,{label:a.source,size:"small",variant:"outlined",color:"model"===a.source?"secondary":"manual"===a.source?"primary":"default"}),a.confidence&&(0,e.jsx)(k.A,{label:a.confidence,size:"small",variant:"outlined",color:"high"===a.confidence?"success":"low"===a.confidence?"warning":"default"}),a.locations.length>1&&(0,e.jsx)(k.A,{label:`${a.locations.length}\xd7`,size:"small",variant:"outlined"}),(0,e.jsx)(g.default,{component:"code",sx:{wordBreak:"break-all"},children:a.excerpt.length>80?`${a.excerpt.slice(0,80)}…`:a.excerpt})]}),secondary:(0,e.jsxs)(i.A,{spacing:.5,sx:{mt:.5},children:[(0,e.jsxs)(j.default,{variant:"caption",color:"text.secondary",children:[a.locations.length>1?`${a.locations.length} locations: ${a.locations.slice(0,3).join(", ")}${a.locations.length>3?", …":""}`:a.locations[0],a.rationale?` — ${a.rationale}`:""]}),(0,e.jsx)(s.A,{size:"small",label:"Secret name",value:a0(a.suggestedSecretName),onChange:b=>{var c,d;let e,f;return e=a.ids,c=a.suggestedSecretName,d=b.target.value,f=c.startsWith("SECRET_")?`SECRET_${d.replace(/^SECRET_/,"")}`:d,ar(a=>{let b=new Set(e);return a.map(a=>b.has(a.id)?{...a,suggestedSecretName:f}:a)})},disabled:!a.accepted,sx:{maxWidth:320}})]}),primaryTypographyProps:{component:"div"},secondaryTypographyProps:{component:"div"}})]},a.key))]})]}),bK.length>0&&(0,e.jsxs)(B.A,{severity:"warning",children:[(0,e.jsx)(L,{children:"Secrets from the imported manifest that need re-adding"}),"A manifest never carries secret values, so these declarations could not be matched to anything in the current content — re-add them below if they still apply: ",bK.map(a0).join(", "),"."]}),aD.length>0&&(0,e.jsxs)(B.A,{severity:"warning",children:[(0,e.jsx)(L,{children:"Notes"}),aD.map((a,b)=>(0,e.jsx)("div",{children:a},b))]}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Add a secret manually"}),(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["Enter any value that should be redacted from the package. It is treated purely as text to replace with a ",(0,e.jsx)("code",{children:"{{secret.NAME}}"})," placeholder — it is never executed."]}),a1&&(0,e.jsx)(B.A,{severity:"error",children:a1}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"flex-start",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(s.A,{size:"small",label:"Value to redact",value:aS,onChange:a=>aT(a.target.value),sx:{minWidth:240,flex:1}}),(0,e.jsx)(s.A,{size:"small",label:"Secret name",value:aU,onChange:a=>aV(a.target.value),sx:{minWidth:180}}),(0,e.jsx)(N.A,{size:"small",value:aW,onChange:a=>aX(a.target.value),sx:{minWidth:120},children:aL.map(a=>(0,e.jsx)(O.A,{value:a,children:a},a))}),(0,e.jsx)(l.A,{variant:"outlined",onClick:bF,disabled:!aS.trim(),children:"Add"}),(0,e.jsx)(l.A,{variant:"text",startIcon:(0,e.jsx)(ax.A,{}),onClick:()=>void bG(),disabled:by,children:"Pick from app"})]}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Advanced scan options"}),(0,e.jsxs)(i.A,{direction:"row",spacing:2,flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(P.A,{control:(0,e.jsx)(Q.A,{checked:aO,onChange:a=>{aP(a.target.checked),az(!1)}}),label:"Aggressive entropy scan"}),(0,e.jsx)(P.A,{control:(0,e.jsx)(Q.A,{checked:aQ,onChange:a=>{aR(a.target.checked),az(!1)}}),label:"Detect bare owner/repo slugs"}),(0,e.jsx)(l.A,{size:"small",variant:"text",onClick:()=>void bD(),disabled:as,children:"Re-scan"})]}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Optional: model-driven scan"}),(0,e.jsx)(B.A,{severity:"info",children:"Running the model-driven pass sends the packaged content above to the selected model provider. The offline heuristic scan never leaves your machine."}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsxs)(N.A,{size:"small",displayEmpty:!0,value:aH,onChange:a=>aI(a.target.value),sx:{minWidth:220},children:[(0,e.jsx)(O.A,{value:"",children:(0,e.jsx)("em",{children:"Select a model…"})}),n.models.map(a=>(0,e.jsx)(O.A,{value:a.id,children:a.label},a.id))]}),(0,e.jsx)(l.A,{variant:"outlined",disabled:!aH||as,onClick:()=>void bD(aH),children:"Scan with model"})]})]});case 3:return(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsx)(s.A,{label:"Package name",value:bf,onChange:a=>bg(a.target.value),required:!0,fullWidth:!0,error:bf.length>0&&0===bf.trim().length}),(0,e.jsx)(s.A,{label:"Version",value:bh,onChange:a=>bi(a.target.value),required:!0,fullWidth:!0,error:bh.length>0&&!bQ,helperText:bh.length>0&&!bQ?"Must be a semantic version (e.g. 1.0.0)":" "}),(0,e.jsx)(s.A,{label:"Description",value:bj,onChange:a=>bk(a.target.value),fullWidth:!0,multiline:!0,minRows:2}),(0,e.jsx)(s.A,{label:"Tags (comma-separated)",value:bl,onChange:a=>bm(a.target.value),fullWidth:!0})]});case 4:if(bn)return(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:4},children:(0,e.jsx)(A.default,{})});if(br)return(0,e.jsx)(B.A,{severity:"error",children:br});if(bp?.ok)return(0,e.jsxs)(i.A,{spacing:2,children:[(0,e.jsxs)(B.A,{severity:"success",children:[(0,e.jsx)(L,{children:"Package built"}),(0,e.jsx)("code",{children:bf.trim()})," v",bh.trim()," is ready to export."]}),bp.warnings.length>0&&(0,e.jsxs)(B.A,{severity:"warning",children:[(0,e.jsx)(L,{children:"Warnings"}),bp.warnings.map((a,b)=>(0,e.jsx)("div",{children:a},b))]}),(0,e.jsx)(l.A,{variant:"contained",onClick:bO,children:"Download package manifest (.json)"}),(0,e.jsx)(M.A,{}),(0,e.jsx)(j.default,{variant:"subtitle2",children:"Publish to the FLUJO package registry"}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"Publishing requires a confirmed registry account (set one up on the Packages page). Only the secret-safe manifest above is uploaded — no secret values ever leave your machine."}),bv?.ok?(0,e.jsxs)(B.A,{severity:"success",children:[(0,e.jsx)(L,{children:"Published"}),bv.name||bf.trim()," v",bv.version||bh.trim()," is live.",bv.url&&(0,e.jsx)("div",{children:(0,e.jsx)("a",{href:bv.url,target:"_blank",rel:"noreferrer",children:bv.url})})]}):(0,e.jsxs)(e.Fragment,{children:[bv&&!bv.ok&&(0,e.jsx)(B.A,{severity:"unconfirmed"===bv.code||"not_authenticated"===bv.code?"warning":"error",children:bv.error||"Failed to publish package."}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(l.A,{variant:"outlined",onClick:()=>void bN(),disabled:bt,children:bt?"Publishing…":"Publish to registry"}),bv&&!bv.ok&&("not_authenticated"===bv.code||"unconfirmed"===bv.code)&&(0,e.jsx)(l.A,{variant:"contained",onClick:()=>be(!0),disabled:bt,children:"Log in to registry"})]})]})]});return null;default:return null}})()]}),(0,e.jsxs)(aw.A,{children:[(0,e.jsx)(l.A,{onClick:b,children:bp?.ok?"Close":"Cancel"}),(0,e.jsx)(g.default,{sx:{flex:1}}),(0,e.jsx)(l.A,{onClick:()=>m(a=>Math.max(a-1,0)),disabled:0===h||bn||ag,children:"Back"}),h<4&&(0,e.jsx)(l.A,{variant:"contained",onClick:bP,disabled:bT,children:3===h?"Build":"Next"})]})]}),(0,e.jsxs)(R.A,{open:bd,onClose:()=>be(!1),maxWidth:"sm",fullWidth:!0,children:[(0,e.jsx)(S.A,{children:"Log in to the package registry"}),(0,e.jsx)(T.A,{dividers:!0,children:(0,e.jsx)(aF,{})}),(0,e.jsxs)(aw.A,{children:[(0,e.jsx)(l.A,{onClick:()=>be(!1),children:"Done"}),(0,e.jsx)(l.A,{variant:"contained",onClick:()=>{be(!1),bN()},disabled:bt,children:"Retry publish"})]})]}),(0,e.jsxs)(R.A,{open:a3,onClose:()=>a4(!1),maxWidth:"md",fullWidth:!0,children:[(0,e.jsx)(S.A,{children:"Pick a value to redact"}),(0,e.jsxs)(T.A,{dividers:!0,children:[(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"These are plaintext values found in the packaged flows, models and planned executions. Pick one to pre-fill the value to redact. API keys and MCP env/header values are never listed — they are already declared as secrets."}),(0,e.jsx)(s.A,{size:"small",fullWidth:!0,placeholder:"Search values…",value:bb,onChange:a=>bc(a.target.value),InputProps:{startAdornment:(0,e.jsx)(t.A,{position:"start",children:(0,e.jsx)(ax.A,{fontSize:"small"})})},sx:{mb:2}}),a5?(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:4},children:(0,e.jsx)(A.default,{})}):a7?(0,e.jsx)(B.A,{severity:"error",children:a7}):0===a9.length?(0,e.jsx)(B.A,{severity:"info",children:"No pickable plaintext values found in the packaged content."}):0===bH.length?(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["No values match “",bb,"”."]}):(0,e.jsx)(u.A,{dense:!0,sx:{border:1,borderColor:"divider",borderRadius:1,maxHeight:"50vh",overflow:"auto"},children:bH.map((a,b)=>(0,e.jsx)(v.Ay,{disablePadding:!0,divider:!0,children:(0,e.jsx)(w.A,{onClick:()=>{aT(a.text),a2(null),a4(!1)},alignItems:"flex-start",children:(0,e.jsx)(z.A,{primary:(0,e.jsx)(g.default,{component:"code",sx:{wordBreak:"break-all"},children:a.text.length>120?`${a.text.slice(0,120)}…`:a.text}),secondary:(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,sx:{mt:.5},children:[(0,e.jsx)(k.A,{label:a.source,size:"small",variant:"outlined"}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",children:a.location})]}),primaryTypographyProps:{component:"div"},secondaryTypographyProps:{component:"div"}})})},`${a.location}-${b}`))})]}),(0,e.jsx)(aw.A,{children:(0,e.jsx)(l.A,{onClick:()=>a4(!1),children:"Close"})})]})]})}var a2=c(7503),a3=c(14570),a4=c(53222);let a5=(0,aB.h)("frontend/components/Packages/InstalledPackagesList");function a6(){let[a,b]=(0,f.useState)([]),[c,d]=(0,f.useState)(!0),[h,n]=(0,f.useState)(null),[o,p]=(0,f.useState)(null),[q,r]=(0,f.useState)(!1),[u,v]=(0,f.useState)(null),[w,x]=(0,f.useState)(""),y=(0,f.useCallback)(async()=>{d(!0),n(null);try{let a=await fetch("/api/packages/installed");if(!a.ok)throw Error(`Failed to load installed packages (${a.status})`);let c=await a.json();b(c.packages??[])}catch(a){a5.warn("Failed to load installed packages",a),n(a instanceof Error?a.message:String(a))}finally{d(!1)}},[]),z=(0,f.useCallback)(async a=>{r(!0),v(null);try{let b=await fetch("/api/packages/uninstall",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({packageName:a.packageName})}),c=await b.json();if(!b.ok)throw Error(c.error??`Uninstall failed (${b.status})`);v(c),await y()}catch(a){a5.warn("Uninstall failed",a),n(a instanceof Error?a.message:String(a))}finally{r(!1),p(null)}},[y]),C=(0,f.useMemo)(()=>{let b=w.trim().toLowerCase();return b?a.filter(a=>`${a.packageName} ${a.version}`.toLowerCase().includes(b)):a},[a,w]);return(0,e.jsxs)(g.default,{sx:{maxWidth:{xs:"100%",md:1100},mx:"auto",mt:3},children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",sx:{mb:1},children:[(0,e.jsx)(j.default,{variant:"h6",children:"Installed packages"}),(0,e.jsx)(l.A,{size:"small",startIcon:(0,e.jsx)(a4.A,{}),onClick:()=>void y(),disabled:c,children:"Refresh"})]}),a.length>0&&(0,e.jsx)(s.A,{size:"small",fullWidth:!0,placeholder:"Search installed packages…",value:w,onChange:a=>x(a.target.value),InputProps:{startAdornment:(0,e.jsx)(t.A,{position:"start",children:(0,e.jsx)(ax.A,{fontSize:"small"})})},sx:{mb:2}}),h&&(0,e.jsx)(B.A,{severity:"error",sx:{mb:2},onClose:()=>n(null),children:h}),u&&(0,e.jsxs)(B.A,{severity:u.hasErrors?"warning":"success",sx:{mb:2},onClose:()=>v(null),children:['Uninstalled "',u.packageName,'": ',u.removed.length," removed,"," ",u.skipped.length," preserved/skipped",u.hasErrors?`, ${u.errors.length} error(s)`:"","."]}),c?(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:3},children:(0,e.jsx)(A.default,{size:24})}):0===a.length?(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"No packages installed yet."}):0===C.length?(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["No packages match “",w,"”."]}):(0,e.jsx)(i.A,{spacing:1,children:C.map(a=>(0,e.jsxs)(m.A,{variant:"outlined",sx:{p:2,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,e.jsxs)(g.default,{children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",children:[(0,e.jsx)(j.default,{variant:"subtitle1",children:a.packageName}),(0,e.jsx)(k.A,{label:`v${a.version}`,size:"small",variant:"outlined"})]}),(0,e.jsxs)(j.default,{variant:"caption",color:"text.secondary",children:[a.entityCounts.flows," flows \xb7 ",a.entityCounts.models," models \xb7"," ",a.entityCounts.servers," servers \xb7 ",a.entityCounts.plannedExecutions," planned \xb7 installed ",new Date(a.installedAt).toLocaleString()]})]}),(0,e.jsx)(l.A,{color:"error",size:"small",startIcon:(0,e.jsx)(a3.A,{}),onClick:()=>p(a),disabled:q,children:"Uninstall"})]},a.packageName))}),(0,e.jsxs)(R.A,{open:null!==o,onClose:()=>q?void 0:p(null),children:[(0,e.jsxs)(S.A,{children:['Uninstall "',o?.packageName,'"?']}),(0,e.jsx)(T.A,{children:(0,e.jsxs)(a2.A,{children:["This removes the flows, models, MCP servers and planned executions this package",(0,e.jsx)("strong",{children:" created"}),". Pre-existing entities the package merely updated in place are preserved. This cannot be undone."]})}),(0,e.jsxs)(aw.A,{children:[(0,e.jsx)(l.A,{onClick:()=>p(null),disabled:q,children:"Cancel"}),(0,e.jsx)(l.A,{color:"error",variant:"contained",onClick:()=>o&&void z(o),disabled:q,startIcon:q?(0,e.jsx)(A.default,{size:16}):(0,e.jsx)(a3.A,{}),children:"Uninstall"})]})]})]})}var a7=c(82666),a8=c(30818),a9=c(423),ba=c(27114),bb=c(98463),bc=c(44079);let bd=(0,o.A)((0,e.jsx)("path",{d:"M12 7c-.55 0-1 .45-1 1v3H8c-.55 0-1 .45-1 1s.45 1 1 1h3v3c0 .55.45 1 1 1s1-.45 1-1v-3h3c.55 0 1-.45 1-1s-.45-1-1-1h-3V8c0-.55-.45-1-1-1m0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8"}),"AddCircleOutlineRounded"),be=(0,o.A)((0,e.jsx)("path",{d:"M5 13h11.17l-4.88 4.88c-.39.39-.39 1.03 0 1.42s1.02.39 1.41 0l6.59-6.59c.39-.39.39-1.02 0-1.41l-6.58-6.6a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41L16.17 11H5c-.55 0-1 .45-1 1s.45 1 1 1"}),"ArrowForwardRounded"),bf=(0,o.A)((0,e.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M9.29 16.29 5.7 12.7a.996.996 0 0 1 0-1.41c.39-.39 1.02-.39 1.41 0L10 14.17l6.88-6.88c.39-.39 1.02-.39 1.41 0s.39 1.02 0 1.41l-7.59 7.59c-.38.39-1.02.39-1.41 0"}),"CheckCircleRounded"),bg=(0,o.A)((0,e.jsx)("path",{d:"M20 9V7c0-1.1-.9-2-2-2h-3c0-1.66-1.34-3-3-3S9 3.34 9 5H6c-1.1 0-2 .9-2 2v2c-1.66 0-3 1.34-3 3s1.34 3 3 3v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c1.66 0 3-1.34 3-3s-1.34-3-3-3m-2 10H6V7h12zm-9-6c-.83 0-1.5-.67-1.5-1.5S8.17 10 9 10s1.5.67 1.5 1.5S9.83 13 9 13m7.5-1.5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5.67-1.5 1.5-1.5 1.5.67 1.5 1.5M8 15h8v2H8z"}),"SmartToyOutlined"),bh=(0,o.A)((0,e.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3m-5.55-8h-2.9v3H8l4 4 4-4h-2.55z"}),"CloudDownloadOutlined");var bi=c(33253),bj=c(22813),bk=c(92812);let bl=(0,aB.h)("frontend/components/Packages/InstallPackageCard");function bm({onInstalled:a}){let[b,c]=(0,f.useState)(""),[d,h]=(0,f.useState)([]),[m,n]=(0,f.useState)(!1),[o,p]=(0,f.useState)(null),[q,r]=(0,f.useState)(!1),[u,v]=(0,f.useState)(null),[w,x]=(0,f.useState)(null),[y,z]=(0,f.useState)(!1),[C,D]=(0,f.useState)(null),[E,F]=(0,f.useState)(null),[G,H]=(0,f.useState)(!1),[I,J]=(0,f.useState)(null),[K,L]=(0,f.useState)(null),[N,O]=(0,f.useState)({}),[P,Q]=(0,f.useState)({}),[U,V]=(0,f.useState)(null),[W,X]=(0,f.useState)(!1),[Y,Z]=(0,f.useState)(0),[$,_]=(0,f.useState)(null),[aa,ab]=(0,f.useState)({}),ad=(0,f.useCallback)(async a=>{n(!0),p(null);try{let b=await aH.searchRegistry({q:a.trim()||void 0,pageSize:24});h(b.items??[]),r(!0)}catch(a){bl.warn("Failed to search package registry",a),p(a instanceof Error?a.message:String(a)),h([])}finally{n(!1)}},[]),ae=(0,f.useCallback)(async()=>{if(w){z(!0),D(null);try{let a=await aD.deletePackage(w.id);if(!a.ok)return void D(a.error||"Failed to delete package.");h(a=>a.filter(a=>a.id!==w.id)),x(null),await ad(b)}catch(a){bl.warn("Package deletion failed",a),D(a instanceof Error?a.message:String(a))}finally{z(!1)}}},[w,b,ad]),ag=(0,f.useCallback)(async a=>{F(a),L(null),_(null),O({}),Q({}),V(null),X(!1),Z(0),ab({}),J(null),H(!0);try{let b=await aH.installFromRegistry({packageId:a.id,version:a.latestVersion,consentGranted:!1});if(!b.ok)return void J(b.errors?.[0]||"Failed to fetch package preview.");L(b);let c=b.preview?.models[0];V(c?.id??null),Z(+!c)}catch(a){bl.warn("Failed to fetch package preview",a),J(a instanceof Error?a.message:String(a))}finally{H(!1)}},[]),ah=(0,f.useCallback)(async()=>{if(E&&K){H(!0),J(null);try{let b=await aH.installFromRegistry({packageId:E.id,version:E.latestVersion,secrets:N,modelMappings:Object.fromEntries(Object.entries(P).filter(([,a])=>""!==a)),consentGranted:!0});_(b),L(null),b.ok&&a?.()}catch(a){bl.warn("Install failed",a),J(a instanceof Error?a.message:String(a))}finally{H(!1)}}},[E,K,N,P,a]),ai=(0,f.useCallback)(()=>{F(null),L(null),_(null),O({}),Q({}),V(null),X(!1),Z(0),ab({}),J(null)},[]),aj=K?.preview,ak=aj?.models.find(a=>a.id===U)??aj?.models[0],al=aj?.models.filter(a=>Object.prototype.hasOwnProperty.call(P,a.id)).length??0,am=aj?.models.every(a=>Object.prototype.hasOwnProperty.call(P,a.id))??!0,an=(0,f.useCallback)(a=>{V(a),X(!!P[a])},[P]),ao=(0,f.useCallback)(a=>{Q(b=>({...b,[a]:""})),X(!1)},[]),ap=(0,f.useCallback)((a,b)=>{Q(c=>({...c,[a]:b}))},[]);return(0,e.jsxs)(g.default,{sx:{maxWidth:{xs:"100%",md:1100},mx:"auto",mt:3},children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",sx:{mb:1},children:[(0,e.jsx)(bh,{color:"action"}),(0,e.jsx)(j.default,{variant:"h6",children:"Browse registry"})]}),(0,e.jsx)(s.A,{size:"small",fullWidth:!0,placeholder:"Search published packages…",value:b,onChange:a=>c(a.target.value),onKeyDown:a=>{"Enter"===a.key&&ad(b)},InputProps:{startAdornment:(0,e.jsx)(t.A,{position:"start",children:(0,e.jsx)(ax.A,{fontSize:"small"})}),endAdornment:m?(0,e.jsx)(t.A,{position:"end",children:(0,e.jsx)(A.default,{size:16})}):void 0},sx:{mb:2}}),o&&(0,e.jsx)(B.A,{severity:"error",sx:{mb:2},onClose:()=>p(null),children:o}),q&&!m&&0===d.length&&!o&&(0,e.jsxs)(j.default,{variant:"body2",color:"text.secondary",children:["No packages match “",b,"”."]}),(0,e.jsx)(a7.Ay,{container:!0,spacing:2,children:d.map(a=>(0,e.jsx)(a7.Ay,{item:!0,xs:12,sm:6,md:4,children:(0,e.jsxs)(a8.A,{variant:"outlined",sx:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,e.jsx)(a9.A,{onClick:()=>void ag(a),sx:{flex:1},children:(0,e.jsxs)(ba.A,{children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"baseline",justifyContent:"space-between",children:[(0,e.jsx)(j.default,{variant:"subtitle1",noWrap:!0,children:a.name}),(0,e.jsx)(k.A,{size:"small",variant:"outlined",label:`v${a.latestVersion}`})]}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",display:"block",children:a.handle}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",sx:{mt:.5,minHeight:"2.5em"},children:a.description||"No description provided."}),(0,e.jsx)(i.A,{direction:"row",spacing:.5,sx:{mt:1,flexWrap:"wrap",gap:.5},children:a.tags.map(a=>(0,e.jsx)(k.A,{size:"small",label:a},a))}),(0,e.jsxs)(i.A,{direction:"row",spacing:.5,alignItems:"center",sx:{mt:1},children:[(0,e.jsx)(bi.A,{fontSize:"inherit",color:"disabled"}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",children:a.downloads})]})]})}),function(a,b){let c=b?.trim().replace(/^@/,"").toLocaleLowerCase();if(!c)return!1;let d=a.handle?.trim().replace(/^@/,"");if(d)return d.split("/")[0].toLocaleLowerCase()===c;let e=a.id.trim().replace(/^@/,"");return e.includes("/")&&e.split("/")[0].toLocaleLowerCase()===c}(a,u)&&(0,e.jsx)(bb.A,{sx:{justifyContent:"flex-end",pt:0},children:(0,e.jsx)(bc.A,{size:"small",color:"error","aria-label":`Delete ${a.name}`,onClick:()=>{D(null),x(a)},children:(0,e.jsx)(a3.A,{fontSize:"small"})})})]})},a.id))}),(0,e.jsxs)(R.A,{open:null!==w,onClose:y?void 0:()=>x(null),maxWidth:"xs",fullWidth:!0,children:[(0,e.jsx)(S.A,{children:"Delete package?"}),(0,e.jsxs)(T.A,{children:[C&&(0,e.jsx)(B.A,{severity:"error",sx:{mb:2},children:C}),(0,e.jsxs)(j.default,{variant:"body2",children:["This permanently deletes ",(0,e.jsx)("strong",{children:w?.name})," and all of its published versions from the registry. This action cannot be undone."]})]}),(0,e.jsxs)(aw.A,{children:[(0,e.jsx)(l.A,{onClick:()=>x(null),disabled:y,children:"Cancel"}),(0,e.jsx)(l.A,{color:"error",variant:"contained",onClick:()=>void ae(),disabled:y,startIcon:y?(0,e.jsx)(A.default,{size:16,color:"inherit"}):(0,e.jsx)(a3.A,{}),children:"Delete package"})]})]}),(0,e.jsxs)(R.A,{open:null!==E,onClose:G?void 0:ai,maxWidth:!1,fullWidth:!0,PaperProps:{sx:{width:"min(1400px, calc(100vw - 32px))",maxWidth:"none",minHeight:{xs:"calc(100vh - 32px)",md:760},maxHeight:"calc(100vh - 32px)",borderRadius:{xs:2,md:3}}},children:[(0,e.jsxs)(S.A,{sx:{px:{xs:2,md:4},pt:{xs:2,md:3},pb:1},children:[(0,e.jsxs)(j.default,{component:"span",variant:"h5",fontWeight:700,children:["Install ",E?.name]}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",sx:{mt:.5},children:"Match the package to your FLUJO, then review and install it."})]}),(0,e.jsxs)(T.A,{sx:{px:{xs:2,md:4},pb:3},children:[I&&(0,e.jsx)(B.A,{severity:"error",sx:{mb:2},onClose:()=>J(null),children:I}),G&&!K&&!$&&(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:420},children:(0,e.jsx)(A.default,{size:24})}),aj&&K?.package&&(0,e.jsxs)(g.default,{children:[(0,e.jsxs)(i.A,{direction:{xs:"column",sm:"row"},spacing:1,alignItems:{sm:"center"},justifyContent:"space-between",sx:{mb:2.5},children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",children:[(0,e.jsx)(k.A,{size:"small",variant:"outlined",label:`v${K.package.version}`}),K.package.publisher&&(0,e.jsx)(k.A,{size:"small",variant:"outlined",label:K.package.publisher}),(0,e.jsxs)(j.default,{variant:"caption",color:"text.secondary",children:[aj.servers.length," server(s) \xb7 ",aj.models.length," model(s) \xb7"," ",aj.flows.length," flow(s) \xb7 ",aj.plannedExecutions.length," planned execution(s)"]})]}),(0,e.jsxs)(j.default,{variant:"caption",color:"text.secondary",children:["Step ",Y+1," of 2"]})]}),(0,e.jsxs)(ac,{activeStep:Y,sx:{maxWidth:720,mx:"auto",mb:3},children:[(0,e.jsx)(af,{children:(0,e.jsx)(av,{children:"Match models"})}),(0,e.jsx)(af,{children:(0,e.jsx)(av,{children:"Review & install"})})]}),0===Y&&aj.models.length>0&&ak&&(0,e.jsxs)(g.default,{children:[(0,e.jsxs)(g.default,{sx:{textAlign:"center",maxWidth:820,mx:"auto",mb:3},children:[(0,e.jsx)(j.default,{variant:"h4",fontWeight:750,sx:{mb:1},children:"The package was created with models that are not installed in your FLUJO."}),(0,e.jsx)(j.default,{variant:"h6",color:"text.secondary",fontWeight:400,children:"Let's replace or recreate them!"})]}),(0,e.jsxs)(g.default,{sx:{display:"grid",gridTemplateColumns:{xs:"minmax(0, 1fr)",md:"minmax(260px, 0.85fr) 88px minmax(420px, 1.35fr)"},gap:{xs:2,md:2.5},alignItems:"stretch"},children:[(0,e.jsxs)(g.default,{children:[(0,e.jsxs)(i.A,{direction:"row",alignItems:"center",justifyContent:"space-between",sx:{mb:1.25},children:[(0,e.jsx)(j.default,{variant:"overline",color:"text.secondary",fontWeight:700,children:"Models in this package"}),(0,e.jsx)(k.A,{size:"small",color:am?"success":"default",label:`${al}/${aj.models.length} ready`})]}),(0,e.jsx)(i.A,{spacing:1.25,children:aj.models.map(a=>{let b=a.id===ak.id,c=Object.prototype.hasOwnProperty.call(P,a.id),d=aj.installedModels.find(b=>b.id===P[a.id]);return(0,e.jsx)(a8.A,{variant:"outlined",sx:{borderWidth:b?2:1,borderColor:b?"primary.main":"divider",bgcolor:b?"action.selected":"background.paper",transition:"border-color 120ms ease, background-color 120ms ease"},children:(0,e.jsx)(a9.A,{onClick:()=>an(a.id),"aria-label":`Configure ${a.displayName}`,sx:{minHeight:104,p:2},children:(0,e.jsxs)(i.A,{direction:"row",spacing:1.5,alignItems:"center",children:[(0,e.jsx)(g.default,{sx:{width:44,height:44,borderRadius:2,display:"grid",placeItems:"center",bgcolor:b?"primary.main":"action.hover",color:b?"primary.contrastText":"text.secondary",flex:"0 0 auto"},children:(0,e.jsx)(bg,{})}),(0,e.jsxs)(g.default,{sx:{minWidth:0,flex:1},children:[(0,e.jsx)(j.default,{variant:"subtitle1",fontWeight:700,noWrap:!0,children:a.displayName}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",display:"block",children:"Package model"}),c&&(0,e.jsxs)(i.A,{direction:"row",spacing:.5,alignItems:"center",sx:{mt:.5},children:[(0,e.jsx)(bf,{color:"success",sx:{fontSize:16}}),(0,e.jsx)(j.default,{variant:"caption",color:"success.main",noWrap:!0,children:d?`Using ${d.displayName}`:"Will be created"})]})]})]})})},a.id)})})]}),(0,e.jsx)(g.default,{"aria-hidden":!0,sx:{display:"grid",placeItems:"center",minHeight:{xs:64,md:360}},children:(0,e.jsx)(g.default,{sx:{width:64,height:64,borderRadius:"50%",display:"grid",placeItems:"center",bgcolor:"primary.main",color:"primary.contrastText",boxShadow:3,transform:{xs:"rotate(90deg)",md:"none"}},children:(0,e.jsx)(be,{sx:{fontSize:38}})})}),(0,e.jsxs)(a8.A,{variant:"outlined",sx:{p:{xs:2,md:3},minHeight:{md:420},bgcolor:"background.default"},children:[(0,e.jsxs)(j.default,{variant:"overline",color:"text.secondary",fontWeight:700,children:["Replace ",ak.displayName]}),(0,e.jsx)(j.default,{variant:"h5",fontWeight:700,sx:{mt:.25,mb:2.5},children:"What would you like to do?"}),(0,e.jsxs)(a7.Ay,{container:!0,spacing:2,children:[(0,e.jsx)(a7.Ay,{item:!0,xs:12,sm:6,children:(0,e.jsx)(l.A,{fullWidth:!0,"aria-label":"Create new one",variant:Object.prototype.hasOwnProperty.call(P,ak.id)&&""===P[ak.id]?"contained":"outlined",onClick:()=>ao(ak.id),sx:{minHeight:154,p:2.5,textTransform:"none",alignItems:"stretch",justifyContent:"flex-start",textAlign:"left"},children:(0,e.jsxs)(i.A,{spacing:1,alignItems:"flex-start",children:[(0,e.jsx)(bd,{sx:{fontSize:36}}),(0,e.jsx)(j.default,{variant:"h6",fontWeight:700,children:"Create new one"}),(0,e.jsx)(j.default,{variant:"body2",color:Object.prototype.hasOwnProperty.call(P,ak.id)&&""===P[ak.id]?"inherit":"text.secondary",children:"Recreate this model in your FLUJO with the package's configuration."})]})})}),(0,e.jsx)(a7.Ay,{item:!0,xs:12,sm:6,children:(0,e.jsx)(l.A,{fullWidth:!0,"aria-label":"Use one of yours",variant:P[ak.id]?"contained":"outlined",onClick:()=>X(!0),sx:{minHeight:154,p:2.5,textTransform:"none",alignItems:"stretch",justifyContent:"flex-start",textAlign:"left"},children:(0,e.jsxs)(i.A,{spacing:1,alignItems:"flex-start",children:[(0,e.jsx)(bg,{sx:{fontSize:36}}),(0,e.jsx)(j.default,{variant:"h6",fontWeight:700,children:"Use one of yours"}),(0,e.jsx)(j.default,{variant:"body2",color:P[ak.id]?"inherit":"text.secondary",children:"Connect the package to a model you already have installed."})]})})})]}),W&&(0,e.jsxs)(g.default,{sx:{mt:2.5},children:[(0,e.jsx)(M.A,{sx:{mb:2}}),(0,e.jsx)(j.default,{variant:"subtitle1",fontWeight:700,sx:{mb:1},children:"Choose one of your installed models"}),aj.installedModels.length>0?(0,e.jsx)(a7.Ay,{container:!0,spacing:1.25,children:aj.installedModels.map(a=>{let b=P[ak.id]===a.id;return(0,e.jsx)(a7.Ay,{item:!0,xs:12,sm:6,children:(0,e.jsx)(a8.A,{variant:"outlined",sx:{height:"100%",borderWidth:b?2:1,borderColor:b?"primary.main":"divider",bgcolor:b?"action.selected":"background.paper"},children:(0,e.jsx)(a9.A,{onClick:()=>ap(ak.id,a.id),"aria-label":`Use ${a.displayName}`,sx:{minHeight:76,p:1.5},children:(0,e.jsxs)(i.A,{direction:"row",spacing:1.25,alignItems:"center",children:[(0,e.jsx)(bg,{color:b?"primary":"action"}),(0,e.jsxs)(g.default,{sx:{minWidth:0},children:[(0,e.jsx)(j.default,{variant:"subtitle2",fontWeight:700,noWrap:!0,children:a.displayName}),(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",noWrap:!0,display:"block",children:a.name})]}),b&&(0,e.jsx)(bf,{color:"primary",sx:{ml:"auto !important",flex:"0 0 auto"}})]})})})},a.id)})}):(0,e.jsx)(B.A,{severity:"info",children:"You do not have any installed models yet. Create this package model as new instead."})]})]})]}),(0,e.jsx)(M.A,{sx:{my:3}}),(0,e.jsxs)(i.A,{direction:"row",spacing:1.5,justifyContent:"space-between",alignItems:"center",children:[(0,e.jsx)(l.A,{onClick:ai,children:"Cancel"}),(0,e.jsxs)(i.A,{direction:"row",spacing:1.5,alignItems:"center",children:[!am&&(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"Choose an option for every model to continue."}),(0,e.jsx)(l.A,{variant:"contained",size:"large",disabled:!am,endIcon:(0,e.jsx)(be,{}),onClick:()=>Z(1),children:"Continue to review"})]})]})]}),1===Y&&(0,e.jsxs)(g.default,{sx:{maxWidth:980,mx:"auto"},children:[(0,e.jsxs)(i.A,{direction:{xs:"column",sm:"row"},spacing:1,alignItems:{sm:"center"},justifyContent:"space-between",sx:{mb:2},children:[(0,e.jsxs)(g.default,{children:[(0,e.jsx)(j.default,{variant:"h4",fontWeight:750,children:"Review and install"}),(0,e.jsx)(j.default,{variant:"body1",color:"text.secondary",children:"Check your model choices and add any package secrets."})]}),aj.models.length>0&&(0,e.jsx)(l.A,{onClick:()=>{Z(0),V(aj.models.find(a=>!Object.prototype.hasOwnProperty.call(P,a.id))?.id??aj.models[0].id),X(!1)},children:"Change model choices"})]}),aj.models.length>0&&(0,e.jsxs)(g.default,{sx:{mb:2.5},children:[(0,e.jsx)(j.default,{variant:"subtitle2",sx:{mb:1},children:"Model plan"}),(0,e.jsx)(a7.Ay,{container:!0,spacing:1.5,children:aj.models.map(a=>{let b=aj.installedModels.find(b=>b.id===P[a.id]);return(0,e.jsx)(a7.Ay,{item:!0,xs:12,sm:6,children:(0,e.jsx)(a8.A,{variant:"outlined",sx:{p:1.75,height:"100%"},children:(0,e.jsxs)(i.A,{direction:"row",spacing:1.25,alignItems:"center",children:[(0,e.jsxs)(g.default,{sx:{minWidth:0,flex:1},children:[(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",children:"Package model"}),(0,e.jsx)(j.default,{variant:"subtitle2",noWrap:!0,children:a.displayName})]}),(0,e.jsx)(be,{color:"action"}),(0,e.jsxs)(g.default,{sx:{minWidth:0,flex:1},children:[(0,e.jsx)(j.default,{variant:"caption",color:"text.secondary",children:b?"Your model":"New model"}),(0,e.jsx)(j.default,{variant:"subtitle2",noWrap:!0,children:b?.displayName??a.displayName})]})]})})},a.id)})})]}),aj.servers.some(a=>a.requiredEnvMissing.length>0)&&(0,e.jsx)(B.A,{severity:"warning",sx:{mb:1.5},children:"Some MCP servers require environment values that aren't covered by a secret below — those servers will install disabled."}),aj.missingGlobals.length>0&&(0,e.jsxs)(B.A,{severity:"warning",sx:{mb:1.5},children:["This package expects host global variable(s) that aren't set yet:"," ",aj.missingGlobals.join(", "),". Set them in Settings after install, or the bound model(s)/server(s) won't have a working API key."]}),(0,e.jsx)(M.A,{sx:{my:2.5}}),aj.secrets.length>0?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(j.default,{variant:"subtitle2",sx:{mb:1},children:"Secrets requested by this package"}),(0,e.jsx)(i.A,{spacing:1.5,sx:{mb:2.5},children:aj.secrets.map(a=>(0,e.jsx)(s.A,{size:"small",type:aa[a.key]?"text":"password",label:a.label||a.key,helperText:a.required?"Required — leave blank to install the dependent entity disabled":"Optional",value:N[a.key]??"",onChange:b=>O(c=>({...c,[a.key]:b.target.value})),fullWidth:!0,InputProps:{endAdornment:(0,e.jsx)(t.A,{position:"end",children:(0,e.jsx)(bc.A,{size:"small",tabIndex:-1,"aria-label":aa[a.key]?"Hide secret":"Show secret",onClick:()=>ab(b=>({...b,[a.key]:!b[a.key]})),children:aa[a.key]?(0,e.jsx)(bk.A,{fontSize:"small"}):(0,e.jsx)(bj.A,{fontSize:"small"})})})}},a.key))})]}):(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",sx:{mb:2.5},children:"This package doesn't request any secrets."}),(0,e.jsxs)(i.A,{direction:"row",spacing:1,justifyContent:"space-between",children:[(0,e.jsx)(l.A,{onClick:aj.models.length>0?()=>Z(0):ai,disabled:G,children:aj.models.length>0?"Back":"Cancel"}),(0,e.jsx)(l.A,{variant:"contained",color:"primary",size:"large",onClick:()=>void ah(),disabled:G,startIcon:G?(0,e.jsx)(A.default,{size:16}):(0,e.jsx)(bh,{}),children:"Install package"})]})]})]}),$&&(0,e.jsxs)(g.default,{children:[(0,e.jsx)(B.A,{severity:$.ok?"success":"error",sx:{mb:1},children:$.ok?`Installed "${$.package?.name}": ${$.created.length} created, ${$.updated.length} updated, ${$.disabled.length} disabled.`:`Install failed: ${$.errors[0]??"unknown error"}`}),$.missingGlobals.length>0&&(0,e.jsxs)(B.A,{severity:"warning",sx:{mb:1},children:["Set these global variable(s) in Settings for the installed entities to work:"," ",$.missingGlobals.join(", "),"."]}),(0,e.jsx)(l.A,{size:"small",onClick:ai,children:"Close"})]})]})]})]})}let bn=(0,aB.h)("frontend/components/Packages");function bo(){let[a,b]=(0,f.useState)(!1),[c,d]=(0,f.useState)(0);return bn.debug("Rendering PackagesManager",{wizardOpen:a}),(0,e.jsxs)(g.default,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,e.jsxs)(g.default,{sx:{p:2,display:"flex",justifyContent:"space-between",alignItems:"center",borderBottom:1,borderColor:"divider"},children:[(0,e.jsxs)(i.A,{direction:"row",spacing:1,alignItems:"center",children:[(0,e.jsx)(j.default,{variant:"h5",children:"Packages"}),(0,e.jsx)(k.A,{label:"experimental",size:"small",color:"warning",variant:"outlined"})]}),(0,e.jsx)(l.A,{variant:"contained",startIcon:(0,e.jsx)(n.A,{}),onClick:()=>b(!0),"data-tour":"packages-create",children:"Create package"})]}),(0,e.jsxs)(g.default,{sx:{flex:1,overflow:"auto",p:3},children:[(0,e.jsxs)(m.A,{variant:"outlined",sx:{p:4,display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center",gap:2,maxWidth:{xs:"100%",md:1100},mx:"auto"},children:[(0,e.jsx)(p,{sx:{fontSize:48,color:"text.secondary"}}),(0,e.jsx)(j.default,{variant:"h6",children:"Bundle your FLUJO setup into a shareable package"}),(0,e.jsx)(j.default,{variant:"body2",color:"text.secondary",children:"A package bundles flows, models, MCP servers (by reference) and planned executions into a single manifest you can export and share. Secret values (API keys, tokens) are never included — only declarations of the secrets a recipient must supply at install time."}),(0,e.jsx)(l.A,{variant:"contained",startIcon:(0,e.jsx)(n.A,{}),onClick:()=>b(!0),children:"Create package"})]}),(0,e.jsxs)(m.A,{variant:"outlined",sx:{p:3,mt:3,maxWidth:{xs:"100%",md:1100},mx:"auto"},children:[(0,e.jsx)(j.default,{variant:"h6",gutterBottom:!0,children:"Package registry account"}),(0,e.jsx)(aF,{})]}),(0,e.jsx)(bm,{onInstalled:()=>d(a=>a+1)}),(0,e.jsx)(a6,{},c)]}),a&&(0,e.jsx)(a1,{open:a,onClose:()=>b(!1)})]})}var bp=c(49938),bq=c(61615);function br(){(0,h.useRouter)();let{settings:a,settingsHydrated:b}=(0,bp.rX)(),c=b&&(a?.experimental?.enabled??!1);return b&&c?(0,e.jsx)(g.default,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:(0,e.jsx)(bo,{})}):(0,e.jsx)(bq.default,{})}(0,aB.h)("app/packages/page")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87892:(a,b,c)=>{Promise.resolve().then(c.bind(c,60399))},92812:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(11801),e=c(21124);let f=(0,d.A)((0,e.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z"}),"VisibilityOff")},95285:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(52574),o=c(82802),p=c(77533),q=c(45229),r=c(32822),s=c(261),t=c(26453),u=c(52474),v=c(26713),w=c(51356),x=c(62685),y=c(36225),z=c(63446),A=c(2762),B=c(45742),C=c(86439),D=c(81170),E=c.n(D),F=c(62506),G=c(91203),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["packages",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,60399)),"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\packages\\page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,51472)),"C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,J=["C:\\Users\\Moe\\Documents\\GitHub\\FLUJO\\src\\app\\packages\\page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/packages/page",pathname:"/packages",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/packages/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
2
|
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,8298,3984,6967,7674,8745,1439,3489,7104,1690,87,5200,7058,7519,9983,1314,3653],()=>b(b.s=95285));module.exports=c})();
|