flujo-ai 3.12.0 → 3.16.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 (408) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +140 -105
  3. package/.next/app-path-routes-manifest.json +19 -14
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +15 -15
  6. package/.next/routes-manifest.json +20 -1
  7. package/.next/server/app/_not-found/page.js +2 -2
  8. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  9. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_not-found.html +1 -1
  11. package/.next/server/app/_not-found.rsc +1 -1
  12. package/.next/server/app/api/backup/route.js +1 -1
  13. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  14. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/browse/route.js +1 -1
  16. package/.next/server/app/api/browse/route.js.nft.json +1 -1
  17. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/cwd/route.js +1 -1
  19. package/.next/server/app/api/cwd/route.js.nft.json +1 -1
  20. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/encryption/secure/route.js +1 -1
  22. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  23. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/env/route.js +1 -1
  25. package/.next/server/app/api/env/route.js.nft.json +1 -1
  26. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/flow/[id]/route.js +1 -1
  28. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  29. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/flow/compile/route.js +1 -0
  31. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -0
  32. package/.next/server/app/api/flow/compile/route_client-reference-manifest.js +1 -0
  33. package/.next/server/app/api/flow/generate/route.js +17 -0
  34. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -0
  35. package/.next/server/app/api/flow/generate/route_client-reference-manifest.js +1 -0
  36. package/.next/server/app/api/flow/prompt-renderer/route.js +1 -1
  37. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  38. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/flow/route.js +1 -1
  40. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  41. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/git/route.js +2 -2
  43. package/.next/server/app/api/git/route.js.nft.json +1 -1
  44. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/init/route.js +1 -1
  46. package/.next/server/app/api/init/route.js.nft.json +1 -1
  47. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/local-models/capability/route.js +1 -0
  49. package/.next/server/app/api/local-models/capability/route.js.nft.json +1 -0
  50. package/.next/server/app/api/local-models/capability/route_client-reference-manifest.js +1 -0
  51. package/.next/server/app/api/local-models/pull/route.js +1 -0
  52. package/.next/server/app/api/local-models/pull/route.js.nft.json +1 -0
  53. package/.next/server/app/api/local-models/pull/route_client-reference-manifest.js +1 -0
  54. package/.next/server/app/api/local-models/suggest/route.js +2 -0
  55. package/.next/server/app/api/local-models/suggest/route.js.nft.json +1 -0
  56. package/.next/server/app/api/local-models/suggest/route_client-reference-manifest.js +1 -0
  57. package/.next/server/app/api/mcp/cancel/route.js +1 -1
  58. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  59. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  61. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  62. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  64. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  65. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  67. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  68. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  70. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  71. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  73. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  74. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  76. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  77. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  79. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  80. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  82. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  83. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/mcp/servers/route.js +1 -1
  85. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  86. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  88. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  89. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  91. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  92. package/.next/server/app/api/mcp/test-connection/stream/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/mcp-registry/route.js +1 -1
  94. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  95. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
  97. package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -1
  98. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/model/[id]/route.js +1 -1
  100. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  101. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/model/provider/route.js +1 -1
  103. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  104. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/model/route.js +1 -1
  106. package/.next/server/app/api/model/route.js.nft.json +1 -1
  107. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/model/test/route.js +1 -1
  109. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  110. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/oauth/callback/route.js +1 -1
  112. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
  113. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/oauth/initiate/route.js +1 -1
  115. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
  116. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/oauth/reset/route.js +1 -1
  118. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  119. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/planned-executions/[id]/route.js +2 -1
  121. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  122. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/planned-executions/[id]/run/route.js +2 -1
  124. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  125. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/planned-executions/[id]/runs/route.js +2 -1
  127. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  128. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
  130. package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -1
  131. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/planned-executions/route.js +1 -1
  133. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  134. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/restore/route.js +1 -1
  136. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  137. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/storage/route.js +1 -1
  139. package/.next/server/app/api/storage/route.js.nft.json +1 -1
  140. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/update/route.js +1 -1
  142. package/.next/server/app/api/update/route.js.nft.json +1 -1
  143. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  145. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  146. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/chat/page.js +1 -1
  148. package/.next/server/app/chat/page.js.nft.json +1 -1
  149. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  150. package/.next/server/app/chat.html +1 -1
  151. package/.next/server/app/chat.rsc +2 -2
  152. package/.next/server/app/docs/page.js +32 -2
  153. package/.next/server/app/docs/page.js.nft.json +1 -1
  154. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  155. package/.next/server/app/docs.html +1 -1
  156. package/.next/server/app/docs.rsc +2 -2
  157. package/.next/server/app/executions/page.js +3 -3
  158. package/.next/server/app/executions/page.js.nft.json +1 -1
  159. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  160. package/.next/server/app/executions.html +1 -1
  161. package/.next/server/app/executions.rsc +2 -2
  162. package/.next/server/app/flows/page.js +10 -10
  163. package/.next/server/app/flows/page.js.nft.json +1 -1
  164. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  165. package/.next/server/app/flows.html +1 -1
  166. package/.next/server/app/flows.rsc +2 -2
  167. package/.next/server/app/index.html +1 -1
  168. package/.next/server/app/index.rsc +1 -1
  169. package/.next/server/app/mcp/page.js +6 -6
  170. package/.next/server/app/mcp/page.js.nft.json +1 -1
  171. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  172. package/.next/server/app/mcp-flows/route.js +5 -1
  173. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  174. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  176. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  177. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/mcp.html +1 -1
  179. package/.next/server/app/mcp.rsc +2 -2
  180. package/.next/server/app/models/page.js +2 -2
  181. package/.next/server/app/models/page.js.nft.json +1 -1
  182. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  183. package/.next/server/app/page.js +2 -2
  184. package/.next/server/app/page.js.nft.json +1 -1
  185. package/.next/server/app/page_client-reference-manifest.js +1 -1
  186. package/.next/server/app/settings/page.js +1 -1
  187. package/.next/server/app/settings/page.js.nft.json +1 -1
  188. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  189. package/.next/server/app/settings.html +1 -1
  190. package/.next/server/app/settings.rsc +2 -2
  191. package/.next/server/app/v1/chat/completions/route.js +1 -1
  192. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  193. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +1 -1
  195. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  196. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +1 -1
  198. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  199. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  201. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  202. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  204. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  205. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +1 -1
  207. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  208. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +1 -1
  210. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  211. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  213. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  214. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -1
  215. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +1 -1
  216. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  217. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/v1/chat/conversations/route.js +1 -1
  219. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  220. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/v1/models/route.js +1 -1
  222. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  223. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app-paths-manifest.json +19 -14
  225. package/.next/server/chunks/1403.js +1 -1
  226. package/.next/server/chunks/1690.js +1 -0
  227. package/.next/server/chunks/1877.js +31 -0
  228. package/.next/server/chunks/2776.js +1 -1
  229. package/.next/server/chunks/2859.js +7 -0
  230. package/.next/server/chunks/3243.js +1 -0
  231. package/.next/server/chunks/3304.js +1 -0
  232. package/.next/server/chunks/3984.js +4 -4
  233. package/.next/server/chunks/4681.js +1 -0
  234. package/.next/server/chunks/5504.js +1 -1
  235. package/.next/server/chunks/{1331.js → 5873.js} +3 -3
  236. package/.next/server/chunks/5935.js +2 -0
  237. package/.next/server/chunks/6195.js +37 -0
  238. package/.next/server/chunks/6523.js +1 -0
  239. package/.next/server/chunks/6936.js +6 -6
  240. package/.next/server/chunks/701.js +1 -1
  241. package/.next/server/chunks/7214.js +2 -2
  242. package/.next/server/chunks/{5389.js → 7362.js} +13 -13
  243. package/.next/server/chunks/7635.js +6 -0
  244. package/.next/server/chunks/{2287.js → 8367.js} +2 -2
  245. package/.next/server/chunks/{2253.js → 8572.js} +1 -1
  246. package/.next/server/chunks/8739.js +1 -1
  247. package/.next/server/chunks/8994.js +2 -0
  248. package/.next/server/chunks/9188.js +1 -1
  249. package/.next/server/chunks/9509.js +2 -2
  250. package/.next/server/chunks/9794.js +1 -0
  251. package/.next/server/chunks/9957.js +1 -0
  252. package/.next/server/functions-config-manifest.json +3 -0
  253. package/.next/server/instrumentation.js +1 -1
  254. package/.next/server/instrumentation.js.nft.json +1 -1
  255. package/.next/server/pages/404.html +1 -1
  256. package/.next/server/pages/500.html +1 -1
  257. package/.next/server/pages-manifest.json +1 -1
  258. package/.next/server/server-reference-manifest.js +1 -1
  259. package/.next/server/server-reference-manifest.json +1 -1
  260. package/.next/static/chunks/2403-5c26e0abd76095b1.js +1 -0
  261. package/.next/static/chunks/510-e39ad4e1fae6dd1f.js +1 -0
  262. package/.next/static/chunks/8862-1170dad1d6f3cd39.js +1 -0
  263. package/.next/static/chunks/9554-cb5bd72cb40e8dbe.js +1 -0
  264. package/.next/static/chunks/app/api/backup/route-7248529e02c31012.js +1 -0
  265. package/.next/static/chunks/app/api/browse/route-7248529e02c31012.js +1 -0
  266. package/.next/static/chunks/app/api/cwd/route-7248529e02c31012.js +1 -0
  267. package/.next/static/chunks/app/api/encryption/secure/route-7248529e02c31012.js +1 -0
  268. package/.next/static/chunks/app/api/env/route-7248529e02c31012.js +1 -0
  269. package/.next/static/chunks/app/api/flow/[id]/route-7248529e02c31012.js +1 -0
  270. package/.next/static/chunks/app/api/flow/compile/route-7248529e02c31012.js +1 -0
  271. package/.next/static/chunks/app/api/flow/generate/route-7248529e02c31012.js +1 -0
  272. package/.next/static/chunks/app/api/flow/prompt-renderer/route-7248529e02c31012.js +1 -0
  273. package/.next/static/chunks/app/api/flow/route-7248529e02c31012.js +1 -0
  274. package/.next/static/chunks/app/api/git/route-7248529e02c31012.js +1 -0
  275. package/.next/static/chunks/app/api/init/route-7248529e02c31012.js +1 -0
  276. package/.next/static/chunks/app/api/local-models/capability/route-7248529e02c31012.js +1 -0
  277. package/.next/static/chunks/app/api/local-models/pull/route-7248529e02c31012.js +1 -0
  278. package/.next/static/chunks/app/api/local-models/suggest/route-7248529e02c31012.js +1 -0
  279. package/.next/static/chunks/app/api/mcp/cancel/route-7248529e02c31012.js +1 -0
  280. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-7248529e02c31012.js +1 -0
  281. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-7248529e02c31012.js +1 -0
  282. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-7248529e02c31012.js +1 -0
  283. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-7248529e02c31012.js +1 -0
  284. package/.next/static/chunks/app/api/mcp/servers/[name]/route-7248529e02c31012.js +1 -0
  285. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-7248529e02c31012.js +1 -0
  286. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-7248529e02c31012.js +1 -0
  287. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-7248529e02c31012.js +1 -0
  288. package/.next/static/chunks/app/api/mcp/servers/route-7248529e02c31012.js +1 -0
  289. package/.next/static/chunks/app/api/mcp/test-connection/route-7248529e02c31012.js +1 -0
  290. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-7248529e02c31012.js +1 -0
  291. package/.next/static/chunks/app/api/mcp-registry/route-7248529e02c31012.js +1 -0
  292. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-7248529e02c31012.js +1 -0
  293. package/.next/static/chunks/app/api/model/[id]/route-7248529e02c31012.js +1 -0
  294. package/.next/static/chunks/app/api/model/provider/route-7248529e02c31012.js +1 -0
  295. package/.next/static/chunks/app/api/model/route-7248529e02c31012.js +1 -0
  296. package/.next/static/chunks/app/api/model/test/route-7248529e02c31012.js +1 -0
  297. package/.next/static/chunks/app/api/oauth/callback/route-7248529e02c31012.js +1 -0
  298. package/.next/static/chunks/app/api/oauth/initiate/route-7248529e02c31012.js +1 -0
  299. package/.next/static/chunks/app/api/oauth/reset/route-7248529e02c31012.js +1 -0
  300. package/.next/static/chunks/app/api/planned-executions/[id]/route-7248529e02c31012.js +1 -0
  301. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-7248529e02c31012.js +1 -0
  302. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-7248529e02c31012.js +1 -0
  303. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-7248529e02c31012.js +1 -0
  304. package/.next/static/chunks/app/api/planned-executions/route-7248529e02c31012.js +1 -0
  305. package/.next/static/chunks/app/api/restore/route-7248529e02c31012.js +1 -0
  306. package/.next/static/chunks/app/api/storage/route-7248529e02c31012.js +1 -0
  307. package/.next/static/chunks/app/api/update/route-7248529e02c31012.js +1 -0
  308. package/.next/static/chunks/app/api/webhooks/[id]/route-7248529e02c31012.js +1 -0
  309. package/.next/static/chunks/app/chat/{page-5c838e3ce9d7a27d.js → page-c759cf382bcabd77.js} +1 -1
  310. package/.next/static/chunks/app/docs/page-1d349e2d82f7b104.js +1 -0
  311. package/.next/static/chunks/app/executions/page-4155f9f682ee6f84.js +1 -0
  312. package/.next/static/chunks/app/flows/page-375150edff9134a3.js +1 -0
  313. package/.next/static/chunks/app/mcp/page-5234695929980171.js +1 -0
  314. package/.next/static/chunks/app/mcp-flows/route-7248529e02c31012.js +1 -0
  315. package/.next/static/chunks/app/mcp-proxy/[server]/route-7248529e02c31012.js +1 -0
  316. package/.next/static/chunks/app/settings/{page-199cff457723ee57.js → page-9a2bfb8d5bdba29e.js} +1 -1
  317. package/.next/static/chunks/app/v1/chat/completions/route-7248529e02c31012.js +1 -0
  318. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-7248529e02c31012.js +1 -0
  319. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-7248529e02c31012.js +1 -0
  320. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-7248529e02c31012.js +1 -0
  321. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-7248529e02c31012.js +1 -0
  322. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-7248529e02c31012.js +1 -0
  323. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-7248529e02c31012.js +1 -0
  324. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-7248529e02c31012.js +1 -0
  325. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-7248529e02c31012.js +1 -0
  326. package/.next/static/chunks/app/v1/chat/conversations/route-7248529e02c31012.js +1 -0
  327. package/.next/static/chunks/app/v1/models/route-7248529e02c31012.js +1 -0
  328. package/.next/static/z7fsG7kblb_yxkUhOxn-G/_buildManifest.js +1 -0
  329. package/.next/trace +7 -7
  330. package/.next/types/app/api/flow/compile/route.ts +347 -0
  331. package/.next/types/app/api/flow/generate/route.ts +347 -0
  332. package/.next/types/app/api/local-models/capability/route.ts +347 -0
  333. package/.next/types/app/api/local-models/pull/route.ts +347 -0
  334. package/.next/types/app/api/local-models/suggest/route.ts +347 -0
  335. package/.next/types/routes.d.ts +6 -1
  336. package/.next/types/validator.ts +45 -0
  337. package/README.md +1 -1
  338. package/next.config.mjs +119 -105
  339. package/package.json +90 -90
  340. package/.next/server/chunks/4239.js +0 -1
  341. package/.next/server/chunks/4706.js +0 -1
  342. package/.next/server/chunks/4729.js +0 -6
  343. package/.next/server/chunks/5443.js +0 -1
  344. package/.next/server/chunks/7485.js +0 -1
  345. package/.next/server/chunks/812.js +0 -2
  346. package/.next/static/07vmuF5x2Bs8Xj1OeV0QV/_buildManifest.js +0 -1
  347. package/.next/static/chunks/256-7f4847b6726c866c.js +0 -1
  348. package/.next/static/chunks/7329-78f54f68ea2d37e2.js +0 -1
  349. package/.next/static/chunks/8862-8f17ef601bb1fbd0.js +0 -1
  350. package/.next/static/chunks/8890-a7a8c6f1dc3cd343.js +0 -1
  351. package/.next/static/chunks/app/api/backup/route-3291f6991ce3f52c.js +0 -1
  352. package/.next/static/chunks/app/api/browse/route-3291f6991ce3f52c.js +0 -1
  353. package/.next/static/chunks/app/api/cwd/route-3291f6991ce3f52c.js +0 -1
  354. package/.next/static/chunks/app/api/encryption/secure/route-3291f6991ce3f52c.js +0 -1
  355. package/.next/static/chunks/app/api/env/route-3291f6991ce3f52c.js +0 -1
  356. package/.next/static/chunks/app/api/flow/[id]/route-3291f6991ce3f52c.js +0 -1
  357. package/.next/static/chunks/app/api/flow/prompt-renderer/route-3291f6991ce3f52c.js +0 -1
  358. package/.next/static/chunks/app/api/flow/route-3291f6991ce3f52c.js +0 -1
  359. package/.next/static/chunks/app/api/git/route-3291f6991ce3f52c.js +0 -1
  360. package/.next/static/chunks/app/api/init/route-3291f6991ce3f52c.js +0 -1
  361. package/.next/static/chunks/app/api/mcp/cancel/route-3291f6991ce3f52c.js +0 -1
  362. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-3291f6991ce3f52c.js +0 -1
  363. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-3291f6991ce3f52c.js +0 -1
  364. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-3291f6991ce3f52c.js +0 -1
  365. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-3291f6991ce3f52c.js +0 -1
  366. package/.next/static/chunks/app/api/mcp/servers/[name]/route-3291f6991ce3f52c.js +0 -1
  367. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-3291f6991ce3f52c.js +0 -1
  368. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-3291f6991ce3f52c.js +0 -1
  369. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-3291f6991ce3f52c.js +0 -1
  370. package/.next/static/chunks/app/api/mcp/servers/route-3291f6991ce3f52c.js +0 -1
  371. package/.next/static/chunks/app/api/mcp/test-connection/route-3291f6991ce3f52c.js +0 -1
  372. package/.next/static/chunks/app/api/mcp/test-connection/stream/route-3291f6991ce3f52c.js +0 -1
  373. package/.next/static/chunks/app/api/mcp-registry/route-3291f6991ce3f52c.js +0 -1
  374. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-3291f6991ce3f52c.js +0 -1
  375. package/.next/static/chunks/app/api/model/[id]/route-3291f6991ce3f52c.js +0 -1
  376. package/.next/static/chunks/app/api/model/provider/route-3291f6991ce3f52c.js +0 -1
  377. package/.next/static/chunks/app/api/model/route-3291f6991ce3f52c.js +0 -1
  378. package/.next/static/chunks/app/api/model/test/route-3291f6991ce3f52c.js +0 -1
  379. package/.next/static/chunks/app/api/oauth/callback/route-3291f6991ce3f52c.js +0 -1
  380. package/.next/static/chunks/app/api/oauth/initiate/route-3291f6991ce3f52c.js +0 -1
  381. package/.next/static/chunks/app/api/oauth/reset/route-3291f6991ce3f52c.js +0 -1
  382. package/.next/static/chunks/app/api/planned-executions/[id]/route-3291f6991ce3f52c.js +0 -1
  383. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-3291f6991ce3f52c.js +0 -1
  384. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-3291f6991ce3f52c.js +0 -1
  385. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-3291f6991ce3f52c.js +0 -1
  386. package/.next/static/chunks/app/api/planned-executions/route-3291f6991ce3f52c.js +0 -1
  387. package/.next/static/chunks/app/api/restore/route-3291f6991ce3f52c.js +0 -1
  388. package/.next/static/chunks/app/api/storage/route-3291f6991ce3f52c.js +0 -1
  389. package/.next/static/chunks/app/api/update/route-3291f6991ce3f52c.js +0 -1
  390. package/.next/static/chunks/app/api/webhooks/[id]/route-3291f6991ce3f52c.js +0 -1
  391. package/.next/static/chunks/app/docs/page-d4005b311ead55f2.js +0 -1
  392. package/.next/static/chunks/app/executions/page-870931839b84c8d5.js +0 -1
  393. package/.next/static/chunks/app/flows/page-303dc4d2542567a6.js +0 -1
  394. package/.next/static/chunks/app/mcp/page-5012a7e5b6366207.js +0 -1
  395. package/.next/static/chunks/app/mcp-flows/route-3291f6991ce3f52c.js +0 -1
  396. package/.next/static/chunks/app/mcp-proxy/[server]/route-3291f6991ce3f52c.js +0 -1
  397. package/.next/static/chunks/app/v1/chat/completions/route-3291f6991ce3f52c.js +0 -1
  398. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-3291f6991ce3f52c.js +0 -1
  399. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-3291f6991ce3f52c.js +0 -1
  400. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-3291f6991ce3f52c.js +0 -1
  401. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-3291f6991ce3f52c.js +0 -1
  402. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-3291f6991ce3f52c.js +0 -1
  403. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-3291f6991ce3f52c.js +0 -1
  404. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-3291f6991ce3f52c.js +0 -1
  405. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-3291f6991ce3f52c.js +0 -1
  406. package/.next/static/chunks/app/v1/chat/conversations/route-3291f6991ce3f52c.js +0 -1
  407. package/.next/static/chunks/app/v1/models/route-3291f6991ce3f52c.js +0 -1
  408. /package/.next/static/{07vmuF5x2Bs8Xj1OeV0QV → z7fsG7kblb_yxkUhOxn-G}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7329],{20537:(e,o,t)=>{t.d(o,{A:()=>y});var r=t(12115),a=t(2821),n=t(57001),i=t(48116),s=t(66964),c=t(16625),l=t(95070),d=t(57262),p=t(85795),u=t(95195);function m(e){return(0,u.Ay)("MuiAccordionSummary",e)}let A=(0,p.A)("MuiAccordionSummary",["root","expanded","focusVisible","disabled","gutters","contentGutters","content","expandIconWrapper"]);var h=t(77765),v=t(95155);let b=(0,i.Ay)(l.A,{name:"MuiAccordionSummary",slot:"Root",overridesResolver:(e,o)=>o.root})((0,s.A)(e=>{let{theme:o}=e,t={duration:o.transitions.duration.shortest};return{display:"flex",width:"100%",minHeight:48,padding:o.spacing(0,2),transition:o.transitions.create(["min-height","background-color"],t),["&.".concat(A.focusVisible)]:{backgroundColor:(o.vars||o).palette.action.focus},["&.".concat(A.disabled)]:{opacity:(o.vars||o).palette.action.disabledOpacity},["&:hover:not(.".concat(A.disabled,")")]:{cursor:"pointer"},variants:[{props:e=>!e.disableGutters,style:{["&.".concat(A.expanded)]:{minHeight:64}}}]}})),f=(0,i.Ay)("span",{name:"MuiAccordionSummary",slot:"Content",overridesResolver:(e,o)=>o.content})((0,s.A)(e=>{let{theme:o}=e;return{display:"flex",textAlign:"start",flexGrow:1,margin:"12px 0",variants:[{props:e=>!e.disableGutters,style:{transition:o.transitions.create(["margin"],{duration:o.transitions.duration.shortest}),["&.".concat(A.expanded)]:{margin:"20px 0"}}}]}})),x=(0,i.Ay)("span",{name:"MuiAccordionSummary",slot:"ExpandIconWrapper",overridesResolver:(e,o)=>o.expandIconWrapper})((0,s.A)(e=>{let{theme:o}=e;return{display:"flex",color:(o.vars||o).palette.action.active,transform:"rotate(0deg)",transition:o.transitions.create("transform",{duration:o.transitions.duration.shortest}),["&.".concat(A.expanded)]:{transform:"rotate(180deg)"}}})),y=r.forwardRef(function(e,o){let t=(0,c.b)({props:e,name:"MuiAccordionSummary"}),{children:i,className:s,expandIcon:l,focusVisibleClassName:p,onClick:u,slots:A,slotProps:y,...g}=t,{disabled:R=!1,disableGutters:C,expanded:k,toggle:M}=r.useContext(d.A),j={...t,expanded:k,disabled:R,disableGutters:C},w=(e=>{let{classes:o,expanded:t,disabled:r,disableGutters:a}=e;return(0,n.A)({root:["root",t&&"expanded",r&&"disabled",!a&&"gutters"],focusVisible:["focusVisible"],content:["content",t&&"expanded",!a&&"contentGutters"],expandIconWrapper:["expandIconWrapper",t&&"expanded"]},m,o)})(j),P={slots:A,slotProps:y},[z,S]=(0,h.A)("root",{ref:o,shouldForwardComponentProp:!0,className:(0,a.A)(w.root,s),elementType:b,externalForwardedProps:{...P,...g},ownerState:j,additionalProps:{focusRipple:!1,disableRipple:!0,disabled:R,"aria-expanded":k,focusVisibleClassName:(0,a.A)(w.focusVisible,p)},getSlotProps:e=>({...e,onClick:o=>{var t;null==(t=e.onClick)||t.call(e,o),M&&M(o),u&&u(o)}})}),[T,N]=(0,h.A)("content",{className:w.content,elementType:f,externalForwardedProps:P,ownerState:j}),[B,I]=(0,h.A)("expandIconWrapper",{className:w.expandIconWrapper,elementType:x,externalForwardedProps:P,ownerState:j});return(0,v.jsxs)(z,{...S,children:[(0,v.jsx)(T,{...N,children:i}),l&&(0,v.jsx)(B,{...I,children:l})]})})},22822:(e,o,t)=>{t.d(o,{A:()=>z});var r=t(12115),a=t(2821),n=t(57001),i=t(8532),s=t(89910),c=t(36697),l=t(95155);let d=(0,c.A)((0,l.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),p=(0,c.A)((0,l.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),u=(0,c.A)((0,l.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");var m=t(81852),A=t(30424),h=t(85795),v=t(95195);function b(e){return(0,v.Ay)("MuiCheckbox",e)}let f=(0,h.A)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]);var x=t(48116),y=t(66964),g=t(74798),R=t(16625),C=t(85560),k=t(77765);let M=(0,x.Ay)(s.A,{shouldForwardProp:e=>(0,A.A)(e)||"classes"===e,name:"MuiCheckbox",slot:"Root",overridesResolver:(e,o)=>{let{ownerState:t}=e;return[o.root,t.indeterminate&&o.indeterminate,o["size".concat((0,m.A)(t.size))],"default"!==t.color&&o["color".concat((0,m.A)(t.color))]]}})((0,y.A)(e=>{let{theme:o}=e;return{color:(o.vars||o).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:o.vars?"rgba(".concat(o.vars.palette.action.activeChannel," / ").concat(o.vars.palette.action.hoverOpacity,")"):(0,i.X4)(o.palette.action.active,o.palette.action.hoverOpacity)}}},...Object.entries(o.palette).filter((0,g.A)()).map(e=>{let[t]=e;return{props:{color:t,disableRipple:!1},style:{"&:hover":{backgroundColor:o.vars?"rgba(".concat(o.vars.palette[t].mainChannel," / ").concat(o.vars.palette.action.hoverOpacity,")"):(0,i.X4)(o.palette[t].main,o.palette.action.hoverOpacity)}}}}),...Object.entries(o.palette).filter((0,g.A)()).map(e=>{let[t]=e;return{props:{color:t},style:{["&.".concat(f.checked,", &.").concat(f.indeterminate)]:{color:(o.vars||o).palette[t].main},["&.".concat(f.disabled)]:{color:(o.vars||o).palette.action.disabled}}}}),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}})),j=(0,l.jsx)(p,{}),w=(0,l.jsx)(d,{}),P=(0,l.jsx)(u,{}),z=r.forwardRef(function(e,o){var t,i,s;let c=(0,R.b)({props:e,name:"MuiCheckbox"}),{checkedIcon:d=j,color:p="primary",icon:u=w,indeterminate:A=!1,indeterminateIcon:h=P,inputProps:v,size:f="medium",disableRipple:x=!1,className:y,slots:g={},slotProps:z={},...S}=c,T=A?h:u,N=A?h:d,B={...c,disableRipple:x,color:p,indeterminate:A,size:f},I=(e=>{let{classes:o,indeterminate:t,color:r,size:a}=e,i={root:["root",t&&"indeterminate","color".concat((0,m.A)(r)),"size".concat((0,m.A)(a))]},s=(0,n.A)(i,b,o);return{...o,...s}})(B),V=null!=(t=z.input)?t:v,[H,O]=(0,k.A)("root",{ref:o,elementType:M,className:(0,a.A)(I.root,y),shouldForwardComponentProp:!0,externalForwardedProps:{slots:g,slotProps:z,...S},ownerState:B,additionalProps:{type:"checkbox",icon:r.cloneElement(T,{fontSize:null!=(i=T.props.fontSize)?i:f}),checkedIcon:r.cloneElement(N,{fontSize:null!=(s=N.props.fontSize)?s:f}),disableRipple:x,slots:g,slotProps:{input:(0,C.A)("function"==typeof V?V(B):V,{"data-indeterminate":A})}}});return(0,l.jsx)(H,{...O,classes:I})})},37960:(e,o,t)=>{t.d(o,{A:()=>A});var r=t(12115),a=t(2821),n=t(57001),i=t(48116),s=t(66964),c=t(16625),l=t(85795),d=t(95195);function p(e){return(0,d.Ay)("MuiAccordionDetails",e)}(0,l.A)("MuiAccordionDetails",["root"]);var u=t(95155);let m=(0,i.Ay)("div",{name:"MuiAccordionDetails",slot:"Root",overridesResolver:(e,o)=>o.root})((0,s.A)(e=>{let{theme:o}=e;return{padding:o.spacing(1,2,2)}})),A=r.forwardRef(function(e,o){let t=(0,c.b)({props:e,name:"MuiAccordionDetails"}),{className:r,...i}=t,s=(e=>{let{classes:o}=e;return(0,n.A)({root:["root"]},p,o)})(t);return(0,u.jsx)(m,{className:(0,a.A)(s.root,r),ref:o,ownerState:t,...i})})},57262:(e,o,t)=>{t.d(o,{A:()=>r});let r=t(12115).createContext({})},98267:(e,o,t)=>{t.d(o,{A:()=>g});var r=t(12115),a=t(2821),n=t(57001),i=t(48116),s=t(66964),c=t(16625),l=t(50430),d=t(2300),p=t(57262),u=t(17576),m=t(77765),A=t(85795),h=t(95195);function v(e){return(0,h.Ay)("MuiAccordion",e)}let b=(0,A.A)("MuiAccordion",["root","heading","rounded","expanded","disabled","gutters","region"]);var f=t(95155);let x=(0,i.Ay)(d.A,{name:"MuiAccordion",slot:"Root",overridesResolver:(e,o)=>{let{ownerState:t}=e;return[{["& .".concat(b.region)]:o.region},o.root,!t.square&&o.rounded,!t.disableGutters&&o.gutters]}})((0,s.A)(e=>{let{theme:o}=e,t={duration:o.transitions.duration.shortest};return{position:"relative",transition:o.transitions.create(["margin"],t),overflowAnchor:"none","&::before":{position:"absolute",left:0,top:-1,right:0,height:1,content:'""',opacity:1,backgroundColor:(o.vars||o).palette.divider,transition:o.transitions.create(["opacity","background-color"],t)},"&:first-of-type":{"&::before":{display:"none"}},["&.".concat(b.expanded)]:{"&::before":{opacity:0},"&:first-of-type":{marginTop:0},"&:last-of-type":{marginBottom:0},"& + &":{"&::before":{display:"none"}}},["&.".concat(b.disabled)]:{backgroundColor:(o.vars||o).palette.action.disabledBackground}}}),(0,s.A)(e=>{let{theme:o}=e;return{variants:[{props:e=>!e.square,style:{borderRadius:0,"&:first-of-type":{borderTopLeftRadius:(o.vars||o).shape.borderRadius,borderTopRightRadius:(o.vars||o).shape.borderRadius},"&:last-of-type":{borderBottomLeftRadius:(o.vars||o).shape.borderRadius,borderBottomRightRadius:(o.vars||o).shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}}},{props:e=>!e.disableGutters,style:{["&.".concat(b.expanded)]:{margin:"16px 0"}}}]}})),y=(0,i.Ay)("h3",{name:"MuiAccordion",slot:"Heading",overridesResolver:(e,o)=>o.heading})({all:"unset"}),g=r.forwardRef(function(e,o){let t=(0,c.b)({props:e,name:"MuiAccordion"}),{children:i,className:s,defaultExpanded:d=!1,disabled:A=!1,disableGutters:h=!1,expanded:b,onChange:g,square:R=!1,slots:C={},slotProps:k={},TransitionComponent:M,TransitionProps:j,...w}=t,[P,z]=(0,u.A)({controlled:b,default:d,name:"Accordion",state:"expanded"}),S=r.useCallback(e=>{z(!P),g&&g(e,!P)},[P,g,z]),[T,...N]=r.Children.toArray(i),B=r.useMemo(()=>({expanded:P,disabled:A,disableGutters:h,toggle:S}),[P,A,h,S]),I={...t,square:R,disabled:A,disableGutters:h,expanded:P},V=(e=>{let{classes:o,square:t,expanded:r,disabled:a,disableGutters:i}=e;return(0,n.A)({root:["root",!t&&"rounded",r&&"expanded",a&&"disabled",!i&&"gutters"],heading:["heading"],region:["region"]},v,o)})(I),H={slots:{transition:M,...C},slotProps:{transition:j,...k}},[O,F]=(0,m.A)("root",{elementType:x,externalForwardedProps:{...H,...w},className:(0,a.A)(V.root,s),shouldForwardComponentProp:!0,ownerState:I,ref:o,additionalProps:{square:R}}),[G,W]=(0,m.A)("heading",{elementType:y,externalForwardedProps:H,className:V.heading,ownerState:I}),[E,L]=(0,m.A)("transition",{elementType:l.A,externalForwardedProps:H,ownerState:I});return(0,f.jsxs)(O,{...F,children:[(0,f.jsx)(G,{...W,children:(0,f.jsx)(p.A.Provider,{value:B,children:T})}),(0,f.jsx)(E,{in:P,timeout:"auto",...L,children:(0,f.jsx)("div",{"aria-labelledby":T.props.id,id:T.props["aria-controls"],role:"region",className:V.region,children:N})})]})})}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8862],{33420:(e,t,o)=>{o.d(t,{IK:()=>S,M6:()=>k,Uw:()=>N,lA:()=>T,v2:()=>X,vm:()=>I});var r=o(95155),n=o(12115),a=o(22539),s=o(76122),i=o(48116),l=o(33567),d=o(2300),c=o(94049),p=o(25635),u=o(41983),h=o(50430),y=o(12313),f=o(56350),x=o(77842),g=o(55930),m=o(63186),w=o(62962);let b=(0,i.Ay)(d.A,{shouldForwardProp:e=>!["nodeType","selected"].includes(e)})(e=>{let{theme:t,nodeType:o,selected:r}=e;return{padding:t.spacing(1.5),width:"200px",borderRadius:"8px",backgroundColor:t.palette.background.paper,border:"2px solid ".concat("start"===o?"#795548":"process"===o?t.palette.secondary.main:"finish"===o?t.palette.success.main:"mcp"===o?t.palette.info.main:t.palette.warning.main),boxShadow:r?"0 0 0 2px ".concat(t.palette.primary.main,", 0 3px 10px rgba(0,0,0,0.2)"):t.shadows[2],transition:"all 0.2s ease","&:hover":{boxShadow:"0 0 0 1px ".concat("start"===o?"#795548":"process"===o?t.palette.secondary.main:"finish"===o?t.palette.success.main:"mcp"===o?t.palette.info.main:t.palette.warning.main,", 0 3px 10px rgba(0,0,0,0.1)")}}}),j=(0,i.Ay)(c.default,{shouldForwardProp:e=>"nodeType"!==e})(e=>{let{theme:t,nodeType:o}=e;return{display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:"1px solid ".concat("start"===o?"#A1887F":"process"===o?t.palette.secondary.light:"finish"===o?t.palette.success.light:"mcp"===o?t.palette.info.light:t.palette.warning.light),marginBottom:t.spacing(1),paddingBottom:t.spacing(.5)}}),v=(0,i.Ay)(c.default)({display:"flex",alignItems:"center",gap:"8px"}),F=(0,i.Ay)(c.default)(e=>{let{theme:t}=e;return{marginTop:t.spacing(1),fontSize:"0.8rem"}}),C=(0,i.Ay)(c.default)(e=>{let{theme:t}=e;return{display:"flex",justifyContent:"space-between",padding:t.spacing(.5,0),borderBottom:"1px dashed ".concat("dark"===t.palette.mode?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.1)")}}),k=(e,t)=>{switch(e){case"start":default:return"#795548";case"process":return t.palette.secondary.main;case"finish":return t.palette.success.main;case"mcp":return t.palette.info.main;case"subflow":return t.palette.warning.main}},A=e=>({backgroundColor:e.palette.info.main,borderColor:"dark"===e.palette.mode?e.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),E=e=>({backgroundColor:e.palette.secondary.main,borderColor:"dark"===e.palette.mode?e.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),P=e=>({backgroundColor:e.palette.primary.main,borderColor:"dark"===e.palette.mode?e.palette.background.paper:"white",width:16,height:16,borderRadius:8,borderWidth:2}),M=e=>{let{data:t,nodeType:o,selected:i}=e,d=(0,l.A)(),[c,k]=(0,n.useState)(!1),M=t||{label:"No Label",properties:{}},I="string"==typeof M.label?M.label:"No Label",N=M.properties||{},S=Object.keys(N).length;return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)(b,{elevation:2,nodeType:o,selected:i,children:[(()=>{if("mcp"===o)return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.h7,{id:"mcp-top",type:"target",position:s.yX.Top,style:A(d)}),(0,r.jsx)(a.h7,{id:"mcp-right",type:"target",position:s.yX.Right,style:A(d)}),(0,r.jsx)(a.h7,{id:"mcp-bottom",type:"source",position:s.yX.Bottom,style:A(d)}),(0,r.jsx)(a.h7,{id:"mcp-left",type:"target",position:s.yX.Left,style:A(d)})]});if("process"===o)return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.h7,{id:"process-top",type:"target",position:s.yX.Top,style:E(d)}),(0,r.jsx)(a.h7,{id:"process-bottom",type:"source",position:s.yX.Bottom,style:E(d)}),(0,r.jsx)(a.h7,{id:"process-left-mcp",type:"source",position:s.yX.Left,style:P(d)}),(0,r.jsx)(a.h7,{id:"process-right-mcp",type:"source",position:s.yX.Right,style:P(d)})]});if("start"===o)return(0,r.jsx)(a.h7,{id:"start-bottom",type:"source",position:s.yX.Bottom,style:E(d)});if("finish"===o)return(0,r.jsx)(a.h7,{id:"finish-top",type:"target",position:s.yX.Top,style:E(d)});if("subflow"===o)return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.h7,{id:"subflow-top",type:"target",position:s.yX.Top,style:E(d)}),(0,r.jsx)(a.h7,{id:"subflow-bottom",type:"source",position:s.yX.Bottom,style:E(d)})]});return null})(),(0,r.jsxs)(j,{nodeType:o,children:[(0,r.jsxs)(v,{children:[(e=>{switch(e){case"start":default:return(0,r.jsx)(y.A,{sx:{color:"#795548"}});case"process":return(0,r.jsx)(f.A,{color:"secondary"});case"finish":return(0,r.jsx)(x.A,{color:"success"});case"mcp":return(0,r.jsx)(f.A,{color:"info"});case"subflow":return(0,r.jsx)(g.A,{sx:{color:"warning.main"}})}})(o),(0,r.jsx)(p.default,{variant:"subtitle2",fontWeight:"bold",children:I})]}),S>0&&(0,r.jsx)(u.A,{size:"small",onClick:e=>{e.stopPropagation(),k(!c)},sx:{padding:.5},children:c?(0,r.jsx)(w.A,{fontSize:"small"}):(0,r.jsx)(m.A,{fontSize:"small"})})]}),(0,r.jsx)(h.A,{in:c,children:(0,r.jsx)(F,{children:Object.entries(N).map(e=>{let[t,o]=e;return(0,r.jsxs)(C,{children:[(0,r.jsxs)(p.default,{variant:"caption",sx:{fontWeight:"bold"},children:[t,":"]}),(0,r.jsxs)(p.default,{variant:"caption",children:[String(o).substring(0,30),String(o).length>30?"...":""]})]},t)})})}),S>0&&!c&&(0,r.jsx)(p.default,{variant:"caption",color:"text.secondary",children:"".concat(S," properties configured")})]})})},I=(0,n.memo)(function(e){return(0,r.jsx)(M,{...e,nodeType:"start",selected:e.selected})}),N=(0,n.memo)(function(e){return(0,r.jsx)(M,{...e,nodeType:"process",selected:e.selected})}),S=(0,n.memo)(function(e){return(0,r.jsx)(M,{...e,nodeType:"finish",selected:e.selected})}),X=(0,n.memo)(function(e){return(0,r.jsx)(M,{...e,nodeType:"mcp",selected:e.selected})}),T=(0,n.memo)(function(e){return(0,r.jsx)(M,{...e,nodeType:"subflow",selected:e.selected})})},71738:(e,t,o)=>{o.d(t,{R:()=>c,A:()=>y});var r=o(95155),n=o(12115),a=o(22539),s=o(76122),i=o(48116),l=o(33567);function d(e){return e===s.yX.Left||e===s.yX.Right?"h":"v"}let c="flowEdgeWaypoint",p={x:16,y:-16},u=(0,i.Ay)("button")(e=>{let{theme:t}=e;return{background:t.palette.background.paper,border:"1px solid ".concat(t.palette.divider),cursor:"pointer",borderRadius:"50%",fontSize:"10px",width:"20px",height:"20px",display:"flex",justifyContent:"center",alignItems:"center",color:t.palette.text.secondary,boxShadow:"dark"===t.palette.mode?"0 2px 4px rgba(0,0,0,0.3)":"0 2px 4px rgba(0,0,0,0.1)","&:hover":{background:t.palette.error.main,borderColor:t.palette.error.main,color:t.palette.error.contrastText}}}),h=(0,i.Ay)(a.tE)({"&&.animated":{strokeDasharray:5,animation:"flowPathAnimation ".concat(500,"ms infinite linear")},"&&.animated-both":{strokeDasharray:5,animation:"flowPathAnimation ".concat(750,"ms infinite linear alternate")},"@keyframes flowPathAnimation":{"0%":{strokeDashoffset:10},"100%":{strokeDashoffset:0}}}),y=e=>{var t;let o,i,{variant:y,id:f,sourceX:x,sourceY:g,targetX:m,targetY:w,sourcePosition:b,targetPosition:j,style:v={},markerEnd:F,markerStart:C,data:k,selected:A}=e,E=(0,l.A)(),{deleteElements:P,screenToFlowPosition:M}=(0,a.VH)(),[I,N]=(0,n.useState)(!1),[S,X]=(0,n.useState)(null),T=(0,n.useRef)(null),R=(0,n.useRef)(!1),L=null!=(t=null==k?void 0:k.waypoints)?t:(null==k?void 0:k.waypoint)?[k.waypoint]:[],D=null!=S?S:L,U="standard"===y&&!!(null==k?void 0:k.bidirectional),B=b||("mcp"===y?s.yX.Left:s.yX.Bottom),Y=j||("mcp"===y?s.yX.Right:s.yX.Top),W=null;if(D.length>0)o=(W=function(e,t,o,r,n){let a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:8,s=[e,...n,o],i=[e],l=[],d=t,c=(e,t)=>{let o;o=i[i.length-1],.01>Math.abs(o.x-e.x)&&.01>Math.abs(o.y-e.y)||(i.push(e),l.push(t))};for(let e=1;e<s.length;e++){let t=i[i.length-1],o=s[e],n=e-1;if(e===s.length-1){if("v"===r)if("h"===d)c({x:o.x,y:t.y},n);else{let e=(t.y+o.y)/2;c({x:t.x,y:e},n),c({x:o.x,y:e},n)}else if("v"===d)c({x:t.x,y:o.y},n);else{let e=(t.x+o.x)/2;c({x:e,y:t.y},n),c({x:e,y:o.y},n)}c(o,n)}else c("v"===d?{x:t.x,y:o.y}:{x:o.x,y:t.y},n),c(o,n),d="v"===d?"h":"v"}!function(e,t){for(let s=1;s<e.length-1;s++){var o,r,n,a;let i=e[s-1],l=e[s],d=e[s+1],c=.01>Math.abs(i.x-l.x)&&.01>Math.abs(d.x-l.x)&&(l.y-i.y)*(d.y-l.y)<0,p=.01>Math.abs(i.y-l.y)&&.01>Math.abs(d.y-l.y)&&(l.x-i.x)*(d.x-l.x)<0;if(c||p){if(c){let n=(null!=(r=null==(o=e[s-2])?void 0:o.x)?r:l.x-1)<=l.x,a=n?l.x-12:l.x+12,c=n?l.x+12:l.x-12,p=t[s-1];e.splice(s-1,3,{x:a,y:i.y},{x:a,y:l.y},{x:c,y:l.y},{x:c,y:d.y}),t.splice(s-1,2,p,p,p)}else{let o=(null!=(a=null==(n=e[s-2])?void 0:n.y)?a:l.y-1)<=l.y,r=o?l.y-12:l.y+12,c=o?l.y+12:l.y-12,p=t[s-1];e.splice(s-1,3,{x:i.x,y:r},{x:l.x,y:r},{x:l.x,y:c},{x:d.x,y:c}),t.splice(s-1,2,p,p,p)}s++}}}(i,l);let p=[];for(let e=0;e<i.length-1;e++)p.push({a:i[e],b:i[e+1],gap:l[e]});return{d:function(e,t){if(0===e.length)return"";let o="M ".concat(e[0].x,",").concat(e[0].y);for(let r=1;r<e.length-1;r++){let n=e[r-1],a=e[r],s=e[r+1],i=Math.hypot(a.x-n.x,a.y-n.y),l=Math.hypot(s.x-a.x,s.y-a.y),d=Math.min(t,i/2,l/2);if(d<.5){o+=" L ".concat(a.x,",").concat(a.y);continue}let c={x:a.x-(a.x-n.x)/i*d,y:a.y-(a.y-n.y)/i*d},p={x:a.x+(s.x-a.x)/l*d,y:a.y+(s.y-a.y)/l*d};o+=" L ".concat(c.x,",").concat(c.y," Q ").concat(a.x,",").concat(a.y," ").concat(p.x,",").concat(p.y)}let r=e[e.length-1];return o+" L ".concat(r.x,",").concat(r.y)}(i,a),points:i,segments:p,midpoint:function(e,t){let o=0;for(let t=0;t<e.length-1;t++)o+=Math.hypot(e[t+1].x-e[t].x,e[t+1].y-e[t].y);if(0===o)return e[0];let r=.5*o;for(let t=0;t<e.length-1;t++){let o=Math.hypot(e[t+1].x-e[t].x,e[t+1].y-e[t].y);if(r<=o){let n=0===o?0:r/o;return{x:e[t].x+(e[t+1].x-e[t].x)*n,y:e[t].y+(e[t+1].y-e[t].y)*n}}r-=o}return e[e.length-1]}(i,.5)}}({x:x,y:g},d(B),{x:m,y:w},d(Y),D,16)).d,i=W.midpoint;else{let[e,t,r]=(0,s.oN)({sourceX:x,sourceY:g,sourcePosition:B,targetX:m,targetY:w,targetPosition:Y,borderRadius:16});o=e,i={x:t,y:r}}let z="mcp"===y?"":U?"animated-both":(null==k?void 0:k.animated)!==!1?"animated":"",O={...v,strokeWidth:A?3:2,stroke:"mcp"===y?A?E.palette.info.light:E.palette.info.main:A?E.palette.primary.main:E.palette.text.secondary,...z?{animationDuration:"".concat(Math.round((U?750:500)*(e=>{let t=0;for(let o=0;o<e.length;o++)t=31*t+e.charCodeAt(o)|0;return .9+Math.abs(t)%1e3/1e3*.2})(f)),"ms")}:{}},_=e=>{document.dispatchEvent(new CustomEvent(c,{detail:{edgeId:f,waypoints:e&&e.length>0?e:null}}))},H=e=>{if(0!==e.button)return;let t=M({x:e.clientX,y:e.clientY}),o=W?function(e,t){let o=0,r=1/0;for(let n of t){let t=function(e,t,o){let r=o.x-t.x,n=o.y-t.y,a=r*r+n*n,s=0===a?0:Math.max(0,Math.min(1,((e.x-t.x)*r+(e.y-t.y)*n)/a));return Math.hypot(e.x-(t.x+r*s),e.y-(t.y+n*s))}(e,n.a,n.b);t<r&&(r=t,o=n.gap)}return o}(t,W.segments):0,r=[...D];r.splice(o,0,t),T.current={index:o,pointerId:e.pointerId,startClient:{x:e.clientX,y:e.clientY},base:r,active:!1,fromPath:!0},e.target.setPointerCapture(e.pointerId)},J=e=>{let t=T.current;if(!t||e.pointerId!==t.pointerId)return;if(!t.active){if(4>Math.hypot(e.clientX-t.startClient.x,e.clientY-t.startClient.y))return;t.active=!0}let o=[...t.base];o[t.index]=M({x:e.clientX,y:e.clientY}),X(o)},V=e=>{let t=T.current;if(!t||e.pointerId!==t.pointerId||(T.current=null,e.target.releasePointerCapture(e.pointerId),R.current=t.active,!t.active))return;let o=[...t.base];o[t.index]=M({x:e.clientX,y:e.clientY}),_(o),X(null)},q=null!==S,K=A||I||q;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(h,{path:o,markerEnd:F,markerStart:C,style:O,id:f,className:z}),(0,r.jsx)("path",{d:o,fill:"none",stroke:"transparent",strokeWidth:20,style:{cursor:q?"grabbing":"grab"},onMouseEnter:()=>N(!0),onMouseLeave:()=>N(!1),onPointerDown:H,onPointerMove:J,onPointerUp:V}),(0,r.jsxs)(a.rV,{children:[K&&D.map((e,t)=>(0,r.jsx)("div",{style:{position:"absolute",transform:"translate(-50%, -50%) translate(".concat(e.x,"px,").concat(e.y,"px)"),width:12,height:12,borderRadius:"50%",background:E.palette.primary.main,border:"2px solid ".concat(E.palette.background.paper),boxShadow:E.shadows[1],cursor:"move",pointerEvents:"all",touchAction:"none",zIndex:1001},className:"nodrag nopan",title:"Drag to move; double-click to remove this bend",onMouseEnter:()=>N(!0),onMouseLeave:()=>N(!1),onPointerDown:e=>{0===e.button&&(e.stopPropagation(),T.current={index:t,pointerId:e.pointerId,startClient:{x:e.clientX,y:e.clientY},base:[...D],active:!1,fromPath:!1},e.target.setPointerCapture(e.pointerId))},onPointerMove:J,onPointerUp:V,onDoubleClick:e=>{e.stopPropagation(),(e=>{let t=D.filter((t,o)=>o!==e);X(null),_(t)})(t)}},t)),(0,r.jsx)("div",{style:{position:"absolute",transform:"translate(-50%, -50%) translate(".concat(i.x+p.x,"px,").concat(i.y+p.y,"px)"),pointerEvents:K&&!q?"all":"none",opacity:K&&!q?1:0,transition:"opacity 120ms ease",zIndex:1e3},className:"nodrag nopan",onMouseEnter:()=>N(!0),onMouseLeave:()=>N(!1),children:(0,r.jsx)(u,{title:"Delete connection (drag to re-route)",style:{touchAction:"none"},onPointerDown:H,onPointerMove:J,onPointerUp:V,onClick:e=>{if(e.stopPropagation(),R.current){R.current=!1;return}P({edges:[{id:f}]})},children:"\xd7"})})]})]})}},80685:(e,t,o)=>{o.d(t,{jY:()=>a,oY:()=>s});var r=o(95155);o(12115);var n=o(71738);let a=e=>(0,r.jsx)(n.A,{...e,variant:"standard"}),s=e=>(0,r.jsx)(n.A,{...e,variant:"mcp"})},90057:(e,t,o)=>{o.d(t,{g:()=>s});var r=o(74879);let n=(0,o(87021).h)("frontend/services/flow/index");class a{async loadFlows(){n.debug("loadFlows: Entering method");try{if(this.flowsCache)return n.debug("loadFlows: Using cached flows",{count:this.flowsCache.length}),this.flowsCache;let e=await fetch("/api/flow");if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to load flows")}let t=await e.json();return n.debug("loadFlows: Loaded flows from API",{count:t.length}),this.flowsCache=t,t}catch(e){return n.warn("loadFlows: Failed to load flows:",e),[]}}async getFlow(e){n.debug("getFlow: Entering method",{flowId:e});try{if(this.flowsCache){let t=this.flowsCache.find(t=>t.id===e);if(t)return n.debug("getFlow: Using cached flow",{flowId:e}),t}let t=await fetch("/api/flow/".concat(encodeURIComponent(e)));if(!t.ok){if(404===t.status)return n.debug("getFlow: Flow ".concat(e," not found")),null;let o=await t.json();throw Error(o.error||"Failed to get flow: ".concat(e))}let o=await t.json();return n.debug("getFlow: Retrieved flow from API",{flowId:e}),o}catch(t){return n.warn("getFlow: Failed to get flow ".concat(e,":"),t),null}}async addFlow(e){n.debug("addFlow: Entering method",{flowId:e.id,flowName:e.name,nodeCount:e.nodes.length,edgeCount:e.edges.length});try{let t=await fetch("/api/flow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){let e=await t.json();return{success:!1,error:e.error||"Failed to add flow"}}let o=await t.json();return this.flowsCache&&this.flowsCache.push(o),n.debug("addFlow: Flow added successfully",{flowId:e.id}),{success:!0}}catch(e){return n.warn("addFlow: Failed to add flow:",e),{success:!1,error:e instanceof Error?e.message:"Failed to add flow"}}}async updateFlow(e){n.debug("updateFlow: Entering method",{flowId:e.id,flowName:e.name,nodeCount:e.nodes.length,edgeCount:e.edges.length});try{let t=await fetch("/api/flow/".concat(encodeURIComponent(e.id)),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){let e=await t.json();return{success:!1,error:e.error||"Failed to update flow"}}let o=await t.json();if(this.flowsCache){let t=this.flowsCache.findIndex(t=>t.id===e.id);t>=0?this.flowsCache[t]=o:this.flowsCache.push(o)}return n.debug("updateFlow: Flow updated successfully",{flowId:e.id}),{success:!0}}catch(e){return n.warn("updateFlow: Failed to update flow:",e),{success:!1,error:e instanceof Error?e.message:"Failed to update flow"}}}async deleteFlow(e){n.debug("deleteFlow: Entering method",{flowId:e});try{let t=await fetch("/api/flow/".concat(encodeURIComponent(e)),{method:"DELETE"});if(!t.ok){let e=await t.json();return{success:!1,error:e.error||"Failed to delete flow"}}return this.flowsCache&&(this.flowsCache=this.flowsCache.filter(t=>t.id!==e)),n.debug("deleteFlow: Flow deleted successfully",{flowId:e}),{success:!0}}catch(e){return n.warn("deleteFlow: Failed to delete flow:",e),{success:!1,error:e instanceof Error?e.message:"Failed to delete flow"}}}createNode(e,t){return n.debug("createNode: Entering method",{type:e,position:t}),{id:(0,r.A)(),type:e,position:t,data:{label:"".concat("mcp"===e?"MCP":e.charAt(0).toUpperCase()+e.slice(1)," Node"),type:e,properties:{}}}}createStartNode(){return{id:(0,r.A)(),type:"start",position:{x:250,y:150},data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}}}createNewFlow(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"NewFlow";return n.debug("createNewFlow: Entering method",{name:e}),{id:(0,r.A)(),name:e,nodes:[this.createStartNode()],edges:[]}}createHistoryEntry(e,t){return n.debug("createHistoryEntry: Entering method"),{nodes:[...e],edges:[...t]}}generateSampleFlow(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Sample Flow";return n.debug("generateSampleFlow: Entering method",{name:e}),{id:(0,r.A)(),name:e,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 s=new a}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8890],{3986:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79s7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58s9.14-3.47 12.65 0L21 3zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8z"}),"Update")},4048:(t,e,r)=>{r.d(e,{A:()=>n});let n=r(12115).createContext(void 0)},5155:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{fillRule:"evenodd",d:"M20 3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M10 17H5v-2h5zm0-4H5v-2h5zm0-4H5V7h5zm4.82 6L12 12.16l1.41-1.41 1.41 1.42L17.99 9l1.42 1.42z"}),"FactCheck")},7302:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M3 14h4v-4H3zm0 5h4v-4H3zM3 9h4V5H3zm5 5h13v-4H8zm0 5h13v-4H8zM8 5v4h13V5z"}),"ViewList")},12142:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M17 4h3c1.1 0 2 .9 2 2v2h-2V6h-3zM4 8V6h3V4H4c-1.1 0-2 .9-2 2v2zm16 8v2h-3v2h3c1.1 0 2-.9 2-2v-2zM7 18H4v-2H2v2c0 1.1.9 2 2 2h3zM18 8H6v8h12z"}),"FitScreen")},13179:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7z"}),"Redo")},14287:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z"}),"ArrowBack")},15712:(t,e,r)=>{r.d(e,{A:()=>d});var n=r(12115),a=r.t(n,2),o=r(89255),i=r(19868),l=r(9027);let s={...a}.useSyncExternalStore;function c(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{themeId:e}=t;return function(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=(0,l.A)();a&&e&&(a=a[e]||a);let c="undefined"!=typeof window&&void 0!==window.matchMedia,{defaultMatches:d=!1,matchMedia:u=c?window.matchMedia:null,ssrMatchMedia:h=null,noSsr:p=!1}=(0,i.A)({name:"MuiUseMediaQuery",props:r,theme:a}),v="function"==typeof t?t(a):t;return(v=v.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!==s?function(t,e,r,a,o){let i=n.useCallback(()=>e,[e]),l=n.useMemo(()=>{if(o&&r)return()=>r(t).matches;if(null!==a){let{matches:e}=a(t);return()=>e}return i},[i,t,a,o,r]),[c,d]=n.useMemo(()=>{if(null===r)return[i,()=>()=>{}];let e=r(t);return[()=>e.matches,t=>(e.addEventListener("change",t),()=>{e.removeEventListener("change",t)})]},[i,r,t]);return s(d,c,l)}:function(t,e,r,a,i){let[l,s]=n.useState(()=>i&&r?r(t).matches:a?a(t).matches:e);return(0,o.A)(()=>{if(!r)return;let e=r(t),n=()=>{s(e.matches)};return n(),e.addEventListener("change",n),()=>{e.removeEventListener("change",n)}},[t,r]),l})(v,d,u,h,p)}}c();let d=c({themeId:r(46892).A})},16757:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9m-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8z"}),"History")},17325:(t,e,r)=>{r.d(e,{A:()=>m});var n=r(12115),a=r(2821),o=r(57001),i=r(48116),l=r(16625),s=r(85795),c=r(95195);function d(t){return(0,c.Ay)("MuiFormGroup",t)}(0,s.A)("MuiFormGroup",["root","row","error"]);var u=r(45918),h=r(75108),p=r(95155);let v=(0,i.Ay)("div",{name:"MuiFormGroup",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.root,r.row&&e.row]}})({display:"flex",flexDirection:"column",flexWrap:"wrap",variants:[{props:{row:!0},style:{flexDirection:"row"}}]}),m=n.forwardRef(function(t,e){let r=(0,l.b)({props:t,name:"MuiFormGroup"}),{className:n,row:i=!1,...s}=r,c=(0,u.A)(),m=(0,h.A)({props:r,muiFormControl:c,states:["error"]}),g={...r,row:i,error:m.error},f=(t=>{let{classes:e,row:r,error:n}=t;return(0,o.A)({root:["root",r&&"row",n&&"error"]},d,e)})(g);return(0,p.jsx)(v,{className:(0,a.A)(f.root,n),ownerState:g,ref:e,...s})})},18581:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8"}),"Undo")},20699:(t,e,r)=>{r.d(e,{A:()=>O});var n=r(3648),a=r(12115),o=r(2821),i=r(57001),l=r(8532),s=r(10225),c=r(48116),d=r(66964),u=r(16625),h=r(85795),p=r(95195);function v(t){return(0,p.Ay)("MuiSkeleton",t)}(0,h.A)("MuiSkeleton",["root","text","rectangular","rounded","circular","pulse","wave","withChildren","fitContent","heightAuto"]);var m=r(95155);function g(){let t=(0,n._)(["\n 0% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.4;\n }\n\n 100% {\n opacity: 1;\n }\n"]);return g=function(){return t},t}function f(){let t=(0,n._)(["\n 0% {\n transform: translateX(-100%);\n }\n\n 50% {\n /* +0.5s of delay between each loop */\n transform: translateX(100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n"]);return f=function(){return t},t}function A(){let t=(0,n._)(["\n animation: "," 2s ease-in-out 0.5s infinite;\n "]);return A=function(){return t},t}function b(){let t=(0,n._)(["\n &::after {\n animation: "," 2s linear 0.5s infinite;\n }\n "]);return b=function(){return t},t}let y=(0,s.i7)(g()),z=(0,s.i7)(f()),x="string"!=typeof y?(0,s.AH)(A(),y):null,M="string"!=typeof z?(0,s.AH)(b(),z):null,C=(0,c.Ay)("span",{name:"MuiSkeleton",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.root,e[r.variant],!1!==r.animation&&e[r.animation],r.hasChildren&&e.withChildren,r.hasChildren&&!r.width&&e.fitContent,r.hasChildren&&!r.height&&e.heightAuto]}})((0,d.A)(t=>{let{theme:e}=t,r=String(e.shape.borderRadius).match(/[\d.\-+]*\s*(.*)/)[1]||"px",n=parseFloat(e.shape.borderRadius);return{display:"block",backgroundColor:e.vars?e.vars.palette.Skeleton.bg:(0,l.X4)(e.palette.text.primary,"light"===e.palette.mode?.11:.13),height:"1.2em",variants:[{props:{variant:"text"},style:{marginTop:0,marginBottom:0,height:"auto",transformOrigin:"0 55%",transform:"scale(1, 0.60)",borderRadius:"".concat(n).concat(r,"/").concat(Math.round(n/.6*10)/10).concat(r),"&:empty:before":{content:'"\\00a0"'}}},{props:{variant:"circular"},style:{borderRadius:"50%"}},{props:{variant:"rounded"},style:{borderRadius:(e.vars||e).shape.borderRadius}},{props:t=>{let{ownerState:e}=t;return e.hasChildren},style:{"& > *":{visibility:"hidden"}}},{props:t=>{let{ownerState:e}=t;return e.hasChildren&&!e.width},style:{maxWidth:"fit-content"}},{props:t=>{let{ownerState:e}=t;return e.hasChildren&&!e.height},style:{height:"auto"}},{props:{animation:"pulse"},style:x||{animation:"".concat(y," 2s ease-in-out 0.5s infinite")}},{props:{animation:"wave"},style:{position:"relative",overflow:"hidden",WebkitMaskImage:"-webkit-radial-gradient(white, black)","&::after":{background:"linear-gradient(\n 90deg,\n transparent,\n ".concat((e.vars||e).palette.action.hover,",\n transparent\n )"),content:'""',position:"absolute",transform:"translateX(-100%)",bottom:0,left:0,right:0,top:0}}},{props:{animation:"wave"},style:M||{"&::after":{animation:"".concat(z," 2s linear 0.5s infinite")}}}]}})),O=a.forwardRef(function(t,e){let r=(0,u.b)({props:t,name:"MuiSkeleton"}),{animation:n="pulse",className:a,component:l="span",height:s,style:c,variant:d="text",width:h,...p}=r,g={...r,animation:n,component:l,variant:d,hasChildren:!!p.children},f=(t=>{let{classes:e,variant:r,animation:n,hasChildren:a,width:o,height:l}=t;return(0,i.A)({root:["root",r,n,a&&"withChildren",a&&!o&&"fitContent",a&&!l&&"heightAuto"]},v,e)})(g);return(0,m.jsx)(C,{as:l,ref:e,className:(0,o.A)(f.root,a),ownerState:g,...p,style:{width:h,height:s,...c}})})},25541:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M12 5V2L8 6l4 4V7c3.31 0 6 2.69 6 6 0 2.97-2.17 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93 0-4.42-3.58-8-8-8m-6 8c0-1.65.67-3.15 1.76-4.24L6.34 7.34C4.9 8.79 4 10.79 4 13c0 4.08 3.05 7.44 7 7.93v-2.02c-2.83-.48-5-2.94-5-5.91"}),"RestartAlt")},26811:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m0 14H6l-2 2V4h16z"}),"ChatBubbleOutline")},31102:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z"}),"Save")},39047:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)([(0,a.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"},"0"),(0,a.jsx)("path",{d:"M12 10h-2v2H9v-2H7V9h2V7h1v2h2z"},"1")],"ZoomIn")},43861:(t,e,r)=>{r.d(e,{A:()=>m});var n=r(12115),a=r(2821),o=r(57001),i=r(17325),l=r(85795),s=r(95195);function c(t){return(0,s.Ay)("MuiRadioGroup",t)}(0,l.A)("MuiRadioGroup",["root","row","error"]);var d=r(69582),u=r(17576),h=r(4048),p=r(61952),v=r(95155);let m=n.forwardRef(function(t,e){let{actions:r,children:l,className:s,defaultValue:m,name:g,onChange:f,value:A,...b}=t,y=n.useRef(null),z=(t=>{let{classes:e,row:r,error:n}=t;return(0,o.A)({root:["root",r&&"row",n&&"error"]},c,e)})(t),[x,M]=(0,u.A)({controlled:A,default:m,name:"RadioGroup"});n.useImperativeHandle(r,()=>({focus:()=>{let t=y.current.querySelector("input:not(:disabled):checked");t||(t=y.current.querySelector("input:not(:disabled)")),t&&t.focus()}}),[]);let C=(0,d.A)(e,y),O=(0,p.A)(g),R=n.useMemo(()=>({name:O,onChange(t){M(t.target.value),f&&f(t,t.target.value)},value:x}),[O,f,M,x]);return(0,v.jsx)(h.A.Provider,{value:R,children:(0,v.jsx)(i.A,{role:"radiogroup",ref:C,className:(0,a.A)(z.root,s),...b,children:l})})})},46496:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M4 9h16v2H4zm0 4h10v2H4z"}),"ShortText")},54178:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M15 4v7H5.17L4 12.17V4zm1-2H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1m5 4h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1"}),"ForumOutlined")},59323:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.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-2V8zm2 16H8v-2h8zm0-4H8v-2h8zm-3-5V3.5L18.5 9z"}),"Description")},66177:(t,e,r)=>{r.d(e,{A:()=>x});var n=r(12115),a=r(2821),o=r(2457),i=r(57001);let l=function(t){let{badgeContent:e,invisible:r=!1,max:n=99,showZero:a=!1}=t,i=(0,o.A)({badgeContent:e,max:n}),l=r;!1!==r||0!==e||a||(l=!0);let{badgeContent:s,max:c=n}=l?i:t,d=s&&Number(s)>c?"".concat(c,"+"):s;return{badgeContent:s,invisible:l,max:c,displayValue:d}};var s=r(48116),c=r(66964),d=r(74798),u=r(16625),h=r(81852),p=r(85795),v=r(95195);function m(t){return(0,v.Ay)("MuiBadge",t)}let g=(0,p.A)("MuiBadge",["root","badge","dot","standard","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft","invisible","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","overlapRectangular","overlapCircular","anchorOriginTopLeftCircular","anchorOriginTopLeftRectangular","anchorOriginTopRightCircular","anchorOriginTopRightRectangular","anchorOriginBottomLeftCircular","anchorOriginBottomLeftRectangular","anchorOriginBottomRightCircular","anchorOriginBottomRightRectangular"]);var f=r(77765),A=r(95155);let b=(0,s.Ay)("span",{name:"MuiBadge",slot:"Root",overridesResolver:(t,e)=>e.root})({position:"relative",display:"inline-flex",verticalAlign:"middle",flexShrink:0}),y=(0,s.Ay)("span",{name:"MuiBadge",slot:"Badge",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.badge,e[r.variant],e["anchorOrigin".concat((0,h.A)(r.anchorOrigin.vertical)).concat((0,h.A)(r.anchorOrigin.horizontal)).concat((0,h.A)(r.overlap))],"default"!==r.color&&e["color".concat((0,h.A)(r.color))],r.invisible&&e.invisible]}})((0,c.A)(t=>{let{theme:e}=t;return{display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",boxSizing:"border-box",fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(12),minWidth:20,lineHeight:1,padding:"0 6px",height:20,borderRadius:10,zIndex:1,transition:e.transitions.create("transform",{easing:e.transitions.easing.easeInOut,duration:e.transitions.duration.enteringScreen}),variants:[...Object.entries(e.palette).filter((0,d.A)(["contrastText"])).map(t=>{let[r]=t;return{props:{color:r},style:{backgroundColor:(e.vars||e).palette[r].main,color:(e.vars||e).palette[r].contrastText}}}),{props:{variant:"dot"},style:{borderRadius:4,height:8,minWidth:8,padding:0}},{props:t=>{let{ownerState:e}=t;return"top"===e.anchorOrigin.vertical&&"right"===e.anchorOrigin.horizontal&&"rectangular"===e.overlap},style:{top:0,right:0,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",["&.".concat(g.invisible)]:{transform:"scale(0) translate(50%, -50%)"}}},{props:t=>{let{ownerState:e}=t;return"bottom"===e.anchorOrigin.vertical&&"right"===e.anchorOrigin.horizontal&&"rectangular"===e.overlap},style:{bottom:0,right:0,transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",["&.".concat(g.invisible)]:{transform:"scale(0) translate(50%, 50%)"}}},{props:t=>{let{ownerState:e}=t;return"top"===e.anchorOrigin.vertical&&"left"===e.anchorOrigin.horizontal&&"rectangular"===e.overlap},style:{top:0,left:0,transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",["&.".concat(g.invisible)]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:t=>{let{ownerState:e}=t;return"bottom"===e.anchorOrigin.vertical&&"left"===e.anchorOrigin.horizontal&&"rectangular"===e.overlap},style:{bottom:0,left:0,transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",["&.".concat(g.invisible)]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:t=>{let{ownerState:e}=t;return"top"===e.anchorOrigin.vertical&&"right"===e.anchorOrigin.horizontal&&"circular"===e.overlap},style:{top:"14%",right:"14%",transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",["&.".concat(g.invisible)]:{transform:"scale(0) translate(50%, -50%)"}}},{props:t=>{let{ownerState:e}=t;return"bottom"===e.anchorOrigin.vertical&&"right"===e.anchorOrigin.horizontal&&"circular"===e.overlap},style:{bottom:"14%",right:"14%",transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",["&.".concat(g.invisible)]:{transform:"scale(0) translate(50%, 50%)"}}},{props:t=>{let{ownerState:e}=t;return"top"===e.anchorOrigin.vertical&&"left"===e.anchorOrigin.horizontal&&"circular"===e.overlap},style:{top:"14%",left:"14%",transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",["&.".concat(g.invisible)]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:t=>{let{ownerState:e}=t;return"bottom"===e.anchorOrigin.vertical&&"left"===e.anchorOrigin.horizontal&&"circular"===e.overlap},style:{bottom:"14%",left:"14%",transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",["&.".concat(g.invisible)]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:{invisible:!0},style:{transition:e.transitions.create("transform",{easing:e.transitions.easing.easeInOut,duration:e.transitions.duration.leavingScreen})}}]}}));function z(t){var e,r;return{vertical:null!=(e=null==t?void 0:t.vertical)?e:"top",horizontal:null!=(r=null==t?void 0:t.horizontal)?r:"right"}}let x=n.forwardRef(function(t,e){var r,n,s,c;let d=(0,u.b)({props:t,name:"MuiBadge"}),{anchorOrigin:p,className:v,classes:g,component:x,components:M={},componentsProps:C={},children:O,overlap:R="rectangular",color:w="default",invisible:H=!1,max:S=99,badgeContent:j,slots:k,slotProps:V,showZero:L=!1,variant:B="standard",...F}=d,{badgeContent:I,invisible:P,max:T,displayValue:N}=l({max:S,invisible:H,badgeContent:j,showZero:L}),E=(0,o.A)({anchorOrigin:z(p),color:w,overlap:R,variant:B,badgeContent:j}),W=P||null==I&&"dot"!==B,{color:_=w,overlap:G=R,anchorOrigin:X,variant:U=B}=W?E:d,q=z(X),D="dot"!==U?N:void 0,Z={...d,badgeContent:I,invisible:W,max:T,displayValue:D,showZero:L,anchorOrigin:q,color:_,overlap:G,variant:U},Q=(t=>{let{color:e,anchorOrigin:r,invisible:n,overlap:a,variant:o,classes:l={}}=t,s={root:["root"],badge:["badge",o,n&&"invisible","anchorOrigin".concat((0,h.A)(r.vertical)).concat((0,h.A)(r.horizontal)),"anchorOrigin".concat((0,h.A)(r.vertical)).concat((0,h.A)(r.horizontal)).concat((0,h.A)(a)),"overlap".concat((0,h.A)(a)),"default"!==e&&"color".concat((0,h.A)(e))]};return(0,i.A)(s,m,l)})(Z),Y={slots:{root:null!=(r=null==k?void 0:k.root)?r:M.Root,badge:null!=(n=null==k?void 0:k.badge)?n:M.Badge},slotProps:{root:null!=(s=null==V?void 0:V.root)?s:C.root,badge:null!=(c=null==V?void 0:V.badge)?c:C.badge}},[J,K]=(0,f.A)("root",{elementType:b,externalForwardedProps:{...Y,...F},ownerState:Z,className:(0,a.A)(Q.root,v),ref:e,additionalProps:{as:x}}),[$,tt]=(0,f.A)("badge",{elementType:y,externalForwardedProps:Y,ownerState:Z,className:Q.badge});return(0,A.jsxs)(J,{...K,children:[O,(0,A.jsx)($,{...tt,children:D})]})})},70822:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M14.67 5v6.5H9.33V5zm1 6.5H21V5h-5.33zm-1 7.5v-6.5H9.33V19zm1-6.5V19H21v-6.5zm-7.34 0H3V19h5.33zm0-1V5H3v6.5z"}),"ViewModule")},75656:(t,e,r)=>{r.d(e,{A:()=>L});var n=r(12115),a=r(2821),o=r(57001),i=r(8532),l=r(89910),s=r(36697),c=r(95155);let d=(0,s.A)((0,c.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),u=(0,s.A)((0,c.jsx)("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked");var h=r(30424),p=r(48116),v=r(66964);let m=(0,p.Ay)("span",{name:"MuiRadioButtonIcon",shouldForwardProp:h.A})({position:"relative",display:"flex"}),g=(0,p.Ay)(d,{name:"MuiRadioButtonIcon"})({transform:"scale(1)"}),f=(0,p.Ay)(u,{name:"MuiRadioButtonIcon"})((0,v.A)(t=>{let{theme:e}=t;return{left:0,position:"absolute",transform:"scale(0)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeIn,duration:e.transitions.duration.shortest}),variants:[{props:{checked:!0},style:{transform:"scale(1)",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeOut,duration:e.transitions.duration.shortest})}}]}})),A=function(t){let{checked:e=!1,classes:r={},fontSize:n}=t,a={...t,checked:e};return(0,c.jsxs)(m,{className:r.root,ownerState:a,children:[(0,c.jsx)(g,{fontSize:n,className:r.background,ownerState:a}),(0,c.jsx)(f,{fontSize:n,className:r.dot,ownerState:a})]})};var b=r(81852);let y=r(80751).A;var z=r(45918),x=r(4048),M=r(85795),C=r(95195);function O(t){return(0,C.Ay)("MuiRadio",t)}let R=(0,M.A)("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary","sizeSmall"]);var w=r(74798),H=r(77765),S=r(16625);let j=(0,p.Ay)(l.A,{shouldForwardProp:t=>(0,h.A)(t)||"classes"===t,name:"MuiRadio",slot:"Root",overridesResolver:(t,e)=>{let{ownerState:r}=t;return[e.root,"medium"!==r.size&&e["size".concat((0,b.A)(r.size))],e["color".concat((0,b.A)(r.color))]]}})((0,v.A)(t=>{let{theme:e}=t;return{color:(e.vars||e).palette.text.secondary,["&.".concat(R.disabled)]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{color:"default",disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette.action.activeChannel," / ").concat(e.vars.palette.action.hoverOpacity,")"):(0,i.X4)(e.palette.action.active,e.palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter((0,w.A)()).map(t=>{let[r]=t;return{props:{color:r,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.vars?"rgba(".concat(e.vars.palette[r].mainChannel," / ").concat(e.vars.palette.action.hoverOpacity,")"):(0,i.X4)(e.palette[r].main,e.palette.action.hoverOpacity)}}}}),...Object.entries(e.palette).filter((0,w.A)()).map(t=>{let[r]=t;return{props:{color:r,disabled:!1},style:{["&.".concat(R.checked)]:{color:(e.vars||e).palette[r].main}}}}),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}})),k=(0,c.jsx)(A,{checked:!0}),V=(0,c.jsx)(A,{}),L=n.forwardRef(function(t,e){var r,i,l,s,d;let u=(0,S.b)({props:t,name:"MuiRadio"}),{checked:h,checkedIcon:p=k,color:v="primary",icon:m=V,name:g,onChange:f,size:A="medium",className:M,disabled:C,disableRipple:R=!1,slots:w={},slotProps:L={},inputProps:B,...F}=u,I=(0,z.A)(),P=C;I&&void 0===P&&(P=I.disabled),null!=P||(P=!1);let T={...u,disabled:P,disableRipple:R,color:v,size:A},N=(t=>{let{classes:e,color:r,size:n}=t,a={root:["root","color".concat((0,b.A)(r)),"medium"!==n&&"size".concat((0,b.A)(n))]};return{...e,...(0,o.A)(a,O,e)}})(T),E=n.useContext(x.A),W=h,_=y(f,E&&E.onChange),G=g;E&&(void 0===W&&(s=E.value,W="object"==typeof(d=u.value)&&null!==d?s===d:String(s)===String(d)),void 0===G&&(G=E.name));let X=null!=(r=L.input)?r:B,[U,q]=(0,H.A)("root",{ref:e,elementType:j,className:(0,a.A)(N.root,M),shouldForwardComponentProp:!0,externalForwardedProps:{slots:w,slotProps:L,...F},getSlotProps:t=>({...t,onChange:function(e){for(var r,n=arguments.length,a=Array(n>1?n-1:0),o=1;o<n;o++)a[o-1]=arguments[o];null==(r=t.onChange)||r.call(t,e,...a),_(e,...a)}}),ownerState:T,additionalProps:{type:"radio",icon:n.cloneElement(m,{fontSize:null!=(i=m.props.fontSize)?i:A}),checkedIcon:n.cloneElement(p,{fontSize:null!=(l=p.props.fontSize)?l:A}),disabled:P,name:G,checked:W,slots:w,slotProps:{input:"function"==typeof X?X(T):X}}});return(0,c.jsx)(U,{...q,classes:N})})},76808:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)([(0,a.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,a.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber")},81464:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.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 14M7 9h5v1H7z"}),"ZoomOut")},98405:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(36697),a=r(95155);let o=(0,n.A)((0,a.jsx)("path",{d:"M10 18h4v-2h-4zM3 6v2h18V6zm3 7h12v-2H6z"}),"FilterList")}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9661,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9040],{27127:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>E});var s=a(95155),n=a(94049),o=a(12115),r=a(28548),i=a(2300),d=a(25635),l=a(97322),p=a(9562),c=a(56422),m=a(21067),u=a(32683),h=a(51611);let y=[{id:"openai",name:"Chat — OpenAI-compatible",description:'A drop-in OpenAI-compatible surface. In OpenAI-compatible clients (Roo Code, Cline, Cursor, the OpenAI SDK, …) set the Base URL to this instance + "/v1" (e.g. http://localhost:4200/v1) and the model to a flow id (format flow-<NAME>, as listed by /v1/models).',endpoints:[{method:"POST",alsoMethods:["GET","OPTIONS"],path:"/v1/chat/completions",summary:"OpenAI-compatible chat completion. Runs a FLUJO flow as the model. Supports streaming and non-streaming. CORS-enabled; rate-limited (~6000 req/min).",paramsLabel:"Body",params:[{name:"model",type:"string",required:!0,description:"Flow to run, as flow-<NAME>."},{name:"messages",type:"ChatMessage[]",required:!0,description:"Conversation messages (OpenAI shape)."},{name:"stream",type:"boolean",description:"Stream the response as SSE chunks."},{name:"flujo",type:"boolean",description:"Enable FLUJO-specific behavior."},{name:"conversation_id",type:"string",description:"Reuse/continue an existing conversation."},{name:"requireApproval",type:"boolean",description:"Pause for manual tool-call approval."},{name:"flujodebug",type:"boolean",description:"Run in the visual debugger (single-step)."}],response:"OpenAI ChatCompletion object, or an SSE stream of chunks when stream=true."},{method:"GET",path:"/v1/models",summary:"List all flows as OpenAI-style models.",response:'{ object: "list", data: [{ id: "flow-<NAME>", object: "model" }, ...] }'}]},{id:"conversations",name:"Conversations & Execution",description:"Manage conversations and drive flow execution: live event streaming (SSE), tool-call approval, cancellation, and visual-debugger stepping.",endpoints:[{method:"GET",path:"/v1/chat/conversations",summary:"List all conversations (id, title, flowId, createdAt, updatedAt, status), newest first.",response:"Conversation summary array."},{method:"POST",path:"/v1/chat/conversations",summary:"Create a new conversation and initialize its execution state.",paramsLabel:"Body",params:[{name:"id",type:"string",required:!0,description:"Client-generated conversation id."},{name:"title",type:"string",required:!0,description:"Display title."},{name:"flowId",type:"string",required:!0,description:"Flow bound to this conversation."},{name:"createdAt",type:"number",required:!0,description:"Unix ms timestamp."},{name:"updatedAt",type:"number",required:!0,description:"Unix ms timestamp."}]},{method:"GET",alsoMethods:["PATCH","DELETE"],path:"/v1/chat/conversations/{conversationId}",summary:"GET the displayed conversation (messages + metadata); PATCH updates flowId; DELETE removes the conversation and its event log.",paramsLabel:"Body",params:[{name:"flowId",type:"string",description:"New flow id (PATCH only)."}],response:"Conversation with messages, plus usage (token totals, per-node breakdown), status, and contextInfo (latest prompt-token count + the bound model's context window — what the chat token counter and context meter display).",notes:["Messages are a projection of the append-only conversation log when one exists (legacy conversations without a log are served as stored). Node system prompts are never included.","Subflow steps appear inline as depth-tagged, display-only messages (nested in the chat UI); they are never part of the parent's model context."]},{method:"GET",path:"/v1/chat/conversations/{conversationId}/events",summary:"Server-Sent Events stream of execution events (node:enter/exit, message, usage, run:*). Supports Last-Event-ID reconnect.",paramsLabel:"Query",params:[{name:"fromSeq",type:"number",description:"Replay events from this sequence number."}],response:"text/event-stream of ExecutionEvent objects with monotonic seq ids."},{method:"POST",path:"/v1/chat/conversations/{conversationId}/respond",summary:"Approve or reject a pending tool call; resumes execution when all pending calls are handled.",paramsLabel:"Body",params:[{name:"action",type:'"approve" | "reject"',required:!0,description:"Decision for the tool call."},{name:"toolCallId",type:"string",required:!0,description:"Which pending tool call."}]},{method:"POST",path:"/v1/chat/conversations/{conversationId}/cancel",summary:"Request cancellation of an in-progress run (sets the isCancelled flag)."},{method:"PUT",path:"/v1/chat/conversations/{conversationId}/breakpoints",summary:"Set the visual-debugger breakpoint node ids.",paramsLabel:"Body",params:[{name:"breakpoints",type:"string[]",required:!0,description:"Node ids to break on."}]},{method:"POST",path:"/v1/chat/conversations/{conversationId}/debug/step",summary:"Execute exactly one productive step (only when status is paused_debug); pauses after advancing."},{method:"POST",path:"/v1/chat/conversations/{conversationId}/debug/continue",summary:"Resume a debug session — run freely to the next pause, tool approval, or completion."},{method:"PATCH",path:"/v1/chat/conversations/{conversationId}/edit-state",summary:"Edit paused debug state (a message's content, or the next node to run). Only when paused_debug.",paramsLabel:"Body",params:[{name:"messageId",type:"string",description:"Message to edit."},{name:"content",type:"string",description:"New message content."},{name:"currentNodeId",type:"string",description:"Override the next node."}]}]},{id:"model",name:"Models",description:"CRUD for model configurations and provider model discovery. API keys are encrypted at rest and never returned to the browser in clear text.",endpoints:[{method:"GET",alsoMethods:["POST"],path:"/api/model",summary:"GET lists all models; POST creates a model (409 on duplicate name, 201 on success).",paramsLabel:"Body",params:[{name:"model",type:"Model",required:!0,description:"Model config (POST). Secrets are stored encrypted."}],notes:["Stored API keys are masked before reaching the frontend — never expect a clear-text key in a response."]},{method:"GET",alsoMethods:["PUT","DELETE"],path:"/api/model/{id}",summary:"GET / PUT / DELETE a single model. The path id is authoritative on PUT. DELETE returns 204."},{method:"POST",path:"/api/model/provider",summary:"Fetch available models from a provider, using a supplied or stored API key (resolved server-side).",paramsLabel:"Body",params:[{name:"baseUrl",type:"string",required:!0,description:"Provider base URL."},{name:"modelId",type:"string",description:"Existing model whose stored key to reuse."},{name:"searchTerm",type:"string",description:"Filter the returned model list."}],notes:["Accepts an apiKey only inbound to query the provider; keys are never echoed back to the client."]}]},{id:"flow",name:"Flows",description:"CRUD for flow definitions plus prompt rendering for individual nodes.",endpoints:[{method:"GET",alsoMethods:["POST"],path:"/api/flow",summary:"GET lists all flow definitions; POST creates a flow (create-only; 409 if the id exists).",paramsLabel:"Body",params:[{name:"flow",type:"Flow",required:!0,description:"Flow object including id (POST)."}]},{method:"GET",alsoMethods:["PUT","DELETE"],path:"/api/flow/{id}",summary:"GET / PUT / DELETE a single flow. On PUT the path id wins over the body id (404 if missing)."},{method:"POST",path:"/api/flow/prompt-renderer",summary:"Render the assembled prompt for a node within a flow.",paramsLabel:"Body",params:[{name:"flowId",type:"string",required:!0,description:"Flow containing the node."},{name:"nodeId",type:"string",required:!0,description:"Node to render."},{name:"options",type:"object",description:"Render options."}]}]},{id:"planned-executions",name:"Planned Executions",description:"Run flows headlessly on triggers: schedules (cron), inbound webhooks, and more. Managed from the Executions page; each run is recorded in a per-execution run history.",endpoints:[{method:"GET",alsoMethods:["POST","PATCH"],path:"/api/planned-executions",summary:"GET lists all planned executions with live trigger status and last run; POST creates one; PATCH toggles the global pause switch ({ paused: boolean }).",response:"GET: { paused, executions: [{ execution, status, lastRun }] }."},{method:"GET",alsoMethods:["PATCH","DELETE"],path:"/api/planned-executions/{id}",summary:"GET / PATCH / DELETE a single planned execution. PATCH takes a partial config and re-arms the trigger."},{method:"POST",path:"/api/planned-executions/{id}/run",summary:"Run now: fire the execution immediately (even while disabled or paused) and wait for the run.",response:"{ record: RunRecord } with status, output preview, and token usage."},{method:"GET",path:"/api/planned-executions/{id}/runs",summary:"The execution’s run history (newest 100 runs, oldest first)."},{method:"POST",path:"/api/planned-executions/preview-schedule",summary:"Validate a cron pattern and preview its next fire times (editor helper).",paramsLabel:"Body",params:[{name:"cron",type:"string",required:!0,description:"Cron pattern (5 or 6 fields)."},{name:"timezone",type:"string",description:"IANA timezone name."}],response:"{ valid, error?, nextRuns: string[] }."},{method:"POST",path:"/api/webhooks/{id}",summary:"Inbound webhook trigger. Fires the planned execution with the request body as trigger context and responds 202 { runId } immediately (the flow runs in the background). For a synchronous answer use /v1/chat/completions instead.",paramsLabel:"Query",params:[{name:"token",type:"string",required:!0,description:"Per-execution secret (alternatively send the X-Flujo-Token header)."}],notes:["Localhost-only by default; external callers must be explicitly allowed per execution.","The webhook body is untrusted input to the flow — prompts should treat it as data."]}]},{id:"mcp",name:"MCP Servers",description:"Manage MCP server configurations, connection state, tool discovery, and tool invocation.",endpoints:[{method:"GET",alsoMethods:["POST"],path:"/api/mcp/servers",summary:"GET lists all MCP server configs; POST registers a new one (409 on duplicate name).",paramsLabel:"Body",params:[{name:"config",type:"MCPServerConfig",required:!0,description:"Server config (POST)."}]},{method:"GET",alsoMethods:["PUT","DELETE"],path:"/api/mcp/servers/{name}",summary:"GET / PUT / DELETE a server config. PUT merges fields; toggling disabled connects/disconnects; a new name triggers a validated rename."},{method:"GET",path:"/api/mcp/servers/{name}/status",summary:"Live connection status. Always 200, even when the server is down.",response:"{ status, ... }"},{method:"GET",path:"/api/mcp/servers/{name}/tools",summary:"List tools exposed by a connected server.",response:"{ tools, error? } (empty tools + error when disconnected)."},{method:"POST",path:"/api/mcp/servers/{name}/tools/{toolName}",summary:"Invoke a tool on a server. Status may reflect the tool itself (408 on timeout).",paramsLabel:"Body",params:[{name:"args",type:"Record<string, unknown>",required:!0,description:"Tool arguments."},{name:"timeout",type:"number",description:"Optional timeout (ms)."}]},{method:"POST",path:"/api/mcp/test-connection",summary:"Run a real MCP handshake against an unsaved config (tests custom CAs and headers) without registering it.",paramsLabel:"Body",params:[{name:"config",type:"MCPServerConfig",required:!0,description:"Config to test."}]},{method:"POST",path:"/api/mcp/cancel",summary:"Cancel an in-progress tool execution; force-reconnects if no token is supplied.",paramsLabel:"Body",params:[{name:"reason",type:"string",required:!0,description:"Cancellation reason."}]}]},{id:"mcp-proxy",name:"FLUJO as an MCP server (proxy)",description:'Re-expose a configured MCP server to EXTERNAL MCP clients (Claude Desktop, Cursor, Cline, mcp-inspector, …) so you configure the server once in FLUJO and reach it everywhere. Enable per server via the "Expose to external apps" toggle on its card. In your MCP client, add a Streamable-HTTP server with the URL below. One downstream server per endpoint, so tool names are unchanged. Localhost-only for now (no auth token in this version — see the security roadmap).',endpoints:[{method:"POST",alsoMethods:["GET","DELETE"],path:"/mcp-proxy/{server}",summary:'A Streamable-HTTP MCP endpoint that forwards tools/list and tools/call to the named downstream MCP server. {server} is the configured server name; it must have "Expose to external apps" enabled (otherwise 404). Rejects non-localhost requests.',response:"MCP JSON-RPC over Streamable HTTP (handled by your MCP client, not called directly)."}]},{id:"oauth",name:"OAuth (for MCP)",description:"OAuth authorization flow for MCP servers that require it. Tokens are stored server-side and never sent to the browser.",endpoints:[{method:"POST",path:"/api/oauth/initiate",summary:"Begin the OAuth flow for a server; dynamically registers a client and returns an authorization URL.",paramsLabel:"Body",params:[{name:"serverName",type:"string",required:!0,description:"MCP server to authorize."}]},{method:"GET",alsoMethods:["POST"],path:"/api/oauth/callback",summary:"OAuth redirect target; exchanges the code for tokens, updates the config, and redirects to /mcp.",notes:["Tokens are persisted server-side only."]},{method:"POST",path:"/api/oauth/reset",summary:"Clear a server's OAuth tokens and force re-authentication on the next connection.",paramsLabel:"Body",params:[{name:"serverName",type:"string",required:!0,description:"Server to reset."}]}]},{id:"env",name:"Environment & Secrets",description:"Global environment variables and server-side encryption operations. Secret values are encrypted at rest and masked as ******** in responses.",endpoints:[{method:"GET",alsoMethods:["POST"],path:"/api/env",summary:"GET reads env vars (secrets masked); POST sets/deletes vars (secrets encrypted server-side).",paramsLabel:"Body",params:[{name:"action",type:'"set" | "setAll" | "delete"',required:!0,description:"Operation."},{name:"key",type:"string",description:"Variable name (set/delete)."},{name:"value",type:"string",description:"Value; the placeholder ******** is ignored."},{name:"metadata",type:"{ isSecret: boolean }",description:"Marks a value for encryption."}],notes:["GET masks secret values unless an internal includeSecrets flag is set; the browser never receives clear-text secrets."]},{method:"POST",path:"/api/encryption/secure",summary:"Server-side encryption operations: initialize, authenticate, change_password, encrypt, verify_password, check_initialized, and status queries.",paramsLabel:"Body",params:[{name:"action",type:"string",required:!0,description:"One of the encryption actions."}],notes:["Passwords and tokens are handled here and stay server-side — never log or surface them in the UI."]}]},{id:"storage",name:"Storage & Backup",description:"Generic key-value storage plus zip backup/restore of selected data.",endpoints:[{method:"GET",alsoMethods:["POST","DELETE"],path:"/api/storage",summary:"GET loads an item by StorageKey (with optional default); POST saves; DELETE clears.",paramsLabel:"Query",params:[{name:"key",type:"StorageKey",required:!0,description:"Storage key."},{name:"defaultValue",type:"JSON",description:"Returned when the key is missing (GET)."}]},{method:"POST",path:"/api/backup",summary:"Create a zip backup of selected items and download it.",paramsLabel:"Body",params:[{name:"selections",type:"string[]",required:!0,description:"e.g. models, mcpServers, flows, chatHistory, settings."}],notes:["A backup may include the encryption key and secrets — handle the downloaded file carefully."]},{method:"POST",path:"/api/restore",summary:"Restore data from a backup zip.",paramsLabel:"Form data",params:[{name:"file",type:"File (zip)",required:!0,description:"Backup archive."},{name:"selections",type:"JSON string[]",required:!0,description:"Which items to restore."}]}]},{id:"system",name:"System & Updates",description:"App initialization, working-directory info, repository operations, and self-update.",endpoints:[{method:"GET",path:"/api/init",summary:"Server-side initialization: verify storage and start enabled MCP servers."},{method:"GET",path:"/api/cwd",summary:"Return the current working directory and the mcp-servers directory path."},{method:"GET",path:"/api/browse",summary:"List a directory of the machine running FLUJO, for the folder-picker dialogs (file-watch triggers, MCP server paths). Defaults to the home directory; includes available drives on Windows.",paramsLabel:"Query",params:[{name:"path",type:"string",description:"Absolute directory path to list."}],response:"{ path, parent, home, sep, drives, entries: [{ name, path, isDirectory }] }",notes:["Exposes backend filesystem listings — like the rest of the API it assumes a single trusted user."]},{method:"POST",path:"/api/git",summary:"Repository operations for MCP servers: clone, install, build, run, exists, readFile, listDir, list, checkUpdates, checkUpdatesBatch, pullUpdates.",paramsLabel:"Body",params:[{name:"action",type:"string",required:!0,description:"Operation to perform."}]},{method:"GET",alsoMethods:["POST"],path:"/api/update",summary:'GET checks for a newer version (git fetch + behind count); POST { action: "apply" } pulls, rebuilds, and restarts.',response:"{ success, isGitRepo, updateAvailable, behindBy?, branch?, currentVersion }"}]}],f={GET:"#2e7d32",POST:"#1565c0",PUT:"#ed6c02",PATCH:"#9c27b0",DELETE:"#c62828",OPTIONS:"#616161"};function v(e){let{method:t}=e;return(0,s.jsx)(r.A,{label:t,size:"small",sx:{bgcolor:f[t],color:"#fff",fontWeight:700,fontFamily:"var(--font-geist-mono), monospace",fontSize:"0.7rem",height:22}})}function g(e){var t,a,o,r;let{endpoint:l}=e;return(0,s.jsxs)(i.A,{variant:"outlined",sx:{p:2,mb:1.5},children:[(0,s.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1,flexWrap:"wrap",mb:1},children:[(0,s.jsx)(v,{method:l.method}),null==(t=l.alsoMethods)?void 0:t.map(e=>(0,s.jsx)(v,{method:e},e)),(0,s.jsx)(d.default,{component:"code",sx:{fontFamily:"var(--font-geist-mono), monospace",fontSize:"0.9rem",wordBreak:"break-all"},children:l.path})]}),(0,s.jsx)(d.default,{variant:"body2",color:"text.secondary",sx:{mb:1.5*(null!=(a=l.params)&&!!a.length)},children:l.summary}),l.params&&l.params.length>0&&(0,s.jsxs)(n.default,{sx:{mb:1},children:[(0,s.jsx)(d.default,{variant:"caption",sx:{fontWeight:700,textTransform:"uppercase",color:"text.secondary"},children:null!=(r=l.paramsLabel)?r:"Parameters"}),(0,s.jsx)(n.default,{component:"ul",sx:{m:0,mt:.5,pl:2.5},children:l.params.map(e=>(0,s.jsx)(n.default,{component:"li",sx:{mb:.25},children:(0,s.jsxs)(d.default,{variant:"body2",component:"span",children:[(0,s.jsx)(n.default,{component:"code",sx:{fontFamily:"var(--font-geist-mono), monospace",fontWeight:600},children:e.name}),(0,s.jsxs)(n.default,{component:"span",sx:{color:"text.secondary"},children:[" ",e.type,e.required?" \xb7 required":""," — ",e.description]})]})},e.name))})]}),l.response&&(0,s.jsxs)(d.default,{variant:"body2",sx:{mt:.5},children:[(0,s.jsxs)(n.default,{component:"span",sx:{fontWeight:600},children:["Response:"," "]}),(0,s.jsx)(n.default,{component:"span",sx:{color:"text.secondary"},children:l.response})]}),null==(o=l.notes)?void 0:o.map((e,t)=>(0,s.jsxs)(d.default,{variant:"caption",sx:{display:"block",mt:1,color:"warning.main"},children:["⚠ ",e]},t))]})}function b(){let[e,t]=(0,o.useState)(""),[a,r]=(0,o.useState)("");o.useEffect(()=>{r(window.location.origin)},[]);let f=(0,o.useMemo)(()=>{let t=e.trim().toLowerCase();return t?y.map(e=>{let a=e.endpoints.filter(a=>{var s;return"".concat(a.method," ").concat((null!=(s=a.alsoMethods)?s:[]).join(" ")," ").concat(a.path," ").concat(a.summary).toLowerCase().includes(t)||e.name.toLowerCase().includes(t)});return{...e,endpoints:a}}).filter(e=>e.endpoints.length>0):y},[e]);return(0,s.jsxs)(l.A,{maxWidth:"md",sx:{py:5},children:[(0,s.jsx)(d.default,{variant:"h4",gutterBottom:!0,children:"API Documentation"}),(0,s.jsx)(d.default,{variant:"body1",color:"text.secondary",sx:{mb:2},children:"FLUJO exposes an OpenAI-compatible chat API and a REST surface for managing models, MCP servers, flows, and conversations. All endpoints are served from this instance."}),(0,s.jsxs)(i.A,{variant:"outlined",sx:{p:2,mb:3},children:[(0,s.jsx)(d.default,{variant:"subtitle2",gutterBottom:!0,children:"Base URL"}),(0,s.jsx)(n.default,{component:"code",sx:{fontFamily:"var(--font-geist-mono), monospace",fontSize:"0.9rem"},children:a||"http://localhost:4200"}),(0,s.jsxs)(d.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:["Point any OpenAI SDK at"," ",(0,s.jsx)(n.default,{component:"code",sx:{fontFamily:"var(--font-geist-mono), monospace"},children:(a||"http://localhost:4200")+"/v1"})," ","and set the model to"," ",(0,s.jsx)(n.default,{component:"code",sx:{fontFamily:"var(--font-geist-mono), monospace"},children:"flow-<NAME>"}),". Any API key value is accepted locally."]})]}),(0,s.jsx)(p.A,{fullWidth:!0,size:"small",placeholder:"Search endpoints (path, method, description)…",value:e,onChange:e=>t(e.target.value),sx:{mb:3},InputProps:{startAdornment:(0,s.jsx)(c.A,{position:"start",children:(0,s.jsx)(h.A,{fontSize:"small"})})}}),0===f.length&&(0,s.jsxs)(d.default,{color:"text.secondary",children:["No endpoints match “",e,"”."]}),f.map(e=>(0,s.jsxs)(n.default,{sx:{mb:4},id:e.id,children:[(0,s.jsx)(d.default,{variant:"h6",gutterBottom:!0,children:e.name}),(0,s.jsx)(d.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:e.description}),e.endpoints.map(e=>(0,s.jsx)(g,{endpoint:e},"".concat(e.method," ").concat(e.path)))]},e.id)),(0,s.jsx)(m.A,{sx:{my:3}}),(0,s.jsxs)(d.default,{variant:"caption",color:"text.secondary",children:["Secrets (API keys, encryption passwords, OAuth tokens) are encrypted at rest and never returned to the browser in clear text. See the project"," ",(0,s.jsx)(u.A,{href:"https://github.com/mario-andreschak/FLUJO",target:"_blank",rel:"noopener",children:"repository"})," ","for source-level details."]})]})}let x=(0,a(87021).h)("app/docs/page");function E(){return x.debug("Rendering DocsPage"),(0,s.jsx)(n.default,{component:"main",sx:{minHeight:"100vh"},children:(0,s.jsx)(b,{})})}},32651:(e,t,a)=>{Promise.resolve().then(a.bind(a,27127))},87021:(e,t,a)=>{"use strict";a.d(t,{h:()=>d});let s={LOG_LEVEL:3},n={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},o="number"==typeof s.LOG_LEVEL?s.LOG_LEVEL:n.ERROR;function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t>6)return String(e);if(!(e instanceof Error))return e;let a={name:e.name,message:e.message};for(let s of Object.getOwnPropertyNames(e)){if("name"===s||"message"===s)continue;let n=e[s];"function"!=typeof n&&("stack"===s?a.stack=n:"cause"===s?a.cause=r(n,t+1):"errors"===s&&Array.isArray(n)?a.errors=n.map(e=>r(e,t+1)):a[s]=n)}return a}function i(e,t,a,s,i){if(e>=("number"==typeof i?i:o)){if("function"==typeof s)try{s=s()}catch(e){s="[lazy log data threw]"}let o=new Date().toISOString(),i="[".concat(o,"] [").concat(t,"]"),d="".concat(i," ").concat(a);if(void 0!==s)if(s instanceof Error||"object"==typeof s)try{let e=s instanceof Error?r(s):s,t=JSON.stringify(e,(e,t)=>t instanceof Error?r(t):t,2);d+=":\n".concat(t)}catch(e){d+=": [Object cannot be stringified]"}else d+=": ".concat(s);switch(e){case n.VERBOSE:console.debug("[VERBOSE] ".concat(d));break;case n.DEBUG:console.debug(d);break;case n.INFO:console.info(d);break;case n.WARN:console.warn(d);break;case n.ERROR:console.error(d);break;default:console.log(d)}}}function d(e,t){let a,s=((a=e.replace(/^src\//,"")).startsWith("/")&&(a=a.substring(1)),a);return{verbose:(e,a)=>{i(n.VERBOSE,s,e,a,t)},debug:(e,a)=>{i(n.DEBUG,s,e,a,t)},info:(e,a)=>{i(n.INFO,s,e,a,t)},warn:(e,a)=>{i(n.WARN,s,e,a,t)},error:(e,a)=>{i(n.ERROR,s,e,a,t)}}}}},e=>{e.O(0,[2678,4754,9244,8548,9562,488,8989,8441,1255,7358],()=>e(e.s=32651)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1488],{17427:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var l=a(95155),n=a(12115),r=a(25635),o=a(94049),s=a(99944),i=a(9957),d=a(52641),c=a(51221),u=a(55606),h=a(86973),x=a(9562);let p=e=>{var t;let{schema:a,values:p,onChange:f,size:m="small"}=e,[g,y]=(0,n.useState)({}),w=null!=(t=null==a?void 0:a.properties)?t:{},v=Array.isArray(null==a?void 0:a.required)?a.required:[],j=Object.keys(w);if(0===j.length)return(0,l.jsx)(r.default,{variant:"body2",color:"text.secondary",children:"This tool takes no parameters."});let b=(e,t)=>{let a={...p};void 0===t?delete a[e]:a[e]=t,f(a)};return(0,l.jsx)(o.default,{sx:{display:"flex",flexDirection:"column",gap:2},children:j.map(e=>{var t,a;let n=null!=(t=w[e])?t:{},f=v.includes(e)?"".concat(e," *"):e,j="string"==typeof n.description?n.description:"";if("boolean"===n.type)return(0,l.jsx)(s.A,{control:(0,l.jsx)(i.A,{size:m,checked:!0===p[e],onChange:t=>b(e,t.target.checked)}),label:(0,l.jsxs)(o.default,{children:[(0,l.jsx)(r.default,{variant:"body2",children:f}),j&&(0,l.jsx)(r.default,{variant:"caption",color:"text.secondary",children:j})]})},e);if(Array.isArray(n.enum)&&n.enum.length>0){let t=p[e];return(0,l.jsxs)(d.A,{size:m,fullWidth:!0,children:[(0,l.jsx)(c.A,{id:"schema-param-".concat(e),children:f}),(0,l.jsx)(u.A,{labelId:"schema-param-".concat(e),label:f,value:n.enum.includes(t)?t:"",onChange:t=>b(e,t.target.value),children:n.enum.map(e=>(0,l.jsx)(h.A,{value:e,children:String(e)},String(e)))}),j&&(0,l.jsx)(r.default,{variant:"caption",color:"text.secondary",sx:{mt:.5,mx:1.75},children:j})]},e)}if("number"===n.type||"integer"===n.type)return(0,l.jsx)(x.A,{fullWidth:!0,size:m,type:"number",label:f,value:void 0!==p[e]?String(p[e]):"",onChange:t=>{let a=t.target.value;if(""===a)return void b(e,void 0);let l="integer"===n.type?parseInt(a,10):parseFloat(a);b(e,Number.isNaN(l)?void 0:l)},helperText:j},e);if("object"===n.type||"array"===n.type){let t=null!=(a=g[e])?a:void 0!==p[e]?JSON.stringify(p[e],null,2):"",r=null;if(t.trim())try{JSON.parse(t)}catch(e){r="Not valid JSON yet"}return(0,l.jsx)(x.A,{fullWidth:!0,size:m,multiline:!0,minRows:2,label:"".concat(f," (JSON ").concat(n.type,")"),value:t,error:!!r,helperText:null!=r?r:j,onChange:t=>{let a=t.target.value;if(y(t=>({...t,[e]:a})),!a.trim())return void b(e,void 0);try{b(e,JSON.parse(a))}catch(e){}},slotProps:{input:{sx:{fontFamily:"monospace",fontSize:13}}}},e)}return(0,l.jsx)(x.A,{fullWidth:!0,size:m,label:f,value:void 0!==p[e]?String(p[e]):"",onChange:t=>b(e,""===t.target.value?void 0:t.target.value),helperText:j},e)})})}},60187:(e,t,a)=>{Promise.resolve().then(a.bind(a,95271))},62640:(e,t,a)=>{"use strict";a.d(t,{A:()=>N});var l=a(95155),n=a(12115),r=a(2778),o=a(52363),s=a(65036),i=a(94049),d=a(78470),c=a(41983),u=a(9562),h=a(28548),x=a(22003),p=a(4474),f=a(25635),m=a(41602),g=a(73707),y=a(49501),w=a(17681),v=a(75912),j=a(70690),b=a(80007),A=a(74482),k=a(40171),C=a(36944);let S=(0,a(87021).h)("frontend/components/shared/FolderPickerDialog"),N=e=>{let{open:t,title:a="Choose a folder",selectFiles:N=!1,initialPath:T,onClose:E,onSelect:I}=e,[F,W]=(0,n.useState)(null),[P,R]=(0,n.useState)(""),[O,z]=(0,n.useState)(!1),[M,U]=(0,n.useState)(null),D=(0,n.useCallback)(async e=>{z(!0),U(null);try{let t=e?"?path=".concat(encodeURIComponent(e)):"",a=await fetch("/api/browse".concat(t)),l=await a.json();if(!a.ok||l.error)return void U(l.error||"HTTP ".concat(a.status));W(l),R(l.path)}catch(e){S.warn("Browse failed",e),U("Could not reach the backend to browse folders.")}finally{z(!1)}},[]);(0,n.useEffect)(()=>{t?D(T||void 0):(W(null),U(null))},[t,T,D]);let L=e=>{I(e),E()};return(0,l.jsxs)(r.A,{open:t,onClose:E,maxWidth:"sm",fullWidth:!0,children:[(0,l.jsx)(o.A,{children:a}),(0,l.jsxs)(s.A,{dividers:!0,sx:{display:"flex",flexDirection:"column",gap:1.5},children:[(0,l.jsxs)(i.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,l.jsx)(d.A,{title:"Up one folder",children:(0,l.jsx)("span",{children:(0,l.jsx)(c.A,{size:"small",disabled:!(null==F?void 0:F.parent)||O,onClick:()=>(null==F?void 0:F.parent)&&void D(F.parent),children:(0,l.jsx)(k.A,{fontSize:"small"})})})}),(0,l.jsx)(d.A,{title:"Home folder",children:(0,l.jsx)("span",{children:(0,l.jsx)(c.A,{size:"small",disabled:O,onClick:()=>void D(),children:(0,l.jsx)(C.A,{fontSize:"small"})})})}),(0,l.jsx)(u.A,{fullWidth:!0,size:"small",value:P,onChange:e=>R(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),D(P))},placeholder:"Type a path and press Enter"})]}),F&&F.drives.length>0&&(0,l.jsx)(i.default,{sx:{display:"flex",gap:.75,flexWrap:"wrap"},children:F.drives.map(e=>(0,l.jsx)(h.A,{label:e,size:"small",variant:F.path.toLowerCase().startsWith(e.toLowerCase())?"filled":"outlined",onClick:()=>void D(e)},e))}),M&&(0,l.jsx)(x.A,{severity:"error",children:M}),(0,l.jsxs)(i.default,{sx:{minHeight:240,maxHeight:"45vh",overflow:"auto",border:1,borderColor:"divider",borderRadius:1},children:[O&&(0,l.jsx)(i.default,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,l.jsx)(p.default,{size:24})}),!O&&F&&0===F.entries.length&&(0,l.jsx)(f.default,{variant:"body2",color:"text.secondary",sx:{p:2},children:"This folder is empty."}),!O&&(0,l.jsx)(m.A,{dense:!0,disablePadding:!0,children:null==F?void 0:F.entries.map(e=>(0,l.jsxs)(g.A,{disabled:!e.isDirectory&&!N,onClick:()=>e.isDirectory?void D(e.path):L(e.path),children:[(0,l.jsx)(y.A,{sx:{minWidth:34},children:e.isDirectory?(0,l.jsx)(b.A,{fontSize:"small",color:"primary"}):(0,l.jsx)(A.A,{fontSize:"small"})}),(0,l.jsx)(w.A,{primary:e.name,primaryTypographyProps:{noWrap:!0}})]},e.path))})]})]}),(0,l.jsxs)(v.A,{children:[(0,l.jsx)(j.A,{onClick:E,children:"Cancel"}),(0,l.jsx)(j.A,{variant:"contained",disabled:!F||O,onClick:()=>F&&L(F.path),children:"Select this folder"})]})]})}},90057:(e,t,a)=>{"use strict";a.d(t,{g:()=>o});var l=a(74879);let n=(0,a(87021).h)("frontend/services/flow/index");class r{async loadFlows(){n.debug("loadFlows: Entering method");try{if(this.flowsCache)return n.debug("loadFlows: Using cached flows",{count:this.flowsCache.length}),this.flowsCache;let e=await fetch("/api/flow");if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to load flows")}let t=await e.json();return n.debug("loadFlows: Loaded flows from API",{count:t.length}),this.flowsCache=t,t}catch(e){return n.warn("loadFlows: Failed to load flows:",e),[]}}async getFlow(e){n.debug("getFlow: Entering method",{flowId:e});try{if(this.flowsCache){let t=this.flowsCache.find(t=>t.id===e);if(t)return n.debug("getFlow: Using cached flow",{flowId:e}),t}let t=await fetch("/api/flow/".concat(encodeURIComponent(e)));if(!t.ok){if(404===t.status)return n.debug("getFlow: Flow ".concat(e," not found")),null;let a=await t.json();throw Error(a.error||"Failed to get flow: ".concat(e))}let a=await t.json();return n.debug("getFlow: Retrieved flow from API",{flowId:e}),a}catch(t){return n.warn("getFlow: Failed to get flow ".concat(e,":"),t),null}}async addFlow(e){n.debug("addFlow: Entering method",{flowId:e.id,flowName:e.name,nodeCount:e.nodes.length,edgeCount:e.edges.length});try{let t=await fetch("/api/flow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){let e=await t.json();return{success:!1,error:e.error||"Failed to add flow"}}let a=await t.json();return this.flowsCache&&this.flowsCache.push(a),n.debug("addFlow: Flow added successfully",{flowId:e.id}),{success:!0}}catch(e){return n.warn("addFlow: Failed to add flow:",e),{success:!1,error:e instanceof Error?e.message:"Failed to add flow"}}}async updateFlow(e){n.debug("updateFlow: Entering method",{flowId:e.id,flowName:e.name,nodeCount:e.nodes.length,edgeCount:e.edges.length});try{let t=await fetch("/api/flow/".concat(encodeURIComponent(e.id)),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){let e=await t.json();return{success:!1,error:e.error||"Failed to update flow"}}let a=await t.json();if(this.flowsCache){let t=this.flowsCache.findIndex(t=>t.id===e.id);t>=0?this.flowsCache[t]=a:this.flowsCache.push(a)}return n.debug("updateFlow: Flow updated successfully",{flowId:e.id}),{success:!0}}catch(e){return n.warn("updateFlow: Failed to update flow:",e),{success:!1,error:e instanceof Error?e.message:"Failed to update flow"}}}async deleteFlow(e){n.debug("deleteFlow: Entering method",{flowId:e});try{let t=await fetch("/api/flow/".concat(encodeURIComponent(e)),{method:"DELETE"});if(!t.ok){let e=await t.json();return{success:!1,error:e.error||"Failed to delete flow"}}return this.flowsCache&&(this.flowsCache=this.flowsCache.filter(t=>t.id!==e)),n.debug("deleteFlow: Flow deleted successfully",{flowId:e}),{success:!0}}catch(e){return n.warn("deleteFlow: Failed to delete flow:",e),{success:!1,error:e instanceof Error?e.message:"Failed to delete flow"}}}createNode(e,t){return n.debug("createNode: Entering method",{type:e,position:t}),{id:(0,l.A)(),type:e,position:t,data:{label:"".concat("mcp"===e?"MCP":e.charAt(0).toUpperCase()+e.slice(1)," Node"),type:e,properties:{}}}}createStartNode(){return{id:(0,l.A)(),type:"start",position:{x:250,y:150},data:{label:"Start Node",type:"start",properties:{promptTemplate:""}}}}createNewFlow(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"NewFlow";return n.debug("createNewFlow: Entering method",{name:e}),{id:(0,l.A)(),name:e,nodes:[this.createStartNode()],edges:[]}}createHistoryEntry(e,t){return n.debug("createHistoryEntry: Entering method"),{nodes:[...e],edges:[...t]}}generateSampleFlow(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Sample Flow";return n.debug("generateSampleFlow: Entering method",{name:e}),{id:(0,l.A)(),name:e,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 o=new r},95271:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>eF});var l=a(95155),n=a(94049),r=a(12115),o=a(25635),s=a(99944),i=a(9957),d=a(70690),c=a(2778),u=a(52363),h=a(65036),x=a(75912),p=a(86946),f=a(76530),m=a(78470),g=a(41983),y=a(87021);let w=(0,y.h)("frontend/services/plannedExecutions");class v{async list(){try{let e=await fetch("/api/planned-executions");if(!e.ok)throw Error("HTTP ".concat(e.status));return await e.json()}catch(e){return w.warn("Failed to list planned executions",e),{paused:!1,executions:[]}}}async create(e){try{let t=await fetch("/api/planned-executions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),a=await t.json();if(!t.ok)return{success:!1,error:(null==a?void 0:a.error)||"HTTP ".concat(t.status)};return{success:!0,execution:a.execution}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Request failed"}}}async update(e,t){try{let a=await fetch("/api/planned-executions/".concat(e),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),l=await a.json();if(!a.ok)return{success:!1,error:(null==l?void 0:l.error)||"HTTP ".concat(a.status)};return{success:!0,execution:l.execution}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Request failed"}}}async delete(e){try{let t=await fetch("/api/planned-executions/".concat(e),{method:"DELETE"});if(!t.ok){let e=await t.json().catch(()=>null);return{success:!1,error:(null==e?void 0:e.error)||"HTTP ".concat(t.status)}}return{success:!0}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Request failed"}}}async setPaused(e){try{let t=await fetch("/api/planned-executions",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({paused:e})});if(!t.ok){let e=await t.json().catch(()=>null);return{success:!1,error:(null==e?void 0:e.error)||"HTTP ".concat(t.status)}}return{success:!0}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Request failed"}}}async runNow(e){try{let t=await fetch("/api/planned-executions/".concat(e,"/run"),{method:"POST"}),a=await t.json();if(!t.ok)return{success:!1,error:(null==a?void 0:a.error)||"HTTP ".concat(t.status)};return{success:!0,record:a.record}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Request failed"}}}async loadRuns(e){try{let t=await fetch("/api/planned-executions/".concat(e,"/runs"));if(!t.ok)throw Error("HTTP ".concat(t.status));let a=await t.json();return Array.isArray(null==a?void 0:a.runs)?a.runs:[]}catch(t){return w.warn("Failed to load runs for ".concat(e),t),[]}}async previewSchedule(e,t){try{let a=await fetch("/api/planned-executions/preview-schedule",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cron:e,timezone:t})});if(!a.ok)throw Error("HTTP ".concat(a.status));return await a.json()}catch(e){return{valid:!1,error:e instanceof Error?e.message:"Preview failed",nextRuns:[]}}}}let j=new v;var b=a(2300),A=a(28548),k=a(4474),C=a(50430),S=a(55406),N=a(14915),T=a(4484),E=a(63186),I=a(62962),F=a(3713);let W=e=>String(e).padStart(2,"0"),P=e=>{switch(e){case"completed":return"success.main";case"error":return"error.main";case"skipped":return"warning.main";default:return"transparent"}},R=e=>e?new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"",O=e=>{if(!e.finishedAt)return"";let t=new Date(e.finishedAt).getTime()-new Date(e.firedAt).getTime();return t<1e3?"<1s":t<6e4?"".concat(Math.round(t/1e3),"s"):"".concat(Math.round(t/6e4),"min")},z=e=>{var t;let{entry:a,onEdit:s,onDelete:p,onToggleEnabled:f,onRanNow:y}=e,{execution:w,status:v,lastRun:z}=a,[M,U]=(0,r.useState)(!1),[D,L]=(0,r.useState)(null),[H,J]=(0,r.useState)(!1),[q,$]=(0,r.useState)(!1),[B,G]=(0,r.useState)(null),_=(0,r.useCallback)(async()=>{J(!0),L([...await j.loadRuns(w.id)].reverse()),J(!1)},[w.id]);(0,r.useEffect)(()=>{M&&_()},[M,_,null==z?void 0:z.runId]);let K=async()=>{$(!0),await j.runNow(w.id),$(!1),M&&_(),y()};return(0,l.jsxs)(b.A,{variant:"outlined",sx:{p:2},children:[(0,l.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1.5,flexWrap:"wrap"},children:[(0,l.jsxs)(n.default,{sx:{flexGrow:1,minWidth:220},children:[(0,l.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1,flexWrap:"wrap"},children:[(0,l.jsx)(o.default,{variant:"subtitle1",sx:{fontWeight:600},children:w.name}),(0,l.jsx)(A.A,{size:"small",label:function(e){switch(e.type){case"schedule":{var t;let a,l=(t=e.cron,(a=/^\*\/(\d+) \* \* \* \* \*$/.exec(t))?"Every ".concat(a[1],"s"):(a=/^\*\/(\d+) \* \* \* \*$/.exec(t))?"Every ".concat(a[1]," min"):(a=/^0 \*\/(\d+) \* \* \*$/.exec(t))?1===Number(a[1])?"Every hour":"Every ".concat(a[1]," hours"):(a=/^(\d+) (\d+) \* \* \*$/.exec(t))?"Daily at ".concat(W(Number(a[2])),":").concat(W(Number(a[1]))):(a=/^(\d+) (\d+) \* \* 1-5$/.exec(t))?"Weekdays at ".concat(W(Number(a[2])),":").concat(W(Number(a[1]))):null);return null!=l?l:"Schedule: ".concat(e.cron)}case"webhook":return"Webhook";case"file-watch":return"Watching ".concat(e.path);case"mcp-poll":return"Watching ".concat(e.serverName," › ").concat(e.toolName);case"url-watch":try{return"Watching ".concat(new URL(e.url).hostname)}catch(e){return"Watching a URL"}default:return"Trigger"}}(w.trigger)}),!w.enabled&&(0,l.jsx)(A.A,{size:"small",label:"Off",variant:"outlined"})]}),v.running?(0,l.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:.75,mt:.5},children:[(0,l.jsx)(k.default,{size:12,thickness:6}),(0,l.jsxs)(o.default,{variant:"body2",color:"text.secondary",children:["Running…",v.runningSince?" — started ".concat(R(v.runningSince)):""]})]}):(0,l.jsxs)(o.default,{variant:"body2",color:"text.secondary",sx:{mt:.5},children:[v.nextRun&&w.enabled?"Next run: ".concat(R(v.nextRun)):w.enabled&&!v.armed?"Not armed":"",v.lastTriggerError?" — trigger error: ".concat(v.lastTriggerError):""]}),z&&(0,l.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:.75,mt:.5},children:[(0,l.jsx)(m.A,{title:z.status,children:(0,l.jsx)(n.default,{sx:{width:10,height:10,borderRadius:"50%",bgcolor:P(z.status),flexShrink:0}})}),(0,l.jsxs)(o.default,{variant:"body2",color:"text.secondary",children:["Last run ",R(z.firedAt),"error"===z.status&&z.error?" — ".concat(z.error):""]})]})]}),(0,l.jsx)(m.A,{title:"Run now",children:(0,l.jsx)("span",{children:(0,l.jsx)(g.A,{onClick:K,disabled:q,color:"primary",children:q?(0,l.jsx)(k.default,{size:20}):(0,l.jsx)(S.A,{})})})}),(0,l.jsx)(m.A,{title:w.enabled?"Turn off":"Turn on",children:(0,l.jsx)(i.A,{checked:w.enabled,onChange:e=>f(e.target.checked)})}),(0,l.jsx)(m.A,{title:"Edit",children:(0,l.jsx)(g.A,{onClick:s,children:(0,l.jsx)(N.A,{})})}),(0,l.jsx)(m.A,{title:"Delete",children:(0,l.jsx)(g.A,{onClick:p,children:(0,l.jsx)(T.A,{})})}),(0,l.jsx)(m.A,{title:M?"Hide run history":"Show run history",children:(0,l.jsx)(g.A,{onClick:()=>U(e=>!e),children:M?(0,l.jsx)(I.A,{}):(0,l.jsx)(E.A,{})})})]}),(0,l.jsx)(C.A,{in:M,timeout:"auto",unmountOnExit:!0,children:(0,l.jsxs)(n.default,{sx:{mt:2,borderTop:1,borderColor:"divider",pt:1.5},children:[H&&!D&&(0,l.jsx)(o.default,{variant:"body2",color:"text.secondary",children:"Loading runs…"}),D&&0===D.length&&(0,l.jsx)(o.default,{variant:"body2",color:"text.secondary",children:"No runs yet. Use the play button to try it now."}),null==D?void 0:D.map(e=>{var t;return(0,l.jsxs)(n.default,{sx:{display:"flex",gap:1,py:.75,alignItems:"flex-start","&:hover .run-detail-button":{opacity:1}},children:[(0,l.jsx)(n.default,{sx:{width:10,height:10,borderRadius:"50%",bgcolor:P(e.status),mt:"5px",flexShrink:0}}),(0,l.jsxs)(n.default,{sx:{minWidth:0,flexGrow:1},children:[(0,l.jsxs)(o.default,{variant:"body2",children:[R(e.firedAt),O(e)?" \xb7 ".concat(O(e)):""," \xb7 ",e.triggerSummary,(null==(t=e.usage)?void 0:t.totalTokens)?" \xb7 ".concat(e.usage.totalTokens.toLocaleString()," tokens"):""]}),e.error&&(0,l.jsx)(o.default,{variant:"body2",color:"error",children:e.error}),e.outputText&&(0,l.jsx)(o.default,{variant:"body2",color:"text.secondary",sx:{whiteSpace:"pre-wrap",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:e.outputText})]}),(0,l.jsx)(m.A,{title:"Show full output",children:(0,l.jsx)(g.A,{className:"run-detail-button",size:"small",onClick:()=>G(e),sx:{opacity:{xs:1,md:.35},transition:"opacity 120ms",flexShrink:0},children:(0,l.jsx)(F.A,{fontSize:"inherit"})})})]},e.runId)})]})}),(0,l.jsxs)(c.A,{open:null!==B,onClose:()=>G(null),maxWidth:"md",fullWidth:!0,children:[(0,l.jsx)(u.A,{component:"div",children:(0,l.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,l.jsx)(n.default,{sx:{width:10,height:10,borderRadius:"50%",bgcolor:B?P(B.status):"transparent",flexShrink:0}}),(0,l.jsxs)(o.default,{variant:"h6",children:[w.name," — ",B?R(B.firedAt):""]})]})}),(0,l.jsx)(h.A,{dividers:!0,children:B&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(o.default,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:[B.status,O(B)?" \xb7 ".concat(O(B)):""," \xb7 ",B.triggerSummary,(null==(t=B.usage)?void 0:t.totalTokens)?" \xb7 ".concat(B.usage.totalTokens.toLocaleString()," tokens (").concat(B.usage.promptTokens.toLocaleString()," in / ").concat(B.usage.completionTokens.toLocaleString()," out)"):""]}),B.error&&(0,l.jsx)(o.default,{variant:"body2",color:"error",sx:{mb:1.5,whiteSpace:"pre-wrap"},children:B.error}),B.outputText?(0,l.jsx)(n.default,{sx:{whiteSpace:"pre-wrap",wordBreak:"break-word",bgcolor:"action.hover",borderRadius:1,p:2,fontSize:14,maxHeight:"55vh",overflow:"auto"},children:B.outputText}):!B.error&&(0,l.jsx)(o.default,{variant:"body2",color:"text.secondary",children:"This run produced no output text."})]})}),(0,l.jsx)(x.A,{children:(0,l.jsx)(d.A,{onClick:()=>G(null),children:"Close"})})]})]})};var M=a(21067),U=a(9562),D=a(52641),L=a(51221),H=a(55606),J=a(86973),q=a(22003),$=a(77073),B=a(26922),G=a(40520),_=a(79299),K=a(22590),Q=a(53657),X=a(90057),Y=a(36741);let V=e=>{let{selected:t,icon:a,title:r,description:s,onClick:i}=e;return(0,l.jsxs)(n.default,{role:"radio","aria-checked":t,tabIndex:0,onClick:i,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),i())},sx:{flex:1,minWidth:200,position:"relative",p:2,borderRadius:2,border:2,borderColor:t?"primary.main":"divider",bgcolor:t?"action.selected":"background.paper",cursor:"pointer",transition:"border-color 120ms, background-color 120ms","&:hover":{borderColor:t?"primary.main":"text.disabled"},outline:"none","&:focus-visible":{boxShadow:e=>"0 0 0 3px ".concat(e.palette.primary.light)}},children:[t&&(0,l.jsx)(Y.A,{color:"primary",fontSize:"small",sx:{position:"absolute",top:8,right:8}}),(0,l.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5,color:t?"primary.main":"text.secondary"},children:[a,(0,l.jsx)(o.default,{variant:"subtitle1",sx:{fontWeight:600,color:"text.primary"},children:r})]}),(0,l.jsx)(o.default,{variant:"body2",color:"text.secondary",children:s})]})};var Z=a(22822),ee=a(98267),et=a(20537),ea=a(37960);let el=e=>String(e).padStart(2,"0"),en=e=>{let{cron:t,timezone:a,onChange:i,verb:d="Runs",catchUp:c,onCatchUpChange:u}=e,h=(0,r.useMemo)(()=>(function(e){let t=/^\*\/(\d+) \* \* \* \* \*$/.exec(e);return t?{mode:"seconds",n:Number(t[1]),time:"09:00"}:(t=/^\*\/(\d+) \* \* \* \*$/.exec(e))?{mode:"minutes",n:Number(t[1]),time:"09:00"}:(t=/^0 \*\/(\d+) \* \* \*$/.exec(e))?{mode:"hours",n:Number(t[1]),time:"09:00"}:(t=/^(\d+) (\d+) \* \* \*$/.exec(e))?{mode:"daily",n:1,time:"".concat(el(Number(t[2])),":").concat(el(Number(t[1])))}:(t=/^(\d+) (\d+) \* \* 1-5$/.exec(e))?{mode:"weekdays",n:1,time:"".concat(el(Number(t[2])),":").concat(el(Number(t[1])))}:{mode:"custom",n:15,time:"09:00"}})(t),[]),[x,p]=(0,r.useState)(h.mode),[f,m]=(0,r.useState)(h.n),[g,y]=(0,r.useState)(h.time),[w,v]=(0,r.useState)(t),[b,A]=(0,r.useState)(null),k=function(e,t,a,l){let[n,r]=a.split(":").map(Number);switch(e){case"seconds":return"*/".concat(Math.max(1,Math.min(59,Math.floor(t)||1))," * * * * *");case"minutes":return"*/".concat(Math.max(1,Math.min(59,Math.floor(t)||1))," * * * *");case"hours":return"0 */".concat(Math.max(1,Math.min(23,Math.floor(t)||1))," * * *");case"daily":return"".concat(r||0," ").concat(n||0," * * *");case"weekdays":return"".concat(r||0," ").concat(n||0," * * 1-5");default:return l}}(x,f,g,w);return(0,r.useEffect)(()=>{k!==t&&i({cron:k,timezone:a})},[k]),(0,r.useEffect)(()=>{let e=!1,t=setTimeout(()=>{j.previewSchedule(k,a).then(t=>{e||A(t)})},300);return()=>{e=!0,clearTimeout(t)}},[k,a]),(0,l.jsxs)(n.default,{children:[(0,l.jsxs)(n.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"center",mt:1},children:[(0,l.jsxs)(D.A,{sx:{minWidth:180},children:[(0,l.jsx)(L.A,{id:"schedule-preset-label",children:d}),(0,l.jsxs)(H.A,{labelId:"schedule-preset-label",label:d,value:x,onChange:e=>p(e.target.value),children:[(0,l.jsx)(J.A,{value:"seconds",children:"Every N seconds"}),(0,l.jsx)(J.A,{value:"minutes",children:"Every N minutes"}),(0,l.jsx)(J.A,{value:"hours",children:"Every N hours"}),(0,l.jsx)(J.A,{value:"daily",children:"Daily at a time"}),(0,l.jsx)(J.A,{value:"weekdays",children:"Weekdays at a time"}),(0,l.jsx)(J.A,{value:"custom",children:"Custom (cron)"})]})]}),("seconds"===x||"minutes"===x||"hours"===x)&&(0,l.jsx)(U.A,{label:"seconds"===x?"Seconds":"minutes"===x?"Minutes":"Hours",type:"number",value:f,onChange:e=>m(Number(e.target.value)),inputProps:{min:1,max:"hours"===x?23:59},sx:{width:120}}),("daily"===x||"weekdays"===x)&&(0,l.jsx)(U.A,{label:"Time",type:"time",value:g,onChange:e=>y(e.target.value),sx:{width:150},InputLabelProps:{shrink:!0}}),"custom"===x&&(0,l.jsx)(U.A,{label:"Cron pattern",value:w,onChange:e=>v(e.target.value),sx:{minWidth:220},placeholder:"*/15 * * * *"})]}),b&&!b.valid&&(0,l.jsx)(q.A,{severity:"error",sx:{mt:2},children:b.error||"This schedule is not valid."}),b&&b.valid&&b.nextRuns.length>0&&(0,l.jsxs)(o.default,{variant:"body2",color:"text.secondary",sx:{mt:2},children:["Next: ",b.nextRuns.map(e=>new Date(e).toLocaleString()).join(" \xb7 ")]}),u&&(0,l.jsx)(s.A,{sx:{mt:1,display:"flex"},control:(0,l.jsx)(Z.A,{checked:!0===c,onChange:e=>u(e.target.checked)}),label:"If FLUJO was closed at a scheduled time, run once on startup"}),(0,l.jsxs)(ee.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,l.jsx)(et.A,{expandIcon:(0,l.jsx)(E.A,{}),sx:{px:0},children:(0,l.jsx)(o.default,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,l.jsx)(ea.A,{sx:{px:0},children:(0,l.jsxs)(n.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,l.jsx)(U.A,{label:"Timezone (optional)",value:a||"",onChange:e=>i({cron:k,timezone:e.target.value||void 0}),placeholder:"e.g. Europe/Berlin",helperText:"IANA timezone name. Empty = this computer's timezone.",sx:{minWidth:260}}),(0,l.jsx)(U.A,{label:"Generated cron pattern",value:k,InputProps:{readOnly:"custom"!==x},onChange:e=>{p("custom"),v(e.target.value)},helperText:"Editing switches to Custom mode.",sx:{minWidth:220}})]})})]})]})};var er=a(52277),eo=a(9693);let es=e=>{let{config:t,onChange:a,executionId:i,saved:c}=e,[u,h]=(0,r.useState)(null),x=window.location.origin,p="".concat(x,"/api/webhooks/").concat(i),f=async(e,t)=>{try{await navigator.clipboard.writeText(t),h(e),setTimeout(()=>h(null),1500)}catch(e){}};return(0,l.jsxs)(n.default,{sx:{mt:1},children:[!c&&(0,l.jsx)(q.A,{severity:"info",sx:{mb:2},children:"This URL and token are ready to copy now — they become active when you save."}),(0,l.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,l.jsx)(U.A,{fullWidth:!0,label:"Webhook URL",value:p,InputProps:{readOnly:!0},size:"small"}),(0,l.jsx)(m.A,{title:"Copy URL",children:(0,l.jsx)(g.A,{onClick:()=>f("url",p),children:"url"===u?(0,l.jsx)(eo.A,{color:"success"}):(0,l.jsx)(er.A,{})})})]}),(0,l.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:1,mt:2},children:[(0,l.jsx)(U.A,{fullWidth:!0,label:"Secret token",value:t.token,InputProps:{readOnly:!0},size:"small",type:"password"}),(0,l.jsx)(m.A,{title:"Copy token",children:(0,l.jsx)(g.A,{onClick:()=>f("token",t.token),disabled:!t.token,children:"token"===u?(0,l.jsx)(eo.A,{color:"success"}):(0,l.jsx)(er.A,{})})}),(0,l.jsx)(d.A,{size:"small",onClick:()=>a({...t,token:crypto.randomUUID()}),sx:{whiteSpace:"nowrap"},children:"New token"})]}),(0,l.jsx)(o.default,{variant:"caption",color:"text.secondary",children:c?"A new token takes effect when you save — callers using the old one are cut off.":""}),(0,l.jsxs)(o.default,{variant:"body2",color:"text.secondary",sx:{mt:1.5},children:["Callers send a POST with the token in the ",(0,l.jsx)("code",{children:"X-Flujo-Token"})," ","header (or ",(0,l.jsx)("code",{children:"?token=…"}),"). The request body becomes part of the flow's input — treat it as untrusted data in your prompt."]}),(0,l.jsx)(s.A,{sx:{mt:1,display:"flex"},control:(0,l.jsx)(Z.A,{checked:!0===t.allowExternal,onChange:e=>a({...t,allowExternal:e.target.checked})}),label:"Allow calls from other machines (default: this computer only)"}),t.allowExternal&&(0,l.jsx)(q.A,{severity:"warning",children:"FLUJO assumes a single user on this machine. If you expose it beyond localhost (port forwarding, tunnels), securing that access is your responsibility — anyone with the URL and token can run this flow."})]})};var ei=a(56422),ed=a(17325),ec=a(80007),eu=a(62640);let eh=[{value:"add",label:"A file appears"},{value:"change",label:"A file changes"},{value:"unlink",label:"A file is deleted"}],ex=e=>{var t;let{config:a,onChange:i}=e,[d,c]=(0,r.useState)(!1);return(0,l.jsxs)(n.default,{sx:{mt:1},children:[(0,l.jsx)(U.A,{fullWidth:!0,label:"Folder (or file) to watch",value:a.path,onChange:e=>i({...a,path:e.target.value}),placeholder:"e.g. C:\\Users\\me\\Documents\\inbox",margin:"normal",InputProps:{endAdornment:(0,l.jsx)(ei.A,{position:"end",children:(0,l.jsx)(m.A,{title:"Browse folders (on the FLUJO machine)",children:(0,l.jsx)(g.A,{edge:"end",onClick:()=>c(!0),children:(0,l.jsx)(ec.A,{})})})})}}),(0,l.jsx)(eu.A,{open:d,title:"Choose what to watch",selectFiles:!0,initialPath:a.path||void 0,onClose:()=>c(!1),onSelect:e=>i({...a,path:e})}),(0,l.jsx)(U.A,{fullWidth:!0,label:"Only files matching (optional)",value:a.glob||"",onChange:e=>i({...a,glob:e.target.value||void 0}),placeholder:"e.g. *.pdf or reports/**/*.csv",helperText:"Simple patterns: * matches within a folder, ** across folders, ? one character.",margin:"normal"}),(0,l.jsx)(o.default,{variant:"subtitle2",sx:{mt:1},children:"Run when…"}),(0,l.jsx)(ed.A,{row:!0,children:eh.map(e=>(0,l.jsx)(s.A,{control:(0,l.jsx)(Z.A,{checked:a.events.includes(e.value),onChange:t=>((e,t)=>{let l=t?[...a.events,e]:a.events.filter(t=>t!==e);i({...a,events:l})})(e.value,t.target.checked)}),label:e.label},e.value))}),(0,l.jsx)(q.A,{severity:"info",sx:{mt:1},children:"Bursts are batched: many files changing at once produce one run with all changes listed. If this flow writes into the watched folder, it will trigger itself in a loop — point its output somewhere else."}),(0,l.jsxs)(ee.A,{disableGutters:!0,elevation:0,sx:{mt:1,"&:before":{display:"none"}},children:[(0,l.jsx)(et.A,{expandIcon:(0,l.jsx)(E.A,{}),sx:{px:0},children:(0,l.jsx)(o.default,{variant:"body2",color:"text.secondary",children:"Advanced"})}),(0,l.jsx)(ea.A,{sx:{px:0},children:(0,l.jsx)(U.A,{label:"Quiet window (ms)",type:"number",value:null!=(t=a.debounceMs)?t:2e3,onChange:e=>i({...a,debounceMs:Math.max(0,Number(e.target.value)||0)}),helperText:"How long to wait after the last change before running.",inputProps:{min:0,step:500},sx:{width:220}})})]})]})};var ep=a(41356),ef=a(24610),em=a(17897),eg=a(43076),ey=a(17427);let ew=(0,y.h)("frontend/components/PlannedExecutions/WatchToolPanel"),ev=e=>{var t,a;let{config:s,onChange:i}=e,[c,u]=(0,r.useState)([]),[h,x]=(0,r.useState)([]),[p,f]=(0,r.useState)(!1),[m,g]=(0,r.useState)(Object.keys(s.args||{}).length>0?JSON.stringify(s.args,null,2):""),[y,w]=(0,r.useState)(null),[v,j]=(0,r.useState)(!1),[b,A]=(0,r.useState)(null),[C,S]=(0,r.useState)(null),[N,T]=(0,r.useState)([]),[E,I]=(0,r.useState)([]);(0,r.useEffect)(()=>{let e=!1;return em.S.loadServerConfigs().then(t=>{e||(Array.isArray(t)?u(t.filter(e=>!e.disabled).map(e=>e.name)):(ew.warn("Failed to load MCP servers for watch-tool panel",t),u([])))}),()=>{e=!0}},[]),(0,r.useEffect)(()=>{if(!s.serverName)return void x([]);let e=!1;return f(!0),em.S.listServerTools(s.serverName).then(t=>{let{tools:a}=t;e||x(a||[])}).finally(()=>{e||f(!1)}),()=>{e=!0}},[s.serverName]),(0,r.useEffect)(()=>{let e=!1;return eg.N.loadModels().then(t=>{e||T(Array.isArray(t)?t:[])}).catch(()=>{e||T([])}),X.g.loadFlows().then(t=>{e||I(t||[])}).catch(()=>{e||I([])}),()=>{e=!0}},[]);let F=async()=>{j(!0),A(null),S(null);try{let a=await em.S.callTool(s.serverName,s.toolName,s.args||{});if(null==a?void 0:a.error)S("string"==typeof a.error?a.error:"Tool call failed");else{var e,t;let l=null!=(e=null==a?void 0:a.data)?e:a,n=null!=(t=JSON.stringify(l,null,2))?t:"";A(n.length>6e3?"".concat(n.slice(0,6e3),"\n… (truncated)"):n)}}catch(e){S(e instanceof Error?e.message:"Tool call failed")}finally{j(!1)}},W=s.evaluate,P=h.find(e=>e.name===s.toolName);return(0,l.jsxs)(n.default,{sx:{mt:1},children:[(0,l.jsxs)(n.default,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,l.jsxs)(D.A,{sx:{minWidth:220,flex:1},margin:"normal",children:[(0,l.jsx)(L.A,{id:"watch-server-label",children:"Server"}),(0,l.jsxs)(H.A,{labelId:"watch-server-label",label:"Server",value:c.includes(s.serverName)?s.serverName:"",onChange:e=>i({...s,serverName:e.target.value,toolName:""}),children:[0===c.length&&(0,l.jsx)(J.A,{value:"",disabled:!0,children:"No MCP servers configured"}),c.map(e=>(0,l.jsx)(J.A,{value:e,children:e},e))]})]}),(0,l.jsxs)(D.A,{sx:{minWidth:220,flex:1},margin:"normal",disabled:!s.serverName,children:[(0,l.jsx)(L.A,{id:"watch-tool-label",children:"Tool"}),(0,l.jsxs)(H.A,{labelId:"watch-tool-label",label:"Tool",value:h.some(e=>e.name===s.toolName)?s.toolName:"",onChange:e=>i({...s,toolName:e.target.value,args:{}}),children:[0===h.length&&(0,l.jsx)(J.A,{value:"",disabled:!0,children:p?"Loading tools…":"Pick a server first"}),h.map(e=>(0,l.jsx)(J.A,{value:e.name,children:e.name},e.name))]})]})]}),(0,l.jsx)(o.default,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,l.jsx)(en,{verb:"Check",cron:null!=(t=s.cron)?t:function(e){let t=Math.max(5,Math.round((null!=e?e:6e4)/1e3));if(t<60)return"*/".concat(t," * * * * *");let a=Math.max(1,Math.round(t/60));if(a<60)return"*/".concat(a," * * * *");let l=Math.max(1,Math.min(23,Math.round(a/60)));return"0 */".concat(l," * * *")}(s.intervalMs),timezone:s.timezone,onChange:e=>{let{cron:t,timezone:a}=e;return i({...s,cron:t,timezone:a})}}),P?(0,l.jsxs)(n.default,{sx:{my:1.5},children:[(0,l.jsx)(o.default,{variant:"subtitle2",sx:{mb:1.5},children:"Tool parameters — sent on every check"}),(0,l.jsx)(ey.A,{schema:P.inputSchema,values:s.args||{},onChange:e=>i({...s,args:e})})]}):(0,l.jsx)(U.A,{fullWidth:!0,label:"Tool arguments (JSON, optional)",value:m,onChange:e=>(e=>{if(g(e),!e.trim()){w(null),i({...s,args:{}});return}try{let t=JSON.parse(e);if(null===t||"object"!=typeof t||Array.isArray(t))return void w('Arguments must be a JSON object, e.g. { "query": "…" }');w(null),i({...s,args:t})}catch(e){w("Not valid JSON yet")}})(e.target.value),margin:"normal",multiline:!0,minRows:2,placeholder:'{ "query": "is:unread" }',error:!!y,helperText:null!=y?y:"Sent to the tool on every check.",slotProps:{input:{sx:{fontFamily:"monospace",fontSize:14}}}}),(0,l.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:2,mb:1},children:[(0,l.jsx)(d.A,{variant:"outlined",size:"small",onClick:F,disabled:!s.serverName||!s.toolName||v||!!y,startIcon:v?(0,l.jsx)(k.default,{size:16}):void 0,children:"Test: call the tool now"}),(0,l.jsx)(o.default,{variant:"caption",color:"text.secondary",children:"See what the result looks like — useful for the settings below."})]}),C&&(0,l.jsx)(q.A,{severity:"error",sx:{mb:1},children:C}),b&&(0,l.jsx)(n.default,{component:"pre",sx:{maxHeight:240,overflow:"auto",bgcolor:"action.hover",borderRadius:1,p:1.5,fontSize:12,m:0,mb:1},children:b}),(0,l.jsx)(o.default,{variant:"subtitle2",sx:{mt:2,mb:1},children:"Run the flow when…"}),(0,l.jsxs)(n.default,{role:"radiogroup","aria-label":"Poll condition",sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,l.jsx)(V,{selected:"on-change"===W.mode,onClick:()=>i({...s,evaluate:{mode:"on-change"}}),icon:(0,l.jsx)(ep.A,{}),title:"The result changes",description:"Any difference from the last check runs the flow. Simplest — no setup."}),(0,l.jsx)(V,{selected:"llm-gate"===W.mode||"flow-gate"===W.mode,onClick:()=>{"llm-gate"!==W.mode&&"flow-gate"!==W.mode&&i({...s,evaluate:{mode:"llm-gate",condition:"",modelId:""}})},icon:(0,l.jsx)(ef.A,{}),title:"AI decides",description:"Describe the condition in plain language; a model — or one of your flows — checks the result whenever it changes."})]}),("llm-gate"===W.mode||"flow-gate"===W.mode)&&(0,l.jsxs)(n.default,{sx:{mt:1},children:[(0,l.jsx)(U.A,{fullWidth:!0,label:"Run the flow if…",value:W.condition,onChange:e=>i({...s,evaluate:{...W,condition:e.target.value}}),multiline:!0,minRows:2,margin:"normal",placeholder:"e.g. any email mentions an invoice or a payment reminder"}),(0,l.jsxs)(n.default,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"flex-start"},children:[(0,l.jsxs)(D.A,{sx:{minWidth:170},children:[(0,l.jsx)(L.A,{id:"gate-checker-label",children:"Checked by"}),(0,l.jsxs)(H.A,{labelId:"gate-checker-label",label:"Checked by",value:W.mode,onChange:e=>{let t=e.target.value;if(t===W.mode)return;let a={condition:W.condition,maxCallsPerDay:W.maxCallsPerDay};i({...s,evaluate:"llm-gate"===t?{mode:t,...a,modelId:""}:{mode:t,...a,flowId:""}})},children:[(0,l.jsx)(J.A,{value:"llm-gate",children:"A model"}),(0,l.jsx)(J.A,{value:"flow-gate",children:"One of my flows"})]})]}),"llm-gate"===W.mode&&(0,l.jsxs)(D.A,{sx:{minWidth:240,flex:1},children:[(0,l.jsx)(L.A,{id:"gate-model-label",children:"Model that checks"}),(0,l.jsxs)(H.A,{labelId:"gate-model-label",label:"Model that checks",value:N.some(e=>e.id===W.modelId)?W.modelId:"",onChange:e=>i({...s,evaluate:{...W,modelId:e.target.value}}),children:[0===N.length&&(0,l.jsx)(J.A,{value:"",disabled:!0,children:"No models configured"}),N.map(e=>(0,l.jsx)(J.A,{value:e.id,children:e.displayName||e.name},e.id))]})]}),"flow-gate"===W.mode&&(0,l.jsxs)(D.A,{sx:{minWidth:240,flex:1},children:[(0,l.jsx)(L.A,{id:"gate-flow-label",children:"Flow that checks"}),(0,l.jsxs)(H.A,{labelId:"gate-flow-label",label:"Flow that checks",value:E.some(e=>e.id===W.flowId)?W.flowId:"",onChange:e=>i({...s,evaluate:{...W,flowId:e.target.value}}),children:[0===E.length&&(0,l.jsx)(J.A,{value:"",disabled:!0,children:"No flows available"}),E.map(e=>(0,l.jsx)(J.A,{value:e.id,children:e.name},e.id))]})]}),(0,l.jsx)(U.A,{label:"Max checks per day",type:"number",value:null!=(a=W.maxCallsPerDay)?a:500,onChange:e=>i({...s,evaluate:{...W,maxCallsPerDay:Math.max(1,Number(e.target.value)||1)}}),inputProps:{min:1},helperText:"Cost guard per check.",sx:{width:180}})]}),(0,l.jsx)(o.default,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.5},children:"flow-gate"===W.mode?'The checker flow runs invisibly (never in the chat), gets the condition + tool result, and must answer with {"fire": true/false, "reason": "…"} — it can use its own tools to verify before deciding.':"The model is only asked when the result actually changed since the last check — an idle feed costs nothing. Pick a small, cheap model."})]}),(0,l.jsx)(q.A,{severity:"info",sx:{mt:2},children:"The first check only takes a snapshot — the flow runs from the second check onwards, when something actually changed. FLUJO must be running for checks to happen."})]})},ej=e=>{let{config:t,onChange:a}=e;return(0,l.jsxs)(n.default,{sx:{mt:1},children:[(0,l.jsx)(U.A,{fullWidth:!0,label:"URL to watch",value:t.url,onChange:e=>a({...t,url:e.target.value}),placeholder:"https://example.com/status or an API/feed URL",margin:"normal",type:"url"}),(0,l.jsx)(o.default,{variant:"subtitle2",sx:{mt:1},children:"How often to check"}),(0,l.jsx)(en,{verb:"Check",cron:t.cron,timezone:t.timezone,onChange:e=>{let{cron:l,timezone:n}=e;return a({...t,cron:l,timezone:n})}}),(0,l.jsx)(q.A,{severity:"info",sx:{mt:1},children:"The first check only takes a snapshot; the flow runs when a later check finds different content, and the fetched content is handed to the flow. Pages that embed ever-changing bits (timestamps, session tokens) look “changed” on every check — plain APIs, feeds, and raw files work best."})]})},eb=(0,y.h)("frontend/components/PlannedExecutions/ExecutionModal"),eA={type:"schedule",cron:"0 9 * * *"},ek={type:"file-watch",path:"",events:["add","change"]},eC={type:"mcp-poll",serverName:"",toolName:"",args:{},cron:"*/5 * * * *",evaluate:{mode:"on-change"}},eS={type:"url-watch",url:"",cron:"*/15 * * * *"},eN=e=>{var t;let{open:a,execution:p,onClose:f,onSaved:m}=e,[y,w]=(0,r.useState)(""),[v,b]=(0,r.useState)(""),[A,k]=(0,r.useState)(""),[C,S]=(0,r.useState)(!1),[N,T]=(0,r.useState)(eA),[E,I]=(0,r.useState)(""),[F,W]=(0,r.useState)([]),[P,R]=(0,r.useState)(!1),[O,z]=(0,r.useState)(!1),[Y,Z]=(0,r.useState)(null);(0,r.useEffect)(()=>{var e,t,l,n;a&&(Z(null),w(null!=(e=null==p?void 0:p.name)?e:""),b(null!=(t=null==p?void 0:p.flowId)?t:""),k(null!=(l=null==p?void 0:p.prompt)?l:""),S((null==p?void 0:p.saveConversations)===!0),T(null!=(n=null==p?void 0:p.trigger)?n:eA),I(p?"":crypto.randomUUID()))},[a,p]),(0,r.useEffect)(()=>{if(!a)return;let e=!1;return R(!0),X.g.loadFlows().then(t=>{e||W(t||[])}).catch(t=>{eb.warn("Failed to load flows for execution picker",t),e||W([])}).finally(()=>{e||R(!1)}),()=>{e=!0}},[a]);let ee=!!v&&!P&&F.length>0&&!F.some(e=>e.id===v),et=async()=>{var e;z(!0),Z(null);let t={name:y,flowId:v,prompt:A,saveConversations:C,trigger:N,enabled:null==(e=null==p?void 0:p.enabled)||e,...p?{}:{id:E}},a=p?await j.update(p.id,t):await j.create(t);if(z(!1),!a.success)return void Z(a.error||"Failed to save");m(),f()};return(0,l.jsxs)(c.A,{open:a,onClose:f,maxWidth:"md",fullWidth:!0,PaperProps:{sx:{borderTop:5,borderColor:"primary.main",maxWidth:"95vw",maxHeight:"90vh"}},children:[(0,l.jsx)(u.A,{component:"div",children:(0,l.jsxs)(n.default,{display:"flex",alignItems:"center",justifyContent:"space-between",children:[(0,l.jsx)(o.default,{variant:"h6",children:p?"Edit planned execution":"New planned execution"}),(0,l.jsx)(g.A,{edge:"end",color:"inherit",onClick:f,"aria-label":"close",children:(0,l.jsx)($.A,{})})]})}),(0,l.jsx)(M.A,{}),(0,l.jsxs)(h.A,{sx:{p:3},children:[(0,l.jsx)(o.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"A planned execution runs one of your flows automatically — on a schedule or when something happens — without anyone sitting in the chat. Results show up in its run history on the Executions page."}),(0,l.jsx)(U.A,{fullWidth:!0,label:"Name",value:y,onChange:e=>w(e.target.value),margin:"normal",placeholder:"e.g. Morning news digest"}),(0,l.jsx)(o.default,{variant:"subtitle1",sx:{mt:3,mb:1,fontWeight:600},children:"1 \xb7 When should it run?"}),(0,l.jsxs)(n.default,{role:"radiogroup","aria-label":"Trigger type",sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[(0,l.jsx)(V,{selected:"schedule"===N.type,onClick:()=>{"schedule"!==N.type&&T((null==p?void 0:p.trigger.type)==="schedule"?p.trigger:eA)},icon:(0,l.jsx)(B.A,{}),title:"On a schedule",description:"Run at fixed times — every few minutes, daily, on weekdays, or a custom rhythm."}),(0,l.jsx)(V,{selected:"webhook"===N.type,onClick:()=>{"webhook"!==N.type&&T((null==p?void 0:p.trigger.type)==="webhook"?p.trigger:{type:"webhook",token:crypto.randomUUID()})},icon:(0,l.jsx)(G.A,{}),title:"When called (webhook)",description:"Other apps run this flow by calling a URL — GitHub, Stripe, Slack and most services can send webhooks."}),(0,l.jsx)(V,{selected:"file-watch"===N.type,onClick:()=>{"file-watch"!==N.type&&T((null==p?void 0:p.trigger.type)==="file-watch"?p.trigger:ek)},icon:(0,l.jsx)(_.A,{}),title:"When files change",description:"Watch a folder on this computer and run when files appear, change, or disappear."}),(0,l.jsx)(V,{selected:"mcp-poll"===N.type,onClick:()=>{"mcp-poll"!==N.type&&T((null==p?void 0:p.trigger.type)==="mcp-poll"?p.trigger:eC)},icon:(0,l.jsx)(K.A,{}),title:"Watch a tool",description:"Check one of your MCP tools regularly — run when its result changes, or let AI decide."}),(0,l.jsx)(V,{selected:"url-watch"===N.type,onClick:()=>{"url-watch"!==N.type&&T((null==p?void 0:p.trigger.type)==="url-watch"?p.trigger:eS)},icon:(0,l.jsx)(Q.A,{}),title:"When a website changes",description:"Check a URL regularly and run when its content is different from the last check."})]}),"schedule"===N.type&&(0,l.jsx)(en,{cron:N.cron,timezone:N.timezone,onChange:e=>{let{cron:t,timezone:a}=e;return T({...N,cron:t,timezone:a})},catchUp:!0===N.catchUp,onCatchUpChange:e=>T({...N,catchUp:e})}),"webhook"===N.type&&(0,l.jsx)(es,{config:N,onChange:T,executionId:null!=(t=null==p?void 0:p.id)?t:E,saved:null!==p}),"file-watch"===N.type&&(0,l.jsx)(ex,{config:N,onChange:T}),"mcp-poll"===N.type&&(0,l.jsx)(ev,{config:N,onChange:T}),"url-watch"===N.type&&(0,l.jsx)(ej,{config:N,onChange:T}),(0,l.jsx)(M.A,{sx:{mt:3}}),(0,l.jsx)(o.default,{variant:"subtitle1",sx:{mt:2,mb:0,fontWeight:600},children:"2 \xb7 What should it run?"}),(0,l.jsxs)(D.A,{fullWidth:!0,margin:"normal",children:[(0,l.jsx)(L.A,{id:"execution-flow-label",children:"Flow to run"}),(0,l.jsxs)(H.A,{labelId:"execution-flow-label",label:"Flow to run",value:ee?"":v,onChange:e=>b(e.target.value),displayEmpty:!0,children:[0===F.length&&(0,l.jsx)(J.A,{value:"",disabled:!0,children:P?"Loading flows…":"No flows available"}),F.map(e=>(0,l.jsx)(J.A,{value:e.id,children:e.name},e.id))]})]}),ee&&(0,l.jsx)(q.A,{severity:"warning",sx:{mt:1},children:"The previously selected flow no longer exists. Please choose another."}),(0,l.jsx)(U.A,{fullWidth:!0,label:"What should the flow do?",value:A,onChange:e=>k(e.target.value),margin:"normal",multiline:!0,rows:3,helperText:"Sent to the flow as the user message each time this runs. Run details are attached automatically: current time, what triggered it, the previous run, the next planned run, and any trigger data."}),(0,l.jsx)(s.A,{sx:{mt:1},control:(0,l.jsx)(i.A,{checked:C,onChange:e=>S(e.target.checked)}),label:"Save full conversations (each run appears in the chat sidebar — useful for debugging)"}),Y&&(0,l.jsx)(q.A,{severity:"error",sx:{mt:2},children:Y})]}),(0,l.jsxs)(x.A,{children:[(0,l.jsx)(d.A,{onClick:f,children:"Cancel"}),(0,l.jsx)(d.A,{onClick:et,variant:"contained",color:"primary",disabled:O||!y.trim()||!v,children:O?"Saving…":"Save"})]})]})},eT=(0,y.h)("frontend/components/PlannedExecutions"),eE=()=>{let[e,t]=(0,r.useState)([]),[a,y]=(0,r.useState)(!1),[w,v]=(0,r.useState)(!1),[b,A]=(0,r.useState)(!1),[k,C]=(0,r.useState)(null),[S,N]=(0,r.useState)(null),T=(0,r.useCallback)(async()=>{let e=await j.list();t(e.executions),y(e.paused),v(!0)},[]);(0,r.useEffect)(()=>{T()},[T]);let E=e.some(e=>e.status.running);(0,r.useEffect)(()=>{let e=setInterval(()=>{document.hidden||T()},E?3e3:1e4);return()=>clearInterval(e)},[T,E]);let I=async e=>{y(e);let t=await j.setPaused(e);t.success||eT.warn("Failed to toggle pause",t.error),T()},F=async(e,t)=>{await j.update(e.id,{enabled:t}),T()},W=async()=>{S&&(await j.delete(S.id),N(null),T())};return(0,l.jsxs)(n.default,{sx:{p:3,maxWidth:1100,mx:"auto",width:"100%"},children:[(0,l.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:2,mb:1},children:[(0,l.jsx)(o.default,{variant:"h5",children:"Planned Executions"}),(0,l.jsxs)(n.default,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,l.jsx)(m.A,{title:"Refresh",children:(0,l.jsx)(g.A,{onClick:()=>void T(),children:(0,l.jsx)(f.A,{})})}),(0,l.jsx)(s.A,{control:(0,l.jsx)(i.A,{checked:!a,onChange:e=>I(!e.target.checked)}),label:a?"Paused":"Active"}),(0,l.jsx)(d.A,{variant:"contained",startIcon:(0,l.jsx)(p.A,{}),onClick:()=>{C(null),A(!0)},"data-tour":"add-execution",children:"Add"})]})]}),(0,l.jsx)(o.default,{variant:"body2",color:"text.secondary",sx:{mb:3},children:"Run your flows automatically — on a schedule or when something happens — without opening the chat. FLUJO must be running for triggers to fire."}),w&&0===e.length&&(0,l.jsxs)(n.default,{sx:{border:1,borderColor:"divider",borderRadius:2,borderStyle:"dashed",p:6,textAlign:"center"},children:[(0,l.jsx)(o.default,{variant:"h6",sx:{mb:1},children:"Nothing planned yet"}),(0,l.jsx)(o.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Create your first planned execution to run a flow on a schedule."}),(0,l.jsx)(d.A,{variant:"contained",startIcon:(0,l.jsx)(p.A,{}),onClick:()=>{C(null),A(!0)},children:"New planned execution"})]}),(0,l.jsx)(n.default,{sx:{display:"flex",flexDirection:"column",gap:2},children:e.map(e=>(0,l.jsx)(z,{entry:e,onEdit:()=>{C(e.execution),A(!0)},onDelete:()=>N(e.execution),onToggleEnabled:t=>F(e.execution,t),onRanNow:()=>void T()},e.execution.id))}),(0,l.jsx)(eN,{open:b,execution:k,onClose:()=>A(!1),onSaved:()=>void T()}),(0,l.jsxs)(c.A,{open:null!==S,onClose:()=>N(null),children:[(0,l.jsxs)(u.A,{children:["Delete “",null==S?void 0:S.name,"”?"]}),(0,l.jsx)(h.A,{children:(0,l.jsx)(o.default,{variant:"body2",color:"text.secondary",children:"This removes the planned execution and its run history. The flow itself is not affected."})}),(0,l.jsxs)(x.A,{children:[(0,l.jsx)(d.A,{onClick:()=>N(null),children:"Cancel"}),(0,l.jsx)(d.A,{color:"error",variant:"contained",onClick:W,children:"Delete"})]})]})]})},eI=(0,y.h)("app/executions/page");function eF(){return eI.debug("Rendering ExecutionsPage"),(0,l.jsx)(n.default,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:(0,l.jsx)(eE,{})})}}},e=>{e.O(0,[2678,4754,9244,8548,690,9562,2003,488,3272,6582,256,7329,9984,2380,8441,1255,7358],()=>e(e.s=60187)),_N_E=e.O()}]);