flujo-ai 3.38.0 → 3.40.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.
Files changed (997) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +617 -433
  3. package/.next/app-path-routes-manifest.json +42 -26
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +90 -18
  6. package/.next/react-loadable-manifest.json +40 -47
  7. package/.next/routes-manifest.json +34 -0
  8. package/.next/server/app/_not-found/page.js +3 -4
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_not-found.html +1 -1
  12. package/.next/server/app/_not-found.rsc +5 -5
  13. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  14. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  15. package/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/approvals/route.js +2 -2
  17. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  18. package/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/backup/route.js +1 -1
  20. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  21. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/bugs/enhance/route.js +2 -2
  24. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
  25. package/.next/server/app/api/bugs/enhance/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/encryption/secure/route.js +1 -1
  28. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  29. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/env/route.js +2 -2
  31. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route.js +1 -0
  33. package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route.js.nft.json +1 -0
  34. package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route_client-reference-manifest.js +1 -0
  35. package/.next/server/app/api/flow/[id]/route.js +1 -1
  36. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  37. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js +1 -1
  39. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/flow/[id]/versions/[versionId]/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/flow/[id]/versions/route.js +1 -1
  42. package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
  43. package/.next/server/app/api/flow/[id]/versions/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/flow/assist/route.js +1 -0
  45. package/.next/server/app/api/flow/assist/route.js.nft.json +1 -0
  46. package/.next/server/app/api/flow/assist/route_client-reference-manifest.js +1 -0
  47. package/.next/server/app/api/flow/compile/route.js +1 -1
  48. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  49. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/flow/generate/route.js +1 -1
  51. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  52. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/flow/generator/route.js +2 -2
  54. package/.next/server/app/api/flow/generator/route.js.nft.json +1 -1
  55. package/.next/server/app/api/flow/generator/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/flow/improve/route.js +1 -1
  57. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  58. package/.next/server/app/api/flow/improve/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/flow/prompt-renderer/route.js +2 -2
  60. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  61. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/flow/quick-chat/route.js +1 -1
  63. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  64. package/.next/server/app/api/flow/quick-chat/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/flow/repair/route.js +1 -1
  66. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  67. package/.next/server/app/api/flow/repair/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/flow/route.js +1 -1
  69. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  70. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/git/route.js +6 -6
  72. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/init/route.js +1 -1
  74. package/.next/server/app/api/init/route.js.nft.json +1 -1
  75. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/local-models/capability/route.js +1 -1
  77. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/local-models/pull/route.js +1 -1
  79. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/local-models/suggest/route.js +1 -1
  81. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/mcp/app-sandbox/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/mcp/cancel/route.js +2 -2
  84. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  85. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/mcp/flujo/authoring/route.js +1 -0
  87. package/.next/server/app/api/mcp/flujo/authoring/route.js.nft.json +1 -0
  88. package/.next/server/app/api/mcp/flujo/authoring/route_client-reference-manifest.js +1 -0
  89. package/.next/server/app/api/mcp/flujo/automation/route.js +1 -0
  90. package/.next/server/app/api/mcp/flujo/automation/route.js.nft.json +1 -0
  91. package/.next/server/app/api/mcp/flujo/automation/route_client-reference-manifest.js +1 -0
  92. package/.next/server/app/api/mcp/flujo/flows/route.js +1 -0
  93. package/.next/server/app/api/mcp/flujo/flows/route.js.nft.json +1 -0
  94. package/.next/server/app/api/mcp/flujo/flows/route_client-reference-manifest.js +1 -0
  95. package/.next/server/app/api/mcp/flujo/resources/read/route.js +1 -0
  96. package/.next/server/app/api/mcp/flujo/resources/read/route.js.nft.json +1 -0
  97. package/.next/server/app/api/mcp/flujo/resources/read/route_client-reference-manifest.js +1 -0
  98. package/.next/server/app/api/mcp/flujo/resources/route.js +1 -0
  99. package/.next/server/app/api/mcp/flujo/resources/route.js.nft.json +1 -0
  100. package/.next/server/app/api/mcp/flujo/resources/route_client-reference-manifest.js +1 -0
  101. package/.next/server/app/api/mcp/flujo/servers/route.js +1 -0
  102. package/.next/server/app/api/mcp/flujo/servers/route.js.nft.json +1 -0
  103. package/.next/server/app/api/mcp/flujo/servers/route_client-reference-manifest.js +1 -0
  104. package/.next/server/app/api/mcp/flujo/state/route.js +1 -0
  105. package/.next/server/app/api/mcp/flujo/state/route.js.nft.json +1 -0
  106. package/.next/server/app/api/mcp/flujo/state/route_client-reference-manifest.js +1 -0
  107. package/.next/server/app/api/mcp/flujo/tools/route.js +1 -0
  108. package/.next/server/app/api/mcp/flujo/tools/route.js.nft.json +1 -0
  109. package/.next/server/app/api/mcp/flujo/tools/route_client-reference-manifest.js +1 -0
  110. package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
  111. package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
  112. package/.next/server/app/api/mcp/oauth-capability/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  114. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  115. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  117. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  118. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  120. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  121. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  123. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  124. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  126. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  127. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  129. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  130. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  132. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  133. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  135. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  136. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/mcp/servers/route.js +1 -1
  138. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  139. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  141. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  142. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  144. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  145. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/mcp-registry/route.js +2 -2
  147. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  148. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/model/[id]/route.js +1 -1
  151. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  152. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/model/provider/route.js +2 -2
  154. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  155. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/model/route.js +1 -1
  157. package/.next/server/app/api/model/route.js.nft.json +1 -1
  158. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/model/test/route.js +2 -2
  160. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  161. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/oauth/callback/route.js +1 -1
  163. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/oauth/initiate/route.js +1 -1
  165. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/oauth/reset/route.js +2 -2
  167. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  168. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/packages/build/route.js +1 -1
  170. package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
  171. package/.next/server/app/api/packages/build/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/packages/derive-secrets/route.js +1 -1
  173. package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
  174. package/.next/server/app/api/packages/derive-secrets/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/packages/install/route.js +1 -1
  176. package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
  177. package/.next/server/app/api/packages/install/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/packages/install/status/route.js +1 -1
  179. package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
  180. package/.next/server/app/api/packages/install/status/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/packages/installed/route.js +1 -1
  182. package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
  183. package/.next/server/app/api/packages/installed/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/packages/resolve/route.js +1 -1
  185. package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
  186. package/.next/server/app/api/packages/resolve/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/packages/scan-targets/route.js +1 -1
  188. package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -1
  189. package/.next/server/app/api/packages/scan-targets/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/packages/search/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/packages/uninstall/route.js +1 -1
  192. package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
  193. package/.next/server/app/api/packages/uninstall/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/planned-executions/[id]/route.js +2 -2
  195. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  196. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -2
  198. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  199. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -2
  201. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  202. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  205. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  206. package/.next/server/app/api/planned-executions/reconcile/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/planned-executions/route.js +1 -1
  208. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  209. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/registry/auth/resend/route.js +1 -1
  211. package/.next/server/app/api/registry/auth/resend/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/api/registry/auth/reset/route.js +1 -1
  213. package/.next/server/app/api/registry/auth/reset/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/registry/auth/route.js +1 -1
  215. package/.next/server/app/api/registry/auth/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/registry/feedback/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/registry/oauth/callback/route.js +1 -1
  218. package/.next/server/app/api/registry/oauth/callback/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/registry/oauth/initiate/route.js +1 -1
  220. package/.next/server/app/api/registry/oauth/initiate/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/registry/packages/route.js +1 -1
  222. package/.next/server/app/api/registry/packages/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/registry/publish/route.js +1 -1
  224. package/.next/server/app/api/registry/publish/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/registry/settings/route.js +1 -1
  226. package/.next/server/app/api/registry/settings/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/restore/route.js +1 -1
  228. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  229. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/runs/active/route.js +2 -2
  231. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  232. package/.next/server/app/api/runs/active/route_client-reference-manifest.js +1 -1
  233. package/.next/server/app/api/setup/ai-cli/route.js +3 -0
  234. package/.next/server/app/api/setup/ai-cli/route.js.nft.json +1 -0
  235. package/.next/server/app/api/setup/ai-cli/route_client-reference-manifest.js +1 -0
  236. package/.next/server/app/api/statistics/route.js +2 -0
  237. package/.next/server/app/api/statistics/route.js.nft.json +1 -0
  238. package/.next/server/app/api/statistics/route_client-reference-manifest.js +1 -0
  239. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/telemetry/daily-active/route.js +1 -1
  241. package/.next/server/app/api/telemetry/daily-active/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/waves/route.js +1 -1
  244. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  245. package/.next/server/app/api/waves/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  247. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  248. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/automation/triggers/page.js +2 -0
  250. package/.next/server/app/automation/triggers/page.js.nft.json +1 -0
  251. package/.next/server/app/automation/triggers/page_client-reference-manifest.js +1 -0
  252. package/.next/server/app/automation/triggers.html +1 -0
  253. package/.next/server/app/automation/triggers.meta +7 -0
  254. package/.next/server/app/automation/triggers.rsc +23 -0
  255. package/.next/server/app/automation/waves/page.js +2 -0
  256. package/.next/server/app/automation/waves/page.js.nft.json +1 -0
  257. package/.next/server/app/automation/waves/page_client-reference-manifest.js +1 -0
  258. package/.next/server/app/automation/waves.html +1 -0
  259. package/.next/server/app/automation/waves.meta +7 -0
  260. package/.next/server/app/automation/waves.rsc +22 -0
  261. package/.next/server/app/chat/page.js +6 -58
  262. package/.next/server/app/chat/page.js.nft.json +1 -1
  263. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  264. package/.next/server/app/chat.html +1 -1
  265. package/.next/server/app/chat.rsc +7 -6
  266. package/.next/server/app/docs/page.js +3 -4
  267. package/.next/server/app/docs/page.js.nft.json +1 -1
  268. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  269. package/.next/server/app/docs.html +1 -1
  270. package/.next/server/app/docs.rsc +6 -6
  271. package/.next/server/app/executions/page.js +2 -3
  272. package/.next/server/app/executions/page.js.nft.json +1 -1
  273. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  274. package/.next/server/app/executions.html +1 -1
  275. package/.next/server/app/executions.rsc +7 -6
  276. package/.next/server/app/flows/page.js +3 -3
  277. package/.next/server/app/flows/page.js.nft.json +1 -1
  278. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  279. package/.next/server/app/flows.html +1 -1
  280. package/.next/server/app/flows.rsc +7 -7
  281. package/.next/server/app/index.html +1 -1
  282. package/.next/server/app/index.rsc +6 -6
  283. package/.next/server/app/mcp/page.js +6 -57
  284. package/.next/server/app/mcp/page.js.nft.json +1 -1
  285. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  286. package/.next/server/app/mcp-flows/route.js +2 -1
  287. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  288. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  289. package/.next/server/app/mcp-proxy/[server]/route.js +2 -1
  290. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  291. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  292. package/.next/server/app/mcp.html +1 -1
  293. package/.next/server/app/mcp.rsc +7 -6
  294. package/.next/server/app/models/page.js +64 -2
  295. package/.next/server/app/models/page.js.nft.json +1 -1
  296. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  297. package/.next/server/app/packages/page.js +2 -2
  298. package/.next/server/app/packages/page.js.nft.json +1 -1
  299. package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
  300. package/.next/server/app/packages.html +1 -1
  301. package/.next/server/app/packages.rsc +6 -6
  302. package/.next/server/app/page.js +3 -4
  303. package/.next/server/app/page.js.nft.json +1 -1
  304. package/.next/server/app/page_client-reference-manifest.js +1 -1
  305. package/.next/server/app/settings/page.js +2 -2
  306. package/.next/server/app/settings/page.js.nft.json +1 -1
  307. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  308. package/.next/server/app/settings.html +1 -1
  309. package/.next/server/app/settings.rsc +6 -6
  310. package/.next/server/app/statistics/page.js +54 -0
  311. package/.next/server/app/statistics/page.js.nft.json +1 -0
  312. package/.next/server/app/statistics/page_client-reference-manifest.js +1 -0
  313. package/.next/server/app/statistics.html +1 -0
  314. package/.next/server/app/statistics.meta +7 -0
  315. package/.next/server/app/statistics.rsc +22 -0
  316. package/.next/server/app/v1/chat/completions/route.js +1 -1
  317. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  318. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  319. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +2 -2
  320. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  321. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  322. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -2
  323. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  324. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  325. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  326. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  327. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  328. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  329. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  330. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  331. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +2 -2
  332. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  333. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  334. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +3 -3
  335. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  336. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  337. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +2 -2
  338. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -1
  339. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route_client-reference-manifest.js +1 -1
  340. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js +1 -1
  341. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js.nft.json +1 -1
  342. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route_client-reference-manifest.js +1 -1
  343. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
  344. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js.nft.json +1 -1
  345. package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route_client-reference-manifest.js +1 -1
  346. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  347. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  348. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  349. package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js +2 -0
  350. package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js.nft.json +1 -0
  351. package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route_client-reference-manifest.js +1 -0
  352. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -2
  353. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  354. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  355. package/.next/server/app/v1/chat/conversations/route.js +2 -2
  356. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  357. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  358. package/.next/server/app/v1/chat/events/route.js +6 -6
  359. package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
  360. package/.next/server/app/v1/chat/events/route_client-reference-manifest.js +1 -1
  361. package/.next/server/app/v1/models/route.js +2 -2
  362. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  363. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  364. package/.next/server/app/waves/page.js +2 -4
  365. package/.next/server/app/waves/page.js.nft.json +1 -1
  366. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  367. package/.next/server/app/waves.html +1 -1
  368. package/.next/server/app/waves.rsc +6 -6
  369. package/.next/server/app-paths-manifest.json +42 -26
  370. package/.next/server/chunks/1227.js +1 -1
  371. package/.next/server/chunks/1314.js +1 -1
  372. package/.next/server/chunks/1403.js +3 -0
  373. package/.next/server/chunks/{180.js → 1532.js} +1 -1
  374. package/.next/server/chunks/1539.js +1 -0
  375. package/.next/server/chunks/1662.js +2 -0
  376. package/.next/server/chunks/1805.js +1 -1
  377. package/.next/server/chunks/1925.js +1 -1
  378. package/.next/server/chunks/2069.js +1 -0
  379. package/.next/server/chunks/227.js +1 -1
  380. package/.next/server/chunks/2372.js +2 -2
  381. package/.next/server/chunks/2446.js +1 -0
  382. package/.next/server/chunks/2828.js +2 -0
  383. package/.next/server/chunks/2949.js +1 -0
  384. package/.next/server/chunks/{6034.js → 300.js} +15 -15
  385. package/.next/server/chunks/3032.js +29 -0
  386. package/.next/server/chunks/3206.js +2 -0
  387. package/.next/server/chunks/3262.js +90 -0
  388. package/.next/server/chunks/3418.js +1 -0
  389. package/.next/server/chunks/3945.js +10 -0
  390. package/.next/server/chunks/{6967.js → 3954.js} +3 -3
  391. package/.next/server/chunks/3963.js +6 -0
  392. package/.next/server/chunks/3991.js +2 -0
  393. package/.next/server/chunks/4265.js +1 -1
  394. package/.next/server/chunks/4306.js +1 -1
  395. package/.next/server/chunks/4671.js +1 -1
  396. package/.next/server/chunks/4681.js +1 -1
  397. package/.next/server/chunks/4771.js +2 -2
  398. package/.next/server/chunks/5096.js +1 -1
  399. package/.next/server/chunks/5141.js +2 -0
  400. package/.next/server/chunks/519.js +2 -2
  401. package/.next/server/chunks/5444.js +2 -0
  402. package/.next/server/chunks/5446.js +1 -0
  403. package/.next/server/chunks/{7058.js → 5494.js} +2 -2
  404. package/.next/server/chunks/558.js +1 -1
  405. package/.next/server/chunks/5591.js +1 -0
  406. package/.next/server/chunks/{3312.js → 5642.js} +1 -1
  407. package/.next/server/chunks/566.js +2 -0
  408. package/.next/server/chunks/5750.js +1 -0
  409. package/.next/server/chunks/{7519.js → 5807.js} +1 -1
  410. package/.next/server/chunks/5858.js +1 -0
  411. package/.next/server/chunks/5918.js +436 -0
  412. package/.next/server/chunks/5936.js +1 -0
  413. package/.next/server/chunks/6033.js +1 -0
  414. package/.next/server/chunks/6226.js +4 -4
  415. package/.next/server/chunks/6607.js +1 -0
  416. package/.next/server/chunks/6687.js +1 -0
  417. package/.next/server/chunks/701.js +2 -2
  418. package/.next/server/chunks/7031.js +1 -0
  419. package/.next/server/chunks/7147.js +1 -0
  420. package/.next/server/chunks/7480.js +2 -0
  421. package/.next/server/chunks/{8284.js → 7498.js} +2 -2
  422. package/.next/server/chunks/7506.js +2 -2
  423. package/.next/server/chunks/7508.js +5 -0
  424. package/.next/server/chunks/7628.js +1 -1
  425. package/.next/server/chunks/7630.js +1 -1
  426. package/.next/server/chunks/773.js +9 -0
  427. package/.next/server/chunks/7821.js +1 -1
  428. package/.next/server/chunks/7883.js +1 -0
  429. package/.next/server/chunks/7969.js +1 -1
  430. package/.next/server/chunks/8001.js +1 -1
  431. package/.next/server/chunks/8092.js +1 -1
  432. package/.next/server/chunks/8291.js +1 -0
  433. package/.next/server/chunks/8598.js +1 -0
  434. package/.next/server/chunks/8645.js +1 -1
  435. package/.next/server/chunks/{3489.js → 8730.js} +1 -1
  436. package/.next/server/chunks/8897.js +1 -0
  437. package/.next/server/chunks/8903.js +4 -0
  438. package/.next/server/chunks/8940.js +1 -0
  439. package/.next/server/chunks/9088.js +6 -0
  440. package/.next/server/chunks/9543.js +8 -0
  441. package/.next/server/chunks/9624.js +136 -0
  442. package/.next/server/functions-config-manifest.json +4 -3
  443. package/.next/server/instrumentation.js +1 -1
  444. package/.next/server/instrumentation.js.nft.json +1 -1
  445. package/.next/server/middleware-build-manifest.js +1 -1
  446. package/.next/server/middleware-manifest.json +1 -1
  447. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  448. package/.next/server/pages/404.html +1 -1
  449. package/.next/server/pages/500.html +1 -1
  450. package/.next/server/server-reference-manifest.js +1 -1
  451. package/.next/server/server-reference-manifest.json +1 -1
  452. package/.next/static/b1aMk0634gkkiunttd1SQ/_buildManifest.js +1 -0
  453. package/.next/static/chunks/1161-19176c3e7c655121.js +1 -0
  454. package/.next/static/chunks/1521-1c98c9a56726e053.js +1 -0
  455. package/.next/static/chunks/155-12f2a537db5dacec.js +1 -0
  456. package/.next/static/chunks/1576.bc6ae6c9e6d939d8.js +1 -0
  457. package/.next/static/chunks/1871-dd8c10ed9d37100b.js +1 -0
  458. package/.next/static/chunks/1983-242862b3dc022a26.js +1 -0
  459. package/.next/static/chunks/2005.300528b5119c2d38.js +1 -0
  460. package/.next/static/chunks/2141-dba0d13715fe1a28.js +1 -0
  461. package/.next/static/chunks/2498-4f7f5de1cac6feba.js +1 -0
  462. package/.next/static/chunks/2499-92cd97ce4993999f.js +1 -0
  463. package/.next/static/chunks/3272-42d1acae08d1ef0a.js +1 -0
  464. package/.next/static/chunks/3303-febfba58226aebed.js +1 -0
  465. package/.next/static/chunks/{361.bb75b03b740930cd.js → 361.51d642c530c84295.js} +1 -1
  466. package/.next/static/chunks/3731-64070760ae44448f.js +1 -0
  467. package/.next/static/chunks/3776.72638b35ce9bb874.js +1 -0
  468. package/.next/static/chunks/3816-807978463638bb71.js +1 -0
  469. package/.next/static/chunks/4122-d82fad8d1fca26d6.js +1 -0
  470. package/.next/static/chunks/4123-906362aeb986d6db.js +1 -0
  471. package/.next/static/chunks/4156-3823d1c89c4a7e3d.js +1 -0
  472. package/.next/static/chunks/{4555-c9070f8c79bccfad.js → 4483-00dc5c1b601ec898.js} +3 -3
  473. package/.next/static/chunks/4755-83df83d0dbd97483.js +1 -0
  474. package/.next/static/chunks/4814-31eb5f3b10c651c1.js +1 -0
  475. package/.next/static/chunks/4965.39e24b54c3c6ca58.js +1 -0
  476. package/.next/static/chunks/57-64bab7d5db89c9cc.js +1 -0
  477. package/.next/static/chunks/5954-dd2b25224f389fc0.js +1 -0
  478. package/.next/static/chunks/5962-8c59d06b3ee1c42a.js +1 -0
  479. package/.next/static/chunks/5967-59fde8c214c9ca9f.js +1 -0
  480. package/.next/static/chunks/6417.70056fe81ca21682.js +1 -0
  481. package/.next/static/chunks/6420-25dd04f98f3b34b8.js +1 -0
  482. package/.next/static/chunks/6547-2adc20e1ace927fc.js +1 -0
  483. package/.next/static/chunks/684-289a73150568def2.js +1 -0
  484. package/.next/static/chunks/7203-2704865539fa551d.js +1 -0
  485. package/.next/static/chunks/760-2ad13a61701630da.js +1 -0
  486. package/.next/static/chunks/7711-4b017720ec49c96d.js +1 -0
  487. package/.next/static/chunks/7758-42ab0b9cce1dc0e3.js +1 -0
  488. package/.next/static/chunks/8124-94140ee1dd8ed87c.js +1 -0
  489. package/.next/static/chunks/8135-5b975b9014f8920b.js +1 -0
  490. package/.next/static/chunks/{8198.cd0d3f8429c02862.js → 8198.a9cc35771b354b03.js} +1 -1
  491. package/.next/static/chunks/8326-4915403bc93459d2.js +1 -0
  492. package/.next/static/chunks/8529.b5a43e728bb5bb8a.js +1 -0
  493. package/.next/static/chunks/{6428-951188daa6f74b86.js → 8620-c9fa9d75cdc18a5e.js} +3 -3
  494. package/.next/static/chunks/8853-b80e50cbec6fd13c.js +1 -0
  495. package/.next/static/chunks/8862-0e37dd5488b21c77.js +1 -0
  496. package/.next/static/chunks/889-e64385ddb2259b1b.js +1 -0
  497. package/.next/static/chunks/9001-4c27a608feddb878.js +1 -0
  498. package/.next/static/chunks/9050-fcb7a0c89314acb4.js +1 -0
  499. package/.next/static/chunks/9053-283dd8d615f904a5.js +8 -0
  500. package/.next/static/chunks/9136-9c415453ec02519c.js +1 -0
  501. package/.next/static/chunks/9140.6502327a2c098d33.js +1 -0
  502. package/.next/static/chunks/9195-3c9c4300e7505d9e.js +1 -0
  503. package/.next/static/chunks/9524-b9d2c7e4426edd07.js +1 -0
  504. package/.next/static/chunks/9562-5494feecd8c6f7a3.js +1 -0
  505. package/.next/static/chunks/9611-190b55ade8b3af3c.js +1 -0
  506. package/.next/static/chunks/app/api/approvals/[id]/route-e70b5e2b4e09002b.js +1 -0
  507. package/.next/static/chunks/app/api/approvals/route-e70b5e2b4e09002b.js +1 -0
  508. package/.next/static/chunks/app/api/backup/route-e70b5e2b4e09002b.js +1 -0
  509. package/.next/static/chunks/app/api/browse/route-e70b5e2b4e09002b.js +1 -0
  510. package/.next/static/chunks/app/api/bugs/enhance/route-e70b5e2b4e09002b.js +1 -0
  511. package/.next/static/chunks/app/api/cwd/route-e70b5e2b4e09002b.js +1 -0
  512. package/.next/static/chunks/app/api/encryption/secure/route-e70b5e2b4e09002b.js +1 -0
  513. package/.next/static/chunks/app/api/env/route-e70b5e2b4e09002b.js +1 -0
  514. package/.next/static/chunks/app/api/flow/[id]/convert-process-to-subflow/route-e70b5e2b4e09002b.js +1 -0
  515. package/.next/static/chunks/app/api/flow/[id]/route-e70b5e2b4e09002b.js +1 -0
  516. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-e70b5e2b4e09002b.js +1 -0
  517. package/.next/static/chunks/app/api/flow/[id]/versions/route-e70b5e2b4e09002b.js +1 -0
  518. package/.next/static/chunks/app/api/flow/assist/route-e70b5e2b4e09002b.js +1 -0
  519. package/.next/static/chunks/app/api/flow/compile/route-e70b5e2b4e09002b.js +1 -0
  520. package/.next/static/chunks/app/api/flow/generate/route-e70b5e2b4e09002b.js +1 -0
  521. package/.next/static/chunks/app/api/flow/generator/route-e70b5e2b4e09002b.js +1 -0
  522. package/.next/static/chunks/app/api/flow/improve/route-e70b5e2b4e09002b.js +1 -0
  523. package/.next/static/chunks/app/api/flow/prompt-renderer/route-e70b5e2b4e09002b.js +1 -0
  524. package/.next/static/chunks/app/api/flow/quick-chat/route-e70b5e2b4e09002b.js +1 -0
  525. package/.next/static/chunks/app/api/flow/repair/route-e70b5e2b4e09002b.js +1 -0
  526. package/.next/static/chunks/app/api/flow/route-e70b5e2b4e09002b.js +1 -0
  527. package/.next/static/chunks/app/api/git/route-e70b5e2b4e09002b.js +1 -0
  528. package/.next/static/chunks/app/api/init/route-e70b5e2b4e09002b.js +1 -0
  529. package/.next/static/chunks/app/api/local-models/capability/route-e70b5e2b4e09002b.js +1 -0
  530. package/.next/static/chunks/app/api/local-models/pull/route-e70b5e2b4e09002b.js +1 -0
  531. package/.next/static/chunks/app/api/local-models/suggest/route-e70b5e2b4e09002b.js +1 -0
  532. package/.next/static/chunks/app/api/mcp/app-sandbox/route-e70b5e2b4e09002b.js +1 -0
  533. package/.next/static/chunks/app/api/mcp/cancel/route-e70b5e2b4e09002b.js +1 -0
  534. package/.next/static/chunks/app/api/mcp/flujo/authoring/route-e70b5e2b4e09002b.js +1 -0
  535. package/.next/static/chunks/app/api/mcp/flujo/automation/route-e70b5e2b4e09002b.js +1 -0
  536. package/.next/static/chunks/app/api/mcp/flujo/flows/route-e70b5e2b4e09002b.js +1 -0
  537. package/.next/static/chunks/app/api/mcp/flujo/resources/read/route-e70b5e2b4e09002b.js +1 -0
  538. package/.next/static/chunks/app/api/mcp/flujo/resources/route-e70b5e2b4e09002b.js +1 -0
  539. package/.next/static/chunks/app/api/mcp/flujo/servers/route-e70b5e2b4e09002b.js +1 -0
  540. package/.next/static/chunks/app/api/mcp/flujo/state/route-e70b5e2b4e09002b.js +1 -0
  541. package/.next/static/chunks/app/api/mcp/flujo/tools/route-e70b5e2b4e09002b.js +1 -0
  542. package/.next/static/chunks/app/api/mcp/oauth-capability/route-e70b5e2b4e09002b.js +1 -0
  543. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-e70b5e2b4e09002b.js +1 -0
  544. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-e70b5e2b4e09002b.js +1 -0
  545. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-e70b5e2b4e09002b.js +1 -0
  546. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-e70b5e2b4e09002b.js +1 -0
  547. package/.next/static/chunks/app/api/mcp/servers/[name]/route-e70b5e2b4e09002b.js +1 -0
  548. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-e70b5e2b4e09002b.js +1 -0
  549. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-e70b5e2b4e09002b.js +1 -0
  550. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-e70b5e2b4e09002b.js +1 -0
  551. package/.next/static/chunks/app/api/mcp/servers/route-e70b5e2b4e09002b.js +1 -0
  552. package/.next/static/chunks/app/api/mcp/test-connection/route-e70b5e2b4e09002b.js +1 -0
  553. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-e70b5e2b4e09002b.js +1 -0
  554. package/.next/static/chunks/app/api/mcp-registry/route-e70b5e2b4e09002b.js +1 -0
  555. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-e70b5e2b4e09002b.js +1 -0
  556. package/.next/static/chunks/app/api/model/[id]/route-e70b5e2b4e09002b.js +1 -0
  557. package/.next/static/chunks/app/api/model/provider/route-e70b5e2b4e09002b.js +1 -0
  558. package/.next/static/chunks/app/api/model/route-e70b5e2b4e09002b.js +1 -0
  559. package/.next/static/chunks/app/api/model/test/route-e70b5e2b4e09002b.js +1 -0
  560. package/.next/static/chunks/app/api/oauth/callback/route-e70b5e2b4e09002b.js +1 -0
  561. package/.next/static/chunks/app/api/oauth/initiate/route-e70b5e2b4e09002b.js +1 -0
  562. package/.next/static/chunks/app/api/oauth/reset/route-e70b5e2b4e09002b.js +1 -0
  563. package/.next/static/chunks/app/api/packages/build/route-e70b5e2b4e09002b.js +1 -0
  564. package/.next/static/chunks/app/api/packages/derive-secrets/route-e70b5e2b4e09002b.js +1 -0
  565. package/.next/static/chunks/app/api/packages/install/route-e70b5e2b4e09002b.js +1 -0
  566. package/.next/static/chunks/app/api/packages/install/status/route-e70b5e2b4e09002b.js +1 -0
  567. package/.next/static/chunks/app/api/packages/installed/route-e70b5e2b4e09002b.js +1 -0
  568. package/.next/static/chunks/app/api/packages/resolve/route-e70b5e2b4e09002b.js +1 -0
  569. package/.next/static/chunks/app/api/packages/scan-targets/route-e70b5e2b4e09002b.js +1 -0
  570. package/.next/static/chunks/app/api/packages/search/route-e70b5e2b4e09002b.js +1 -0
  571. package/.next/static/chunks/app/api/packages/uninstall/route-e70b5e2b4e09002b.js +1 -0
  572. package/.next/static/chunks/app/api/planned-executions/[id]/route-e70b5e2b4e09002b.js +1 -0
  573. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-e70b5e2b4e09002b.js +1 -0
  574. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-e70b5e2b4e09002b.js +1 -0
  575. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-e70b5e2b4e09002b.js +1 -0
  576. package/.next/static/chunks/app/api/planned-executions/reconcile/route-e70b5e2b4e09002b.js +1 -0
  577. package/.next/static/chunks/app/api/planned-executions/route-e70b5e2b4e09002b.js +1 -0
  578. package/.next/static/chunks/app/api/registry/auth/resend/route-e70b5e2b4e09002b.js +1 -0
  579. package/.next/static/chunks/app/api/registry/auth/reset/route-e70b5e2b4e09002b.js +1 -0
  580. package/.next/static/chunks/app/api/registry/auth/route-e70b5e2b4e09002b.js +1 -0
  581. package/.next/static/chunks/app/api/registry/feedback/route-e70b5e2b4e09002b.js +1 -0
  582. package/.next/static/chunks/app/api/registry/oauth/callback/route-e70b5e2b4e09002b.js +1 -0
  583. package/.next/static/chunks/app/api/registry/oauth/initiate/route-e70b5e2b4e09002b.js +1 -0
  584. package/.next/static/chunks/app/api/registry/packages/route-e70b5e2b4e09002b.js +1 -0
  585. package/.next/static/chunks/app/api/registry/publish/route-e70b5e2b4e09002b.js +1 -0
  586. package/.next/static/chunks/app/api/registry/settings/route-e70b5e2b4e09002b.js +1 -0
  587. package/.next/static/chunks/app/api/restore/route-e70b5e2b4e09002b.js +1 -0
  588. package/.next/static/chunks/app/api/runs/active/route-e70b5e2b4e09002b.js +1 -0
  589. package/.next/static/chunks/app/api/setup/ai-cli/route-e70b5e2b4e09002b.js +1 -0
  590. package/.next/static/chunks/app/api/statistics/route-e70b5e2b4e09002b.js +1 -0
  591. package/.next/static/chunks/app/api/storage/route-e70b5e2b4e09002b.js +1 -0
  592. package/.next/static/chunks/app/api/telemetry/daily-active/route-e70b5e2b4e09002b.js +1 -0
  593. package/.next/static/chunks/app/api/update/route-e70b5e2b4e09002b.js +1 -0
  594. package/.next/static/chunks/app/api/waves/route-e70b5e2b4e09002b.js +1 -0
  595. package/.next/static/chunks/app/api/webhooks/[id]/route-e70b5e2b4e09002b.js +1 -0
  596. package/.next/static/chunks/app/automation/triggers/page-594a6294c58344bf.js +1 -0
  597. package/.next/static/chunks/app/automation/waves/page-ce2fef4996cad8e6.js +1 -0
  598. package/.next/static/chunks/app/chat/page-203cb7bf21638ada.js +1 -0
  599. package/.next/static/chunks/app/docs/page-c466a58caf5e3336.js +1 -0
  600. package/.next/static/chunks/app/executions/page-fcc848de86714386.js +1 -0
  601. package/.next/static/chunks/app/flows/page-172c759ca81ba02f.js +1 -0
  602. package/.next/static/chunks/app/layout-a6ca531683a518a7.js +1 -0
  603. package/.next/static/chunks/app/mcp/page-0a96e6b30e45b1e6.js +1 -0
  604. package/.next/static/chunks/app/mcp-flows/route-e70b5e2b4e09002b.js +1 -0
  605. package/.next/static/chunks/app/mcp-proxy/[server]/route-e70b5e2b4e09002b.js +1 -0
  606. package/.next/static/chunks/app/models/error-1964203c5c6e7d0e.js +1 -0
  607. package/.next/static/chunks/app/models/{loading-1687ae86584f5b1b.js → loading-0cdcf9bae7d3b8f3.js} +1 -1
  608. package/.next/static/chunks/app/models/page-ad1cbea6d3324966.js +1 -0
  609. package/.next/static/chunks/app/packages/page-dda48425be9fc137.js +1 -0
  610. package/.next/static/chunks/app/page-04189aa1b1318c2d.js +1 -0
  611. package/.next/static/chunks/app/settings/page-906c229c87011ead.js +1 -0
  612. package/.next/static/chunks/app/statistics/page-9b13a95549f438c0.js +1 -0
  613. package/.next/static/chunks/app/v1/chat/completions/route-e70b5e2b4e09002b.js +1 -0
  614. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-e70b5e2b4e09002b.js +1 -0
  615. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-e70b5e2b4e09002b.js +1 -0
  616. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-e70b5e2b4e09002b.js +1 -0
  617. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-e70b5e2b4e09002b.js +1 -0
  618. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-e70b5e2b4e09002b.js +1 -0
  619. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-e70b5e2b4e09002b.js +1 -0
  620. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-e70b5e2b4e09002b.js +1 -0
  621. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route-e70b5e2b4e09002b.js +1 -0
  622. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-e70b5e2b4e09002b.js +1 -0
  623. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-e70b5e2b4e09002b.js +1 -0
  624. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/revert/route-e70b5e2b4e09002b.js +1 -0
  625. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-e70b5e2b4e09002b.js +1 -0
  626. package/.next/static/chunks/app/v1/chat/conversations/route-e70b5e2b4e09002b.js +1 -0
  627. package/.next/static/chunks/app/v1/chat/events/route-e70b5e2b4e09002b.js +1 -0
  628. package/.next/static/chunks/app/v1/models/route-e70b5e2b4e09002b.js +1 -0
  629. package/.next/static/chunks/app/waves/page-5b53af3eb9409414.js +1 -0
  630. package/.next/static/chunks/webpack-9fbd3587b9ef4dca.js +1 -0
  631. package/.next/static/css/400b1b927c3ffaf6.css +1 -0
  632. package/.next/static/css/82efa7d39b03a714.css +1 -0
  633. package/.next/trace +11 -10
  634. package/.next/types/app/api/flow/[id]/convert-process-to-subflow/route.ts +347 -0
  635. package/.next/types/app/api/flow/assist/route.ts +347 -0
  636. package/.next/types/app/api/mcp/flujo/authoring/route.ts +347 -0
  637. package/.next/types/app/api/mcp/flujo/automation/route.ts +347 -0
  638. package/.next/types/app/api/mcp/flujo/flows/route.ts +347 -0
  639. package/.next/types/app/api/mcp/flujo/resources/read/route.ts +347 -0
  640. package/.next/types/app/api/mcp/flujo/resources/route.ts +347 -0
  641. package/.next/types/app/api/mcp/flujo/servers/route.ts +347 -0
  642. package/.next/types/app/api/mcp/flujo/state/route.ts +347 -0
  643. package/.next/types/app/api/mcp/flujo/tools/route.ts +347 -0
  644. package/.next/types/app/api/setup/ai-cli/route.ts +347 -0
  645. package/.next/types/app/api/statistics/route.ts +347 -0
  646. package/.next/types/app/{layout.ts → automation/triggers/page.ts} +6 -6
  647. package/.next/types/app/{waves → automation/waves}/page.ts +3 -3
  648. package/.next/types/app/{executions → statistics}/page.ts +3 -3
  649. package/.next/types/app/v1/chat/conversations/[conversationId]/revert/route.ts +347 -0
  650. package/.next/types/routes.d.ts +18 -2
  651. package/.next/types/validator.ts +144 -0
  652. package/README.md +79 -52
  653. package/bin/flujo.mjs +42 -5
  654. package/mcp-servers/README.md +94 -0
  655. package/mcp-servers/bash/dist/index.d.ts +3 -0
  656. package/mcp-servers/bash/dist/index.js +85 -0
  657. package/mcp-servers/bash/dist/index.js.map +1 -0
  658. package/mcp-servers/bash/dist/resources.d.ts +13 -0
  659. package/mcp-servers/bash/dist/resources.js +298 -0
  660. package/mcp-servers/bash/dist/resources.js.map +1 -0
  661. package/mcp-servers/bash/dist/shared.d.ts +24 -0
  662. package/mcp-servers/bash/dist/shared.js +161 -0
  663. package/mcp-servers/bash/dist/shared.js.map +1 -0
  664. package/mcp-servers/bash/dist/tools.d.ts +59 -0
  665. package/mcp-servers/bash/dist/tools.js +1493 -0
  666. package/mcp-servers/bash/dist/tools.js.map +1 -0
  667. package/mcp-servers/bash/package.json +33 -0
  668. package/mcp-servers/browser/dist/index.d.ts +4 -0
  669. package/mcp-servers/browser/dist/index.js +34 -0
  670. package/mcp-servers/browser/dist/index.js.map +1 -0
  671. package/mcp-servers/browser/dist/resources.d.ts +6 -0
  672. package/mcp-servers/browser/dist/resources.js +78 -0
  673. package/mcp-servers/browser/dist/resources.js.map +1 -0
  674. package/mcp-servers/browser/dist/runtime.d.ts +26 -0
  675. package/mcp-servers/browser/dist/runtime.js +343 -0
  676. package/mcp-servers/browser/dist/runtime.js.map +1 -0
  677. package/mcp-servers/browser/dist/tools.d.ts +3 -0
  678. package/mcp-servers/browser/dist/tools.js +283 -0
  679. package/mcp-servers/browser/dist/tools.js.map +1 -0
  680. package/mcp-servers/browser/package.json +31 -0
  681. package/mcp-servers/filesystem/dist/index.d.ts +3 -0
  682. package/mcp-servers/filesystem/dist/index.js +56 -0
  683. package/mcp-servers/filesystem/dist/index.js.map +1 -0
  684. package/mcp-servers/filesystem/dist/resources.d.ts +49 -0
  685. package/{.next/server/chunks/9724.js → mcp-servers/filesystem/dist/resources.js} +592 -391
  686. package/mcp-servers/filesystem/dist/resources.js.map +1 -0
  687. package/mcp-servers/filesystem/dist/shared.d.ts +24 -0
  688. package/mcp-servers/filesystem/dist/shared.js +161 -0
  689. package/mcp-servers/filesystem/dist/shared.js.map +1 -0
  690. package/mcp-servers/filesystem/dist/tools.d.ts +3 -0
  691. package/mcp-servers/filesystem/dist/tools.js +1229 -0
  692. package/mcp-servers/filesystem/dist/tools.js.map +1 -0
  693. package/mcp-servers/filesystem/package.json +30 -0
  694. package/mcp-servers/flujo/dist/client.d.ts +12 -0
  695. package/mcp-servers/flujo/dist/client.js +144 -0
  696. package/mcp-servers/flujo/dist/client.js.map +1 -0
  697. package/mcp-servers/flujo/dist/index.d.ts +2 -0
  698. package/mcp-servers/flujo/dist/index.js +31 -0
  699. package/mcp-servers/flujo/dist/index.js.map +1 -0
  700. package/mcp-servers/flujo/package.json +29 -0
  701. package/mcp-servers/mcp-whatsapp-web/dist/auth/link-page.d.ts +11 -0
  702. package/mcp-servers/mcp-whatsapp-web/dist/auth/link-page.js +161 -0
  703. package/mcp-servers/mcp-whatsapp-web/dist/auth/link-page.js.map +1 -0
  704. package/mcp-servers/mcp-whatsapp-web/dist/auth/oauth-provider.d.ts +53 -0
  705. package/mcp-servers/mcp-whatsapp-web/dist/auth/oauth-provider.js +206 -0
  706. package/mcp-servers/mcp-whatsapp-web/dist/auth/oauth-provider.js.map +1 -0
  707. package/mcp-servers/mcp-whatsapp-web/dist/index.d.ts +2 -0
  708. package/mcp-servers/mcp-whatsapp-web/dist/index.js +128 -0
  709. package/mcp-servers/mcp-whatsapp-web/dist/index.js.map +1 -0
  710. package/mcp-servers/mcp-whatsapp-web/dist/server.d.ts +28 -0
  711. package/mcp-servers/mcp-whatsapp-web/dist/server.js +268 -0
  712. package/mcp-servers/mcp-whatsapp-web/dist/server.js.map +1 -0
  713. package/mcp-servers/mcp-whatsapp-web/dist/services/whatsapp.d.ts +149 -0
  714. package/mcp-servers/mcp-whatsapp-web/dist/services/whatsapp.js +818 -0
  715. package/mcp-servers/mcp-whatsapp-web/dist/services/whatsapp.js.map +1 -0
  716. package/mcp-servers/mcp-whatsapp-web/dist/tools/auth.d.ts +8 -0
  717. package/mcp-servers/mcp-whatsapp-web/dist/tools/auth.js +232 -0
  718. package/mcp-servers/mcp-whatsapp-web/dist/tools/auth.js.map +1 -0
  719. package/mcp-servers/mcp-whatsapp-web/dist/tools/chats.d.ts +3 -0
  720. package/mcp-servers/mcp-whatsapp-web/dist/tools/chats.js +90 -0
  721. package/mcp-servers/mcp-whatsapp-web/dist/tools/chats.js.map +1 -0
  722. package/mcp-servers/mcp-whatsapp-web/dist/tools/contacts.d.ts +3 -0
  723. package/mcp-servers/mcp-whatsapp-web/dist/tools/contacts.js +65 -0
  724. package/mcp-servers/mcp-whatsapp-web/dist/tools/contacts.js.map +1 -0
  725. package/mcp-servers/mcp-whatsapp-web/dist/tools/media.d.ts +3 -0
  726. package/mcp-servers/mcp-whatsapp-web/dist/tools/media.js +245 -0
  727. package/mcp-servers/mcp-whatsapp-web/dist/tools/media.js.map +1 -0
  728. package/mcp-servers/mcp-whatsapp-web/dist/tools/messages.d.ts +3 -0
  729. package/mcp-servers/mcp-whatsapp-web/dist/tools/messages.js +141 -0
  730. package/mcp-servers/mcp-whatsapp-web/dist/tools/messages.js.map +1 -0
  731. package/mcp-servers/mcp-whatsapp-web/dist/types/index.d.ts +1 -0
  732. package/mcp-servers/mcp-whatsapp-web/dist/types/index.js +3 -0
  733. package/mcp-servers/mcp-whatsapp-web/dist/types/index.js.map +1 -0
  734. package/mcp-servers/mcp-whatsapp-web/dist/types/whatsapp.d.ts +16 -0
  735. package/mcp-servers/mcp-whatsapp-web/dist/types/whatsapp.js +5 -0
  736. package/mcp-servers/mcp-whatsapp-web/dist/types/whatsapp.js.map +1 -0
  737. package/mcp-servers/mcp-whatsapp-web/dist/utils/audio.d.ts +23 -0
  738. package/mcp-servers/mcp-whatsapp-web/dist/utils/audio.js +99 -0
  739. package/mcp-servers/mcp-whatsapp-web/dist/utils/audio.js.map +1 -0
  740. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-finder.d.ts +12 -0
  741. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-finder.js +72 -0
  742. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-finder.js.map +1 -0
  743. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-process-manager.d.ts +84 -0
  744. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-process-manager.js +297 -0
  745. package/mcp-servers/mcp-whatsapp-web/dist/utils/browser-process-manager.js.map +1 -0
  746. package/mcp-servers/mcp-whatsapp-web/dist/utils/cleanup-browsers.d.ts +12 -0
  747. package/mcp-servers/mcp-whatsapp-web/dist/utils/cleanup-browsers.js +141 -0
  748. package/mcp-servers/mcp-whatsapp-web/dist/utils/cleanup-browsers.js.map +1 -0
  749. package/mcp-servers/mcp-whatsapp-web/dist/utils/logger.d.ts +2 -0
  750. package/mcp-servers/mcp-whatsapp-web/dist/utils/logger.js +69 -0
  751. package/mcp-servers/mcp-whatsapp-web/dist/utils/logger.js.map +1 -0
  752. package/mcp-servers/mcp-whatsapp-web/package.json +75 -0
  753. package/mcp-servers/mcp-windows-desktop-automation/dist/index.d.ts +8 -0
  754. package/mcp-servers/mcp-windows-desktop-automation/dist/index.js +95 -0
  755. package/mcp-servers/mcp-windows-desktop-automation/dist/index.js.map +1 -0
  756. package/mcp-servers/mcp-windows-desktop-automation/dist/prompts/index.d.ts +8 -0
  757. package/mcp-servers/mcp-windows-desktop-automation/dist/prompts/index.js +195 -0
  758. package/mcp-servers/mcp-windows-desktop-automation/dist/prompts/index.js.map +1 -0
  759. package/mcp-servers/mcp-windows-desktop-automation/dist/resources/index.d.ts +8 -0
  760. package/mcp-servers/mcp-windows-desktop-automation/dist/resources/index.js +214 -0
  761. package/mcp-servers/mcp-windows-desktop-automation/dist/resources/index.js.map +1 -0
  762. package/mcp-servers/mcp-windows-desktop-automation/dist/server/server.d.ts +21 -0
  763. package/mcp-servers/mcp-windows-desktop-automation/dist/server/server.js +108 -0
  764. package/mcp-servers/mcp-windows-desktop-automation/dist/server/server.js.map +1 -0
  765. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/control.d.ts +8 -0
  766. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/control.js +301 -0
  767. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/control.js.map +1 -0
  768. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/index.d.ts +8 -0
  769. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/index.js +22 -0
  770. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/index.js.map +1 -0
  771. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/keyboard.d.ts +8 -0
  772. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/keyboard.js +146 -0
  773. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/keyboard.js.map +1 -0
  774. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/mouse.d.ts +8 -0
  775. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/mouse.js +179 -0
  776. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/mouse.js.map +1 -0
  777. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/process.d.ts +8 -0
  778. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/process.js +236 -0
  779. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/process.js.map +1 -0
  780. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/window.d.ts +8 -0
  781. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/window.js +300 -0
  782. package/mcp-servers/mcp-windows-desktop-automation/dist/tools/window.js.map +1 -0
  783. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/logger/logger.d.ts +50 -0
  784. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/logger/logger.js +78 -0
  785. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/logger/logger.js.map +1 -0
  786. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/types.d.ts +51 -0
  787. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/types.js +61 -0
  788. package/mcp-servers/mcp-windows-desktop-automation/dist/utils/types.js.map +1 -0
  789. package/mcp-servers/mcp-windows-desktop-automation/package.json +38 -0
  790. package/mcp-servers/patchright-mcp/package.json +32 -0
  791. package/mcp-servers/reddit-mcp-server/package.json +88 -0
  792. package/mcp-servers/servers/package.json +31 -0
  793. package/mcp-servers/shared/dist/index.d.ts +24 -0
  794. package/mcp-servers/shared/dist/index.js +161 -0
  795. package/mcp-servers/shared/dist/index.js.map +1 -0
  796. package/mcp-servers/shared/package.json +26 -0
  797. package/package.json +119 -99
  798. package/scripts/launch-next.mjs +13 -1
  799. package/.next/server/chunks/1114.js +0 -1
  800. package/.next/server/chunks/1439.js +0 -1
  801. package/.next/server/chunks/1578.js +0 -5
  802. package/.next/server/chunks/1634.js +0 -1
  803. package/.next/server/chunks/166.js +0 -5
  804. package/.next/server/chunks/1664.js +0 -2
  805. package/.next/server/chunks/1690.js +0 -1
  806. package/.next/server/chunks/2859.js +0 -1
  807. package/.next/server/chunks/3629.js +0 -1
  808. package/.next/server/chunks/3653.js +0 -2
  809. package/.next/server/chunks/366.js +0 -2
  810. package/.next/server/chunks/3717.js +0 -1
  811. package/.next/server/chunks/3935.js +0 -4
  812. package/.next/server/chunks/3984.js +0 -9
  813. package/.next/server/chunks/4013.js +0 -1
  814. package/.next/server/chunks/4436.js +0 -1
  815. package/.next/server/chunks/4466.js +0 -1
  816. package/.next/server/chunks/4551.js +0 -6
  817. package/.next/server/chunks/4663.js +0 -1
  818. package/.next/server/chunks/4822.js +0 -1
  819. package/.next/server/chunks/5200.js +0 -1
  820. package/.next/server/chunks/5285.js +0 -1
  821. package/.next/server/chunks/5309.js +0 -78
  822. package/.next/server/chunks/544.js +0 -136
  823. package/.next/server/chunks/5463.js +0 -1
  824. package/.next/server/chunks/5544.js +0 -5
  825. package/.next/server/chunks/5880.js +0 -1
  826. package/.next/server/chunks/6747.js +0 -435
  827. package/.next/server/chunks/6793.js +0 -1
  828. package/.next/server/chunks/7069.js +0 -6
  829. package/.next/server/chunks/7104.js +0 -1
  830. package/.next/server/chunks/7634.js +0 -4
  831. package/.next/server/chunks/793.js +0 -403
  832. package/.next/server/chunks/7965.js +0 -39
  833. package/.next/server/chunks/7993.js +0 -2
  834. package/.next/server/chunks/8356.js +0 -1
  835. package/.next/server/chunks/8387.js +0 -1
  836. package/.next/server/chunks/87.js +0 -1
  837. package/.next/server/chunks/9085.js +0 -2
  838. package/.next/server/chunks/9174.js +0 -1
  839. package/.next/server/chunks/9235.js +0 -29
  840. package/.next/server/chunks/94.js +0 -1
  841. package/.next/server/chunks/9983.js +0 -2
  842. package/.next/static/chunks/1871-14c3e63ca865d85e.js +0 -1
  843. package/.next/static/chunks/2003-f826c607d609d1fa.js +0 -1
  844. package/.next/static/chunks/2005.4eea65c00d9a29cd.js +0 -1
  845. package/.next/static/chunks/2318-13ef0d3048e97834.js +0 -1
  846. package/.next/static/chunks/3077-565833c67440a7fa.js +0 -1
  847. package/.next/static/chunks/3217.260785c2198d1e9d.js +0 -1
  848. package/.next/static/chunks/3272-fd8d59523f61da96.js +0 -1
  849. package/.next/static/chunks/3429-34fb1a84aed96703.js +0 -1
  850. package/.next/static/chunks/3545.353a62a68d3b7fd1.js +0 -1
  851. package/.next/static/chunks/3659-0ab9580d5ee5deea.js +0 -1
  852. package/.next/static/chunks/3772-20197853c04a6993.js +0 -1
  853. package/.next/static/chunks/422-61b173ba64cf0c94.js +0 -1
  854. package/.next/static/chunks/4523-a540747aa2ed34e8.js +0 -1
  855. package/.next/static/chunks/454.5fc2f8eef98483e3.js +0 -1
  856. package/.next/static/chunks/488-7ab54d8ae2b4b550.js +0 -1
  857. package/.next/static/chunks/4919-6c8a48e3cc642349.js +0 -1
  858. package/.next/static/chunks/4929-150b03595474c9d8.js +0 -1
  859. package/.next/static/chunks/5733-1419095a28c1ddc3.js +0 -1
  860. package/.next/static/chunks/639-90ed75d402dc872b.js +0 -1
  861. package/.next/static/chunks/6404-86615a5f5ce5c00f.js +0 -1
  862. package/.next/static/chunks/6430-8c6dac4a758119f2.js +0 -1
  863. package/.next/static/chunks/6539-118a0084e0bfae34.js +0 -1
  864. package/.next/static/chunks/7264-91d1fa99abcd91ad.js +0 -1
  865. package/.next/static/chunks/7328-c8a51bb8c7470d77.js +0 -1
  866. package/.next/static/chunks/7391-5a0abd837ba241f5.js +0 -1
  867. package/.next/static/chunks/7445-d8a8be6e451c522e.js +0 -1
  868. package/.next/static/chunks/7561-2b366ddcbc3cc0ec.js +0 -1
  869. package/.next/static/chunks/8124-4a80e3201b8e51b0.js +0 -1
  870. package/.next/static/chunks/8345.bc5534ec13abc9ee.js +0 -1
  871. package/.next/static/chunks/8404-5aa8ea49197b98b8.js +0 -1
  872. package/.next/static/chunks/8405.a425f94b6b13d2be.js +0 -1
  873. package/.next/static/chunks/8470-72cf748472d4d501.js +0 -1
  874. package/.next/static/chunks/8551-a28272acfda62ac9.js +0 -1
  875. package/.next/static/chunks/8650-f879564a0ed89bc3.js +0 -1
  876. package/.next/static/chunks/8989-5fa9c7c670eb9a1a.js +0 -1
  877. package/.next/static/chunks/9164-de1d167d87614a6d.js +0 -1
  878. package/.next/static/chunks/9195.294887f083b1a11b.js +0 -1
  879. package/.next/static/chunks/9203-786f457ecf60b49c.js +0 -1
  880. package/.next/static/chunks/9244-3281f7fd02003a2c.js +0 -1
  881. package/.next/static/chunks/9345-11d6e48d892b1862.js +0 -8
  882. package/.next/static/chunks/9562-f8371be653010627.js +0 -1
  883. package/.next/static/chunks/9581-6d2523fd68a5e3c4.js +0 -1
  884. package/.next/static/chunks/9611-9867e6e8e65172ec.js +0 -1
  885. package/.next/static/chunks/9951-566fc6b05c12209e.js +0 -1
  886. package/.next/static/chunks/app/api/approvals/[id]/route-b9c783850b4c2acf.js +0 -1
  887. package/.next/static/chunks/app/api/approvals/route-b9c783850b4c2acf.js +0 -1
  888. package/.next/static/chunks/app/api/backup/route-b9c783850b4c2acf.js +0 -1
  889. package/.next/static/chunks/app/api/browse/route-b9c783850b4c2acf.js +0 -1
  890. package/.next/static/chunks/app/api/bugs/enhance/route-b9c783850b4c2acf.js +0 -1
  891. package/.next/static/chunks/app/api/cwd/route-b9c783850b4c2acf.js +0 -1
  892. package/.next/static/chunks/app/api/encryption/secure/route-b9c783850b4c2acf.js +0 -1
  893. package/.next/static/chunks/app/api/env/route-b9c783850b4c2acf.js +0 -1
  894. package/.next/static/chunks/app/api/flow/[id]/route-b9c783850b4c2acf.js +0 -1
  895. package/.next/static/chunks/app/api/flow/[id]/versions/[versionId]/route-b9c783850b4c2acf.js +0 -1
  896. package/.next/static/chunks/app/api/flow/[id]/versions/route-b9c783850b4c2acf.js +0 -1
  897. package/.next/static/chunks/app/api/flow/compile/route-b9c783850b4c2acf.js +0 -1
  898. package/.next/static/chunks/app/api/flow/generate/route-b9c783850b4c2acf.js +0 -1
  899. package/.next/static/chunks/app/api/flow/generator/route-b9c783850b4c2acf.js +0 -1
  900. package/.next/static/chunks/app/api/flow/improve/route-b9c783850b4c2acf.js +0 -1
  901. package/.next/static/chunks/app/api/flow/prompt-renderer/route-b9c783850b4c2acf.js +0 -1
  902. package/.next/static/chunks/app/api/flow/quick-chat/route-b9c783850b4c2acf.js +0 -1
  903. package/.next/static/chunks/app/api/flow/repair/route-b9c783850b4c2acf.js +0 -1
  904. package/.next/static/chunks/app/api/flow/route-b9c783850b4c2acf.js +0 -1
  905. package/.next/static/chunks/app/api/git/route-b9c783850b4c2acf.js +0 -1
  906. package/.next/static/chunks/app/api/init/route-b9c783850b4c2acf.js +0 -1
  907. package/.next/static/chunks/app/api/local-models/capability/route-b9c783850b4c2acf.js +0 -1
  908. package/.next/static/chunks/app/api/local-models/pull/route-b9c783850b4c2acf.js +0 -1
  909. package/.next/static/chunks/app/api/local-models/suggest/route-b9c783850b4c2acf.js +0 -1
  910. package/.next/static/chunks/app/api/mcp/app-sandbox/route-b9c783850b4c2acf.js +0 -1
  911. package/.next/static/chunks/app/api/mcp/cancel/route-b9c783850b4c2acf.js +0 -1
  912. package/.next/static/chunks/app/api/mcp/oauth-capability/route-b9c783850b4c2acf.js +0 -1
  913. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-b9c783850b4c2acf.js +0 -1
  914. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-b9c783850b4c2acf.js +0 -1
  915. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-b9c783850b4c2acf.js +0 -1
  916. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-b9c783850b4c2acf.js +0 -1
  917. package/.next/static/chunks/app/api/mcp/servers/[name]/route-b9c783850b4c2acf.js +0 -1
  918. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-b9c783850b4c2acf.js +0 -1
  919. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-b9c783850b4c2acf.js +0 -1
  920. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-b9c783850b4c2acf.js +0 -1
  921. package/.next/static/chunks/app/api/mcp/servers/route-b9c783850b4c2acf.js +0 -1
  922. package/.next/static/chunks/app/api/mcp/test-connection/route-b9c783850b4c2acf.js +0 -1
  923. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-b9c783850b4c2acf.js +0 -1
  924. package/.next/static/chunks/app/api/mcp-registry/route-b9c783850b4c2acf.js +0 -1
  925. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-b9c783850b4c2acf.js +0 -1
  926. package/.next/static/chunks/app/api/model/[id]/route-b9c783850b4c2acf.js +0 -1
  927. package/.next/static/chunks/app/api/model/provider/route-b9c783850b4c2acf.js +0 -1
  928. package/.next/static/chunks/app/api/model/route-b9c783850b4c2acf.js +0 -1
  929. package/.next/static/chunks/app/api/model/test/route-b9c783850b4c2acf.js +0 -1
  930. package/.next/static/chunks/app/api/oauth/callback/route-b9c783850b4c2acf.js +0 -1
  931. package/.next/static/chunks/app/api/oauth/initiate/route-b9c783850b4c2acf.js +0 -1
  932. package/.next/static/chunks/app/api/oauth/reset/route-b9c783850b4c2acf.js +0 -1
  933. package/.next/static/chunks/app/api/packages/build/route-b9c783850b4c2acf.js +0 -1
  934. package/.next/static/chunks/app/api/packages/derive-secrets/route-b9c783850b4c2acf.js +0 -1
  935. package/.next/static/chunks/app/api/packages/install/route-b9c783850b4c2acf.js +0 -1
  936. package/.next/static/chunks/app/api/packages/install/status/route-b9c783850b4c2acf.js +0 -1
  937. package/.next/static/chunks/app/api/packages/installed/route-b9c783850b4c2acf.js +0 -1
  938. package/.next/static/chunks/app/api/packages/resolve/route-b9c783850b4c2acf.js +0 -1
  939. package/.next/static/chunks/app/api/packages/scan-targets/route-b9c783850b4c2acf.js +0 -1
  940. package/.next/static/chunks/app/api/packages/search/route-b9c783850b4c2acf.js +0 -1
  941. package/.next/static/chunks/app/api/packages/uninstall/route-b9c783850b4c2acf.js +0 -1
  942. package/.next/static/chunks/app/api/planned-executions/[id]/route-b9c783850b4c2acf.js +0 -1
  943. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-b9c783850b4c2acf.js +0 -1
  944. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-b9c783850b4c2acf.js +0 -1
  945. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-b9c783850b4c2acf.js +0 -1
  946. package/.next/static/chunks/app/api/planned-executions/reconcile/route-b9c783850b4c2acf.js +0 -1
  947. package/.next/static/chunks/app/api/planned-executions/route-b9c783850b4c2acf.js +0 -1
  948. package/.next/static/chunks/app/api/registry/auth/resend/route-b9c783850b4c2acf.js +0 -1
  949. package/.next/static/chunks/app/api/registry/auth/reset/route-b9c783850b4c2acf.js +0 -1
  950. package/.next/static/chunks/app/api/registry/auth/route-b9c783850b4c2acf.js +0 -1
  951. package/.next/static/chunks/app/api/registry/feedback/route-b9c783850b4c2acf.js +0 -1
  952. package/.next/static/chunks/app/api/registry/oauth/callback/route-b9c783850b4c2acf.js +0 -1
  953. package/.next/static/chunks/app/api/registry/oauth/initiate/route-b9c783850b4c2acf.js +0 -1
  954. package/.next/static/chunks/app/api/registry/packages/route-b9c783850b4c2acf.js +0 -1
  955. package/.next/static/chunks/app/api/registry/publish/route-b9c783850b4c2acf.js +0 -1
  956. package/.next/static/chunks/app/api/registry/settings/route-b9c783850b4c2acf.js +0 -1
  957. package/.next/static/chunks/app/api/restore/route-b9c783850b4c2acf.js +0 -1
  958. package/.next/static/chunks/app/api/runs/active/route-b9c783850b4c2acf.js +0 -1
  959. package/.next/static/chunks/app/api/storage/route-b9c783850b4c2acf.js +0 -1
  960. package/.next/static/chunks/app/api/telemetry/daily-active/route-b9c783850b4c2acf.js +0 -1
  961. package/.next/static/chunks/app/api/update/route-b9c783850b4c2acf.js +0 -1
  962. package/.next/static/chunks/app/api/waves/route-b9c783850b4c2acf.js +0 -1
  963. package/.next/static/chunks/app/api/webhooks/[id]/route-b9c783850b4c2acf.js +0 -1
  964. package/.next/static/chunks/app/chat/page-e37bbc561f40ce60.js +0 -1
  965. package/.next/static/chunks/app/docs/page-3b9ce48854b2147d.js +0 -1
  966. package/.next/static/chunks/app/executions/page-8296fd69c439ccee.js +0 -1
  967. package/.next/static/chunks/app/flows/page-e52c8943555e38dd.js +0 -1
  968. package/.next/static/chunks/app/layout-abed1f211e03152f.js +0 -1
  969. package/.next/static/chunks/app/mcp/page-4a3e5a643d84ee89.js +0 -1
  970. package/.next/static/chunks/app/mcp-flows/route-b9c783850b4c2acf.js +0 -1
  971. package/.next/static/chunks/app/mcp-proxy/[server]/route-b9c783850b4c2acf.js +0 -1
  972. package/.next/static/chunks/app/models/error-1718b538d6967e56.js +0 -1
  973. package/.next/static/chunks/app/models/page-595597042e227970.js +0 -1
  974. package/.next/static/chunks/app/packages/page-2f2d29c17841b3cf.js +0 -1
  975. package/.next/static/chunks/app/page-2f9da78a4891731a.js +0 -1
  976. package/.next/static/chunks/app/settings/page-f35e939032b0277d.js +0 -1
  977. package/.next/static/chunks/app/v1/chat/completions/route-b9c783850b4c2acf.js +0 -1
  978. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-b9c783850b4c2acf.js +0 -1
  979. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-b9c783850b4c2acf.js +0 -1
  980. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-b9c783850b4c2acf.js +0 -1
  981. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-b9c783850b4c2acf.js +0 -1
  982. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-b9c783850b4c2acf.js +0 -1
  983. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-b9c783850b4c2acf.js +0 -1
  984. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/inject/route-b9c783850b4c2acf.js +0 -1
  985. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route-b9c783850b4c2acf.js +0 -1
  986. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/resources/route-b9c783850b4c2acf.js +0 -1
  987. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-b9c783850b4c2acf.js +0 -1
  988. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-b9c783850b4c2acf.js +0 -1
  989. package/.next/static/chunks/app/v1/chat/conversations/route-b9c783850b4c2acf.js +0 -1
  990. package/.next/static/chunks/app/v1/chat/events/route-b9c783850b4c2acf.js +0 -1
  991. package/.next/static/chunks/app/v1/models/route-b9c783850b4c2acf.js +0 -1
  992. package/.next/static/chunks/app/waves/page-dc99a16141dd902b.js +0 -1
  993. package/.next/static/chunks/webpack-9d09d53b271f49e2.js +0 -1
  994. package/.next/static/css/30253fcfa8035221.css +0 -1
  995. package/.next/static/css/69ab44eb350e0b6c.css +0 -1
  996. package/.next/static/kIFnN4S0HHOnvpPGsSzi9/_buildManifest.js +0 -1
  997. /package/.next/static/{kIFnN4S0HHOnvpPGsSzi9 → b1aMk0634gkkiunttd1SQ}/_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:()=>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)({}),[W,X]=(0,f.useState)(null),[Y,Z]=(0,f.useState)(!1),[$,_]=(0,f.useState)(0),[aa,ab]=(0,f.useState)(null),[ad,ae]=(0,f.useState)({}),ag=(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)}},[]),ah=(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 ag(b)}catch(a){bl.warn("Package deletion failed",a),D(a instanceof Error?a.message:String(a))}finally{z(!1)}}},[w,b,ag]),ai=(0,f.useCallback)(async a=>{F(a),L(null),ab(null),O({}),Q({}),V({}),X(null),Z(!1),_(0),ae({}),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];X(c?.id??null),_(+!c)}catch(a){bl.warn("Failed to fetch package preview",a),J(a instanceof Error?a.message:String(a))}finally{H(!1)}},[]),aj=(0,f.useCallback)(async()=>{if(E&&K){H(!0),J(null);try{let b=Object.fromEntries((K.preview?.globals??[]).map(a=>[a.name,{value:P[a.name]?.trim()??"",metadata:{isSecret:!0===a.isSecret}}]).filter(([,a])=>a.value.length>0));if(Object.keys(b).length>0){let a=await fetch("/api/env",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"setAll",variables:b})});if(!a.ok){let b=await a.json().catch(()=>({}));throw Error(b?.error||`Failed to save package globals (HTTP ${a.status})`)}}let c=await aH.installFromRegistry({packageId:E.id,version:E.latestVersion,secrets:N,modelMappings:Object.fromEntries(Object.entries(U).filter(([,a])=>""!==a)),consentGranted:!0});ab(c),L(null),c.ok&&a?.()}catch(a){bl.warn("Install failed",a),J(a instanceof Error?a.message:String(a))}finally{H(!1)}}},[E,K,N,P,U,a]),ak=(0,f.useCallback)(()=>{F(null),L(null),ab(null),O({}),Q({}),V({}),X(null),Z(!1),_(0),ae({}),J(null)},[]),al=K?.preview,am=al?.models.find(a=>a.id===W)??al?.models[0],an=al?.models.filter(a=>Object.prototype.hasOwnProperty.call(U,a.id)).length??0,ao=al?.models.every(a=>Object.prototype.hasOwnProperty.call(U,a.id))??!0,ap=(0,f.useCallback)(a=>{X(a),Z(!!U[a])},[U]),aq=(0,f.useCallback)(a=>{V(b=>({...b,[a]:""})),Z(!1)},[]),ar=(0,f.useCallback)((a,b)=>{V(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&&ag(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 ai(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 ah(),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:ak,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&&!aa&&(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:420},children:(0,e.jsx)(A.default,{size:24})}),al&&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:[al.servers.length," server(s) \xb7 ",al.models.length," model(s) \xb7"," ",al.flows.length," flow(s) \xb7 ",al.plannedExecutions.length," planned execution(s)"]})]}),(0,e.jsxs)(j.default,{variant:"caption",color:"text.secondary",children:["Step ",$+1," of 2"]})]}),(0,e.jsxs)(ac,{activeStep:$,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===$&&al.models.length>0&&am&&(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:ao?"success":"default",label:`${an}/${al.models.length} ready`})]}),(0,e.jsx)(i.A,{spacing:1.25,children:al.models.map(a=>{let b=a.id===am.id,c=Object.prototype.hasOwnProperty.call(U,a.id),d=al.installedModels.find(b=>b.id===U[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:()=>ap(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 ",am.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(U,am.id)&&""===U[am.id]?"contained":"outlined",onClick:()=>aq(am.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(U,am.id)&&""===U[am.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:U[am.id]?"contained":"outlined",onClick:()=>Z(!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:U[am.id]?"inherit":"text.secondary",children:"Connect the package to a model you already have installed."})]})})})]}),Y&&(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"}),al.installedModels.length>0?(0,e.jsx)(a7.Ay,{container:!0,spacing:1.25,children:al.installedModels.map(a=>{let b=U[am.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:()=>ar(am.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:ak,children:"Cancel"}),(0,e.jsxs)(i.A,{direction:"row",spacing:1.5,alignItems:"center",children:[!ao&&(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:!ao,endIcon:(0,e.jsx)(be,{}),onClick:()=>_(1),children:"Continue to review"})]})]})]}),1===$&&(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 the package configuration."})]}),al.models.length>0&&(0,e.jsx)(l.A,{onClick:()=>{_(0),X(al.models.find(a=>!Object.prototype.hasOwnProperty.call(U,a.id))?.id??al.models[0].id),Z(!1)},children:"Change model choices"})]}),al.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:al.models.map(a=>{let b=al.installedModels.find(b=>b.id===U[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)})})]}),al.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."}),al.globals.length>0&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(j.default,{variant:"subtitle2",sx:{mb:1},children:"Global variables requested by this package"}),(0,e.jsx)(i.A,{spacing:1.5,sx:{mb:2.5},children:al.globals.map(a=>(0,e.jsx)(s.A,{size:"small",type:a.isSecret&&!ad[`global:${a.name}`]?"password":"text",label:a.name,helperText:`${a.description??(a.required?"Required":"Optional")}${al.missingGlobals.includes(a.name)?" — not currently set":" — leave blank to keep the current value"}`,value:P[a.name]??"",onChange:b=>Q(c=>({...c,[a.name]:b.target.value})),fullWidth:!0,InputProps:a.isSecret?{endAdornment:(0,e.jsx)(t.A,{position:"end",children:(0,e.jsx)(bc.A,{size:"small",tabIndex:-1,"aria-label":ad[`global:${a.name}`]?"Hide global":"Show global",onClick:()=>ae(b=>({...b,[`global:${a.name}`]:!b[`global:${a.name}`]})),children:ad[`global:${a.name}`]?(0,e.jsx)(bk.A,{fontSize:"small"}):(0,e.jsx)(bj.A,{fontSize:"small"})})})}:void 0},a.name))})]}),(0,e.jsx)(M.A,{sx:{my:2.5}}),al.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:al.secrets.map(a=>(0,e.jsx)(s.A,{size:"small",type:ad[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":ad[a.key]?"Hide secret":"Show secret",onClick:()=>ae(b=>({...b,[a.key]:!b[a.key]})),children:ad[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:al.models.length>0?()=>_(0):ak,disabled:G,children:al.models.length>0?"Back":"Cancel"}),(0,e.jsx)(l.A,{variant:"contained",color:"primary",size:"large",onClick:()=>void aj(),disabled:G,startIcon:G?(0,e.jsx)(A.default,{size:16}):(0,e.jsx)(bh,{}),children:"Install package"})]})]})]}),aa&&(0,e.jsxs)(g.default,{children:[(0,e.jsx)(B.A,{severity:aa.ok?"success":"error",sx:{mb:1},children:aa.ok?`Installed "${aa.package?.name}": ${aa.created.length} created, ${aa.updated.length} updated, ${aa.disabled.length} disabled.`:`Install failed: ${aa.errors[0]??"unknown error"}`}),aa.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:"," ",aa.missingGlobals.join(", "),"."]}),(0,e.jsx)(l.A,{size:"small",onClick:ak,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
- 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})();
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")},423:(a,b,c)=>{"use strict";c.d(b,{A:()=>s});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(68333),i=c(6636),j=c(29565),k=c(33105);function l(a){return(0,k.Ay)("MuiCardActionArea",a)}let m=(0,j.A)("MuiCardActionArea",["root","focusVisible","focusHighlight"]);var n=c(14328),o=c(20385),p=c(21124);let q=(0,g.Ay)(n.A,{name:"MuiCardActionArea",slot:"Root",overridesResolver:(a,b)=>b.root})((0,h.A)(({theme:a})=>({display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%",[`&:hover .${m.focusHighlight}`]:{opacity:(a.vars||a).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}},[`&.${m.focusVisible} .${m.focusHighlight}`]:{opacity:(a.vars||a).palette.action.focusOpacity}}))),r=(0,g.Ay)("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:(a,b)=>b.focusHighlight})((0,h.A)(({theme:a})=>({overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:a.transitions.create("opacity",{duration:a.transitions.duration.short})}))),s=d.forwardRef(function(a,b){let c=(0,i.b)({props:a,name:"MuiCardActionArea"}),{children:d,className:g,focusVisibleClassName:h,slots:j={},slotProps:k={},...m}=c,n=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"],focusHighlight:["focusHighlight"]},l,b)})(c),s={slots:j,slotProps:k},[t,u]=(0,o.A)("root",{elementType:q,externalForwardedProps:{...s,...m},shouldForwardComponentProp:!0,ownerState:c,ref:b,className:(0,e.A)(n.root,g),additionalProps:{focusVisibleClassName:(0,e.A)(h,n.focusVisible)}}),[v,w]=(0,o.A)("focusHighlight",{elementType:r,externalForwardedProps:s,ownerState:c,ref:b,className:n.focusHighlight});return(0,p.jsxs)(t,{...u,children:[d,(0,p.jsx)(v,{...w})]})})},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")},22813:(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 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"}),"Visibility")},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")},27114:(a,b,c)=>{"use strict";c.d(b,{A:()=>n});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(29565),j=c(33105);function k(a){return(0,j.Ay)("MuiCardContent",a)}(0,i.A)("MuiCardContent",["root"]);var l=c(21124);let m=(0,g.Ay)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(a,b)=>b.root})({padding:16,"&:last-child":{paddingBottom:24}}),n=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiCardContent"}),{className:d,component:g="div",...i}=c,j={...c,component:g},n=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"]},k,b)})(j);return(0,l.jsx)(m,{as:g,className:(0,e.A)(n.root,d),ownerState:j,ref:b,...i})})},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")},30818:(a,b,c)=>{"use strict";c.d(b,{A:()=>o});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(54573),j=c(29565),k=c(33105);function l(a){return(0,k.Ay)("MuiCard",a)}(0,j.A)("MuiCard",["root"]);var m=c(21124);let n=(0,g.Ay)(i.A,{name:"MuiCard",slot:"Root",overridesResolver:(a,b)=>b.root})({overflow:"hidden"}),o=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiCard"}),{className:d,raised:g=!1,...i}=c,j={...c,raised:g},k=(a=>{let{classes:b}=a;return(0,f.A)({root:["root"]},l,b)})(j);return(0,m.jsx)(n,{className:(0,e.A)(k.root,d),elevation:g?8:void 0,ref:b,ownerState:j,...i})})},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")},35361:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>bs});var d,e=c(21124),f=c(38301),g=c(81637),h=c(42378),i=c(41893),j=c(68730),k=c(54573),l=c(79515),m=c(47902),n=c(11801);let o=(0,n.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 p=c(60839),q=c(24077),r=c(37674),s=c(67101),t=c(89490),u=c(71439),v=c(75983),w=c(50553),x=c(77028),y=c(84233),z=c(8521),A=c(53773),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)(l.A,{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,n.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,n.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,n.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(42819);(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,k]=(0,f.useState)(!1),[m,n]=(0,f.useState)(null),[o,p]=(0,f.useState)("login"),[q,s]=(0,f.useState)(""),[t,u]=(0,f.useState)(""),[v,w]=(0,f.useState)(""),[x,y]=(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),y(c.usingDefault?"":c.baseUrl)}catch(a){aE.warn("Failed to load registry account status",a)}finally{d(!1)}},[]),F=async()=>{k(!0),n(null);try{let a="signup"===o?await aD.signup(q.trim(),t,v.trim()):await aD.login(q.trim(),t);"authenticated"===a.status?(n({type:"success",text:"Signed in to the package registry."}),u("")):"confirmation_required"===a.status?(n({type:"info",text:a.message||"Check your inbox to confirm your email."}),u("")):n({type:"error",text:a.message||"Authentication failed."}),a.account?b(a.account):await E()}catch(a){n({type:"error",text:a instanceof Error?a.message:"Authentication failed."})}finally{k(!1)}},G=async()=>{k(!0),n(null);try{await aD.logout(),await E(),n({type:"success",text:"Logged out."})}catch(a){n({type:"error",text:a instanceof Error?a.message:"Failed to log out."})}finally{k(!1)}},H=async a=>{k(!0),n(null);try{let{authorizationUrl:b}=await aD.beginOAuth(a);window.location.assign(b)}catch(a){n({type:"error",text:a instanceof Error?a.message:"Failed to start OAuth sign-in."}),k(!1)}},I=async()=>{k(!0),n(null);try{let a=await aD.resendConfirmation();n(a.success?{type:"success",text:"Confirmation email sent."}:{type:"error",text:a.message||"Failed to resend confirmation."})}finally{k(!1)}},J=async()=>{let a=q.trim();if(!a)return void n({type:"info",text:"Enter your account email above, then tap “Forgot password?”."});k(!0),n(null);try{await aD.requestPasswordReset(a),n({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){n({type:"error",text:a instanceof Error?a.message:"Failed to request a password reset."})}finally{k(!1)}},K=async()=>{k(!0),n(null);try{let a=await aD.saveSettings(x.trim());n(a.success?{type:"success",text:"Registry URL saved."}:{type:"error",text:a.message||"Invalid registry URL."})}finally{k(!1)}};if(c)return(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:3},children:(0,e.jsx)(z.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)(l.A,{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."}),m&&(0,e.jsx)(B.A,{severity:m.type,sx:{mb:2},onClose:()=>n(null),children:m.text}),L?(0,e.jsxs)(A.A,{spacing:2,children:[(0,e.jsxs)(A.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(l.A,{variant:"subtitle1",children:a?.email}),a?.publisherHandle&&(0,e.jsx)(i.A,{size:"small",label:`@${a.publisherHandle}`}),a?.isConfirmed?(0,e.jsx)(i.A,{size:"small",color:"success",label:"Confirmed"}):(0,e.jsx)(i.A,{size:"small",color:"warning",label:"Unconfirmed"})]}),(0,e.jsx)(g.default,{children:(0,e.jsx)(j.A,{variant:"outlined",onClick:G,disabled:h,children:"Log out"})})]}):N?(0,e.jsxs)(A.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)(A.A,{direction:"row",spacing:1,children:[(0,e.jsx)(j.A,{variant:"outlined",onClick:I,disabled:h,children:"Resend confirmation email"}),(0,e.jsx)(j.A,{onClick:G,disabled:h,children:"Use a different account"})]})]}):(0,e.jsxs)(A.A,{spacing:2,children:[(0,e.jsxs)(az.A,{value:o,onChange:(a,b)=>p(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)(r.A,{label:"Email",type:"email",value:q,onChange:a=>s(a.target.value),fullWidth:!0,autoComplete:"username"}),(0,e.jsx)(r.A,{label:"Password",type:"password",value:t,onChange:a=>u(a.target.value),fullWidth:!0,autoComplete:"signup"===o?"new-password":"current-password"}),"signup"===o&&(0,e.jsx)(r.A,{label:"Publisher handle",value:v,onChange:a=>w(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)(j.A,{variant:"contained",onClick:F,disabled:h||!q.trim()||!t||"signup"===o&&!v.trim(),children:"signup"===o?"Sign up":"Log in"})}),"login"===o&&(0,e.jsx)(g.default,{children:(0,e.jsx)(j.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)(A.A,{direction:"row",spacing:1,flexWrap:"wrap",useFlexGap:!0,children:(0,e.jsx)(j.A,{variant:"outlined",onClick:()=>H("github"),disabled:h,children:"Continue with GitHub"})})]}),(0,e.jsx)(M.A,{sx:{my:3}}),(0,e.jsx)(l.A,{variant:"subtitle2",gutterBottom:!0,children:"Registry URL"}),(0,e.jsxs)(l.A,{variant:"body2",color:"text.secondary",sx:{mb:1},children:["Leave blank to use the default (",C,")."]}),(0,e.jsxs)(A.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(r.A,{size:"small",placeholder:C,value:x,onChange:a=>y(a.target.value),sx:{minWidth:320}}),(0,e.jsx)(j.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(),gitRef:aN.string().min(1).optional(),subdirectory:aN.string().min(1).optional(),installCommand:aN.string().min(1).max(4096).optional(),buildCommand:aN.string().min(1).max(4096).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,p.A)(),d=(0,q.A)(c.breakpoints.down("sm")),[h,k]=(0,f.useState)(0),[m,n]=(0,f.useState)({flows:[],models:[],mcpServers:[],plannedExecutions:[]}),[o,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:m.flows.map(a=>a.id),modelIds:m.models.map(a=>a.id),mcpServerNames:m.mcpServers.map(a=>a.id),plannedExecutionIds:m.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})},[m]),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(),k(1);return}if(3===h){k(4),await bM();return}k(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 j=f.trim().toLowerCase(),k=j?b.filter(a=>a.label.toLowerCase().includes(j)):b;return(0,e.jsxs)(g.default,{sx:{flex:1,minWidth:240},children:[(0,e.jsxs)(l.A,{variant:"subtitle2",gutterBottom:!0,children:[a," ",c.size>0&&(0,e.jsx)(i.A,{label:c.size,size:"small"})]}),(0,e.jsx)(r.A,{size:"small",fullWidth:!0,placeholder:`Search ${a.toLowerCase()}…`,value:f,onChange:a=>h(a.target.value),InputProps:{startAdornment:(0,e.jsx)(s.A,{position:"start",children:(0,e.jsx)(ax.A,{fontSize:"small"})})},sx:{mb:1}}),0===b.length?(0,e.jsx)(l.A,{variant:"body2",color:"text.secondary",children:"None available"}):0===k.length?(0,e.jsxs)(l.A,{variant:"body2",color:"text.secondary",children:["No matches for “",f,"”."]}):(0,e.jsx)(t.A,{dense:!0,sx:{maxHeight:{xs:240,md:"45vh"},overflow:"auto",border:1,borderColor:"divider",borderRadius:1},children:k.map(a=>(0,e.jsx)(u.Ay,{disablePadding:!0,children:(0,e.jsxs)(v.A,{onClick:()=>d(a.id),dense:!0,children:[(0,e.jsx)(w.A,{sx:{minWidth:36},children:(0,e.jsx)(x.A,{edge:"start",checked:c.has(a.id),tabIndex:-1,disableRipple:!0})}),(0,e.jsx)(y.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 o?(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:4},children:(0,e.jsx)(z.default,{})}):(0,e.jsxs)(A.A,{spacing:2,children:[(0,e.jsx)(l.A,{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)(A.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsxs)(j.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)(l.A,{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)(A.A,{direction:"row",spacing:2,flexWrap:"wrap",useFlexGap:!0,children:[bU("Flows",m.flows,D,bz(E),U,V),bU("Models",m.models,F,bz(G),W,X),bU("MCP servers",m.mcpServers,H,bz(I),Y,Z),bU("Planned executions",m.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)(z.default,{})});if(ak)return(0,e.jsx)(B.A,{severity:"error",children:ak});if(!ai)return null;return(0,e.jsxs)(A.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)(l.A,{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)(A.A,{direction:"row",spacing:1,flexWrap:"wrap",useFlexGap:!0,children:ai.mcp.servers.map(a=>(0,e.jsx)(i.A,{label:`${a.name} \xb7 ${a.sourceType}`,size:"small",color:"success",variant:"outlined"},a.name))})]});case 2:return(0,e.jsxs)(A.A,{spacing:2,children:[(0,e.jsx)(l.A,{variant:"subtitle2",children:"Global variables"}),(0,e.jsx)(l.A,{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)(A.A,{spacing:1.5,children:ai.globals.map(a=>(0,e.jsxs)(A.A,{direction:"row",spacing:1,alignItems:"flex-start",children:[(0,e.jsx)(r.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)(i.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)(l.A,{variant:"subtitle2",children:"Declared secrets (entity keys)"}),(0,e.jsx)(l.A,{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)(t.A,{dense:!0,children:ai.secrets.map(a=>(0,e.jsxs)(u.Ay,{children:[(0,e.jsx)(x.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)(y.A,{primary:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("code",{children:a0(a.name)})," ",a.required&&(0,e.jsx)(i.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)(l.A,{variant:"subtitle2",children:"Detected secrets in content"}),(0,e.jsxs)(l.A,{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)(z.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)(A.A,{direction:"row",spacing:.5,flexWrap:"wrap",useFlexGap:!0,children:bL.map(([a,b])=>(0,e.jsx)(i.A,{size:"small",variant:"outlined",label:`${a}: ${b}`},a))}),(0,e.jsxs)(A.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(j.A,{size:"small",onClick:()=>bE(!0),children:"Accept all"}),(0,e.jsx)(j.A,{size:"small",onClick:()=>bE(!1),children:"Reject all"}),(0,e.jsx)(r.A,{size:"small",placeholder:"Filter detected secrets…",value:aJ,onChange:a=>aN(a.target.value),sx:{minWidth:200,flex:1}}),(0,e.jsxs)(l.A,{variant:"caption",color:"text.secondary",sx:{alignSelf:"center"},children:[bI.filter(a=>a.accepted).length," of ",bI.length," accepted"]})]}),(0,e.jsxs)(t.A,{dense:!0,sx:{border:1,borderColor:"divider",borderRadius:1,maxHeight:280,overflow:"auto"},children:[0===bJ.length&&(0,e.jsx)(u.Ay,{children:(0,e.jsx)(y.A,{primary:(0,e.jsxs)(l.A,{variant:"body2",color:"text.secondary",children:["No rows match “",aJ,"”."]})})}),bJ.map(a=>(0,e.jsxs)(u.Ay,{alignItems:"flex-start",divider:!0,children:[(0,e.jsx)(w.A,{sx:{minWidth:36,mt:1},children:(0,e.jsx)(x.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)(y.A,{primary:(0,e.jsxs)(A.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(i.A,{label:a.kind,size:"small"}),(0,e.jsx)(i.A,{label:a.source,size:"small",variant:"outlined",color:"model"===a.source?"secondary":"manual"===a.source?"primary":"default"}),a.confidence&&(0,e.jsx)(i.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)(i.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)(A.A,{spacing:.5,sx:{mt:.5},children:[(0,e.jsxs)(l.A,{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)(r.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)(l.A,{variant:"subtitle2",children:"Add a secret manually"}),(0,e.jsxs)(l.A,{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)(A.A,{direction:"row",spacing:1,alignItems:"flex-start",flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(r.A,{size:"small",label:"Value to redact",value:aS,onChange:a=>aT(a.target.value),sx:{minWidth:240,flex:1}}),(0,e.jsx)(r.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)(j.A,{variant:"outlined",onClick:bF,disabled:!aS.trim(),children:"Add"}),(0,e.jsx)(j.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)(l.A,{variant:"subtitle2",children:"Advanced scan options"}),(0,e.jsxs)(A.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)(j.A,{size:"small",variant:"text",onClick:()=>void bD(),disabled:as,children:"Re-scan"})]}),(0,e.jsx)(M.A,{}),(0,e.jsx)(l.A,{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)(A.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…"})}),m.models.map(a=>(0,e.jsx)(O.A,{value:a.id,children:a.label},a.id))]}),(0,e.jsx)(j.A,{variant:"outlined",disabled:!aH||as,onClick:()=>void bD(aH),children:"Scan with model"})]})]});case 3:return(0,e.jsxs)(A.A,{spacing:2,children:[(0,e.jsx)(r.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)(r.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)(r.A,{label:"Description",value:bj,onChange:a=>bk(a.target.value),fullWidth:!0,multiline:!0,minRows:2}),(0,e.jsx)(r.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)(z.default,{})});if(br)return(0,e.jsx)(B.A,{severity:"error",children:br});if(bp?.ok)return(0,e.jsxs)(A.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)(j.A,{variant:"contained",onClick:bO,children:"Download package manifest (.json)"}),(0,e.jsx)(M.A,{}),(0,e.jsx)(l.A,{variant:"subtitle2",children:"Publish to the FLUJO package registry"}),(0,e.jsx)(l.A,{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)(A.A,{direction:"row",spacing:1,flexWrap:"wrap",useFlexGap:!0,children:[(0,e.jsx)(j.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)(j.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)(j.A,{onClick:b,children:bp?.ok?"Close":"Cancel"}),(0,e.jsx)(g.default,{sx:{flex:1}}),(0,e.jsx)(j.A,{onClick:()=>k(a=>Math.max(a-1,0)),disabled:0===h||bn||ag,children:"Back"}),h<4&&(0,e.jsx)(j.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)(j.A,{onClick:()=>be(!1),children:"Done"}),(0,e.jsx)(j.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)(l.A,{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)(r.A,{size:"small",fullWidth:!0,placeholder:"Search values…",value:bb,onChange:a=>bc(a.target.value),InputProps:{startAdornment:(0,e.jsx)(s.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)(z.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)(l.A,{variant:"body2",color:"text.secondary",children:["No values match “",bb,"”."]}):(0,e.jsx)(t.A,{dense:!0,sx:{border:1,borderColor:"divider",borderRadius:1,maxHeight:"50vh",overflow:"auto"},children:bH.map((a,b)=>(0,e.jsx)(u.Ay,{disablePadding:!0,divider:!0,children:(0,e.jsx)(v.A,{onClick:()=>{aT(a.text),a2(null),a4(!1)},alignItems:"flex-start",children:(0,e.jsx)(y.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)(A.A,{direction:"row",spacing:1,alignItems:"center",flexWrap:"wrap",useFlexGap:!0,sx:{mt:.5},children:[(0,e.jsx)(i.A,{label:a.source,size:"small",variant:"outlined"}),(0,e.jsx)(l.A,{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)(j.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,m]=(0,f.useState)(null),[n,o]=(0,f.useState)(null),[p,q]=(0,f.useState)(!1),[t,u]=(0,f.useState)(null),[v,w]=(0,f.useState)(""),x=(0,f.useCallback)(async()=>{d(!0),m(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),m(a instanceof Error?a.message:String(a))}finally{d(!1)}},[]),y=(0,f.useCallback)(async a=>{q(!0),u(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})`);u(c),await x()}catch(a){a5.warn("Uninstall failed",a),m(a instanceof Error?a.message:String(a))}finally{q(!1),o(null)}},[x]),C=(0,f.useMemo)(()=>{let b=v.trim().toLowerCase();return b?a.filter(a=>`${a.packageName} ${a.version}`.toLowerCase().includes(b)):a},[a,v]);return(0,e.jsxs)(g.default,{sx:{maxWidth:{xs:"100%",md:1100},mx:"auto",mt:3},children:[(0,e.jsxs)(A.A,{direction:"row",spacing:1,alignItems:"center",sx:{mb:1},children:[(0,e.jsx)(l.A,{variant:"h6",children:"Installed packages"}),(0,e.jsx)(j.A,{size:"small",startIcon:(0,e.jsx)(a4.A,{}),onClick:()=>void x(),disabled:c,children:"Refresh"})]}),a.length>0&&(0,e.jsx)(r.A,{size:"small",fullWidth:!0,placeholder:"Search installed packages…",value:v,onChange:a=>w(a.target.value),InputProps:{startAdornment:(0,e.jsx)(s.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:()=>m(null),children:h}),t&&(0,e.jsxs)(B.A,{severity:t.hasErrors?"warning":"success",sx:{mb:2},onClose:()=>u(null),children:['Uninstalled "',t.packageName,'": ',t.removed.length," removed,"," ",t.skipped.length," preserved/skipped",t.hasErrors?`, ${t.errors.length} error(s)`:"","."]}),c?(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",p:3},children:(0,e.jsx)(z.default,{size:24})}):0===a.length?(0,e.jsx)(l.A,{variant:"body2",color:"text.secondary",children:"No packages installed yet."}):0===C.length?(0,e.jsxs)(l.A,{variant:"body2",color:"text.secondary",children:["No packages match “",v,"”."]}):(0,e.jsx)(A.A,{spacing:1,children:C.map(a=>(0,e.jsxs)(k.A,{variant:"outlined",sx:{p:2,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,e.jsxs)(g.default,{children:[(0,e.jsxs)(A.A,{direction:"row",spacing:1,alignItems:"center",children:[(0,e.jsx)(l.A,{variant:"subtitle1",children:a.packageName}),(0,e.jsx)(i.A,{label:`v${a.version}`,size:"small",variant:"outlined"})]}),(0,e.jsxs)(l.A,{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)(j.A,{color:"error",size:"small",startIcon:(0,e.jsx)(a3.A,{}),onClick:()=>o(a),disabled:p,children:"Uninstall"})]},a.packageName))}),(0,e.jsxs)(R.A,{open:null!==n,onClose:()=>p?void 0:o(null),children:[(0,e.jsxs)(S.A,{children:['Uninstall "',n?.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)(j.A,{onClick:()=>o(null),disabled:p,children:"Cancel"}),(0,e.jsx)(j.A,{color:"error",variant:"contained",onClick:()=>n&&void y(n),disabled:p,startIcon:p?(0,e.jsx)(z.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,n.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");var be=c(65106),bf=c(49248);let bg=(0,n.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,n.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)([]),[k,m]=(0,f.useState)(!1),[n,o]=(0,f.useState)(null),[p,q]=(0,f.useState)(!1),[t,u]=(0,f.useState)(null),[v,w]=(0,f.useState)(null),[x,y]=(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)({}),[W,X]=(0,f.useState)(null),[Y,Z]=(0,f.useState)(!1),[$,_]=(0,f.useState)(0),[aa,ab]=(0,f.useState)(null),[ad,ae]=(0,f.useState)({}),ag=(0,f.useCallback)(async a=>{m(!0),o(null);try{let b=await aH.searchRegistry({q:a.trim()||void 0,pageSize:24});h(b.items??[]),q(!0)}catch(a){bl.warn("Failed to search package registry",a),o(a instanceof Error?a.message:String(a)),h([])}finally{m(!1)}},[]),ah=(0,f.useCallback)(async()=>{if(v){y(!0),D(null);try{let a=await aD.deletePackage(v.id);if(!a.ok)return void D(a.error||"Failed to delete package.");h(a=>a.filter(a=>a.id!==v.id)),w(null),await ag(b)}catch(a){bl.warn("Package deletion failed",a),D(a instanceof Error?a.message:String(a))}finally{y(!1)}}},[v,b,ag]),ai=(0,f.useCallback)(async a=>{F(a),L(null),ab(null),O({}),Q({}),V({}),X(null),Z(!1),_(0),ae({}),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];X(c?.id??null),_(+!c)}catch(a){bl.warn("Failed to fetch package preview",a),J(a instanceof Error?a.message:String(a))}finally{H(!1)}},[]),aj=(0,f.useCallback)(async()=>{if(E&&K){H(!0),J(null);try{let b=Object.fromEntries((K.preview?.globals??[]).map(a=>[a.name,{value:P[a.name]?.trim()??"",metadata:{isSecret:!0===a.isSecret}}]).filter(([,a])=>a.value.length>0));if(Object.keys(b).length>0){let a=await fetch("/api/env",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"setAll",variables:b})});if(!a.ok){let b=await a.json().catch(()=>({}));throw Error(b?.error||`Failed to save package globals (HTTP ${a.status})`)}}let c=await aH.installFromRegistry({packageId:E.id,version:E.latestVersion,secrets:N,modelMappings:Object.fromEntries(Object.entries(U).filter(([,a])=>""!==a)),consentGranted:!0});ab(c),L(null),c.ok&&a?.()}catch(a){bl.warn("Install failed",a),J(a instanceof Error?a.message:String(a))}finally{H(!1)}}},[E,K,N,P,U,a]),ak=(0,f.useCallback)(()=>{F(null),L(null),ab(null),O({}),Q({}),V({}),X(null),Z(!1),_(0),ae({}),J(null)},[]),al=K?.preview,am=al?.models.find(a=>a.id===W)??al?.models[0],an=al?.models.filter(a=>Object.prototype.hasOwnProperty.call(U,a.id)).length??0,ao=al?.models.every(a=>Object.prototype.hasOwnProperty.call(U,a.id))??!0,ap=(0,f.useCallback)(a=>{X(a),Z(!!U[a])},[U]),aq=(0,f.useCallback)(a=>{V(b=>({...b,[a]:""})),Z(!1)},[]),ar=(0,f.useCallback)((a,b)=>{V(c=>({...c,[a]:b}))},[]);return(0,e.jsxs)(g.default,{sx:{maxWidth:{xs:"100%",md:1100},mx:"auto",mt:3},children:[(0,e.jsxs)(A.A,{direction:"row",spacing:1,alignItems:"center",sx:{mb:1},children:[(0,e.jsx)(bh,{color:"action"}),(0,e.jsx)(l.A,{variant:"h6",children:"Browse registry"})]}),(0,e.jsx)(r.A,{size:"small",fullWidth:!0,placeholder:"Search published packages…",value:b,onChange:a=>c(a.target.value),onKeyDown:a=>{"Enter"===a.key&&ag(b)},InputProps:{startAdornment:(0,e.jsx)(s.A,{position:"start",children:(0,e.jsx)(ax.A,{fontSize:"small"})}),endAdornment:k?(0,e.jsx)(s.A,{position:"end",children:(0,e.jsx)(z.default,{size:16})}):void 0},sx:{mb:2}}),n&&(0,e.jsx)(B.A,{severity:"error",sx:{mb:2},onClose:()=>o(null),children:n}),p&&!k&&0===d.length&&!n&&(0,e.jsxs)(l.A,{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 ai(a),sx:{flex:1},children:(0,e.jsxs)(ba.A,{children:[(0,e.jsxs)(A.A,{direction:"row",spacing:1,alignItems:"baseline",justifyContent:"space-between",children:[(0,e.jsx)(l.A,{variant:"subtitle1",noWrap:!0,children:a.name}),(0,e.jsx)(i.A,{size:"small",variant:"outlined",label:`v${a.latestVersion}`})]}),(0,e.jsx)(l.A,{variant:"caption",color:"text.secondary",display:"block",children:a.handle}),(0,e.jsx)(l.A,{variant:"body2",color:"text.secondary",sx:{mt:.5,minHeight:"2.5em"},children:a.description||"No description provided."}),(0,e.jsx)(A.A,{direction:"row",spacing:.5,sx:{mt:1,flexWrap:"wrap",gap:.5},children:a.tags.map(a=>(0,e.jsx)(i.A,{size:"small",label:a},a))}),(0,e.jsxs)(A.A,{direction:"row",spacing:.5,alignItems:"center",sx:{mt:1},children:[(0,e.jsx)(bi.A,{fontSize:"inherit",color:"disabled"}),(0,e.jsx)(l.A,{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,t)&&(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),w(a)},children:(0,e.jsx)(a3.A,{fontSize:"small"})})})]})},a.id))}),(0,e.jsxs)(R.A,{open:null!==v,onClose:x?void 0:()=>w(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)(l.A,{variant:"body2",children:["This permanently deletes ",(0,e.jsx)("strong",{children:v?.name})," and all of its published versions from the registry. This action cannot be undone."]})]}),(0,e.jsxs)(aw.A,{children:[(0,e.jsx)(j.A,{onClick:()=>w(null),disabled:x,children:"Cancel"}),(0,e.jsx)(j.A,{color:"error",variant:"contained",onClick:()=>void ah(),disabled:x,startIcon:x?(0,e.jsx)(z.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:ak,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)(l.A,{component:"span",variant:"h5",fontWeight:700,children:["Install ",E?.name]}),(0,e.jsx)(l.A,{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&&!aa&&(0,e.jsx)(g.default,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:420},children:(0,e.jsx)(z.default,{size:24})}),al&&K?.package&&(0,e.jsxs)(g.default,{children:[(0,e.jsxs)(A.A,{direction:{xs:"column",sm:"row"},spacing:1,alignItems:{sm:"center"},justifyContent:"space-between",sx:{mb:2.5},children:[(0,e.jsxs)(A.A,{direction:"row",spacing:1,alignItems:"center",children:[(0,e.jsx)(i.A,{size:"small",variant:"outlined",label:`v${K.package.version}`}),K.package.publisher&&(0,e.jsx)(i.A,{size:"small",variant:"outlined",label:K.package.publisher}),(0,e.jsxs)(l.A,{variant:"caption",color:"text.secondary",children:[al.servers.length," server(s) \xb7 ",al.models.length," model(s) \xb7"," ",al.flows.length," flow(s) \xb7 ",al.plannedExecutions.length," planned execution(s)"]})]}),(0,e.jsxs)(l.A,{variant:"caption",color:"text.secondary",children:["Step ",$+1," of 2"]})]}),(0,e.jsxs)(ac,{activeStep:$,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===$&&al.models.length>0&&am&&(0,e.jsxs)(g.default,{children:[(0,e.jsxs)(g.default,{sx:{textAlign:"center",maxWidth:820,mx:"auto",mb:3},children:[(0,e.jsx)(l.A,{variant:"h4",fontWeight:750,sx:{mb:1},children:"The package was created with models that are not installed in your FLUJO."}),(0,e.jsx)(l.A,{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)(A.A,{direction:"row",alignItems:"center",justifyContent:"space-between",sx:{mb:1.25},children:[(0,e.jsx)(l.A,{variant:"overline",color:"text.secondary",fontWeight:700,children:"Models in this package"}),(0,e.jsx)(i.A,{size:"small",color:ao?"success":"default",label:`${an}/${al.models.length} ready`})]}),(0,e.jsx)(A.A,{spacing:1.25,children:al.models.map(a=>{let b=a.id===am.id,c=Object.prototype.hasOwnProperty.call(U,a.id),d=al.installedModels.find(b=>b.id===U[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:()=>ap(a.id),"aria-label":`Configure ${a.displayName}`,sx:{minHeight:104,p:2},children:(0,e.jsxs)(A.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)(l.A,{variant:"subtitle1",fontWeight:700,noWrap:!0,children:a.displayName}),(0,e.jsx)(l.A,{variant:"caption",color:"text.secondary",display:"block",children:"Package model"}),c&&(0,e.jsxs)(A.A,{direction:"row",spacing:.5,alignItems:"center",sx:{mt:.5},children:[(0,e.jsx)(bf.A,{color:"success",sx:{fontSize:16}}),(0,e.jsx)(l.A,{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.A,{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)(l.A,{variant:"overline",color:"text.secondary",fontWeight:700,children:["Replace ",am.displayName]}),(0,e.jsx)(l.A,{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)(j.A,{fullWidth:!0,"aria-label":"Create new one",variant:Object.prototype.hasOwnProperty.call(U,am.id)&&""===U[am.id]?"contained":"outlined",onClick:()=>aq(am.id),sx:{minHeight:154,p:2.5,textTransform:"none",alignItems:"stretch",justifyContent:"flex-start",textAlign:"left"},children:(0,e.jsxs)(A.A,{spacing:1,alignItems:"flex-start",children:[(0,e.jsx)(bd,{sx:{fontSize:36}}),(0,e.jsx)(l.A,{variant:"h6",fontWeight:700,children:"Create new one"}),(0,e.jsx)(l.A,{variant:"body2",color:Object.prototype.hasOwnProperty.call(U,am.id)&&""===U[am.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)(j.A,{fullWidth:!0,"aria-label":"Use one of yours",variant:U[am.id]?"contained":"outlined",onClick:()=>Z(!0),sx:{minHeight:154,p:2.5,textTransform:"none",alignItems:"stretch",justifyContent:"flex-start",textAlign:"left"},children:(0,e.jsxs)(A.A,{spacing:1,alignItems:"flex-start",children:[(0,e.jsx)(bg,{sx:{fontSize:36}}),(0,e.jsx)(l.A,{variant:"h6",fontWeight:700,children:"Use one of yours"}),(0,e.jsx)(l.A,{variant:"body2",color:U[am.id]?"inherit":"text.secondary",children:"Connect the package to a model you already have installed."})]})})})]}),Y&&(0,e.jsxs)(g.default,{sx:{mt:2.5},children:[(0,e.jsx)(M.A,{sx:{mb:2}}),(0,e.jsx)(l.A,{variant:"subtitle1",fontWeight:700,sx:{mb:1},children:"Choose one of your installed models"}),al.installedModels.length>0?(0,e.jsx)(a7.Ay,{container:!0,spacing:1.25,children:al.installedModels.map(a=>{let b=U[am.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:()=>ar(am.id,a.id),"aria-label":`Use ${a.displayName}`,sx:{minHeight:76,p:1.5},children:(0,e.jsxs)(A.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)(l.A,{variant:"subtitle2",fontWeight:700,noWrap:!0,children:a.displayName}),(0,e.jsx)(l.A,{variant:"caption",color:"text.secondary",noWrap:!0,display:"block",children:a.name})]}),b&&(0,e.jsx)(bf.A,{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)(A.A,{direction:"row",spacing:1.5,justifyContent:"space-between",alignItems:"center",children:[(0,e.jsx)(j.A,{onClick:ak,children:"Cancel"}),(0,e.jsxs)(A.A,{direction:"row",spacing:1.5,alignItems:"center",children:[!ao&&(0,e.jsx)(l.A,{variant:"body2",color:"text.secondary",children:"Choose an option for every model to continue."}),(0,e.jsx)(j.A,{variant:"contained",size:"large",disabled:!ao,endIcon:(0,e.jsx)(be.A,{}),onClick:()=>_(1),children:"Continue to review"})]})]})]}),1===$&&(0,e.jsxs)(g.default,{sx:{maxWidth:980,mx:"auto"},children:[(0,e.jsxs)(A.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)(l.A,{variant:"h4",fontWeight:750,children:"Review and install"}),(0,e.jsx)(l.A,{variant:"body1",color:"text.secondary",children:"Check your model choices and add the package configuration."})]}),al.models.length>0&&(0,e.jsx)(j.A,{onClick:()=>{_(0),X(al.models.find(a=>!Object.prototype.hasOwnProperty.call(U,a.id))?.id??al.models[0].id),Z(!1)},children:"Change model choices"})]}),al.models.length>0&&(0,e.jsxs)(g.default,{sx:{mb:2.5},children:[(0,e.jsx)(l.A,{variant:"subtitle2",sx:{mb:1},children:"Model plan"}),(0,e.jsx)(a7.Ay,{container:!0,spacing:1.5,children:al.models.map(a=>{let b=al.installedModels.find(b=>b.id===U[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)(A.A,{direction:"row",spacing:1.25,alignItems:"center",children:[(0,e.jsxs)(g.default,{sx:{minWidth:0,flex:1},children:[(0,e.jsx)(l.A,{variant:"caption",color:"text.secondary",children:"Package model"}),(0,e.jsx)(l.A,{variant:"subtitle2",noWrap:!0,children:a.displayName})]}),(0,e.jsx)(be.A,{color:"action"}),(0,e.jsxs)(g.default,{sx:{minWidth:0,flex:1},children:[(0,e.jsx)(l.A,{variant:"caption",color:"text.secondary",children:b?"Your model":"New model"}),(0,e.jsx)(l.A,{variant:"subtitle2",noWrap:!0,children:b?.displayName??a.displayName})]})]})})},a.id)})})]}),al.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."}),al.servers.some(a=>a.installCommand||a.buildCommand)&&(0,e.jsxs)(g.default,{sx:{mb:2.5},children:[(0,e.jsx)(B.A,{severity:"warning",sx:{mb:1.5},children:"This package will run these repository-provided commands on your machine. Review them before installing."}),(0,e.jsx)(A.A,{spacing:1.5,children:al.servers.filter(a=>a.installCommand||a.buildCommand).map(a=>(0,e.jsxs)(a8.A,{variant:"outlined",sx:{p:1.75},children:[(0,e.jsx)(l.A,{variant:"subtitle2",children:a.localName}),(0,e.jsx)(l.A,{variant:"caption",color:"text.secondary",sx:{overflowWrap:"anywhere"},children:a.source}),a.installCommand&&(0,e.jsxs)(g.default,{sx:{mt:1.25},children:[(0,e.jsx)(l.A,{variant:"caption",color:"text.secondary",display:"block",children:"Install command"}),(0,e.jsx)(g.default,{component:"code",sx:{display:"block",mt:.5,p:1,bgcolor:"action.hover",overflowWrap:"anywhere"},children:a.installCommand})]}),a.buildCommand&&(0,e.jsxs)(g.default,{sx:{mt:1.25},children:[(0,e.jsx)(l.A,{variant:"caption",color:"text.secondary",display:"block",children:"Build command"}),(0,e.jsx)(g.default,{component:"code",sx:{display:"block",mt:.5,p:1,bgcolor:"action.hover",overflowWrap:"anywhere"},children:a.buildCommand})]})]},`${a.localName}:${a.source}`))})]}),al.globals.length>0&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(l.A,{variant:"subtitle2",sx:{mb:1},children:"Global variables requested by this package"}),(0,e.jsx)(A.A,{spacing:1.5,sx:{mb:2.5},children:al.globals.map(a=>(0,e.jsx)(r.A,{size:"small",type:a.isSecret&&!ad[`global:${a.name}`]?"password":"text",label:a.name,helperText:`${a.description??(a.required?"Required":"Optional")}${al.missingGlobals.includes(a.name)?" — not currently set":" — leave blank to keep the current value"}`,value:P[a.name]??"",onChange:b=>Q(c=>({...c,[a.name]:b.target.value})),fullWidth:!0,InputProps:a.isSecret?{endAdornment:(0,e.jsx)(s.A,{position:"end",children:(0,e.jsx)(bc.A,{size:"small",tabIndex:-1,"aria-label":ad[`global:${a.name}`]?"Hide global":"Show global",onClick:()=>ae(b=>({...b,[`global:${a.name}`]:!b[`global:${a.name}`]})),children:ad[`global:${a.name}`]?(0,e.jsx)(bk.A,{fontSize:"small"}):(0,e.jsx)(bj.A,{fontSize:"small"})})})}:void 0},a.name))})]}),(0,e.jsx)(M.A,{sx:{my:2.5}}),al.secrets.length>0?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(l.A,{variant:"subtitle2",sx:{mb:1},children:"Secrets requested by this package"}),(0,e.jsx)(A.A,{spacing:1.5,sx:{mb:2.5},children:al.secrets.map(a=>(0,e.jsx)(r.A,{size:"small",type:ad[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)(s.A,{position:"end",children:(0,e.jsx)(bc.A,{size:"small",tabIndex:-1,"aria-label":ad[a.key]?"Hide secret":"Show secret",onClick:()=>ae(b=>({...b,[a.key]:!b[a.key]})),children:ad[a.key]?(0,e.jsx)(bk.A,{fontSize:"small"}):(0,e.jsx)(bj.A,{fontSize:"small"})})})}},a.key))})]}):(0,e.jsx)(l.A,{variant:"body2",color:"text.secondary",sx:{mb:2.5},children:"This package doesn't request any secrets."}),(0,e.jsxs)(A.A,{direction:"row",spacing:1,justifyContent:"space-between",children:[(0,e.jsx)(j.A,{onClick:al.models.length>0?()=>_(0):ak,disabled:G,children:al.models.length>0?"Back":"Cancel"}),(0,e.jsx)(j.A,{variant:"contained",color:"primary",size:"large",onClick:()=>void aj(),disabled:G,startIcon:G?(0,e.jsx)(z.default,{size:16}):(0,e.jsx)(bh,{}),children:"Install package"})]})]})]}),aa&&(0,e.jsxs)(g.default,{children:[(0,e.jsx)(B.A,{severity:aa.ok?"success":"error",sx:{mb:1},children:aa.ok?`Installed "${aa.package?.name}": ${aa.created.length} created, ${aa.updated.length} updated, ${aa.disabled.length} disabled.`:`Install failed: ${aa.errors[0]??"unknown error"}`}),aa.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:"," ",aa.missingGlobals.join(", "),"."]}),(0,e.jsx)(j.A,{size:"small",onClick:ak,children:"Close"})]})]})]})]})}var bn=c(58156);let bo=(0,aB.h)("frontend/components/Packages");function bp(){let[a,b]=(0,f.useState)(!1),[c,d]=(0,f.useState)(0);return bo.debug("Rendering PackagesManager",{wizardOpen:a}),(0,e.jsxs)(g.default,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,e.jsx)(bn.default,{eyebrow:"Share",title:"Packages",description:"Bundle complete FLUJO systems into portable, secret-safe manifests.",icon:o,badge:(0,e.jsx)(i.A,{label:"Experimental",size:"small",color:"warning",variant:"outlined"}),actions:(0,e.jsx)(j.A,{variant:"contained",startIcon:(0,e.jsx)(m.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)(k.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)(o,{sx:{fontSize:48,color:"text.secondary"}}),(0,e.jsx)(l.A,{variant:"h6",children:"Bundle your FLUJO setup into a shareable package"}),(0,e.jsx)(l.A,{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)(j.A,{variant:"contained",startIcon:(0,e.jsx)(m.A,{}),onClick:()=>b(!0),children:"Create package"})]}),(0,e.jsxs)(k.A,{variant:"outlined",sx:{p:3,mt:3,maxWidth:{xs:"100%",md:1100},mx:"auto"},children:[(0,e.jsx)(l.A,{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 bq=c(49938),br=c(61615);function bs(){(0,h.useRouter)();let{settings:a,settingsHydrated:b}=(0,bq.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)(bp,{})}):(0,e.jsx)(br.default,{})}(0,aB.h)("app/packages/page")},40628:(a,b,c)=>{Promise.resolve().then(c.bind(c,35361))},40973:(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:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"}),"Search")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},49248:(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 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")},53222:(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:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh")},53773:(a,b,c)=>{"use strict";c.d(b,{A:()=>v});var d=c(38301),e=c(43249),f=c(3253),g=c(33105),h=c(2783),i=c(38435),j=c(30583),k=c(69467),l=c(49103),m=c(80751),n=c(49939),o=c(21124);let p=(0,l.A)(),q=(0,i.A)("div",{name:"MuiStack",slot:"Root",overridesResolver:(a,b)=>b.root});function r(a){return(0,j.A)({props:a,name:"MuiStack",defaultTheme:p})}let s=({ownerState:a,theme:b})=>{let c={display:"flex",flexDirection:"column",...(0,m.NI)({theme:b},(0,m.kW)({values:a.direction,breakpoints:b.breakpoints.values}),a=>({flexDirection:a}))};if(a.spacing){let d=(0,n.LX)(b),e=Object.keys(b.breakpoints.values).reduce((b,c)=>(("object"==typeof a.spacing&&null!=a.spacing[c]||"object"==typeof a.direction&&null!=a.direction[c])&&(b[c]=!0),b),{}),g=(0,m.kW)({values:a.direction,base:e}),h=(0,m.kW)({values:a.spacing,base:e});"object"==typeof g&&Object.keys(g).forEach((a,b,c)=>{if(!g[a]){let d=b>0?g[c[b-1]]:"column";g[a]=d}}),c=(0,f.A)(c,(0,m.NI)({theme:b},h,(b,c)=>a.useFlexGap?{gap:(0,n._W)(d,b)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[c?g[c]:a.direction]}`]:(0,n._W)(d,b)}}))}return(0,m.iZ)(b.breakpoints,c)};var t=c(18168),u=c(6636);let v=function(a={}){let{createStyledComponent:b=q,useThemeProps:c=r,componentName:f="MuiStack"}=a,i=b(s);return d.forwardRef(function(a,b){let j=c(a),{component:l="div",direction:m="column",spacing:n=0,divider:p,children:q,className:r,useFlexGap:s=!1,...t}=(0,k.A)(j),u=(0,h.A)({root:["root"]},a=>(0,g.Ay)(f,a),{});return(0,o.jsx)(i,{as:l,ownerState:{direction:m,spacing:n,useFlexGap:s},ref:b,className:(0,e.A)(u.root,r),...t,children:p?function(a,b){let c=d.Children.toArray(a).filter(Boolean);return c.reduce((a,e,f)=>(a.push(e),f<c.length-1&&a.push(d.cloneElement(b,{key:`separator-${f}`})),a),[])}(q,p):q})})}({createStyledComponent:(0,t.Ay)("div",{name:"MuiStack",slot:"Root",overridesResolver:(a,b)=>b.root}),useThemeProps:a=>(0,u.b)({props:a,name:"MuiStack"})})},55511:a=>{"use strict";a.exports=require("crypto")},58156:(a,b,c)=>{"use strict";c.d(b,{default:()=>j});var d=c(21124),e=c(60839),f=c(81637),g=c(53773),h=c(79515),i=c(37489);function j({title:a,description:b,eyebrow:c,icon:j,leading:k,badge:l,actions:m,compact:n=!1,maxWidth:o=1440}){let p=(0,e.A)();return(0,d.jsx)(f.default,{component:"header",sx:{position:"relative",overflow:"hidden",borderBottom:1,borderColor:"divider",background:`linear-gradient(110deg, ${(0,i.X4)(p.palette.primary.main,"dark"===p.palette.mode?.09:.055)}, transparent 38%, ${(0,i.X4)(p.palette.secondary.main,.045)})`,"&::after":{position:"absolute",top:-90,right:"8%",width:220,height:160,borderRadius:"50%",content:'""',pointerEvents:"none",background:`radial-gradient(circle, ${(0,i.X4)(p.palette.primary.main,.16)}, transparent 68%)`,filter:"blur(20px)"}},children:(0,d.jsxs)(f.default,{sx:{position:"relative",zIndex:1,display:"flex",width:"100%",maxWidth:o,mx:"auto",px:{xs:2,sm:3,lg:4},py:n?{xs:1.8,sm:2}:{xs:2.2,sm:2.8},alignItems:{xs:"flex-start",md:"center"},justifyContent:"space-between",flexDirection:{xs:"column",md:"row"},gap:2},children:[(0,d.jsxs)(g.A,{direction:"row",spacing:1.5,alignItems:"center",sx:{minWidth:0},children:[k,j&&(0,d.jsx)(f.default,{"aria-hidden":"true",sx:{display:"grid",width:n?40:46,height:n?40:46,flexShrink:0,placeItems:"center",border:`1px solid ${(0,i.X4)(p.palette.primary.main,.24)}`,borderRadius:n?2.8:3.2,color:"primary.light",bgcolor:(0,i.X4)(p.palette.primary.main,.1),boxShadow:`inset 0 1px 0 ${(0,i.X4)(p.palette.common.white,.08)}, 0 10px 30px ${(0,i.X4)(p.palette.primary.main,.12)}`},children:(0,d.jsx)(j,{sx:{fontSize:n?21:24}})}),(0,d.jsxs)(f.default,{sx:{minWidth:0},children:[(c||l)&&(0,d.jsxs)(g.A,{direction:"row",spacing:1,alignItems:"center",sx:{mb:.35},children:[c&&(0,d.jsx)(h.A,{sx:{color:"primary.light",fontSize:"0.67rem",fontWeight:780,letterSpacing:"0.13em",textTransform:"uppercase"},children:c}),l]}),(0,d.jsx)(h.A,{component:"h1",variant:"h5",sx:{overflow:"hidden",textOverflow:"ellipsis",fontSize:n?"1.2rem":void 0,whiteSpace:{xs:"normal",sm:"nowrap"}},children:a}),b&&(0,d.jsx)(h.A,{variant:"body2",color:"text.secondary",sx:{mt:.45,maxWidth:720,textWrap:"balance"},children:b})]})]}),m&&(0,d.jsx)(f.default,{sx:{display:"flex",width:{xs:"100%",md:"auto"},flexShrink:0,flexWrap:"wrap",alignItems:"center",gap:1,"& > .MuiButton-root":{flex:{xs:"1 1 auto",sm:"0 0 auto"}}},children:m})]})})}},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")},63654:(a,b,c)=>{"use strict";c.d(b,{P:()=>f});let d=(0,c(42819).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},65106:(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 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")},71439:(a,b,c)=>{"use strict";c.d(b,{Ay:()=>x});var d=c(38301),e=c(43249),f=c(2783),g=c(7103),h=c(18168),i=c(68333),j=c(6636),k=c(67934),l=c(26636),m=c(55470),n=c(29565),o=c(33105);function p(a){return(0,o.Ay)("MuiListItem",a)}(0,n.A)("MuiListItem",["root","container","dense","alignItemsFlexStart","divider","gutters","padding","secondaryAction"]);var q=c(40443);function r(a){return(0,o.Ay)("MuiListItemSecondaryAction",a)}(0,n.A)("MuiListItemSecondaryAction",["root","disableGutters"]);var s=c(21124);let t=(0,h.Ay)("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.disableGutters&&b.disableGutters]}})({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",variants:[{props:({ownerState:a})=>a.disableGutters,style:{right:0}}]}),u=d.forwardRef(function(a,b){let c=(0,j.b)({props:a,name:"MuiListItemSecondaryAction"}),{className:g,...h}=c,i=d.useContext(m.A),k={...c,disableGutters:i.disableGutters},l=(a=>{let{disableGutters:b,classes:c}=a;return(0,f.A)({root:["root",b&&"disableGutters"]},r,c)})(k);return(0,s.jsx)(t,{className:(0,e.A)(l.root,g),ownerState:k,ref:b,...h})});u.muiName="ListItemSecondaryAction";let v=(0,h.Ay)("div",{name:"MuiListItem",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,c.dense&&b.dense,"flex-start"===c.alignItems&&b.alignItemsFlexStart,c.divider&&b.divider,!c.disableGutters&&b.gutters,!c.disablePadding&&b.padding,c.hasSecondaryAction&&b.secondaryAction]}})((0,i.A)(({theme:a})=>({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",variants:[{props:({ownerState:a})=>!a.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:a})=>!a.disablePadding&&a.dense,style:{paddingTop:4,paddingBottom:4}},{props:({ownerState:a})=>!a.disablePadding&&!a.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:a})=>!a.disablePadding&&!!a.secondaryAction,style:{paddingRight:48}},{props:({ownerState:a})=>!!a.secondaryAction,style:{[`& > .${q.A.root}`]:{paddingRight:48}}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:a})=>a.divider,style:{borderBottom:`1px solid ${(a.vars||a).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:a})=>a.button,style:{transition:a.transitions.create("background-color",{duration:a.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(a.vars||a).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}}},{props:({ownerState:a})=>a.hasSecondaryAction,style:{paddingRight:48}}]}))),w=(0,h.Ay)("li",{name:"MuiListItem",slot:"Container",overridesResolver:(a,b)=>b.container})({position:"relative"}),x=d.forwardRef(function(a,b){let c=(0,j.b)({props:a,name:"MuiListItem"}),{alignItems:h="center",children:i,className:n,component:o,components:q={},componentsProps:r={},ContainerComponent:t="li",ContainerProps:{className:x,...y}={},dense:z=!1,disableGutters:A=!1,disablePadding:B=!1,divider:C=!1,secondaryAction:D,slotProps:E={},slots:F={},...G}=c,H=d.useContext(m.A),I=d.useMemo(()=>({dense:z||H.dense||!1,alignItems:h,disableGutters:A}),[h,H.dense,z,A]),J=d.useRef(null),K=d.Children.toArray(i),L=K.length&&(0,k.A)(K[K.length-1],["ListItemSecondaryAction"]),M={...c,alignItems:h,dense:I.dense,disableGutters:A,disablePadding:B,divider:C,hasSecondaryAction:L},N=(a=>{let{alignItems:b,classes:c,dense:d,disableGutters:e,disablePadding:g,divider:h,hasSecondaryAction:i}=a;return(0,f.A)({root:["root",d&&"dense",!e&&"gutters",!g&&"padding",h&&"divider","flex-start"===b&&"alignItemsFlexStart",i&&"secondaryAction"],container:["container"]},p,c)})(M),O=(0,l.A)(J,b),P=F.root||q.Root||v,Q=E.root||r.root||{},R={className:(0,e.A)(N.root,Q.className,n),...G},S=o||"li";return L?(S=R.component||o?S:"div","li"===t&&("li"===S?S="div":"li"===R.component&&(R.component="div")),(0,s.jsx)(m.A.Provider,{value:I,children:(0,s.jsxs)(w,{as:t,className:(0,e.A)(N.container,x),ref:O,ownerState:M,...y,children:[(0,s.jsx)(P,{...Q,...!(0,g.A)(P)&&{as:S,ownerState:{...M,...Q.ownerState}},...R,children:K}),K.pop()]})})):(0,s.jsx)(m.A.Provider,{value:I,children:(0,s.jsxs)(P,{...Q,as:S,ref:O,...!(0,g.A)(P)&&{ownerState:{...M,...Q.ownerState}},...R,children:[K,D&&(0,s.jsx)(u,{children:D})]})})})},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")},93895:(a,b,c)=>{"use strict";c.d(b,{A:()=>g,K:()=>f});var d=c(29565),e=c(33105);function f(a){return(0,e.Ay)("MuiDivider",a)}let g=(0,d.A)("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"])},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
+ 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}}},98463:(a,b,c)=>{"use strict";c.d(b,{A:()=>n});var d=c(38301),e=c(43249),f=c(2783),g=c(18168),h=c(6636),i=c(29565),j=c(33105);function k(a){return(0,j.Ay)("MuiCardActions",a)}(0,i.A)("MuiCardActions",["root","spacing"]);var l=c(21124);let m=(0,g.Ay)("div",{name:"MuiCardActions",slot:"Root",overridesResolver:(a,b)=>{let{ownerState:c}=a;return[b.root,!c.disableSpacing&&b.spacing]}})({display:"flex",alignItems:"center",padding:8,variants:[{props:{disableSpacing:!1},style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),n=d.forwardRef(function(a,b){let c=(0,h.b)({props:a,name:"MuiCardActions"}),{disableSpacing:d=!1,className:g,...i}=c,j={...c,disableSpacing:d},n=(a=>{let{classes:b,disableSpacing:c}=a;return(0,f.A)({root:["root",!c&&"spacing"]},k,b)})(j);return(0,l.jsx)(m,{className:(0,e.A)(n.root,g),ownerState:j,ref:b,...i})})}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,8298,773,3954,8745,7674,8730,3418,7147,5494,5807,5444,1314,1662],()=>b(b.s=95285));module.exports=c})();